Справочник по MATLAB - Математические функции (В.Г.Потемкин)
Информация в данной статье относится к релизам программы MATLAB ранее 2016 года, и поэтому может содержать устаревшую информацию в связи с изменением функционала инструментов. С более актуальной информацией вы можете ознакомиться в разделе документация MATLAB на русском языке.
В системе MATLAB имеется обширная библиотека математических функций. Каждой функции соответствует определенное имя. Функция ставит в соответствие значениям своих аргументов значение результата.
Аргументы функции всегда указываются в круглых скобках после имени функции и, если их больше одного, разделяются запятыми. В качестве аргументов могут использоваться другие функции и любые выражения языка MATLAB (при условии соответствия типов аргументов).
Элементарная математическая функция - это, как правило, функция от одной переменной, и в этом случае устанавливается соответствие между массивами значений аргумента и результата.
Аргумент указывается в круглых скобках после имени функции. Имя переменной, которой присваивается значение функции, располагается слева от знака равенства. Если имя присваиваемой переменной не указано, значение функции присваивается служебной переменной ans.
Тип результата вычисления математической функции всегда совпадает с типом ее аргумента. Например, если аргументом функции является вектор-столбец, то значением этой функции также будет вектор-столбец.
Рассмотрим встроенные математические функции системы MATLAB, которые применяются к числам, скалярным переменным и к массивам (поэлементно).
Базовые функции
Трансцендентные функции
Тригонометрические функции
Преобразования системы координат
Специальные функции
Базовые функции
ABS - абсолютное значение
Для массива действительных чисел 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
ANGLE - аргумент комплексного числа
Для массивов комплексных чисел Z функция P = abs(Z) возвращает массив значений аргументов для элементов Z. Значение аргумента измеряется в радианах и находится в пределах от - p до p .
Пример:
Для комплексного числа z = x + iy = re i j его модуль r и аргумент j вычисляются следующим образом:
r = abs(z)phi = angle(z),
выполняет обратное преобразование.
Для вычисления аргумента комплексного числа используется следующее соотношение:
angle(z) = atan2(imag(z), real(z))
REAL, IMAG - действительная и мнимая части комплексного числа
X = real(Z) Y = real(Z)
Для массивов комплексных чисел Z функция X = real(Z) возвращает массив действительных, а Y = real(Z) - мнимых частей элементов Z.
CONJ - операция комплексного сопряжения
Для массивов комплексных чисел Z функция V = conj(Z) возвращает массив комплексно-сопряженных значений для элементов Z.
SIGN - вычисление знака числа
Для массивов действительных чисел X функция S = sign(X) возвращает массив S тех же размеров, в котором на месте положительного числа стоит 1, на месте нулевого - 0, на месте отрицательного - (-1).
Для массивов комплексных чисел Z функция S = sign(Z) возвращает массив комплексных чисел S = Z ./abs(Z), модуль которых равен единице.
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 7REM - функция остатка
Для действительных чисел x и y функция rem(x, y) вычисляет остаток от деления x на y или, в других обозначениях, функцию x(mod y) = x - y*n, где n = fix(x/y) - ближайшее целое.
Для массивов чисел эта функция применяется поэлементно.
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.
Для массивов чисел эту функцию применять нельзя.
= 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
LCM - наименьшее общее кратное
Функция g = lcm(m, n) вычисляет наименьшее общее кратное двух целых чисел m и n.
Для массивов чисел эту функцию применять нельзя.
= b | a < 1 | b < 1 error(‘Входные аргументы должны быть целыми числами.') end c = a*b/gcd(a,b);
Пример:
g = lcm(45, 36) g = 180
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/113s = rats(pi, 26)s = 5419351/1725033
Трансцендентные функции
SQRT - квадратный корень
Функция V = sqrt(Z) вычисляет квадратные корни элементов массива Z. Для отрицательных и комплексных значений результат является комплексным числом.
Пример:
0+ 1.4142i 0+ 1.0000i 0 1.0000 1.4142 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) вычисляет экспоненты значений элементов массива Z. Для комплексных значений z = x + iy справедлива формула Эйлера
e z = e x (cos(y) + i sin(y)).
Вычисление экспоненты от матрицы реализовано с помощью специальной функции expm.
Сопутствующие функции: LOG, LOG2, LOG10, EXPM.
LOG - функция натурального логарифма
Функция 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 realminNEXTPOW2 - ближайшая степень по основанию 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.
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; нулевому элементу соответствует представление .
Примеры:
Для компьютеров с 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 -1021LOG10 - функции логарифма
Функция 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 - функции обратного синуса
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 + z 2 ) 1/2 ]; arcsin(z) = - i arsh(iz).
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).
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).
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 - функции обратного косинуса
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 + (z 2 - 1) 1/2 ]; arccos(z) = -i arch(z).
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).
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).
TAN, TANH - функции тангенса
V = tan(Z) V = tanh(Z)
Функция V = tan(Z) вычисляет тангенс от значений элементов массива Z.
Функция V = sinh(Z) вычисляет гиперболический тангенс от значений элементов массива Z.
Массив Z допускает комплексные значения; углы измеряются в радианах.
Для вычисления функции от матрицы следует применять специальную функцию 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.
Для вычисления функций обратного тангенса используются следующие соотношения:
arctg(z) = -i arth(iz);
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).
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).
Преобразования системы координат
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).
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).
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;
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).
Специальные функции
BESSEL - функции Бесселя
J = bessel(alpha, X)
Линейное дифференциальное уравнение вида
где a - неотрицательная величина, называется уравнением Бесселя, а его решения известны как функции Бесселя.
Для вычисления функций Бесселя разработан набор M-файлов, обеспечивающий высокую точность их вычисления для действительных значений аргумента:
- besselj(alpha, X) - функция Бесселя первого рода J a (x);
- bessely(alpha, X) - функция Бесселя второго рода Y a (x);
- besseli(alpha, X) - модифицированная функция Бесселя первого рода I a (x);
- besselk(alpha, X) - модифицированная функция Бесселя второго рода K a (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.
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 = betainc(p, q) определяется так [2]:
Для ее вычисления используется вспомогательная функция 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) следует проявлять осторожность.
- 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)
функция 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.
- 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]:
Ограничения:
Входной параметр m должен принадлежать диапазону 0 <= m <= 1.
- 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]:
Функция y = erfc(x) задается соотношением
erfc(x) = = 1 - erf(x).
Функция y = erfcx(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).
- 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]:
Неполная гамма-функция 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).