• Регистрация
MaximSidorov
MaximSidorov +118.29
н/д

Справочник по MATLAB - Математические функции (В.Г.Потемкин)

06.05.2019

Информация в данной статье относится к релизам программы MATLAB ранее 2016 года, и поэтому может содержать устаревшую информацию в связи с изменением функционала инструментов. С более актуальной информацией вы можете ознакомиться в разделе документация MATLAB на русском языке.

В системе MATLAB имеется обширная библиотека математических функций. Каждой функции соответствует определенное имя. Функция ставит в соответствие значениям своих аргументов значение результата.

Аргументы функции всегда указываются в круглых скобках после имени функции и, если их больше одного, разделяются запятыми. В качестве аргументов могут использоваться другие функции и любые выражения языка MATLAB (при условии соответствия типов аргументов).

Элементарная математическая функция - это, как правило, функция от одной переменной, и в этом случае устанавливается соответствие между массивами значений аргумента и результата.

Аргумент указывается в круглых скобках после имени функции. Имя переменной, которой присваивается значение функции, располагается слева от знака равенства. Если имя присваиваемой переменной не указано, значение функции присваивается служебной переменной ans.

Тип результата вычисления математической функции всегда совпадает с типом ее аргумента. Например, если аргументом функции является вектор-столбец, то значением этой функции также будет вектор-столбец.

Рассмотрим встроенные математические функции системы MATLAB, которые применяются к числам, скалярным переменным и к массивам (поэлементно).

Базовые функции

Трансцендентные функции

Тригонометрические функции

Преобразования системы координат

Специальные функции

 

 

Базовые функции

 

Наверх

ABS - абсолютное значение

Синтаксис:

 Y = abs(X)

Описание:

Для массива действительных чисел X функция Y = abs(X) возвращает массив Y абсолютных значений элементов X.

Для массива комплексных чисел Z функция Y = abs(Z) возвращает массив Y модулей комплексных элементов Z.

Для строковой переменной S функция Y = abs(S) возвращает вместо символов, включая пробелы, их ASCII-коды.

Примеры:

 abs(-5)
 ans =     5
 abs(3 + 4i)
 ans =     5
 ascii = abs('3 + 4I')
 ascii =    51   32   43   32   52   73
 setstr(ascii)
 ans =   3 + 4I

Сопутствующие функции: SIGN, ANGLE, REAL, IMAG.

 

Наверх

ANGLE - аргумент комплексного числа

Синтаксис:

 P = angle(Z)

Описание:

Для массивов комплексных чисел Z функция P = abs(Z) возвращает массив значений аргументов для элементов Z. Значение аргумента измеряется в радианах и находится в пределах от -p до p .

Пример:

Для комплексного числа z = x + iy = reij его модуль r и аргумент j вычисляются следующим образом:

r = abs(z)
phi = angle(z),

а оператор

z = r .*exp(i*phi)

выполняет обратное преобразование.

Алгоритм:

Для вычисления аргумента комплексного числа используется следующее соотношение:

angle(z) = atan2(imag(z), real(z))

Сопутствующие функции: ABS, REAL, IMAG.

 

Наверх

REAL, IMAG - действительная и мнимая части комплексного числа

Синтаксис:

 X = real(Z)
 Y = real(Z)

Описание:

Для массивов комплексных чисел Z функция X = real(Z) возвращает массив действительных, а Y = real(Z) - мнимых частей элементов Z.

Сопутствующие функции: ABS, ANGLE.

 

Наверх

CONJ - операция комплексного сопряжения

Синтаксис:

V = conj(Z)

Описание:

Для массивов комплексных чисел Z функция V = conj(Z) возвращает массив комплексно-сопряженных значений для элементов Z.

Сопутствующие функции: IMAG, REAL.

 

Наверх

SIGN - вычисление знака числа

Синтаксис:

S = sign(Z)

Описание:

Для массивов действительных чисел X функция S = sign(X) возвращает массив S тех же размеров, в котором на месте положительного числа стоит 1, на месте нулевого - 0, на месте отрицательного - (-1).

Для массивов комплексных чисел Z функция S = sign(Z) возвращает массив комплексных чисел S = Z ./abs(Z), модуль которых равен единице.

