Справочник по MATLAB - Математические функции (В.Г.Потемкин)
Информация в данной статье относится к релизам программы MATLAB ранее 2016 года, и поэтому может содержать устаревшую информацию в связи с изменением функционала инструментов. С более актуальной информацией вы можете ознакомиться в разделе документация MATLAB на русском языке.
В системе MATLAB имеется обширная библиотека математических функций. Каждой функции соответствует определенное имя. Функция ставит в соответствие значениям своих аргументов значение результата.
Аргументы функции всегда указываются в круглых скобках после имени функции и, если их больше одного, разделяются запятыми. В качестве аргументов могут использоваться другие функции и любые выражения языка MATLAB (при условии соответствия типов аргументов).
Элементарная математическая функция - это, как правило, функция от одной переменной, и в этом случае устанавливается соответствие между массивами значений аргумента и результата.
Аргумент указывается в круглых скобках после имени функции. Имя переменной, которой присваивается значение функции, располагается слева от знака равенства. Если имя присваиваемой переменной не указано, значение функции присваивается служебной переменной ans.
Тип результата вычисления математической функции всегда совпадает с типом ее аргумента. Например, если аргументом функции является вектор-столбец, то значением этой функции также будет вектор-столбец.
Рассмотрим встроенные математические функции системы MATLAB, которые применяются к числам, скалярным переменным и к массивам (поэлементно).
Базовые функции
- ABS - абсолютное значение
- ANGLE - аргумент комплексного числа
- REAL, IMAG - действительная и мнимая части комплексного числа
- CONJ - операция комплексного сопряжения
- SIGN - вычисление знака числа
- CEIL, FIX, FLOOR, ROUND - функции округления
- REM - функция остатка
- GCD - наибольший общий делитель
- LCM - наименьшее общее кратное
- RAT, RATS - представление результата в виде рационального числа или цепной дроби
Трансцендентные функции
- SQRT - квадратный корень
- EXP - экспоненциальная функция
- LOG - функция натурального логарифма
- POW2 - экспонента по основанию 2
- NEXTPOW2 - ближайшая степень по основанию 2
- LOG2 - фунции логарифма
- LOG10 - функции логарифма
Тригонометрические функции
- SIN, SINH - функции синуса
- ASIN, ASINH - функции обратного синуса
- CSC, CSCH - функции косеканса
- ACSC, ACSCH - функции обратного косеканса
- COS, COSH - функции косинуса
- ACOS, ACOSH - функции обратного косинуса
- SEC, SECH - функции секанса
- ASEC, ASECH - функции обратного секанса
- TAN, TANH - функции тангенса
- ATAN, ATAN2, ATANH - функции обратного тангенса
- COT, COTH - функции котангенса
- ACOT, ACOTH - функции обратного котангенса
Преобразования системы координат
- CART2POL - преобразование декартовой системы координат в полярную и цилиндрическую
- CART2SPH - преобразование декартовой системы координат в сферическую
- POL2CART - преобразование полярной и цилиндрической систем координат в декартову
- SPH2CART - преобразование сферической системы координат в декартову
Специальные функции
- BESSEL - функции Бесселя
- BETA, BETACORE, BETAINC, BETALN - бета-функции
- ELLIPJ - эллиптические функции Якоби
- ELLIPKE - полные эллиптические интегралы
- ERF, ERFCORE, ERFC, ERFCX, ERFINV - функции ошибок
- GAMMA, GAMMAINC, GAMMALN - гамма-функции
Базовые функции
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) =;
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) = ;
th(z) = .
Сопутствующие функции: 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) = ;
arctg(z) = -i arth(iz);
Arctg(y, x) =
Сопутствующие функции: 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) = ;
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)
Описание:
Линейное дифференциальное уравнение вида
,
где 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.
|
|||||||||||||||
|
|
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) = = .
Неполная бета-функция B = betainc(p, q) определяется так [2]:
Ix(p, q) = .
Для ее вычисления используется вспомогательная функция 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ылки:
- Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.: Наука, 1968. 720 с.
ELLIPJ - эллиптические функции Якоби
Синтаксис:
[sn, cn, dn] = ellipj(m, phi)
Описание:
Введем интеграл
z = ;
функция 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ылки:
- Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.
ELLIPKE - полные эллиптические интегралы
Синтаксис:
K = ellipke(m)
[K, E] = ellipke(m)
Описания:
Полные эллиптические интегралы первого и второго рода определяются следующим образом [1, 2]:
K(m) = ;
E(m) = .
Ограничения:
Входной параметр m должен принадлежать диапазону 0 <= m <= 1.
Сопутствующие функции: ELLIPJ.
Ccылки:
- Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.
ERF, ERFCORE, ERFC, ERFCX, ERFINV - функции ошибок
Синтаксис:
y = erf(x)
y = erfc(x)
y = erfcx(x)
x = erfinv(y)
Описание:
Функция ошибки erf(x) определяется следующим образом [2]:
erf(x) = .
Функция y = erfc(x) задается соотношением
erfc(x) = = 1 - erf(x).
Функция y = erfcx(x) определяется так:
erfcx(x) = 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ылки:
- Cody W. J. Rational Chebyshev approximations for the error function//Math. Comp., 1969. P. 631-638.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.
GAMMA, GAMMAINC, GAMMALN - гамма-функции
Синтаксис:
y = gamma(a)
y = gammainc(x, a)
y = gammaln(a)
Описание:
Гамма-функция gamma(a) определяется следующим образом [2]:
gamma(a) = G(a) = .
Неполная гамма-функция gammainc(x, a) задается соотношением
gammainc(x, a) = P(x, a) = .
Логарифмическая гамма-функция определяется так:
gammaln(a) = ln G(a).
Алгоритм:
Алгоритм основан на работе [1] и представляет собой переработанную с языка FORTRAN программу из раздела NETLIB/SPECFUN, написанную W. J. Cody (Argonne National Laboratory, October 12, 1989).
Сопутствующие функции: ERF, ERFCORE, ERFC, ERFCX, ERFINV.
Ccылки:
- Cody W. J. An Overview of Software Development for Special Functions//Lecture Notes in Mathematics. Berlin, 1976. Vol. 506.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.
sin(z) = - i sh(iz).
Комментарии