ARTICLE

误差函数

误差函数 (Error Function) 误差函数 (Error Function),记作 erf(x) ,是统计学、概率论和偏微分方程中一类重要的特殊函数。它刻画了高斯分布下累积概率的积分形式,本质上与正态分布的累积分布函数 (CDF) 等价。误差函数在扩散过程、热传导方程、通信理论和计量经济学中均有广泛应用。 误差函数的形状为 S 形(sigmoid)

浏览 0 更新 2025-01-20

误差函数 (Error Function)

误差函数 (Error Function),记作 erf(x) \operatorname{erf}(x) ,是统计学、概率论和偏微分方程中一类重要的特殊函数。它刻画了高斯分布下累积概率的积分形式,本质上与正态分布的累积分布函数 (CDF) 等价。误差函数在扩散过程、热传导方程、通信理论和计量经济学中均有广泛应用。

误差函数的形状为 S 形(sigmoid)曲线,在 x=0 x=0 处过原点,随着 x+ x \to +\infty 趋近于 1,随着 x x \to -\infty 趋近于 -1。这一性质使其成为平滑阈值函数和概率映射的自然候选。

定义

误差函数的标准定义为:

erf(x)=2π0xet2dt\operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{0}^{x} e^{-t^2} \, dt

其中积分变量 t t 遍历 [0,x] [0, x] ,被积函数 et2 e^{-t^2} 是高斯核。因子 2π \frac{2}{\sqrt{\pi}} 确保了 erf(+)=1 \operatorname{erf}(+\infty) = 1 ,其来源为高斯积分:

0et2dt=π2\int_{0}^{\infty} e^{-t^2} \, dt = \frac{\sqrt{\pi}}{2}

与误差函数紧密相关的是互补误差函数 (Complementary Error Function),记为 erfc(x) \operatorname{erfc}(x)

erfc(x)=1erf(x)=2πxet2dt\operatorname{erfc}(x) = 1 - \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{x}^{\infty} e^{-t^2} \, dt

互补误差函数在渐近分析和尾部概率计算中更为便捷,因为 erfc(x) \operatorname{erfc}(x) 直接给出了正态分布的双侧尾概率(经适当缩放)。

基本性质

误差函数具有以下基本数学性质:

一. 奇函数性: erf(x)=erf(x) \operatorname{erf}(-x) = -\operatorname{erf}(x) 。这意味着误差函数关于原点对称,只需在 x0 x \geq 0 上定义表列即可覆盖全体实数。

二. 导函数: 由微积分基本定理直接得到:

ddxerf(x)=2πex2\frac{d}{dx} \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} e^{-x^2}

导函数本身是一个高斯函数,形状为钟形曲线,在 x=0 x=0 处取得最大值 2π1.128 \frac{2}{\sqrt{\pi}} \approx 1.128

三. 高阶导数与 Hermite 多项式: 误差函数的 n n 阶导数可表达为 Hermite 多项式乘以高斯因子:

dn+1dxn+1erf(x)=2π(1)nHn(x)ex2\frac{d^{n+1}}{dx^{n+1}} \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} (-1)^n H_n(x) e^{-x^2}

其中 Hn(x) H_n(x) 是物理学家版本的Hermite多项式

四. 泰勒级数:x=0 x=0 附近,误差函数的麦克劳林展开为:

erf(x)=2πn=0(1)nx2n+1n!(2n+1)=2π(xx33+x510x742+)\operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} \sum_{n=0}^{\infty} \frac{(-1)^n x^{2n+1}}{n!(2n+1)} = \frac{2}{\sqrt{\pi}} \left(x - \frac{x^3}{3} + \frac{x^5}{10} - \frac{x^7}{42} + \cdots \right)

该级数对全体实数收敛,但在 x |x| 较大时收敛缓慢,需采用渐近展开。

五. 渐近行为(x+ x \to +\infty ): 互补误差函数的渐近展开为:

erfc(x)ex2xπ(112x2+34x4158x6+),x+\operatorname{erfc}(x) \sim \frac{e^{-x^2}}{x\sqrt{\pi}} \left(1 - \frac{1}{2x^2} + \frac{3}{4x^4} - \frac{15}{8x^6} + \cdots \right), \quad x \to +\infty

这是发散级数(渐近级数),截断到适当项可提供极佳的数值近似。

与正态分布的关系

误差函数与正态分布的关系是其最重要的应用桥梁。若随机变量 XN(μ,σ2) X \sim N(\mu, \sigma^2) ,则其累积分布函数 Φ(x) \Phi(x) 可经由误差函数表达:

Φ(x)=12[1+erf(xμσ2)]\Phi(x) = \frac{1}{2} \left[ 1 + \operatorname{erf}\left( \frac{x - \mu}{\sigma\sqrt{2}} \right) \right]

等价地:

erf(x)=2Φ(x2)1\operatorname{erf}(x) = 2\Phi(x\sqrt{2}) - 1

由此,任意正态概率的计算均可归结为误差函数的求值。例如,标准正态分布落在 [1,1] [-1, 1] 内的概率为:

P(Z1)=erf(12)0.6827P(|Z| \leq 1) = \operatorname{erf}\left( \frac{1}{\sqrt{2}} \right) \approx 0.6827

这对应于统计推断中最常见的"68-95-99.7 法则"的基础值。互补误差函数则直接给出尾部概率:

P(Z>x)=12erfc(x2)P(Z > x) = \frac{1}{2} \operatorname{erfc}\left( \frac{x}{\sqrt{2}} \right)

假设检验置信区间的构造中,p 值的计算实质上是误差函数(或互补误差函数)的求值。

在其他分布中的应用

误差函数不仅限于正态分布。许多涉及高斯核的积分都可以用误差函数封闭表达:

对数正态分布: 对数正态分布的 CDF 可用误差函数表示为 12+12erf(lnxμσ2) \frac{1}{2} + \frac{1}{2} \operatorname{erf}\left( \frac{\ln x - \mu}{\sigma\sqrt{2}} \right)

Lévy 分布和稳定分布: 某些参数的稳定分布的密度和分布函数可借助误差函数及相关 Fresnel 积分表达。

折叠正态分布: 折叠正态分布(Folded Normal)的密度和矩均涉及误差函数,常用于分析绝对偏差和测量误差模型。

概率积分变换:Copula函数理论和依赖建模中,将数据变换为均匀分布时,误差函数作为正态 CDF 的代理频繁出现。

在偏微分方程与物理学中的应用

误差函数的原始动机来自热传导和扩散问题。考虑一维热方程(扩散方程):

ut=D2ux2\frac{\partial u}{\partial t} = D \frac{\partial^2 u}{\partial x^2}

当初始条件为阶跃函数 u(x,0)=u01x0 u(x, 0) = u_0 \cdot \mathbf{1}_{x \geq 0} 时,解为:

u(x,t)=u02erfc(x2Dt)u(x, t) = \frac{u_0}{2} \operatorname{erfc}\left( \frac{x}{2\sqrt{Dt}} \right)

这一解描述了浓度或温度从界面逐步扩散的平滑过渡,误差函数自然地刻画了扩散前缘的形态。

Black-Scholes-Merton 期权定价中,误差函数通过正态 CDF 进入公式。欧式看涨期权的定价公式为:

C=S0N(d1)KerTN(d2)C = S_0 N(d_1) - K e^{-rT} N(d_2)

其中 N() N(\cdot) Φ() \Phi(\cdot) ,其计算最终归结为误差函数的求值。d1 d_1 d2 d_2 分别为:

d1=ln(S0/K)+(r+σ2/2)TσT,d2=d1σTd_1 = \frac{\ln(S_0/K) + (r + \sigma^2/2)T}{\sigma\sqrt{T}}, \quad d_2 = d_1 - \sigma\sqrt{T}