Сопутствующие функции: ABS, IMAG, REAL.

 

Наверх

CEIL, FIX, FLOOR, ROUND -  функции округления

Синтаксис:

 Y = ceil(X)
 Y = fix(X)
 Y = floor(X)
 Y = round(X)

Описание:

Для массивов действительных чисел X:

  • функция Y = ceil(X) возвращает значения, округленные до ближайшего целого >=X;
  • функция Y = fix(X) возвращает значения с усечением дробной части числа;
  • функция Y = floor(X) возвращает значения, округленные до ближайшего целого<= X;
  • функция Y = round(X) возвращает значения, округленные до ближайшего целого.

Для массивов комплексных чисел Z эти функции применяются одновременно к действительной и мнимой частям.

Примеры:

Задан одномерный массив действительных чисел

 x = [-1.9 -0.2 3.4 5.6 7.0];

ceil(x) ans = -1 0 4 6 7   fix(x) ans = -1 0 3 5 7
floor(x) ans = -2 -1 3 5 7   round(x) ans = -2 0 3 6 7

 

Наверх

REM - функция остатка

Синтаксис:

rem(x, y)

Описание:

Для действительных чисел x и y функция rem(x, y) вычисляет остаток от деления x на y или, в других обозначениях, функцию x(mod y) = x - y*n, где n = fix(x/y) - ближайшее целое.

Для массивов чисел эта функция применяется поэлементно.

Сопутствующие функции: CEIL, FIX, FLOOR, ROUND.

 

Наверх

GCD - наибольший общий делитель

Синтаксис:

g = gcd(m, n)
  [g, c, d] = gcd(m, n)

Описание:

Функция g = gcd(m, n) вычисляет наибольший общий делитель двух целых чисел m и n. Принято, что gcd(0, 0) = 0.

Функция [g, c, d] = gcd(m, n) кроме наибольшего общего делителя вычисляет два множителя c и d, таких, что выполняется соотношение g = = m*c + n*d.

Для массивов чисел эту функцию применять нельзя.

