Main Content

erfcx

スケーリング相補誤差関数

構文

説明

erfcx(x) は、x の各要素について、スケーリング相補誤差関数の値を返します。exp(x^2)*erfc(x) を含む式では、代わりに関数 erfcx を使用して、アンダーフローまたはオーバーフローの誤差の発生を防ぎます。

すべて折りたたむ

erfcx(5)
ans = 0.1107

ベクトルの要素のスケーリング相補誤差関数を求めます。

V = [-Inf -1 0 1 10 Inf];
erfcx(V)
ans = 1×6

       Inf    5.0090    1.0000    0.4276    0.0561         0

行列の要素のスケーリング相補誤差関数を求めます。

M = [-0.5 15; 3.2 1];
erfcx(M)
ans = 2×2

    1.9524    0.0375
    0.1687    0.4276

exp(x^2)*erfc(x) の代わりにスケーリング相補誤差関数 erfcx を使用すると、アンダーフローまたはオーバーフローの誤差の発生を防ぐことができます。

erfcx(35) を使用して exp(35^2)*erfc(35) を計算することで丸め誤差の発生を防止する方法を示します。元の計算は NaN を返しますが、erfcx(35) は正しい結果を返します。

x = 35;
exp(x^2)*erfc(x)
ans = NaN
erfcx(x)
ans = 0.0161

入力引数

すべて折りたたむ

入力。実数、あるいは実数のベクトル、行列または多次元配列として指定します。x をスパースにすることはできません。

データ型: single | double

詳細

すべて折りたたむ

スケーリング相補誤差関数

スケーリング相補誤差関数 erfcx(x) は、次の式で定義されます。

erfcx(x)=ex2erfc(x).

X が大きい場合、erfcx(X) は、(1π)1x. で近似されます。

ヒント

  • exp(-x^2)*erfcx(x) の形式の式では、代わりに相補誤差関数 erfc を使用します。この置き換えでは、x の値が大きいときの丸め誤差の発生を防ぐことにより、精度が維持されます。

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | |