2026a

# erfc


补余误差函数

函数库: TyMath

# 语法

erfc(x)

# 说明

erfc(x)返回为 x 的每个元素计算补余误差函数。当 erf(x) 接近 1 时,使用 erfc 函数替换 1-erf(x) 以提高准确性。示例

# 示例

求补余误差函数

求值的补余误差函数。

using TyMath
erfc(0.35)
ans = 0.6206179464376897

求向量元素的补余误差函数。

V = [-0.5,0,1,0.72]
erfc.(V)
ans = 4-element Vector{Float64}:
1.5204998778130465
1.0
0.15729920705028513
0.3085668768612489

求矩阵元素的补余误差函数。

M = [0.29 -0.11; 3.1 -2.9]
erfc.(M)
ans = 2×2 Matrix{Float64}:
0.681717    1.12362
1.16487e-5  1.99996
二相相移键控

如果为加性高斯白噪声 (AWGN),二相相移键控 (BPSK) 的误码率 (BER) 为

对于从 0 dB 到 10 dB 的值,绘制 BPSK 的 BER。

using TyMath
using TyPlot
EbN0_dB = 0:0.1:10
EbN0 = 10 .^ (EbN0_dB/10)
BER = 1/2 * erfc.(sqrt.(EbN0))
semilogy(EbN0_dB,BER)
grid("on")
title("二进制相移键控的误码率")
xlabel(raw"$E_b/N_0(dB)$")
ylabel("BER")
使用补余误差函数避免舍入误差

erf(x) 接近 1 时,您可以使用补余误差函数 erfc 替换 1 - erf(x) 以避免舍入误差。

说明如何通过使用 erfc(10) 计算 1 - erf(10) 来避免舍入误差。原始计算返回 0,而 erfc(10) 返回正确结果。

using TyMath
1 - erf(10)
ans = 0.0
erfc(10)
ans = 2.088487583762545e-45

# 输入参数

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

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

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

# 详细信息

补余误差函数

x 的误差函数 erfc 定义为:

它与误差函数的关系如下:

erfc(x) = 1 - erf(x)。

# 提示

对于 1 - erfc(x) 形式的表达式,请改用误差函数 erf。这一代换保证了准确性。erfc(x) 接近 1 时,1 - erfc(x) 是一个小数字并且可以向下四舍五入为 0。而是将 1 - erfc(x) 替换为 erf(x)。 对于 exp(x^2)*erfc(x) 格式的表达式,请改用换算补余误差函数 erfcx。这种代换通过避免 x 的较大值的舍入误差保证准确性。

# 另请参阅

erf | erfcinv | erfcx