Алгоритм:

 if round(a) ~= a | round(b) ~= b
    error(‘Входные аргументы должны быть целыми числами.')
 end
 u = [1 0 abs(a)];
 v = [0 1 abs(b)];
 while v(3)
     q = floor( u(3) / v(3) );
     t = u - v*q;
     u = v;
     v = t;
 end
 c = u(1) * sign(a);
 d = u(2) * sign(b);
 g = u(3);

Пример:

 [g, c, d] = gcd(45, 36);
 [g c d] ans = 9     1    -1

Сопутствующие функции: ABS, FLOOR, ROUND, SIGN.

 

Наверх

LCM - наименьшее общее кратное

Синтаксис:

 g = lcm(m, n)

Описание:

Функция g = lcm(m, n) вычисляет наименьшее общее кратное двух целых чисел m и n.

Для массивов чисел эту функцию применять нельзя.

Алгоритм:

     if round(a) ~= a | round(b) ~= b | a < 1 | b < 1
          error(‘Входные аргументы должны быть целыми числами.')
          end
          c = a*b/gcd(a,b);

Пример:

     g = lcm(45, 36)
          g = 180

Сопутствующие функции: GCD, ROUND.

 

Наверх

RAT, RATS - представление результата в виде рационального числа или цепной дроби

Синтаксис:

  [N, D] = rat(X) rat(X) S = rats(X)
  [N, D] = rat(X, tol) rat(X, tol) S = rats(X, tol)

Описание:

Несмотря на то что все числа с плавающей точкой представлены в ком-пьютере в виде рациональных чисел, иногда целесообразно представить число в виде отношения двух относительно небольших целых чисел. Такое представление на основе цепных дробей и реализуется с использованием вышеперечисленных функций.

Функция [N, D] = rat(X) определяет для входа x два таких целых числа n и d, при которых выполняется условие n/d - x <= 1e-6*abs(x).

Функция [N, D] = rat(X, tol) позволяет указать точность приближения tol, отличную от 1e-6.

Функции rat(X) и rat(X, tol) позволяют вывести на экран результат в виде цепной дроби.

Если в качестве входа задан массив чисел X, то результатом операций будут массивы соответствующего размера.

Функция S = rats(X, k) использует функцию rat(X), чтобы вывести на экран результат в виде простой дроби
s = [sprintf(['%' num2str(fix(k/2)), n) '/' sprintf(['%-' num2str(fix(k/2)) '.0f'], d)],
точность аппроксимации для которой составляет tol = 10^(-fix(k/2)) * abs(x).

Для функции S = rats(X) точность аппроксимации принимается по умолчанию равной 1e-6* abs(x), что соответствует значению k = 13.

Функция format rat равносильна функции rats.

Алгоритм:

Функция rat(X) аппроксимирует каждый элемент массива X цепной дробью следующего вид:

Величины dk получены последовательным выделением целой части с последующим обращением дробной части. Точность аппроксимации возрастает по степенному закону с ростом числа членов. Самая медленная сходимость наблюдается при рациональной аппроксимации числа x = sqrt(2). Погрешность аппроксимации с учетом k членов составляет 2.68 * (0.173)^k, так что учет каждого последующего члена увеличивает точность менее чем на одну десятичную цифру, так что для достижения максимальной точности в арифметике с плавающей точкой требуется 21 член.

Примеры:

Рассмотрим аппроксимацию числа p в виде цепной дроби и рационального числа

rat(pi)
ans = 3 + 1/(7 + 1/(16))
rat(pi, 1e-12)
ans = 3 + 1/(7 + 1/(16 + 1/(-294 + 1/(3 + 1/(-4 + 1/(5))))))
[n,d]=rat(pi);
[n d]
ans =   355     113
[n, d]=rat(pi, 1e-12);
[n d]
ans =    5419351    1725033
s = rats(pi)
s = 355/113
s = rats(pi, 26)
s = 5419351/1725033

 

 

Трансцендентные функции

 

Наверх

SQRT - квадратный корень

Синтаксис:

V = sqrt(Z)

Описание:

Функция V = sqrt(Z) вычисляет квадратные корни элементов массива Z. Для отрицательных и комплексных значений результат является комплексным числом.

Пример:

w = sqrt((-2:2)')
w =

  0+ 1.4142i
  0+ 1.0000i
  0
  1.0000
  1.4142

   whos

  Name Size Bytes Class
  w 5x1 80 double array (complex)

   Grand total is 5 elements using 80 bytes
        Общее число элементов 5, используют 80 байтов.

Сопутствующие функции: EXP, LOG, SQRTM.

 

Наверх

EXP - экспоненциальная функция

Синтаксис:

 V = exp(Z)
Описание:

Функция V = exp(Z) вычисляет экспоненты значений элементов массива Z. Для комплексных значений z = x + iy справедлива формула Эйлера

ez = ex (cos(y) + i sin(y)).

Вычисление экспоненты от матрицы реализовано с помощью специальной функции expm.

Сопутствующие функции: LOG, LOG2, LOG10, EXPM.

 

Наверх

LOG - функция натурального логарифма

Синтаксис:

 V = log(Z)

Описание:

Функция V = log(Z) вычисляет натуральный логарифм значений элементов массива Z. Для комплексных значений z = x + iy справедлива формула

 ln(z) = ln(abs(z)) + i atan2(y, x).

Вычисление функции натурального логарифма от матрицы реализовано с помощью специальной функции logm.

Пример:

Одна из возможностей вычисления значения числа p - это вычислить log(-1):

 log(-1)
 ans =     0 +3.141592653589793e+000i

Сопутствующие функции: EXP, LOG2, LOG10, LOGM.

 

Наверх

POW2 - экспонента по основанию 2

Синтаксис:

V = pow2(Z)
X = pow2([M, P])

Описание:

Функция V = pow2(Z) вычисляет массив степеней 2.^Z.

Функция X = pow2([M, P]) для действительных массивов M и P вычисляет массив X = M.*(2.^P).

Пример:

Для компьютеров с IEEE-арифметикой, в которых определены объекты eps, realmax и realmin, функция x = pow2([m, p]) вычисляет следующие величины:

m p x
1/2 1 1
pi/4 2 pi
-3/4 2 -3
1/2 -51 eps
1-eps/2 1024 realmax
1/2 -1021 realmin

Сопутствующие функции: LOG2, NEXTPOW2.

 

Наверх

NEXTPOW2 - ближайшая степень по основанию 2

Синтаксис:

p = nextpow2(n)
  p = nextpow2(x)

Описание:

Функция p = nextpow2(n) возвращает такой показатель степени p, что 2^p >= n.

Функция p = nextpow2(x) для одномерного массива x возвращает значение nextpow2(length(x)). Эта операция широко применяется при вычислении быстрого преобразования Фурье.

Пример:

Для любого целого числа n в диапазоне от 513 до 1024 функция nextpow2(n) возвращает значение 10.

Сопутствующие функции: FFT, LOG2, POW2.

 

Наверх

LOG2 - фунции логарифма

Синтаксис:

V = log2(Z)
[M, P] = log2(X)

Описание:

Функция V = log2(Z) вычисляет логарифм по основанию 2 от значений элементов массива Z.

Функция [M, P] = log2(X) для массива X действительных чисел возвращает массив M значений мантисс и целочисленный массив P показателей степеней, позволяющих представить любой элемент x в виде x = f*2^p; нулевому элементу соответствует представление {f = 0, e = 0}.

Примеры:

Для компьютеров с IEEE-арифметикой, в которых определены объекты eps, realmax, realmin, функция log2 вычисляет следующие величины: 

log2(eps) log2(realmax) log2(realmin)
ans = -52 ans = 1024 ans = -1022

а функция [M, P] = log2(X) строит следующие представления чисел:

x m p
1 1/2 1
pi pi/4 2
-3 -3/4 2
eps 1/2 -51
realmax 1-eps/2 1024
realmin 1/2 -1021

Сопутствующие функции: NEXTPOW2, POW2.

 

Наверх

LOG10 - функции логарифма

Синтаксис:

V = log10(Z)

Описание:

Функция V = log10(Z) вычисляет логарифм по основанию 10 от значений элементов массива Z.

Примеры:

Для компьютеров с IEEE-арифметикой, в которых определены объекты eps, realmax realmin, функция log10 вычисляет следующие величины:

log10(eps) log10(realmax) log10(realmin)
ans = -15.6536 ans = 308.2547 ans = -307.6527

Сопутствующие функции: EXP, LOG2, LOGM, POW2.

 

 

Тригонометрические функции

 

Наверх

SIN, SINH - функции синуса

Синтаксис:

 V= sin(Z)
 V = sinh(Z)

Описание:

Функция V = sin(Z) вычисляет синус от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический синус от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальные функции funm или expm.

Алгоритм:

Для вычисления функций синуса используются следующие соотношения:

sin(x + iy) = sin(x)ch(y) + icos(x)sh(y);
sh(z) = ;
sin(z) = - i sh(iz).

Сопутствующие функции: ASIN, ASINH, CSC, CSCH, ACSC, ACSCH, EXPM, FUNM.

 

Наверх

ASIN, ASINH - функции обратного синуса

Синтаксис:

V = asin(Z)
   V = asinh(Z)

Описание:

Функция V = asin(Z) вычисляет обратную функцию синуса от значений элементов массива Z.

Функция V = sinh(Z) вычисляет обратную функцию гиперболического синуса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Функция Y = asin(X) для действительных значений -1<= x <= 1 определена в интервале -p /2<= x <= p /2.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций обратного синуса используются следующие соотношения:

 arsh(z) = ln[z + (1 + z2)1/2];
 arcsin(z) = - i arsh(iz).

Сопутствующие функции: SIN, SINH, CSC, CSCH, ACSC, ACSCH, FUNM.

 

Наверх

CSC, CSCH - функции косеканса

Синтаксис:

 V = csc(Z)
 V = csch(Z)

Описание:

Функция V = csc(Z) вычисляет косеканс от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический косеканс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций косеканса используются следующие соотношения:

 csc(z) = 1/sin(z);
 csch(z) = 1/sinh(z).

Сопутствующие функции: SIN, SINH, ASIN, ASINH, FUNM.

 

Наверх

ACSC, ACSCH - функции обратного косеканса

Синтаксис:

 V = acsc(Z)
 V = acsch(Z)

Описание:

Функция V = acsc(Z) вычисляет обратную функцию косеканса от значений элементов массива Z.

Функция V = acsch(Z) вычисляет обратную функцию гиперболического косеканса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций обратного косеканса используются следующие соотношения:

 arccosec(z) = arcsin(1/z);
    arcosech(z) = arsinh(1/z).

Сопутствующие функции: SIN, SINH, CSC, CSCH, ASIN, ASINH, FUNM.

 

Наверх

COS, COSH - функции косинуса

Синтаксис:

V = cos(Z)
  V = cosh(Z)

Описание:

Функция V = cos(Z) вычисляет косинус от значений элементов массива Z.

Функция V = cosh(Z) вычисляет гиперболический косинус от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальные функции funm или expm.

Алгоритм:

Для вычисления функций косинуса используются следующие соотношения:

cos(x + iy) = cos(x)ch(y) - isin(x)sh(y);
  ch(z) =image603.gif (270 bytes);
  cos(z) = ch(iz).

Сопутствующие функции: ACOS, ACOSH, SEC, SECH, ASEC, ASECH, EXPM, FUNM.

 

Наверх

ACOS, ACOSH - функции обратного косинуса

Синтаксис:

V = acos(Z)
   V = acosh(Z)

Описание:

Функция V = acos(Z) вычисляет обратную функцию косинуса от значений элементов массива Z.

Функция V = acosh(Z) вычисляет обратную функцию гиперболического косинуса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Функция Y = acos(X) для действительных значений -1<= x <=1 определена в интервале 0 <= x <= p .

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций обратного косинуса используются следующие соотношения:

 arch(z) = ln[z + (z2- 1)1/2];
 arccos(z) = -i arch(z).

Сопутствующие функции: COS, COSH, SEC, SECH, ASEC, ASECH, FUNM.

 

Наверх

SEC, SECH - функции секанса

Синтаксис:

 V = sec(Z)
 V = sech(Z)

Описание:

Функция V = sec(Z) вычисляет секанс от значений элементов массива Z.

Функция V = sech(Z) вычисляет гиперболический секанс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций секанса используются следующие соотношения:

sec(z) = 1/cos(z);
sech(z) = 1/cosh(z).

Сопутствующие функции: COS, COSH, ACOS, ACOSH, FUNM.

 

Наверх

ASEC, ASECH - функции обратного секанса

Синтаксис:

 V = asec(Z)
 V = asech(Z)

Описание:

Функция V = asec(Z) вычисляет обратную функцию секанса от значений элементов массива Z.

Функция V = asech(Z) вычисляет обратную функцию гиперболического секанса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций обратного секанса используются следующие соотношения:

 arcsec(z) = arccos(1/z);
 arsech(z) = arcosh(1/z).

Сопутствующие функции: SIN, SINH, CSC, CSCH, ASIN, ASINH, FUNM.

 

Наверх

TAN, TANH - функции тангенса

Синтаксис:

 V = tan(Z)
 V = tanh(Z)

Описание:

Функция V = tan(Z) вычисляет тангенс от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический тангенс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций тангенса используются следующие соотношения:

 tg(z) = image604.gif (314 bytes);
 th(z) = image605.gif (335 bytes).

Сопутствующие функции: ATAN, ATAN2, ATANH, COT, COTH, ACOT, ACOTH, FUNM.

 

Наверх

ATAN, ATAN2, ATANH - функции обратного тангенса

Синтаксис:

V = atan(Z)
  V = atan2(Y, X)
  V = atanh(Z)

Описание:

Функция V = atan(Z) вычисляет обратную функцию тангенса от значений элементов массива Z.

Функция V = atan2(Y, X) вычисляет обратную функцию тангенса от значений элементов двух связанных действительных массивов Y и X. Если массивы оказались комплексными, берутся их действительные части. Углы V вычисляются с учетом знаков Y и X и определены в интервале -p <= v <= p .

Функция V = atanh(Z) вычисляет обратную функцию гиперболического тангенса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций обратного тангенса используются следующие соотношения:

arth(z) =image606.gif (309 bytes) ;

arctg(z) = -i arth(iz);

Arctg(y, x) =image607.gif (1078 bytes)

Сопутствующие функции: TAN, TANH, COT, COTH, ACOT, ACOTH, FUNM.

 

Наверх

COT, COTH - функции котангенса

Синтаксис:

V = cot(Z)
  V = coth(Z)

Описание:

Функция V = csc(Z) вычисляет котангенс от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический котангенс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций косеканса используются следующие соотношения:

 ctg(z) = 1/tg(z);
 cth(z) = 1/th(z).

Сопутствующие функции: TAN, TANH, ATAN, ATAN2, ATANH, FUNM.

 

Наверх

ACOT, ACOTH - функции обратного котангенса

Синтаксис:

  V = acot(Z)
  V = acoth(Z)

Описание:

Функция V = acsc(Z) вычисляет обратную функцию котангенса от значений элементов массива Z.

Функция V = acsch(Z) вычисляет обратную функцию гиперболического котангенса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Алгоритм:

Для вычисления функций обратного котангенса используются следующие соотношения:

 arсth(z) = image608.gif (307 bytes) ;
arcctg(z) = i arcth(iz).

Сопутствующие функции: TAN, TANH, COT, COTH, ATAN, ATAN2, ATANH, FUNM.

 

 

Преобразования системы координат

 

Наверх

CART2POL - преобразование декартовой системы координат в полярную и цилиндрическую

Синтаксис:

 [TH, R] = CART2POL(X, Y)
 [TH, R, Z] = CART2POL(X, Y, Z)

Описание:

Функция [TH, R] = CART2POL(X, Y) преобразует точки декартовой системы координат в точки полярной системы координат. Размеры массивов X и Y должны быть согласованы. Угол TH измеряется в радианах.

Функция [TH, R, Z] = CART2POL(X, Y, Z) преобразует точки трехмерной декартовой системы координат в точки цилиндрической системы координат. Размеры массивов X, Y и Z должны быть согласованы. Угол TH измеряется в радианах.

Алгоритм:

Для вычисления используются следующие формулы преобразования:

r = sqrt(x.^2 + y.^2);
  th = atan2(y, x).

Сопутствующие функции: POL2CART.

 

Наверх

CART2SPH - преобразование декартовой системы координат в сферическую

Синтаксис:

[AZ, EL, R] = CART2SPH(X, Y, Z)

Описание:

Функция [AZ, EL, R] = CART2SPH(X, Y, Z) преобразует точки трехмерной декартовой системы координат в точки сферической системы координат. Размеры массивов X, Y и Z должны быть согласованы. Углы AZ, EL измеряются в радианах.

Алгоритм:

Для вычисления используются следующие формулы преобразования:

r = sqrt(x.^2 + y.^2 + z.^2);
   elev = atan2(z, sqrt(x.^2 + y.^2));
   az = atan2(y, x).

Сопутствующие функции: SPH2CART.

 

Наверх

POL2CART - преобразование полярной и цилиндрической систем координат в декартову

Синтаксис:

[X, Y] = POL2CART(TH, R)
   [X, Y, Z] = POL2CART(TH, R, Z)
Описание:

Функция [X, Y] = POL2CART(TH, R) преобразует точки полярной системы координат в точки декартовой системы координат. Размеры массивов X и Y должны быть согласованы. Угол TH измеряется в радианах.

Функция [TH, R, Z] = CART2POL(X, Y, Z) преобразует точки цилиндрической системы координат в точки трехмерной декартовой системы координат. Размеры массивов X, Y и Z должны быть согласованы. Угол TH измеряется в радианах.

Алгоритм:

Для вычисления используются следующие формулы преобразования:

x = r.*cos(th);
   y = r.*sin(th);
   z = z;

Сопутствующие функции: CART2POL.

 

Наверх

SPH2CART - преобразование сферической системы координат в декартову

Синтаксис:

[AZ, EL, R] = CART2SPH(X, Y, Z)

Описание:

Функция [AZ, EL, R] = CART2SPH(X, Y, Z) преобразует точки трехмерной декартовой системы координат в точки сферической системы координат. Размеры массивов X, Y и Z должны быть согласованы. Углы AZ, EL измеряются в радианах.

Алгоритм:

Для вычисления используются следующие формулы преобразования:

z = r .* sin(elev);
  x = r .* cos(elev) .* cos(az);
  y = r .* cos(elev) .* sin(az).

Сопутствующие функции: CART2SPH.

 

 

Специальные функции

 

Наверх

BESSEL - функции Бесселя

Синтаксис:

J = bessel(alpha, X)

Описание:

Линейное дифференциальное уравнение вида

image609.gif (335 bytes),

где a - неотрицательная величина, называется уравнением Бесселя, а его решения известны как функции Бесселя.

Для вычисления функций Бесселя разработан набор M-файлов, обеспечивающий высокую точность их вычисления для действительных значений аргумента:

  • besselj(alpha, X) - функция Бесселя первого рода Ja(x);
  • bessely(alpha, X) - функция Бесселя второго рода Ya(x);
  • besseli(alpha, X) - модифицированная функция Бесселя первого рода Ia(x);
  • besselk(alpha, X) - модифицированная функция Бесселя второго рода Ka(x).

Сохранена также функция [J, digits] = bessela(alpha, Z), которая допускает комплексные значения аргумента и позволяет получать оценку количества правильных цифр результата. Значение digits, равное 14 или 15, соответствует максимальной точности IEEE- или VAX-арифметик; однако значение digits, равное единице или двум, означает, что результату доверять нельзя. Для значений alpha и x, не превышающих 50, количество точных цифр по крайней мере 8. На плоскости (alpha, x) область наименьшей точности расположена вблизи прямой alpha = x, так что малые alpha и большие x, и наоборот, дают более точные значения.

Функция J = bessel(alpha, X) вызывает:

  • функцию besselj(alpha, X), если X - массив действительных чисел;
  • функцию besseli(alpha, X), если X - массив чисто мнимых чисел;
  • функцию bessela(alpha, Z), если Z - массив комплексных чисел.

Примеры:

Функция besselj(3:9, (10:.2:20)') генерирует таблицу размера 51 х 7, воспроизведенную на стр. 400 работы [1];

функция bessely(3:9,(10:.2:20)') генерирует таблицу размера 51 х 7, воспроизведенную на стр. 401 работы [1];

функция besseli(3:9, [0:.2:9.8 10:.5:20], 1) генерирует таблицу размера 71 х 7, воспроизведенную на стр. 423 работы [1];

функция besselk(3:9, [0:.2:9.8 10:.5:20], 1) генерирует таблицу размера 71 х 7, воспроизведенную на стр. 424 работы [1].

Оценим точность вычисления функции Бесселя для разных значений alpha и x.

 
alpha
25 50 75
х
25
50
75
12 14 14
14 7 9
15 10 2

Ccылки:

Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.

 

Наверх

BETA, BETACORE, BETAINC, BETALN - бета-функции

Синтаксис:

B = beta(p, q)
B = betacore(x, p, q)
I = betainc(x, p, q)
y = betaln(p, q)

Описание:

Полная бета-функция B = beta(p, q) определяется следующим образом [2]:

     B(p, q) = image610.gif (384 bytes) = image611.gif (321 bytes).

Неполная бета-функция B = betainc(p, q) определяется так [2]:

    Ix(p, q) = image612.gif (477 bytes).

Для ее вычисления используется вспомогательная функция betacore(x, p, q).

Функция y = betaln(p, q) представляет натуральный логарифм полной бета-функции B = beta(p, q). Поскольку бета-функция изменяется в широких пределах, знание ее логарифма может оказаться более предпочтительным. Вычисление функции ln(B) реализуется без вычисления функции beta(p, q).

Если p и q - массивы, то их размеры должны быть согласованы.

Алгоритм:

betaln(p, q) = gammaln(p) + gammaln(q) - gammaln(p + q)
beta(p, q) = exp(betaln(p, q))

Пример:

 formt rar
 beta((1:10)', 3)
 ans =

  0/0
  1/3
  1/12
  1/30
  1/60
  1/105
  1/168
  1/252
  1/360
  1/495
  1/660

В данном случае при целочисленных аргументах

beta(n, 3) = (n - 1)! * 2!/(n + 2)! = 2/((n * (n + 1) * (n + 2))

и представляет собой отношение двух сравнительно небольших целых чисел, так что представление результата в формате format rat оказывается точным.

Для x = 510 betaln(x, x) = -708.8616, что для компьютеров с IEEE-арифметикой немного меньше, чем log(realmin) = -708.3964, так что при вычислении функции beta(x, x) следует проявлять осторожность.

Ccылки:

  1. Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.: Наука, 1968. 720 с.

 

Наверх

ELLIPJ - эллиптические функции Якоби

Синтаксис:

[sn, cn, dn] = ellipj(m, phi)

Описание:

Введем интеграл

z =   image613.gif (428 bytes);

функция j = am(z) называется амплитудой, функция sn(z) - синусом амплитуды, функция cn(z) - косинусом амплитуды, и dn(z) - дельтой амплитуды.

Эти эллиптические функции Якоби связаны между собой следующим образом [1, 2]:

     sn(z) = sin(j),
          cn(z) = cos(j),
          dn(z) = (1 - m sn(z))1/2.

Функция [sn, cn, dn] = ellipj(m, phi) вычисляет эллиптические функции Якоби sn, cn, dn для заданных значений m и phi, которые могут быть как скалярами, так и массивами, но обязательно одинаковых размеров.

Ограничения:

Входной параметр m должен принадлежать диапазону 0 <= m <= 1.

Сопутствующие функции: ELLIPKE.

Ccылки:

  1. Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

 

Наверх

ELLIPKE - полные эллиптические интегралы

Синтаксис:

K = ellipke(m)
[K, E] = ellipke(m)

Описания:

Полные эллиптические интегралы первого и второго рода определяются следующим образом [1, 2]:

K(m) =   image614.gif (434 bytes);

E(m) =   image615.gif (431 bytes).

Ограничения:

Входной параметр m должен принадлежать диапазону 0 <= m <= 1.

Сопутствующие функции: ELLIPJ.

Ccылки:

  1. Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

 

Наверх

ERF, ERFCORE, ERFC, ERFCX, ERFINV - функции ошибок

Синтаксис:

y = erf(x)
  y = erfc(x)
  y = erfcx(x)
  x = erfinv(y)

Описание:

Функция ошибки erf(x) определяется следующим образом [2]:

 erf(x) = image616.gif (354 bytes) .

Функция y = erfc(x) задается соотношением

 erfc(x) = image617.gif (352 bytes) = 1 - erf(x).

Функция y = erfcx(x) определяется так:

 erfcx(x) = image618.gif (193 bytes)erfc(x).

Для вычисления этих функций используется вспомогательная функция erfcore(x, n). При этом справедливо

 erf(x) = erfcore(x, 0);
 erfc(x) = erfcore(x, 1);
 erfcx(x) = erfcore(x, 2).

Обратная функция ошибки x = erfinv(y) имеет область определения -1< y <1 и область значений -Inf < x < Inf, причем erfinv(-1) = -Inf, erfinv(1) = Inf, а для значений abs(y) 1 erfinv(y) = NaN.

Алгоритм:

Алгоритм основан на работе [1] и представляет собой переработанную с языка FORTRAN программу из раздела NETLIB/SPECFUN, написанную W. J. Cody (Argonne National Laboratory, March 19, 1990).

Ccылки:

  1. Cody W. J. Rational Chebyshev approximations for the error function//Math. Comp., 1969. P. 631-638.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

 

Наверх

GAMMA, GAMMAINC, GAMMALN - гамма-функции

Синтаксис:

y = gamma(a)
y = gammainc(x, a)
y = gammaln(a)

Описание:

Гамма-функция gamma(a) определяется следующим образом [2]:

gamma(a) = G(a) = image619.gif (330 bytes).

Неполная гамма-функция gammainc(x, a) задается соотношением

gammainc(x, a) = P(x, a) =   image620.gif (392 bytes).

Логарифмическая гамма-функция определяется так:

gammaln(a) = ln G(a).

Алгоритм:

Алгоритм основан на работе [1] и представляет собой переработанную с языка FORTRAN программу из раздела NETLIB/SPECFUN, написанную W. J. Cody (Argonne National Laboratory, October 12, 1989).

Сопутствующие функции: ERF, ERFCORE, ERFC, ERFCX, ERFINV.

Ccылки:

  1. Cody W. J. An Overview of Software Development for Special Functions//Lecture Notes in Mathematics. Berlin, 1976. Vol. 506.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

 

  sin(z) = - i sh(iz).

Теги

    06.05.2019

    Комментарии