誤差関数

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Confused

誤差関数のグラフ
相補誤差関数のグラフ

誤差関数(ごさかんすう、テンプレート:Lang-en-short)は、数学におけるシグモイド形状の特殊関数(非初等関数)の一種で、確率論統計学物質科学偏微分方程式などで使われる。ガウスの誤差関数とも。定義は以下の通り。

テンプレート:Indent

相補誤差関数 (テンプレート:Lang-en-short) は erfc表記され、誤差関数を使って以下のように定義される。

テンプレート:Indent

スケーリング相補誤差関数(テンプレート:Lang-en-short)[1] erfcx定義される (アンダーフロー[1][2]を避けるために、 erfc の代わりに用いる)。

複素誤差関数 (テンプレート:Lang-en-short) はw(x)表記され、やはり誤差関数を使って次のように定義される(Faddeeva関数とも呼ぶ)。

テンプレート:Indent

特性

図2. 被積分関数 exp(−z2) を複素z-平面でプロットした図
図3. erf(z) を複素z-平面でプロットした図

誤差関数奇関数である。

任意の複素数zについて、

テンプレート:Indent

また、次が成り立つ。

テンプレート:Indent

ここでz*z複素共役である。

被積分関数f=exp(z2)f=erf(z)を複素z平面にプロットしたものを図2と図3に示す。

虚部f=Im(f)=0となる点を結んだ線を太い緑色の線で表している。f=Im(f)負の整数となるを結んだを太い赤色の線で表し正の整数となる点を結んだ線を太い青色の線で表している。

f=Im(f)整数と整数の中間の一定になる点を結んだ線を細い緑色の線で表し、実部f=Re(f)=0が一定値になる点を結んだ線は、の場合は青い細い線、の場合は赤い細い線で表している。

実軸では、zf=erf(z)単位元(1)に漸近し、zで単位元(-1)に漸近する。虚軸では、±i となる。

テイラー級数

誤差関数整関数である。(無限大以外で)特異点を持たず、テイラー展開は常に収束する。

定義にある積分初等関数を使った閉形式では評価できないが、被積分関数exp(z2) を対応するテイラー級数に展開して、単位で積分すると、誤差関数のテイラー級数が以下のように得られる。

テンプレート:Indent

これは全ての複素数zについて成り立つ。[3]

これを反復的に計算するには、以下のように定式化するのが扱い易い。

テンプレート:Indent

(2k1)z2k(2k+1)k番目の項からk+1番目のを得る係数表している。

f=erf(z)f=erfc(z)f=exp(z2)比較するには、次の級数が利用できる。

テンプレート:Indent

において誤差関数は正確に1になる(ガウス積分を参照)。

誤差関数導関数定義から即座に求められる。

テンプレート:Indent 誤差関数不定積分は次のようになる。

テンプレート:Indent

逆関数

逆誤差関数は次のような級数となる。

テンプレート:Indent

ここで、c0=1であり、

テンプレート:Indent

となる。従って、次のような級数の展開が得られる(分子分母に共通して出現する係数は省いてある)。[4][5]

テンプレート:Indent

なお、誤差関数と負の無限大でのはそれぞれ正と負の1となる。

応用

一連の何らかの測定正規分布になっていて、標準偏差σ期待値0の場合、1つの測定値の誤差がaaの間になる確率erf(aσ2)である。これは、例えば、デジタル通信システムでの符号誤り率の特定などに使える。

誤差関数相補誤差関数は例えば、境界条件ヘヴィサイドの階段関数で与えたときの熱方程式に出現する。

erfx+erfcx1 で、xの増加に伴ってerfxerfcxはそれぞれ急速に1, 0 に近づくため、クーロン力1/rなどの長距離相互作用を短距離成分erfcr/rと長距離成分erfr/rに分けるのに用いられる(エバルトの方法)。

漸近展開

相補誤差関数(および誤差関数)の大きなxについての漸近展開は次のようになる。

テンプレート:Indent

この級数有限なxについては発散する。しかし、最初の方の幾つかのだけでerfc(x)のよい近似が得られ、テイラー展開よりも収束が早い。

初等関数による近似

次のような近似がある。

テンプレート:Indent

ここで、

テンプレート:Indent

このような近似(曲線あてはめ)は、実軸付近の誤差関数の値について、少なくとも十進で1桁の精度はある。


関連する関数

誤差関数正規分布累積分布関数(CDF)Φと基本的には同じであり、単にスケールと解釈が異なるだけである。実際、標準正規分布について次の関係が成り立つ。

テンプレート:Indent

また、erfおよびerfcについて変形すると次のようになる。

テンプレート:Indent

従って、誤差関数は、正規分布におけるテール確率であるQ関数とも密接に関連する。Q関数は誤差関数を使って次のように表現できる。 テンプレート:Indent

Φ逆関数標準分位関数またはプロビット関数として知られており、逆誤差関数を使って次のように表現できる。 テンプレート:Indent

確率論統計学では標準正規分布の累積分布関数の方がよく使われ、誤差関数は他の数学の分野で使われる傾向がある。

誤差関数ミッタク=レフラー関数の特殊ケースであり、合流型超幾何微分方程式としても以下のように表現できる。

テンプレート:Indent

フレネル積分を使った単純な表現法もある。正規化ガンマ関数P不完全ガンマ関数を使うと、次のように表せる。

