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 или 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.
- 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 / | I_x (a, b) = | t^(a-1) (1-t)^(b-1) dt | / 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.
- betaincinv (y, a, b)
- betaincinv (y, a, b, "lower")
- betaincinv (y, a, b, "upper")
-
Вычислить обратную функцию нормированной неполной бета-функции.
Нормированная неполная бета-функция определяется как
x / | I_x (a, b) = | t^(a-1) (1-t)^(b-1) dt | / 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') для всех матриц A размера m на n.
Если задан только один аргумент m, возвращается K(m,m).
См. Magnus и Neudecker (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) для всех симметричных матриц A размера n на n.
См. Magnus и Neudecker (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 должен быть скаляром или массивом действительных чисел с -∞ ≤ 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 больше 0) 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/v5.2.0/Special-Functions.html