Main Content

erfinv

逆误差函数

语法

说明

示例

erfinv(x) 返回为 x 的每个元素计算的 逆误差函数。对于 [-1 1] 区间之外的输入,erfinv 返回 NaN

示例

全部折叠

erfinv(0.25)
ans = 0.2253

对于 [-1,1] 之外的输入,erfinv 返回 NaN。对于 -11erfinv 分别返回 -InfInf

erfinv([-2 -1 1 2])
ans = 1×4

   NaN  -Inf   Inf   NaN

求矩阵元素的逆误差函数。

M = [0 -0.5; 0.9 -0.2];
erfinv(M)
ans = 2×2

         0   -0.4769
    1.1631   -0.1791

绘制 -1 < x < 1 时的逆误差函数图。

x = -1:0.01:1;
y = erfinv(x);
plot(x,y)
grid on
xlabel('x')
ylabel('erfinv(x)')
title('Inverse Error Function for -1 < x < 1')

Figure contains an axes object. The axes object with title Inverse Error Function for -1 < x < 1 contains an object of type line.

使用均匀分布的随机数生成高斯分布的随机数。要将均匀分布的随机数 x 变换为高斯分布的随机数 y,请使用下面的变换

y=2erf-1(x).

请注意,由于 x 采用 -1 + 2*rand(1,10000) 的形式,您可以通过使用 erfcinv 代替 erfinv 提高准确性。有关详细信息,请参阅 提示

在区间 [-1,1] 内生成 10,000 个均匀分布的随机数。将它们转换为高斯分布的随机数。使用直方图说明这些数字遵照高斯分布形式。

rng('default')
x = -1 + 2*rand(1,10000);
y = sqrt(2)*erfinv(x);
h = histogram(y);

输入参数

全部折叠

输入,指定为实数或实数的向量、矩阵、多维数组。x 不能是稀疏矩阵。

数据类型: single | double

详细信息

全部折叠

逆误差函数

将逆误差函数 erfinv 定义为误差函数的逆,使得

erfinv(erf(x))=x.

提示

  • 对于 erfinv(1-x) 格式的表达式,请改用逆补余误差函数 erfcinv。这一代换保证了准确性。x 接近 1 时,1 - x 是一个小数字并且可以向下四舍五入为 0。而是将 erfinv(1-x) 替换为 erfcinv(x)

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |