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)。