Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

erfinv

構文

説明

erfinv(X) では、X逆誤差関数を計算します。X がベクトルまたは行列である場合、erfinv(X)X の各要素の逆誤差関数を計算します。

浮動小数点数およびシンボリック数の逆誤差関数

引数に応じて、erfinv は浮動小数点解またはシンボリック厳密解の結果を返します。

次の数値について逆誤差関数を計算します。これらの数値はシンボリック オブジェクトではないため、結果は浮動小数点数となります。

A = [erfinv(1/2), erfinv(0.33), erfinv(-1/3)]
A =
    0.4769    0.3013   -0.3046

同じ数値をシンボリック オブジェクトに変換して逆誤差関数を計算します。ほとんどのシンボリックな (厳密な) 数値について、erfinv は未解決のシンボリックな呼び出しを返します。

symA = [erfinv(sym(1)/2), erfinv(sym(0.33)), erfinv(sym(-1)/3)]
symA =
[ erfinv(1/2), erfinv(33/100), -erfinv(1/3)]

vpa を使用して、必要な桁数でシンボリックな結果を近似します。

d = digits(10);
vpa(symA)
digits(d)
ans =
[ 0.4769362762, 0.3013321461, -0.3045701942]

変数と式の逆誤差関数

ほとんどのシンボリックな変数と式では、erfinv により未解決のシンボリックな呼び出しが返されます。

xsin(x) + x*exp(x) について逆誤差関数を計算します。ほとんどのシンボリックな (厳密な) 変数と式に対して、erfinv は未解決のシンボリックな呼び出しを返します。

syms x
f = sin(x) + x*exp(x);
erfinv(x)
erfinv(f)
ans =
erfinv(x)
 
ans =
erfinv(sin(x) + x*exp(x))

ベクトルと行列の逆誤差関数

入力引数がベクトルまたは行列である場合、erfinv はそのベクトルまたは行列の要素ごとに逆誤差関数を返します。

行列 M とベクトル V の要素について逆誤差関数を計算します。

M = sym([0 1 + i; 1/3 1]);
V = sym([-1; inf]);
erfinv(M)
erfinv(V)
ans =
[           0, NaN]
[ erfinv(1/3), Inf]

ans =
 -Inf
  NaN

逆相補誤差関数の特別な値

erfinv は、特定のパラメーターの特別な値を返します。

x = –1x = 0、および x = 1 について逆誤差関数を計算します。逆誤差関数にはこれらのパラメーター用の特別な値があります。

[erfinv(-1), erfinv(0), erfinv(1)]
ans =
  -Inf     0   Inf

逆相補誤差関数を含む式の処理

diffint など、多くの関数は erfinv を含む式を処理することができます。

逆誤差関数の 1 次および 2 次導関数を計算します。

syms x
diff(erfinv(x), x)
diff(erfinv(x), x, 2)
ans =
(pi^(1/2)*exp(erfinv(x)^2))/2
 
ans =
(pi*exp(2*erfinv(x)^2)*erfinv(x))/2

逆誤差関数の積分を計算します。

int(erfinv(x), x)
ans =
-exp(-erfinv(x)^2)/pi^(1/2)

逆誤差関数のプロット

逆誤差関数を -1 から 1 までの範囲でプロットします。

syms x
fplot(erfinv(x),[-1,1])
grid on

Figure contains an axes object. The axes object contains an object of type functionline.

入力引数

すべて折りたたむ

入力値。シンボリック数、変数、式または関数、あるいはシンボリック数、変数、式または関数のベクトルまたは行列として指定します。

詳細

すべて折りたたむ

逆誤差関数

逆相補誤差関数は erf -1(x) として定義され、erf(erf -1(x)) = erf -1(erf(x)) = x となります。ここで、

erf(x)=2π0xet2dt

は誤差関数です。

ヒント

  • シンボリック オブジェクトではない数値について erfinv を呼び出すと、MATLAB® 関数 erfinv が呼び出されます。この関数では実数の引数だけが受け入れられます。複素数の逆誤差関数を計算する場合は、sym を使用してその数値をシンボリック オブジェクトに変換し、そのシンボリック オブジェクトに対して erfinv を呼び出します。

  • x < –1 または x > 1 の場合、または x が複素数の場合、erfinv(x)NaN を返します。

アルゴリズム

ツールボックスを使用すれば、誤差関数とその逆関数を含む式を単純化できます。実数値 x については、ツールボックスは次の単純化ルールを適用します。

  • erfinv(erf(x)) = erfinv(1 - erfc(x)) = erfcinv(1 - erf(x)) = erfcinv(erfc(x)) = x

  • erfinv(-erf(x)) = erfinv(erfc(x) - 1) = erfcinv(1 + erf(x)) = erfcinv(2 - erfc(x)) = -x

任意の値 x については、ツールボックスは次の単純化ルールを適用します。

  • erfcinv(x) = erfinv(1 - x)

  • erfinv(-x) = -erfinv(x)

  • erfcinv(2 - x) = -erfcinv(x)

  • erf(erfinv(x)) = erfc(erfcinv(x)) = x

  • erf(erfcinv(x)) = erfc(erfinv(x)) = 1 - x

参照

[1] Gautschi, W. “Error Function and Fresnel Integrals.” Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. (M. Abramowitz and I. A. Stegun, eds.). New York: Dover, 1972.

バージョン履歴

R2012a で導入

参考

| | |