17.6 Специальные функции ¶
-
:
a =airy(z)¶ -
:
a =airy(k, z)¶ -
:
a =airy(k, z, scale)¶ -
:
[a, ierr] =airy(…)¶ -
Вычисление функций Эйри первого и второго рода, и их производных.
K Function Scale factor (if scale is true) --- -------- --------------------------------------- 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).Необязательный третий параметр scale определяет, применять ли масштабирование, как описано выше. По умолчанию он равен false.
Результат a имеет тот же размер, что и z.
Необязательный выходной параметр ierr содержит следующую информацию о статусе и имеет тот же размер, что и результат.
- Нормальное завершение.
- Ошибка ввода, возвращает
NaN. - Переполнение, возвращает
Inf. - Потеря значимости при уменьшении аргумента, приводит к менее чем половинной точности машины.
- Потеря значимости при уменьшении аргумента, результат может быть неточным.
- Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращает
NaN.
-
:
J =besselj(alpha, x)¶ -
:
J =besselj(alpha, x, opt)¶ -
:
[J, ierr] =besselj(…)¶ -
Вычисление функций Бесселя первого рода.
Порядок функции Бесселя alpha должен быть вещественным. Точки для вычисления x могут быть комплексными.
Если необязательный аргумент opt равен 1 или true, результат 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 или true, результат 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 или true, результат 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 или true, результат 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 или true, результат умножается на
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.
-
:
y =beta(a, b)¶ -
Вычисление функции Бета для вещественных входных данных a и b.
Определение функции Бета:
beta (a, b) = gamma (a) * gamma (b) / gamma (a + b).
Функция Бета может принимать довольно большие значения, и часто полезнее работать с логарифмом результата, чем с самой функцией. См.
betaln, для вычисления логарифма функции Бета эффективным способом.См. также: betaln, betainc, betaincinv.
-
:
I =betainc(x, a, b)¶ -
:
I =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"мало.Ссылка: A. Cuyt, V. Brevik Petersen, B. Verdonk, H. Waadeland, W.B. Jones, Справочник по непрерывным дробям для специальных функций, гл. 18.
См. также: beta, betaincinv, betaln.
-
:
x =betaincinv(y, a, b)¶ -
:
x =betaincinv(y, a, b, "lower")¶ -
:
x =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
-
:
lnb =betaln(a, b)¶ -
Вычисление натурального логарифма функции Бета для вещественных входных данных a и b.
betalnопределяется какbetaln (a, b) = log (beta (a, b))
и вычисляется таким образом, чтобы уменьшить вероятность возникновения подпотока.
Функция Бета может принимать довольно большие значения, и часто полезнее работать с логарифмом результата, чем с самой функцией.
См. также: beta, betainc, betaincinv, gammaln.
-
:
b =bincoeff(n, k)¶ -
Возвращает биномиальный коэффициент от n и k.
Биномиальный коэффициент определяется как
/ \ | n | n (n-1) (n-2) ... (n-k+1) | | = ------------------------- | k | k! \ /
Например:
bincoeff (5, 2) ⇒ 10
В большинстве случаев функция
nchoosekбыстрее для небольших скалярных целочисленных аргументов. Она также предупреждает о потере точности для больших аргументов.См. также: nchoosek.
-
:
k =commutation_matrix(m, n)¶ -
Возвращает матрицу коммутации K(m,n), которая является единственной матрицей m*n на m*n, такой что K(m,n) * vec(A) = vec(A') для всех матриц A размера m на n.
Если задан только один аргумент m, возвращается K(m,m).
См. Магнус и Нейдекер (1988), Матричный дифференциальный исчисление с приложениями в статистике и эконометрике.
-
:
y =cosint(x)¶ -
Вычисляет функцию косинусного интеграла:
+oo / Ci (x) = - | (cos (t)) / t dt / xЭквивалентное определение:
x / | cos (t) - 1 Ci (x) = gamma + log (x) + | ------------- dt | t / 0Ссылка:
М. Абрамовиц и И.А. Стегун, Справочник по математическим функциям, 1964.
-
:
d =duplication_matrix(n)¶ -
Возвращает матрицу удвоения Dn, которая является единственной матрицей размера N^2 на N*(N+1)/2, такой что
Dn * vech (A) = vec (A)для всех симметричных матриц N на N A.См. Магнус и Нейдекер (1988), Матричный дифференциальный исчисление с приложениями в статистике и эконометрике.
-
:
v =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.
-
:
v =erf(z)¶ -
Вычисляет функцию ошибки.
Функция ошибки определяется как
z 2 / erf (z) = --------- * | e^(-t^2) dt sqrt (pi) / t=0
-
:
v =erfc(z)¶ -
Вычисляет дополнительную функцию ошибки.
Дополнительная функция ошибки определяется как
1 - erf (z).
-
:
v =erfcx(z)¶ -
Вычисляет масштабированную дополнительную функцию ошибки.
Масштабированная дополнительная функция ошибки определяется как
exp (z^2) * erfc (z)
-
:
v =erfi(z)¶ -
Вычисляет мнимую функцию ошибки.
Мнимая функция ошибки определяется как
-i * erf (i*z)
-
:
y =erfcinv(x)¶ -
Вычислить обратную дополнительную функцию ошибок.
Обратная дополнительная функция ошибок определяется так, что
erfc (y) == x
-
:
y =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.Ссылки:
M. Abramowitz и I.A. Stegun, Handbook of Mathematical Functions, 1964.
N. Bleistein и R.A. Handelsman, Asymptotic expansions of integrals, 1986.
-
:
v =gamma(z)¶ -
Вычислить гамма-функцию.
Гамма-функция определяется как
infinity / gamma (z) = | t^(z-1) exp (-t) dt. / t=0Заметка о программировании: гамма-функция может принимать довольно большие значения даже для небольших входных значений. Во многих случаях для минимизации потери точности в расчетах предпочтительнее использовать натуральный логарифм гамма-функции (
gammaln). Конечный результат тогдаexp (result_using_gammaln).
-
:
y =gammainc(x, a)¶ -
:
y =gammainc(x, a, tail)¶ -
Вычислить нормированную неполную гамма-функцию.
Она определяется как
x 1 / gammainc (x, a) = --------- | exp (-t) t^(a-1) dt gamma (a) / t=0с предельным значением 1, когда x стремится к бесконечности. Стандартное обозначение - P(a,x), например, Abramowitz и Stegun (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", то верхняя неполная гамма-функция умножается на ту же величину.Ссылки:
M. Abramowitz и I.A. Stegun, Handbook of mathematical functions, Dover publications, Inc., 1972.
W. Gautschi, A computational procedure for incomplete gamma functions, ACM Trans. Math Software, pp. 466–481, Vol 5, No. 4, 2012.
W. H. Press, S. A. Teukolsky, W. T. Vetterling и B. P. Flannery, Numerical Recipes in Fortran 77, ch. 6.2, Vol 1, 1992.
См. также: gamma, gammaincinv, gammaln.
-
:
x =gammaincinv(y, a)¶ -
:
x =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
Ссылка: A. Gil, J. Segura и N. M. Temme, Efficient and accurate algorithms for the computation and inversion of the incomplete gamma function ratios, SIAM J. Sci. Computing, pp. A2965–A2981, Vol 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)!
-
:
y =psi(z)¶ -
:
y =psi(k, z)¶ -
Вычислить функцию psi (полигамма).
Функции полигаммы являются k-й производной логарифма гамма-функции. Если не указано иначе, k по умолчанию равно нулю. Значение нуля вычисляет функцию дигамма, значение 1 – тригамма и так далее.
Функция дигамма определяется следующим образом:
psi (z) = d (log (gamma (z))) / dx
При вычислении функции дигамма (когда k равно нулю), z может принимать любое вещественное или комплексное значение. Однако для полигамма-функций (k больше 0) z должно быть вещественным и неотрицательным.
© 1996–2023 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/v9.2.0/Special-Functions.html