# erf


误差函数

函数库: TyMath

# 语法

erf(x)
erf(x,y)

# 说明

erf(x)返回为x的每个元素计算误差函数示例

erf(x,y) 准确计算 erf(y) - erf(x) (仅对实数参数有效)

# 示例

求误差函数

求值的误差函数

using TyMath
erf(0.76)
ans = 0.7175367528055908

求向量元素的误差函数。

V = [-0.5,0,1,0.72]
erf.(V)
ans = 4-element Vector{Float64}:
-0.5204998778130465
0.0
0.8427007929497149
0.6914331231387512

求矩阵元素的误差函数。

M = [0.29 -0.11; 3.1 -2.9]
erf.(M)
ans = 2×2 Matrix{Float64}:
0.318283  -0.123623
0.999988  -0.999959
求正态分布的累积分布函数

标准差为 σ 且均值为 μ 的正态或高斯分布的累积分布函数 (CDF) 为

.

请注意,为了提高计算准确性,您可以用 erfc 重写该公式。有关详细信息,请参阅 提示

通过 μ=0 和 σ=1 绘制正态分布的 CDF。

using TyMath
using TyPlot
x = -3:0.1:3
y = (1/2)*(1 .+ erf.(x./sqrt(2)))
plot(x,y)
grid("on")
title(raw"标准正态分布的累积分布函数 $\mu = 0$ and $\sigma = 1$")
xlabel("x")
ylabel("CDF")
通过初始条件计算热方程的解

其中, 表示位置为 x、时间为 t 时的温度,热方程为

其中,c 是一个常量。

对于热系数为 k 的材料,以及对于其他位置 x>b 和 的初始条件 ,热方程的解为

对于 k = 2、a = 5 和 b = 1,为热方程在 t = 0.1、5 和 100 时的解绘图。

using TyMath
using TyPlot
x = -4:0.01:6
t = [0.1 5 100]
a = 5
k = 2
b = 1
u = zeros(3,length(x))
figure(1)
hold("on")
for i = 1:3
u[i,:] = (a/2)*(erf.((x .- b) / sqrt(4*k*t[i])))
plot(x,u[i,:])
end
grid("on")
xlabel("x")
ylabel("Temperature")
legend(["t = 0.1","t = 5","t = 100"])
title("t = 0.1,t = 5,t = 100时的热方程")

# 输入参数

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

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

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

# 详细信息

误差函数

x的误差函数erf是

# 提示

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

# 另请参阅

erfc | erfinv | erfcx