Spec-Zone.ru › Octave 7

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 содержит следующую информацию о состоянии и имеет тот же размер, что и результат.

  1. Нормальное завершение.
  2. Ошибка ввода, возвращается NaN.
  3. Переполнение, возвращается Inf.
  4. Потеря значимости из-за уменьшения аргумента приводит к менее чем половине машинной точности.
  5. Потеря значимости из-за уменьшения аргумента, результат может быть неточным.
  6. Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается 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 содержит следующую информацию о состоянии и имеет тот же размер, что и результат.

  1. Нормальное завершение.
  2. Ошибка ввода, возвращается NaN.
  3. Переполнение, возвращается Inf.
  4. Потеря значимости из-за уменьшения аргумента приводит к менее чем половине машинной точности.
  5. Потеря значимости из-за уменьшения аргумента, результат может быть неточным.
  6. Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается NaN.

См. также: bessely, besseli, besselk, besselh.

: 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 содержит следующую информацию о состоянии и имеет тот же размер, что и результат.

  1. Нормальное завершение.
  2. Ошибка ввода, возвращается NaN.
  3. Переполнение, возвращается Inf.
  4. Потеря значимости из-за уменьшения аргумента приводит к менее чем половине машинной точности.
  5. Полная потеря значимости из-за уменьшения аргумента, возвращается NaN.
  6. Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается NaN.

См. также: besselj, besseli, besselk, besselh.

: 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 содержит следующую информацию о состоянии и имеет тот же размер, что и результат.

  1. Нормальное завершение.
  2. Ошибка ввода, возвращается NaN.
  3. Переполнение, возвращается Inf.
  4. Потеря значимости из-за уменьшения аргумента приводит к менее чем половине машинной точности.
  5. Полная потеря значимости из-за уменьшения аргумента, возвращается NaN.
  6. Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается NaN.

См. также: besselk, besselj, bessely, besselh.

: 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 содержит следующую информацию о состоянии и имеет тот же размер, что и результат.

  1. Нормальное завершение.
  2. Ошибка ввода, возвращается NaN.
  3. Переполнение, возвращается Inf.
  4. Потеря значимости из-за уменьшения аргумента приводит к менее чем половине машинной точности.
  5. Полная потеря значимости из-за уменьшения аргумента, возвращается NaN.
  6. Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается NaN.

См. также: besseli, besselj, bessely, besselh.

: 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 содержит следующую информацию об ошибках и имеет тот же размер, что и результат.

  1. Нормальное завершение.
  2. Ошибка входных данных, возвращает NaN.
  3. Переполнение, возвращает Inf.
  4. Потеря значимости при уменьшении аргумента приводит к меньше чем половине точности машины.
  5. Полная потеря значимости при уменьшении аргумента, возвращает NaN.
  6. Ошибка — вычисление не выполнено, условие прекращения алгоритма не выполнено, возвращает NaN.

См. также: besselj, bessely, besseli, besselk.

: 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" мало.

Ссылка: 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
                         /
                 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

См. также: betainc, beta, betaln.

: 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

Ссылка:

M. Abramowitz и I.A. Stegun, Справочник по математическим функциям, 1964.

См. также: sinint, expint, cos.

: 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)

См. также: erfc, erf, erfcx, erfi, erfinv, erfcinv.

END_OF_DOCUMENT_MARKER
: [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 содержит следующую информацию о статусе и имеет тот же размер, что и результат.

  1. Нормальное возвращение.
  2. Ошибка — вычисление не выполнено, условие завершения алгоритма не выполнено, возвращается 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, erfcx, erfi, dawson, erfinv, erfcinv.

: erfc (z) ¶

Вычислить дополнительную функцию ошибки.

Дополнительная функция ошибки определяется как 1 - erf (z).

См. также: erfcinv, erfcx, erfi, dawson, erf, erfinv.

: erfcx (z) ¶

Вычислить масштабированную дополнительную функцию ошибки.

Масштабированная дополнительная функция ошибки определяется как

exp (z^2) * erfc (z)

См. также: erfc, erf, erfi, dawson, erfinv, erfcinv.

: erfi (z) ¶

Вычислить мнимую функцию ошибки.

Мнимая функция ошибки определяется как

-i * erf (i*z)

См. также: erfc, erf, erfcx, dawson, erfinv, erfcinv.

: erfinv (x) ¶

Вычислить обратную функцию ошибки.

Обратная функция ошибки определяется таким образом, что

erf (y) == x

См. также: erf, erfc, erfcx, erfi, dawson, erfcinv.

: erfcinv (x) ¶

Вычислить обратную дополнительную функцию ошибки.

Обратная дополнительная функция ошибки определяется таким образом, что

erfc (y) == x

См. также: erfc, erf, erfcx, erfi, dawson, erfinv.

: 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.

См. также: cosint, sinint, exp.

: gamma (z) ¶

Вычислить гамма-функцию.

Гамма-функция определяется как

infinity
            /
gamma (z) = | t^(z-1) exp (-t) dt.
            /
         t=0

Примечание по программированию: гамма-функция может принимать очень большие значения даже для малых входных данных. Во многих случаях предпочтительнее использовать натуральный логарифм гамма-функции (gammaln) в расчетах, чтобы минимизировать потерю точности. Конечный результат тогда exp (result_using_gammaln).

См. также: gammainc, gammaln, factorial.

: 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", то верхняя неполная гамма-функция умножается на ту же величину.

Ссылки:

М. Абрамович и И.А. Стегун, Справочник по математическим функциям, Издательство Dover publications, Inc., 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

Ссылка: A. Gil, J. Segura, и N. M. Temme, Эффективные и точные алгоритмы для вычисления и обращения отношений неполной гамма-функции, SIAM J. Sci. Computing, стр. A2965–A2981, том 34, 2012.

См. также: gammainc, gamma, gammaln.

: 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.

См. также: gamma, gammainc.

: psi (z) ¶
: psi (k, z) ¶

Вычислить функцию пси (полигамма-функцию).

Полигамма-функции — это k-я производная логарифма гамма-функции. Если не указано, k по умолчанию равно нулю. Значение нуль вычисляет дигамма-функцию, значение 1 — тригамма-функцию и так далее.

Дигамма-функция определяется как:

psi (z) = d (log (gamma (z))) / dx

При вычислении дигамма-функции (когда k равно нулю), z может иметь любое вещественное или комплексное значение. Однако для полигамма-функций (k больше 0), z должно быть вещественным и неотрицательным.

См. также: gamma, gammainc, gammaln.

: sinint (x) ¶

Вычислить функцию синусного интеграла:

x
          /
Si (x) =  | sin (t) / t dt
          /
         0

Ссылка: М. Абрамовиц и И.А. Стегун, Справочник по математическим функциям, 1964.

См. также: cosint, expint, sin.

© 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/v7.2.0/Special-Functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API