テンプレート:Indent

sgn(x) 符号関数である。

一般化された誤差関数

一般化された誤差関数En(x)のグラフ:
灰色: E1(x)=(1expx)π
赤: E2(x)=erf(x)
緑: E3(x)
青: E4(x)
金: E5(x)

書籍によっては、より一般化した関数を論じている場合もある。

テンプレート:Indent

例えば、

  • E0(x)原点を通る直線E0(x)=xeπ となる。
  • E2(x)誤差関数erf(x)である。

n!割ると、奇数nについてのEnは互いに似たようなものになる(完全に一致する事は無い)。 同様に、偶数nについてのEnn!で割ると互いに似たものになる(完全に一致する事は無い)。 n>0での全ての一般化された誤差関数xのときのグラフは互いに似ている。

これらの一般化された誤差関数x > 0 の場合にガンマ関数不完全ガンマ関数を使って次のように表せる。

テンプレート:Indent

従って、誤差関数は不完全ガンマ関数を使って次のように表せる。

テンプレート:Indent

相補誤差関数の累次積分

相補誤差関数累次積分は次のように定義される。

テンプレート:Indent

これらには次のような冪級数がある。

テンプレート:Indent ここから次のような対称性が得られる。 テンプレート:Indent

および、

テンプレート:Indent

実装

C言語の場合、C99ヘッダファイル<math.h>double erf(double x)およびdouble erfc(double x)という関数が宣言されている。 {erff(), erfcf()}という関数ペアはfloat型のを扱い、{erfl(), erfcl()}という関数ペアはlong double型の値を扱う。 C++でも、C++11<cmath>ヘッダファイルerfおよびerfcが宣言されている。doublefloatおよびlong double型がオーバーロードされている。

複素数を扱える誤差関数の実装は少ない。例えば、図2のようなグラフの描画は、Mathematicaを一般的な性能のコンピュータで実行した場合に数分かかる。

FORTRANでは、例えば、GFortranERF(X)と倍精度のDERF(X)を提供している。

数表

SageMathに拠る[6]

x erf(x) erfc(x) x erf(x) erfc(x)
0.00 テンプレート:Val テンプレート:Val 1.30 テンプレート:Val テンプレート:Val
0.05 テンプレート:Val テンプレート:Val 1.40 テンプレート:Val テンプレート:Val
0.10 テンプレート:Val テンプレート:Val 1.50 テンプレート:Val テンプレート:Val
0.15 テンプレート:Val テンプレート:Val 1.60 テンプレート:Val テンプレート:Val
0.20 テンプレート:Val テンプレート:Val 1.70 テンプレート:Val テンプレート:Val
0.25 テンプレート:Val テンプレート:Val 1.80 テンプレート:Val テンプレート:Val
0.30 テンプレート:Val テンプレート:Val 1.90 テンプレート:Val テンプレート:Val
0.35 テンプレート:Val テンプレート:Val 2.00 テンプレート:Val テンプレート:Val
0.40 テンプレート:Val テンプレート:Val 2.10 テンプレート:Val テンプレート:Val
0.45 テンプレート:Val テンプレート:Val 2.20 テンプレート:Val テンプレート:Val
0.50 テンプレート:Val テンプレート:Val 2.30 テンプレート:Val テンプレート:Val
0.55 テンプレート:Val テンプレート:Val 2.40 テンプレート:Val テンプレート:Val
0.60 テンプレート:Val テンプレート:Val 2.50 テンプレート:Val テンプレート:Val
0.65 テンプレート:Val テンプレート:Val 2.60 テンプレート:Val テンプレート:Val
0.70 テンプレート:Val テンプレート:Val 2.70 テンプレート:Val テンプレート:Val
0.75 テンプレート:Val テンプレート:Val 2.80 テンプレート:Val テンプレート:Val
0.80 テンプレート:Val テンプレート:Val 2.90 テンプレート:Val テンプレート:Val
0.85 テンプレート:Val テンプレート:Val 3.0 テンプレート:Val テンプレート:Val
0.90 テンプレート:Val テンプレート:Val 3.10 テンプレート:Val テンプレート:Val
0.95 テンプレート:Val テンプレート:Val 3.20 テンプレート:Val テンプレート:Val
1.00 テンプレート:Val テンプレート:Val 3.30 テンプレート:Val テンプレート:Val
1.10 テンプレート:Val テンプレート:Val 3.40 テンプレート:Val テンプレート:Val
1.20 テンプレート:Val テンプレート:Val 3.50 テンプレート:Val テンプレート:Val

関連項目

脚注・出典

テンプレート:Reflist

参考文献

外部リンク

テンプレート:Normdaten

  1. 1.0 1.1 W. J. Cody, "Algorithm 715: SPECFUN—A portable FORTRAN package of special function routines and test drivers," ACM Trans. Math. Soft. 19, pp. 22–32 (1993).
  2. M. R. Zaghloul, "On the calculation of the Voigt line profile: a single proper integral with a damped sine integrand," Monthly Notices of the Royal Astronomical Society '375, pp. 1043–1048 (2007).
  3. 分母OEISにある テンプレート:OEIS2Cの数列である。
  4. InverseErf functions.wolfram.com
  5. 約分後の分子/分母の係数はOEISの A092676/A132467 と同じで、約分していない分子は A002067 となる。
  6. [1]