std.mathspecial
Математические специальные функции
Технический термин «Специальные функции» включает несколько семейств трансцендентных функций, которые имеют важные применения в определённых областях математики и физики.
Функции гамма и родственные функции, а также функция ошибок, имеют решающее значение для математической статистики. Функции Бесселя и родственные функции возникают в задачах, связанных с распространением волн (особенно в оптике). Другие основные категории специальных функций включают эллиптические интегралы (связанные с длиной дуги эллипса) и гипергеометрические функции.
- Статус
- В этот модуль будет добавлено ещё много функций. Правила именования для функций распределения (gammaIncomplete и т. д.) ещё не окончательные и, вероятно, изменятся.
- Лицензия:
- Лицензия Boost 1.0.
- Авторы:
- Стивен Л. Мошиер (исходный код на C). Преобразование в D Дона Клугстоном
- Источник
- std/mathspecial.d
- pure nothrow @nogc @safe real gamma(real x);
-
Функция гамма, Γ(x)
Γ(x) — это обобщение факториала на вещественные и комплексные числа. Как и x!, Γ(x+1) = x * Γ(x).
Математически, если z.re > 0, то Γ(z) = ∫0∞ tz-1e-t dt
Значения x Γ(x) НЕОПРЕД. НЕОПРЕД. ±0.0 ±∞ целое > 0 (x-1)! целое < 0 НЕОПРЕД. +∞ +∞ -∞ НЕОПРЕД. - pure nothrow @nogc @safe real logGamma(real x);
-
Натуральный логарифм функции гамма, Γ(x)
Возвращает логарифм по основанию е (2.718...) абсолютного значения функции гамма от аргумента.
Для вещественных чисел logGamma эквивалентно log(fabs(gamma(x))).
Значения x logGamma(x) НЕОПРЕД. НЕОПРЕД. целое ≤ 0 +∞ ±∞ +∞ - pure nothrow @nogc @safe real sgnGamma(real x);
-
Знак Γ(x).
Возвращает -1, если Γ(x) < 0, +1, если Γ(x) > 0, НЕОПРЕД., если знак неопределён.
Обратите внимание, что эта функция может быть использована совместно с logGamma(x) для вычисления гамма для очень больших значений x. - pure nothrow @nogc @safe real beta(real x, real y);
-
Функция бета
Функция бета определяется как
beta(x, y) = (Γ(x) * Γ(y)) / Γ(x + y) - pure nothrow @nogc @safe real digamma(real x);
-
Функция дигамма
Функция дигамма — это логарифмическая производная функции гамма.
digamma(x) = d/dx logGamma(x)- См. также:
-
logmdigamma,logmdigammaInverse.
- pure nothrow @nogc @safe real logmdigamma(real x);
-
Функция логарифм минус дигамма
logmdigamma(x) = log(x) - digamma(x)
- См. также:
-
digamma,logmdigammaInverse.
- pure nothrow @nogc @safe real logmdigammaInverse(real x);
-
Обратная функция логарифм минус дигамма
Для заданного y функция находит x такое, что log(x) - digamma(x) = y.
- См. также:
-
logmdigamma,digamma.
- pure nothrow @nogc @safe real betaIncomplete(real a, real b, real x);
-
Неполный бета-интеграл
Возвращает неполный бета-интеграл от аргументов, вычисленный от нуля до x. Регуляризованная неполная бета-функция определяется как
betaIncomplete(a, b, x) = Γ(a + b) / ( Γ(a) Γ(b) ) * ∫0x ta-1(1-t)b-1 dt
и совпадает с функцией кумулятивного распределения.
Область определения — 0 ≤ x ≤ 1. В этой реализации a и b ограничены положительными значениями. Интеграл от x до 1 может быть получен с помощью соотношения симметрии
betaIncompleteCompl(a, b, x ) = betaIncomplete( b, a, 1-x )
Интеграл вычисляется с помощью разложения в непрерывную дробь или, когда b * x мало, с помощью степенного ряда. - pure nothrow @nogc @safe real betaIncompleteInverse(real a, real b, real y);
-
Обратная функция неполного бета-интеграла
Для заданного y функция находит x такое, что
betaIncomplete(a, b, x) == y
Используются итерации Ньютона или деление отрезка пополам. - pure nothrow @nogc @safe real gammaIncomplete(real a, real x);
pure nothrow @nogc @safe real gammaIncompleteCompl(real a, real x); -
Неполный гамма-интеграл и его дополнение
Эти функции определяются как
gammaIncomplete = ( ∫0x e-t ta-1 dt )/ Γ(a)
gammaIncompleteCompl(a,x) = 1 - gammaIncomplete(a,x) = (∫x∞ e-t ta-1 dt )/ Γ(a)
В этой реализации оба аргумента должны быть положительными. Интеграл вычисляется с помощью степенного ряда или разложения в непрерывную дробь, в зависимости от относительных значений a и x. - pure nothrow @nogc @safe real gammaIncompleteComplInverse(real a, real p);
-
Обратная функция дополненного неполного гамма-интеграла
Для заданных a и p функция находит x такое, что
gammaIncompleteCompl( a, x ) = p. - pure nothrow @nogc @safe real erf(real x);
-
Функция ошибок
Интеграл —
erf(x) = 2/ √(π) ∫0x exp( - t2) dt
Модуль x ограничен примерно 106.56 для 80-разрядной арифметики IEEE; вне этого диапазона возвращается 1 или -1. - pure nothrow @nogc @safe real erfc(real x);
-
Дополнительная функция ошибок
erfc(x) = 1 - erf(x) = 2/ √(π) ∫x∞ exp( - t2) dt
Эта функция имеет высокую относительную точность для значений x, удалённых от нуля. (Для значений, близких к нулю, используйте erf(x)). - pure nothrow @nogc @safe real normalDistribution(real x);
-
Функция стандартного нормального распределения.
Нормальное (или гауссово, или колоколообразное) распределение определяется как:
normalDist(x) = 1/√(2π) ∫-∞x exp( - t2/2) dt = 0.5 + 0.5 * erf(x/sqrt(2)) = 0.5 * erfc(- x/sqrt(2))
Для поддержания точности при значениях x, близких к 1.0, используйте normalDistribution(x) = 1.0 - normalDistribution(-x).- Ссылки
- http://www.netlib.org/cephes/ldoubdoc.html, G. Марсалья, "Оценивание нормального распределения", Журнал статистического программного обеспечения 11, (июль 2004).
- pure nothrow @nogc @safe real normalDistributionInverse(real p);
-
Обратная функция стандартного нормального распределения
Возвращает аргумент x, для которого площадь под кривой плотности вероятности нормального распределения (интегрированная от минус бесконечности до x) равна p.
- Примечание
- Эта функция реализована только с 80-разрядной точностью.
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_mathspecial.html