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, Handbook of Continued Fractions for Special Functions, гл. 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).
См. Magnus и Neudecker (1988), Matrix Differential Calculus with Applications in Statistics and Econometrics.
-
:
y =cosint(x) -
Вычисляет интегральную косинус-функцию:
+oo / Ci (x) = - | (cos (t)) / t dt / xЭквивалентное определение:
x / | cos (t) - 1 Ci (x) = gamma + log (x) + | ------------- dt | t / 0Источник:
M. Abramowitz и I.A. Stegun, Handbook of Mathematical Functions, 1964.
-
:
d =duplication_matrix(n) -
Возвращает матрицу дублирования Dn — единственную матрицу размера N^2 на N*(N+1)/2, для которой
Dn * vech (A) = vec (A)выполняется для всех симметричных матриц A размера N на N.См. Magnus и Neudecker (1988), Matrix Differential Calculus with Applications in Statistics and Econometrics.
-
:
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.
Источник: Milton Abramowitz и Irene A Stegun, Handbook of Mathematical Functions, глава 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Источник: Milton Abramowitz и Irene A. Stegun, Handbook of Mathematical Functions, глава 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 =erfinv(x) -
Вычисляет обратную функцию ошибок.
Обратная функция ошибок определяется условием
erf (y) == x
-
:
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При стремлении x к бесконечности предельное значение равно 1. Стандартное обозначение — P(a,x), например, Abramowitz и Stegun (6.5.1).
Если a — скаляр, то для каждого элемента x возвращается
gammainc (x, a)и наоборот.Если ни 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, с. 466–481, т. 5, № 4, 2012.
W. H. Press, S. A. Teukolsky, W. T. Vetterling и B. P. Flannery, Numerical Recipes in Fortran 77, гл. 6.2, т. 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 — скаляр, то для каждого элемента y возвращаетсяgammaincinv (y, a)и наоборот.Если ни 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, с. 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)!
-
:
y =gammaln(x) -
:
y =lgamma(x) -
Возвращает натуральный логарифм гамма-функции от x.
Примечание по программированию:
lgammaявляется псевдонимомgammaln, и в Octave можно использовать любое из этих имен.
-
:
y =psi(z) -
:
y =psi(k, z) -
Вычисляет функцию psi (полигамма-функцию).
Полигамма-функции — это производные k-го порядка от логарифма гамма-функции. Если k не задано, по умолчанию оно равно нулю. При значении 0 вычисляется дигамма-функция, при значении 1 — тригамма-функция и так далее.
Дигамма-функция определяется следующим образом:
psi (z) = d (log (gamma (z))) / dx
При вычислении дигамма-функции (когда k равно нулю) z может быть любым действительным или комплексным значением. Однако для полигамма-функций (при k больше 0) z должно быть действительным и неотрицательным.
-
:
y =sinint(x) -
Вычисляет интегральный синус:
x / Si (x) = | sin (t) / t dt / 0Ссылка: M. Abramowitz и I.A. Stegun, Handbook of Mathematical Functions, 1964.
© 1996–2026 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.4.0/Special-Functions.html