17.6 Специальные функции
- : [a, ierr] = airy (k, z, opt)
-
Вычислить функции Эйри первого и второго рода, а также их производные.
K Function Scale factor (if "opt" is supplied) --- -------- --------------------------------------- 0 Ai (Z) exp ((2/3) * Z * sqrt (Z)) 1 dAi(Z)/dZ exp ((2/3) * Z * sqrt (Z)) 2 Bi (Z) exp (-abs (real ((2/3) * Z * sqrt (Z)))) 3 dBi(Z)/dZ exp (-abs (real ((2/3) * Z * sqrt (Z))))
Вызов функции
airy (z)эквивалентен вызовуairy (0, z).Результат имеет тот же размер, что и z.
Если запрошено, ierr содержит следующую информацию о статусе и имеет тот же размер, что и результат.
- Нормальное возвращение.
- Ошибка входных данных, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости из-за сокращения аргументов приводит к меньшему, чем половина машинной точности.
- Потеря значимости из-за сокращения аргументов, вывод может быть неточным.
- Ошибка — вычисление не выполняется, условие завершения алгоритма не выполнено, возвращает
NaN.
- : J = besselj (alpha, x)
- : J = besselj (alpha, x, opt)
- : [J, ierr] = besselj (…)
-
Вычислить функции Бесселя первого рода.
Порядок функции Бесселя alpha должен быть вещественным. Точки вычисления x могут быть комплексными.
Если необязательный аргумент opt равен 1 или истине, результат J умножается на
exp (-abs (imag (x))).Если alpha является скаляром, результат имеет тот же размер, что и x. Если x является скаляром, результат имеет тот же размер, что и alpha. Если alpha является строкой-вектором, а x — столбцом-вектором, результат — матрица с
length (x)строками иlength (alpha)столбцами. В противном случае alpha и x должны быть совместимы, и результат будет иметь тот же размер.Если запрошено, ierr содержит следующую информацию о статусе и имеет тот же размер, что и результат.
- Нормальное возвращение.
- Ошибка входных данных, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости из-за сокращения аргументов приводит к меньшему, чем половина машинной точности.
- Потеря значимости из-за сокращения аргументов, вывод может быть неточным.
- Ошибка — вычисление не выполняется, условие завершения алгоритма не выполнено, возвращает
NaN.
- : Y = bessely (alpha, x)
- : Y = bessely (alpha, x, opt)
- : [Y, ierr] = bessely (…)
-
Вычислить функции Бесселя второго рода.
Порядок функции Бесселя alpha должен быть вещественным. Точки вычисления x могут быть комплексными.
Если необязательный аргумент opt равен 1 или истине, результат Y умножается на
exp (-abs (imag (x))).Если alpha является скаляром, результат имеет тот же размер, что и x. Если x является скаляром, результат имеет тот же размер, что и alpha. Если alpha является строкой-вектором, а x — столбцом-вектором, результат — матрица с
length (x)строками иlength (alpha)столбцами. В противном случае alpha и x должны быть совместимы, и результат будет иметь тот же размер.Если запрошено, ierr содержит следующую информацию о статусе и имеет тот же размер, что и результат.
- Нормальное возвращение.
- Ошибка входных данных, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости из-за сокращения аргументов приводит к меньшему, чем половина машинной точности.
- Полная потеря значимости из-за сокращения аргументов, возвращает
NaN. - Ошибка — вычисление не выполняется, условие завершения алгоритма не выполнено, возвращает
NaN.
- : I = besseli (alpha, x)
- : I = besseli (alpha, x, opt)
- : [I, ierr] = besseli (…)
-
Вычислить модифицированные функции Бесселя первого рода.
Порядок функции Бесселя alpha должен быть вещественным. Точки вычисления x могут быть комплексными.
Если необязательный аргумент opt равен 1 или истине, результат I умножается на
exp (-abs (real (x))).Если alpha является скаляром, результат имеет тот же размер, что и x. Если x является скаляром, результат имеет тот же размер, что и alpha. Если alpha — строка-вектор, а x — столбец-вектор, результат — матрица с
length (x)строками иlength (alpha)столбцами. В противном случае alpha и x должны быть согласованы, и результат будет того же размера.Если запрошено, ierr содержит следующую информацию об ошибках и имеет тот же размер, что и результат.
- Нормальный возврат.
- Ошибка ввода, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости при сокращении аргумента приводит к менее чем половине точности машины.
- Полная потеря значимости при сокращении аргумента, возвращает
NaN. - Ошибка — вычисление не выполняется, условие остановки алгоритма не выполняется, возвращает
NaN.
- : K = besselk (alpha, x)
- : K = besselk (alpha, x, opt)
- : [K, ierr] = besselk (…)
-
Вычислить модифицированные функции Бесселя второго рода.
Порядок функции Бесселя alpha должен быть вещественным. Точки вычисления x могут быть комплексными.
Если необязательный аргумент opt равен 1 или истине, результат K умножается на
exp (x).Если alpha является скаляром, результат имеет тот же размер, что и x. Если x является скаляром, результат имеет тот же размер, что и alpha. Если alpha — строка-вектор, а x — столбец-вектор, результат — матрица с
length (x)строками иlength (alpha)столбцами. В противном случае alpha и x должны быть согласованы, и результат будет того же размера.Если запрошено, ierr содержит следующую информацию об ошибках и имеет тот же размер, что и результат.
- Нормальный возврат.
- Ошибка ввода, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости при сокращении аргумента приводит к менее чем половине точности машины.
- Полная потеря значимости при сокращении аргумента, возвращает
NaN. - Ошибка — вычисление не выполняется, условие остановки алгоритма не выполняется, возвращает
NaN.
- : H = besselh (alpha, x)
- : H = besselh (alpha, k, x)
- : H = besselh (alpha, k, x, opt)
- : [H, ierr] = besselh (…)
-
Вычислить функции Бесселя третьего рода (функции Ханкеля).
Порядок функции Бесселя alpha должен быть вещественным. Тип функции Ханкеля задается k и может быть либо первого (k = 1), либо второго (k = 2) рода. По умолчанию — функции Ханкеля первого рода. Точки вычисления x могут быть комплексными.
Если необязательный аргумент opt равен 1 или истине, результат умножается на
exp (-I*x)для k = 1 илиexp (I*x)для k = 2.Если alpha является скаляром, результат имеет тот же размер, что и x. Если x является скаляром, результат имеет тот же размер, что и alpha. Если alpha — строка-вектор, а x — столбец-вектор, результат — матрица с
length (x)строками иlength (alpha)столбцами. В противном случае alpha и x должны быть согласованы, и результат будет того же размера.Если запрошено, ierr содержит следующую информацию об ошибках и имеет тот же размер, что и результат.
- Нормальный возврат.
- Ошибка ввода, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости при сокращении аргумента приводит к менее чем половине точности машины.
- Полная потеря значимости при сокращении аргумента, возвращает
NaN. - Ошибка — вычисление не выполняется, условие остановки алгоритма не выполняется, возвращает
NaN.
- : beta (a, b)
-
Вычислить функцию Бета для вещественных входных данных a и b.
Определение функции Бета:
beta (a, b) = gamma (a) * gamma (b) / gamma (a + b).
Функция Бета может принимать довольно большие значения, и часто полезнее работать с логарифмом результата, чем с функцией непосредственно. См. betaln для эффективного вычисления логарифма функции Бета.
См. также: betaln, betainc, betaincinv.
- : betainc (x, a, b)
- : betainc (x, a, b, tail)
-
Вычислить неполную бета-функцию.
Она определяется как
x / 1 | I_x (a, b) = ---------- | t^(a-1) (1-t)^(b-1) dt beta (a,b) | / 0с вещественным x в диапазоне [0,1]. Входные значения a и b должны быть вещественными и строго положительными (> 0). Если одно из входных значений не является скаляром, то другие входные значения должны быть скалярами или иметь совместимые размерности.
По умолчанию, tail равно
"lower"и вычисляется неполная бета-функция, интегрированная от 0 до x. Если tail равно"upper", то вычисляется дополнительная функция, интегрированная от x до 1. Эти два варианта связаны следующим образом:betainc (x, a, b,
"upper") = 1 - betainc (x, a, b,"lower").betaincиспользует более сложный алгоритм, чем вычитание, для получения численно точных результатов, когда"lower"значение мало.Ссылка: А. Куйт, В. Бревик Петерсен, Б. Вердонк, Х. Вадельланд, У.Б. Джонс, Справочник по непрерывным дробям для специальных функций, гл. 18.
См. также: beta, betaincinv, betaln.
- : betaincinv (y, a, b)
- : betaincinv (y, a, b, "lower")
- : betaincinv (y, a, b, "upper")
-
Вычислить обратную величину нормированной неполной бета-функции.
Нормированная неполная бета-функция определяется как
x / 1 | I_x (a, b) = ---------- | t^(a-1) (1-t)^(b-1) dt beta (a,b) | / 0Если два входных значения являются скалярами, то
betaincinv (y, a, b)возвращается для каждого из других входных значений.Если два или более входных значения не являются скалярами, их размеры должны совпадать, и
betaincinvприменяется поэлементно.Переменная y должна находиться в интервале [0,1], а a и b должны быть вещественными и строго положительными.
По умолчанию, tail равно
"lower"и вычисляется обратная неполная бета-функция, интегрированная от 0 до x. Если tail равно"upper", то вычисляется обратная дополнительная функция, интегрированная от x до 1.Функция вычисляется стандартным методом Ньютона, путем решения
y - betainc (x, a, b) = 0
- : betaln (a, b)
-
Вычислить натуральный логарифм бета-функции для вещественных входных значений a и b.
betalnопределяется какbetaln (a, b) = log (beta (a, b))
и вычисляется таким образом, чтобы уменьшить вероятность возникновения подпотока.
Бета-функция может принимать довольно большие значения, и часто полезнее работать с логарифмом результата, чем с самой функцией напрямую.
См. также: beta, betainc, betaincinv, gammaln.
- : bincoeff (n, k)
-
Возвратить биномиальный коэффициент от n и k.
Биномиальный коэффициент определяется как
/ \ | n | n (n-1) (n-2) … (n-k+1) | | = ------------------------- | k | k! \ /
Например:
bincoeff (5, 2) ⇒ 10
В большинстве случаев функция
nchoosekбыстрее для небольших скалярных целочисленных аргументов. Она также предупреждает о потере точности для больших аргументов.См. также: nchoosek.
- : commutation_matrix (m, n)
-
Возвращает матрицу коммутации K(m,n), которая является уникальной матрицей m*n на m*n такой, что K(m,n) * vec(A) = vec(A') для всех матриц m на n A.
Если задан только один аргумент m, возвращается K(m,m).
См. Магнус и Нейдекер (1988), Матричный дифференциальный исчисление с приложениями в статистике и эконометрике.
- : cosint (x)
-
Вычислить функцию косинусного интеграла:
+oo / Ci (x) = - | (cos (t)) / t dt / xЭквивалентное определение:
x / | cos (t) - 1 Ci (x) = gamma + log (x) + | ------------- dt | t / 0Ссылка:
М. Абрамовиц и И.А. Стегун, Справочник по математическим функциям, 1964.
- : duplication_matrix (n)
-
Возвращает матрицу дублирования Dn, которая является уникальной матрицей n^2 на n*(n+1)/2 такой, что Dn vech (A) = vec (A) для всех симметричных матриц n на n A.
См. Магнус и Нейдекер (1988), Матричный дифференциальный исчисление с приложениями в статистике и эконометрике.
- : dawson (z)
-
Вычислить функцию Доусона (масштабированная мнимая ошибка).
Функция Доусона определяется как
(sqrt (pi) / 2) * exp (-z^2) * erfi (z)
- : [sn, cn, dn, err] = ellipj (u, m)
- : [sn, cn, dn, err] = ellipj (u, m, tol)
-
Вычислить эллиптические функции Якоби sn, cn и dn для комплексного аргумента u и вещественного параметра m.
Если m является скаляром, результаты имеют тот же размер, что и u. Если u является скаляром, результаты имеют тот же размер, что и m. Если u является столбцом и m — строкой, результаты — матрицы с
length (u)строками иlength (m)столбцами. В противном случае u и m должны быть согласованы по размеру, и результаты будут иметь тот же размер, что и входные данные.Значение u может быть комплексным. Значение m должно быть 0 ≤ m ≤ 1.
Необязательный параметр tol в настоящее время игнорируется (MATLAB использует его для более быстрого, но менее точного приближения).
Если запрошено, err содержит следующую информацию о состоянии и имеет тот же размер, что и результат.
- Нормальное возвращение.
- Ошибка—вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается
NaN.
Ссылка: Милтон Абрамовиц и Ирен А. Стегун, Справочник по математическим функциям, глава 16 (разделы 16.4, 16.13 и 16.15), Dover, 1965.
См. также: ellipke.
- : k = ellipke (m)
- : k = ellipke (m, tol)
- : [k, e] = ellipke (…)
-
Вычислить полные эллиптические интегралы первого K(m) и второго E(m) рода.
m должен быть скаляром или вещественным массивом с -Inf ≤ m ≤ 1.
Необязательный параметр tol контролирует точность остановки алгоритма и по умолчанию равен
eps (class (m)). Точность может быть увеличена для вычисления более быстрого, но менее точного приближения.При вызове с одним выходным параметром возвращаются эллиптические интегралы первого рода.
Математическое примечание:
Эллиптические интегралы первого рода определяются как
1 / dt K (m) = | ------------------------------ / sqrt ((1 - t^2)*(1 - m*t^2)) 0Эллиптические интегралы второго рода определяются как
1 / sqrt (1 - m*t^2) E (m) = | ------------------ dt / sqrt (1 - t^2) 0Ссылка: Милтон Абрамовиц и Ирен А. Стегун, Справочник по математическим функциям, глава 17, Dover, 1965.
См. также: ellipj.
- : erf (z)
-
Вычислить функцию ошибки.
Функция ошибки определяется как
z 2 / erf (z) = --------- * | e^(-t^2) dt sqrt (pi) / t=0
- : erfc (z)
-
Вычислить дополнительную функцию ошибки.
Дополнительная функция ошибки определяется как
1 - erf (z).
- : erfcx (z)
-
Вычислить масштабированную дополнительную функцию ошибки.
Масштабированная дополнительная функция ошибки определяется как
exp (z^2) * erfc (z)
- : erfi (z)
-
Вычислить мнимую функцию ошибки.
Мнимая функция ошибки определяется как
-i * erf (i*z)
- : erfinv (x)
-
Вычислить обратную функцию ошибки.
Обратная функция ошибки определяется так, что
erf (y) == x
- : erfcinv (x)
-
Вычислить обратную дополнительную функцию ошибки.
Обратная дополнительная функция ошибки определяется так, что
erfc (y) == x
- : expint (x)
-
Вычислить интеграл от показательной функции.
Экспоненциальный интеграл определяется как:
+oo / | exp (-t) E_1 (x) = | -------- dt | t / xПримечание: Для совместимости эта функция использует определение экспоненциального интеграла из MATLAB. В большинстве других источников это значение обозначается как E_1 (x), а сам экспоненциальный интеграл как
+oo / | exp (-t) Ei (x) = - | -------- dt | t / -xДва определения связаны для положительных действительных значений x посредством
E_1 (-x) = -Ei (x) - i*pi.Ссылки:
М. Абрамович и И.А. Стегун, Справочник по математическим функциям, 1964.
Н. Блейстейн и Р.А. Хандельсман, Асимптотические разложения интегралов, 1986.
- : gamma (z)
-
Вычислить гамма-функцию.
Гамма-функция определяется как
infinity / gamma (z) = | t^(z-1) exp (-t) dt. / t=0Примечание по программированию: гамма-функция может принимать очень большие значения даже для небольших входных данных. Во многих случаях предпочтительнее использовать натуральный логарифм гамма-функции (
gammaln) в расчётах, чтобы минимизировать потерю точности. Конечный результат тогдаexp (result_using_gammaln).
- : gammainc (x, a)
- : gammainc (x, a, tail)
-
Вычислить нормированную неполную гамма-функцию.
Она определяется как
x 1 / gammainc (x, a) = --------- | exp (-t) t^(a-1) dt gamma (a) / t=0с предельным значением 1 при x, стремящемся к бесконечности. Стандартная запись — P(a,x), например, в Абрамовиче и Стегуне (6.5.1).
Если a — скаляр, то
gammainc (x, a)возвращается для каждого элемента x, и наоборот.Если ни x, ни a не являются скалярами, то размеры x и a должны совпадать, и
gammaincприменяется поэлементно. Элементы a должны быть неотрицательными.По умолчанию tail —
"lower"и вычисляется неполная гамма-функция, интегрированная от 0 до x. Если tail —"upper", вычисляется дополнительная функция, интегрированная от x до бесконечности.Если tail —
"scaledlower", то нижняя неполная гамма-функция умножается на gamma(a+1)*exp(x)/(x^a). Если tail —"scaledupper", то верхняя неполная гамма-функция умножается на то же значение.Ссылки:
М. Абрамович и И.А. Стегун, Справочник по математическим функциям, Издательство «Дайвер», 1972.
В. Гауччи, Вычислительная процедура для неполных гамма-функций, ACM Trans. Math Software, стр. 466–481, т. 5, № 4, 2012.
У. Пресс, С. А. Теукольский, У. Т. Ветерлинг и Б. П. Фланнери, Числовые рецепты на Fortran 77, гл. 6.2, т. 1, 1992.
См. также: gamma, gammaincinv, gammaln.
- : gammaincinv (y, a)
- : gammaincinv (y, a, tail)
-
Вычислить обратную величину нормированной неполной гамма-функции.
Нормированная неполная гамма-функция определяется как
x 1 / gammainc (x, a) = --------- | exp (-t) t^(a-1) dt gamma (a) / t=0и
gammaincinv (gammainc (x, a), a) = xдля каждого неотрицательного значения x. Если a — скаляр, тоgammaincinv (y, a)возвращается для каждого элемента y, и наоборот.Если ни y, ни a не являются скалярами, то размеры y и a должны совпадать, и
gammaincinvприменяется поэлементно. Переменная y должна находиться в интервале [0,1], а a — быть вещественным и положительным.По умолчанию tail —
"lower"и вычисляется обратная величина неполной гамма-функции, интегрированной от 0 до x. Если tail —"upper", инвертируется дополнительная функция, интегрированная от x до бесконечности.Функция вычисляется методом Ньютона путём решения
y - gammainc (x, a) = 0
Ссылка: А. Гиль, Дж. Сегура и Н.М. Теме, Эффективные и точные алгоритмы для вычисления и обращения неполных отношений гамма-функции, SIAM J. Sci. Computing, стр. A2965–A2981, т. 34, 2012.
- : l = legendre (n, x)
- : l = legendre (n, x, normalization)
-
Вычислить ассоциированную функцию Лежандра степени n и порядка m = 0 … n.
Значение n должно быть действительным неотрицательным целым числом.
x — вектор с действительными элементами в диапазоне [-1, 1].
Необязательный аргумент normalization может быть одним из
"unnorm","sch", или"norm". По умолчанию, если нормализация не указана, она равна"unnorm".Когда необязательный аргумент normalization —
"unnorm", вычисляется ассоциированная функция Лежандра степени n и порядка m и возвращаются все значения для m = 0 … n. Результат имеет на одну размерность больше, чем x.Ассоциированная функция Лежандра степени n и порядка m:
m m 2 m/2 d^m P(x) = (-1) * (1-x ) * ---- P(x) n dx^m n
с полиномом Лежандра степени n:
1 d^n 2 n P(x) = ------ [----(x - 1) ] n 2^n n! dx^n
legendre (3, [-1.0, -0.9, -0.8])возвращает матрицу:x | -1.0 | -0.9 | -0.8 ------------------------------------ m=0 | -1.00000 | -0.47250 | -0.08000 m=1 | 0.00000 | -1.99420 | -1.98000 m=2 | 0.00000 | -2.56500 | -4.32000 m=3 | 0.00000 | -1.24229 | -3.24000
Когда необязательный аргумент normalization —
"sch", вычисляется полунормализованная функция Лежандра по Шмидту. Полунормализованная функция Лежандра по Шмидту связана с ненормализованными функциями Лежандра следующим образом:Для функций Лежандра степени n и порядка 0:
0 0 SP(x) = P(x) n n
Для функций Лежандра степени n и порядка m:
m m m 2(n-m)! 0.5 SP(x) = P(x) * (-1) * [-------] n n (n+m)!
Когда необязательный аргумент normalization —
"norm", вычисляется полностью нормализованная функция Лежандра. Полностью нормализованная функция Лежандра связана с ненормализованными ассоциированными функциями Лежандра следующим образом:Для функций Лежандра степени n и порядка m:
m m m (n+0.5)(n-m)! 0.5 NP(x) = P(x) * (-1) * [-------------] n n (n+m)!
- : gammaln (x)
- : lgamma (x)
-
Возвратить натуральный логарифм гамма-функции от x.
- : psi (z)
- : psi (k, z)
-
Вычислить функцию пси (полигамму).
Полигамма-функции — это k-е производные логарифма гамма-функции. Если не указано, k по умолчанию равно нулю. Значение ноль вычисляет дигамму-функцию, значение 1 — тригамму-функцию и так далее.
Дигамма-функция определяется как:
psi (z) = d (log (gamma (z))) / dx
При вычислении дигамма-функции (когда k равно нулю), z может принимать любые действительные или комплексные значения. Однако для полигамма-функций (k больше нуля) z должно быть действительным и неотрицательным.
- : sinint (x)
-
Вычислить функцию синусного интеграла:
x / Si (x) = | sin (t) / t dt / 0Ссылка: М. Абрамович и И.А. Стегун, Справочник по математическим функциям, 1964.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v6.4.0/Special-Functions.html