Main Content

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

erf

構文

説明

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

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

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

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

A = [erf(1/2), erf(1.41), erf(sqrt(2))]
A =
    0.5205    0.9539    0.9545

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

symA = [erf(sym(1/2)), erf(sym(1.41)), erf(sqrt(sym(2)))]
symA =
[ erf(1/2), erf(141/100), erf(2^(1/2))]

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

d = digits(10);
vpa(symA)
digits(d)
ans =
[ 0.5204998778, 0.9538524394, 0.9544997361]

変数と式の誤差関数

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

x および sin(x) + x*exp(x) について誤差関数を計算します。

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

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

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

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

M = sym([0 inf; 1/3 -inf]);
V = sym([1; -i*inf]);
erf(M)
erf(V)
ans =
[        0,  1]
[ erf(1/3), -1]
 
ans =
 erf(1)
 -Inf*1i

誤差関数の特別な値

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

x = 0x = ∞、および x = –∞ について誤差関数を計算します。sym を使用して、0 および無限大をシンボリック オブジェクトに変換します。誤差関数にはこれらのパラメーター用の特別な値があります。

[erf(sym(0)), erf(sym(Inf)), erf(sym(-Inf))]
ans =
[ 0, 1, -1]

複素数の無限大について誤差関数を計算します。sym を使用して複素数の無限大をシンボリック オブジェクトに変換します。

[erf(sym(i*Inf)), erf(sym(-i*Inf))]
ans =
[ Inf*1i, -Inf*1i]

誤差関数を含む式の処理

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

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

syms x
diff(erf(x), x)
diff(erf(x), x, 2)
ans =
(2*exp(-x^2))/pi^(1/2)
 
ans =
-(4*x*exp(-x^2))/pi^(1/2)

これらの式の積分を計算します。

int(erf(x), x)
int(erf(log(x)), x)
ans =
exp(-x^2)/pi^(1/2) + x*erf(x)
 
ans =
x*erf(log(x)) - int((2*exp(-log(x)^2))/pi^(1/2), x)

誤差関数のプロット

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

syms x
fplot(erf(x),[-5 5])
grid on

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

入力引数

すべて折りたたむ

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

詳細

すべて折りたたむ

誤差関数

次の積分により誤差関数が定義されます。

erf(x)=2π0xet2dt

ヒント

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

  • ほとんどのシンボリックな (厳密な) 数値について、erf は未解決のシンボリックな呼び出しを返します。vpa を使用して、結果を浮動小数点数で近似することができます。

アルゴリズム

ツールボックスを使用すれば、誤差関数とその逆関数を含む式を単純化できます。実数値 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.

バージョン履歴

R2006a より前に導入

参考

| | |