英語版
このページの英語版を見る

std.mathspecial

数学特殊関数
専門用語の"特殊関数"には、超越関数のいくつかの系列が含まれる。 数学と物理学の特定の分野で重要な応用がある。 数学と物理学の特定の分野で重要な応用がある。
ガンマ関数とその関連関数、誤差関数は数学的統計学にとって重要である。 数理統計学にとって重要である。 ベッセル関数とその関連関数は、波動伝播に関わる問題(特に光学)で使われる。 (特に光学分野)で使用される。 その他の特殊関数の主なカテゴリーには、楕円積分 (楕円の弧長に関係する)、超幾何関数などがある。

ステータス このモジュールにはさらに多くの関数が追加される予定である。 分布関数(gammaIncompleteなど)の命名規則はまだ確定しておらず、おそらく変更されるだろう。 の命名規則はまだ確定しておらず、おそらく変更されるだろう。

Authors:
Stephen L. Moshier (original C code). Conversion to D by Don Clugston
pure nothrow @nogc @safe real gamma(real x);
ガンマ関数Γ(x)
Γ(x)は階乗関数の一般化である。 を実数と複素数に一般化したものである。 x のように!、Γ(x+1) = x * Γ(x)である。
数学的には、z.re > 0 ならば Γ(z) = ∫0∞ tz-1e-tdt
特別な値
x Γ(x)
NAN NAN
±0.0 ±∞
整数 > 0 (x-1)!
整数 < 0 NAN
+∞ +∞
-∞ NAN
pure nothrow @nogc @safe real logGamma(real x);
ガンマ関数の自然対数Γ(x)
引数のガンマ関数の絶対値の底 e (2.718...) の対数を返す。 引数のガンマ関数の絶対値の底 e (2.718...)の対数を返す。
実数の場合、logGamma は log(fabs(gamma(x))) と等価である。
特殊値
x logGamma(x)
NAN NAN
整数 <= 0 +∞
±∞ +∞
pure nothrow @nogc @safe real sgnGamma(real x);
Γ(x) の符号
Γ(x) < 0 なら -1、Γ(x) > 0 なら +1 を返す、 符号が不確定ならNANを返す。
この関数は非常に大きな x の値のガンマを評価するために logGamma(x) と一緒に使用できることに注釈: する。 と共に使用できることに注意する。
pure nothrow @nogc @safe real beta(real x, real y);
ベータ関数
ベータ関数は次式で定義される。
β(x, y) = (Γ(x) * Γ(y)) / Γ(x + y)
pure nothrow @nogc @safe real digamma(real x);
Digamma(ディガンマ)関数
ディガンマ関数はガンマ関数の対数導関数である。
digamma(x) = d/dx logGamma(x)
pure nothrow @nogc @safe real logmdigamma(real x);
対数マイナス・ディガンマ関数
logmdigamma(x) = log(x) - digamma(x)
pure nothrow @nogc @safe real logmdigammaInverse(real x);
対数マイナス・ディガンマ関数の逆関数
yが与えられたとき、この関数はlog(x) - digamma(x) = yとなるxを求める。
See Also:
pure nothrow @nogc @safe real betaIncomplete(real a, real b, real x);
不完全ベータ積分
正則化された引数の不完全ベータ積分を返す。 正則化不完全ベータ関数は次式で定義される。
betaIncomplete(a, b, x) = Γ(a + b) / ( Γ(a) Γ(b) ) * ∫0xta-1(1-t)b-1dt
であり、ベータ分布の累積分布関数と同じである。 分布の累積分布関数と同じである。
定義域は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となるようなxを求める。
ニュートン反復または区間半減が使われる。
pure nothrow @nogc @safe real gammaIncomplete(real a, real x);

pure nothrow @nogc @safe real gammaIncompleteCompl(real a, real x);
不完全ガンマ積分とその補数
これらの関数は次式で定義される。
gammaIncomplete = (∫0x e-tta-1dt )/Γ(a)
ΓIncompleteCompl(a,x) = 1 - ΓIncomplete(a,x) =(∫x∞ e-tta-1dt )/Γ(a)
この実装では、両方の引数は正でなければならない。 積分はべき級数または の相対的な値によって によって評価される。
pure nothrow @nogc @safe real gammaIncompleteComplInverse(real a, real p);
補完された不完全ガンマ積分の逆数
aとpが与えられると、"関数"は次のようなxを求める。
を求める。
pure nothrow @nogc @safe real erf(real x);
エラー関数".
積分は
erf(x) = 2/ √(π) ∫0xexp( -t2) dt
xの大きさは、IEEE 80ビット演算では約106.56に制限される。 この範囲外では1または-1が返される。
pure nothrow @nogc @safe real erfc(real x);
相補誤差関数".
erfc(x) = 1 - erf(x) = 2/ √(π) ∫x∞exp( -t2) dt
この関数は、ゼロから遠いxの値に対して高い相対精度を持つ。 この関数は、ゼロから遠いxの値に対して高い相対精度を持つ。(ゼロに近い値にはerf(x)を使う)。
pure nothrow @nogc @safe real normalDistribution(real x);
標準正規分布関数。
正規分布(またはガウス分布、ベル型分布)は次のように定義される と定義される:
normalDist(x) = 1/√(2π)∫-∞xexp( -t2/2) dt = 0.5 + 0.5 * erf(x/sqrt(2)) = 0.5 * erfc(- x/sqrt(2))
1.0に近いxの値で精度を維持するには、次のようにする。 正規分布(x) = 1.0 - 正規分布(-x).

参考文献 https://www.netlib.org/cephes/ldoubdoc.html、 G. Marsaglia, "Evaluating the Normal Distribution"、 Journal of Statistical Software11, (July 2004).

pure nothrow @nogc @safe real normalDistributionInverse(real p);
標準正規分布関数の逆関数
標準正規分布関数の逆関数は 正規確率密度関数(マイナス無限大からxまで積分したもの)の面積が マイナス無限大からxまで)の下の面積がpに等しい引数xを返す。

注釈:この関数は80ビット精度でのみ実装されている。 この関数は80ビット精度でのみ実装されている。