因此,整个Black-Scholes-Merton模型的数值实现离不开高效且精确的误差函数计算。

在通信工程中,误差函数用于计算数字通信的比特误码率 (Bit Error Rate, BER)。对于加性高斯白噪声 (AWGN) 信道中的二进制相移键控 (BPSK),误码率为:

BER=12erfc(EbN0)\text{BER} = \frac{1}{2} \operatorname{erfc}\left( \sqrt{\frac{E_b}{N_0}} \right)

其中 Eb/N0 E_b/N_0 为每比特能量与噪声功率谱密度之比。

数值计算

在实际应用中,误差函数的计算通常使用以下策略:

一. 小 x x 区域(x<1 |x| < 1 ): 直接使用泰勒级数或切比雪夫有理逼近,收敛快且稳定。

二. 中间区域(1x<6 1 \leq |x| < 6 ): 使用有理切比雪夫逼近或 Cody 算法,通过精心设计的有理函数比值实现高精度。经典实现见于 Cody (1969) 和 Abramowitz \& Stegun 的《数学函数手册》。

三. 大 x x 区域(x6 |x| \geq 6 ): 改用 erfc(x) \operatorname{erfc}(x) 的渐近展开或连分式展开,避免有效数字的灾难性抵消。

在 Python 中,\texttt{math.erf(x)} 和 \texttt{math.erfc(x)}(Python 3.2+)提供了 C 标准库级别的实现。在 R 语言中,\texttt{pnorm(x)} 间接依赖误差函数的高精度实现。在计量经济学软件包 Stata 和 EViews 中,正态概率的计算均以误差函数为核心底层。

与其他特殊函数的关系

误差函数与一系列特殊函数存在紧密关联:

不完全 Gamma 函数: erf(x)=1πγ(12,x2) \operatorname{erf}(x) = \frac{1}{\sqrt{\pi}} \gamma\left( \frac{1}{2}, x^2 \right) ,其中 γ(a,z) \gamma(a, z) 是下不完全Gamma函数

合流超几何函数: erf(x)=2xπ1F1(12;32;x2) \operatorname{erf}(x) = \frac{2x}{\sqrt{\pi}} {}_1F_1\left( \frac{1}{2}; \frac{3}{2}; -x^2 \right) ,其中 1F1 {}_1F_1 是 Kummer 合流超几何函数。

虚误差函数: 虚误差函数定义为 erfi(x)=ierf(ix)=2π0xet2dt \operatorname{erfi}(x) = -i \operatorname{erf}(ix) = \frac{2}{\sqrt{\pi}} \int_0^x e^{t^2} dt ,与 Dawson 积分密切相关。

Fresnel 积分: 在复数域中,误差函数与 Fresnel 积分可通过复变量的误差函数统一处理,这在衍射理论和光学中具有应用。

常见误区与注意事项

  1. 不同学科对误差函数的归一化约定可能不同——有些文献定义误差函数不带 2π \frac{2}{\sqrt{\pi}} 因子,使用时需仔细核对定义。
  1. erf(x) \operatorname{erf}(x) 和标准正态 CDF Φ(x) \Phi(x) 之间的转换因子是 2 \sqrt{2} 而非 2:Φ(x)=12[1+erf(x/2)] \Phi(x) = \frac{1}{2} [1 + \operatorname{erf}(x / \sqrt{2})] 。经验上这是最频繁出错的转换。
  1. 在大 x x 时直接计算 1erf(x) 1 - \operatorname{erf}(x) 会导致灾难性抵消(两个接近相等的数相减损失有效数字),应始终使用 erfc(x) \operatorname{erfc}(x)
  1. 在计量经济学的Probit模型Logit模型比较中,Probit 模型的链接函数就是 Φ1 \Phi^{-1} ,其计算反向依赖误差函数的反函数 erf1 \operatorname{erf}^{-1} 。误差函数反函数的数值实现复杂度远高于误差函数本身,需采用专门的求根算法或有理逼近。

参见