Spec-Zone.ru › Octave 5

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

END_OF_DOCUMENT_MARKER
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

См. также: 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

Ссылка:

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

[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 должен быть скаляром или массивом действительных чисел с -∞ ≤ 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", то верхняя неполная гамма-функция умножается на ту же величину.

Ссылки:

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

См. также: 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/v5.2.0/Special-Functions.html

Spec-Zone.ru

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