2026a

# erfinv


逆误差函数

函数库: TyMath

# 语法

erfinv(x)

# 说明

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

# 示例

求值的逆误差函数
using TyMath
erfinv(0.25)
ans = 0.22531205501217808

对于 -1 和 1,erfinv 分别返回 -Inf 和 Inf。

erfinv.([1 -1])
ans = 1×2 Matrix{Float64}:
Inf  -Inf

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

M = [0 -0.5; 0.9 -0.2]
erfinv.(M)
ans = 2×2 Matrix{Float64}:
0.0      -0.476936
1.16309  -0.179143
绘制逆误差函数图

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

using TyMath
using TyPlot
x = -1:0.01:1
y = erfinv.(x)
plot(x,y)
grid("on")
title("逆误差函数(-1<x<1)")
xlabel("x")
ylabel("erfinv(x)")
生成高斯分布的随机数

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

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

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

using TyMath
using TyPlot
x = -1 .+ 2*rand(1,10000)
y = sqrt(2)*erfinv.(x)
h = histogram(y)

# 输入参数

x - 输入
标量 | 向量 | 矩阵 | 多维数组

输入,指定为标量、向量、矩阵或多维数组。

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128

# 详细信息

逆误差函数

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

erfinv(erf(x)) = x。

# 提示

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

# 另请参阅

erf | erfcinv | erfc | erfcx