误差函数 (Error Function)
误差函数 (Error Function),记作 erf ( x ) \operatorname{erf}(x) erf ( x ) ,是统计学、概率论和偏微分方程中一类重要的特殊函数 。它刻画了高斯分布下累积概率的积分形式,本质上与正态分布 的累积分布函数 (CDF) 等价。误差函数在扩散过程、热传导方程、通信理论和计量经济学中均有广泛应用。
误差函数的形状为 S 形(sigmoid)曲线,在 x = 0 x=0 x = 0 处过原点,随着 x → + ∞ x \to +\infty x → + ∞ 趋近于 1,随着 x → − ∞ x \to -\infty x → − ∞ 趋近于 -1。这一性质使其成为平滑阈值函数和概率映射的自然候选。
定义
误差函数的标准定义为:
erf ( x ) = 2 π ∫ 0 x e − t 2 d t \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{0}^{x} e^{-t^2} \, dt erf ( x ) = π 2 ∫ 0 x e − t 2 d t
其中积分变量 t t t 遍历 [ 0 , x ] [0, x] [ 0 , x ] ,被积函数 e − t 2 e^{-t^2} e − t 2 是高斯核。因子 2 π \frac{2}{\sqrt{\pi}} π 2 确保了 erf ( + ∞ ) = 1 \operatorname{erf}(+\infty) = 1 erf ( + ∞ ) = 1 ,其来源为高斯积分:
∫ 0 ∞ e − t 2 d t = π 2 \int_{0}^{\infty} e^{-t^2} \, dt = \frac{\sqrt{\pi}}{2} ∫ 0 ∞ e − t 2 d t = 2 π
与误差函数紧密相关的是互补误差函数 (Complementary Error Function),记为 erfc ( x ) \operatorname{erfc}(x) erfc ( x ) :
erfc ( x ) = 1 − erf ( x ) = 2 π ∫ x ∞ e − t 2 d t \operatorname{erfc}(x) = 1 - \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{x}^{\infty} e^{-t^2} \, dt erfc ( x ) = 1 − erf ( x ) = π 2 ∫ x ∞ e − t 2 d t
互补误差函数在渐近分析和尾部概率计算中更为便捷,因为 erfc ( x ) \operatorname{erfc}(x) erfc ( x ) 直接给出了正态分布的双侧尾概率(经适当缩放)。
基本性质
误差函数具有以下基本数学性质:
一. 奇函数性: erf ( − x ) = − erf ( x ) \operatorname{erf}(-x) = -\operatorname{erf}(x) erf ( − x ) = − erf ( x ) 。这意味着误差函数关于原点对称,只需在 x ≥ 0 x \geq 0 x ≥ 0 上定义表列即可覆盖全体实数。
二. 导函数: 由微积分基本定理直接得到:
d d x erf ( x ) = 2 π e − x 2 \frac{d}{dx} \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} e^{-x^2} d x d erf ( x ) = π 2 e − x 2
导函数本身是一个高斯函数,形状为钟形曲线,在 x = 0 x=0 x = 0 处取得最大值 2 π ≈ 1.128 \frac{2}{\sqrt{\pi}} \approx 1.128 π 2 ≈ 1.128 。
三. 高阶导数与 Hermite 多项式: 误差函数的 n n n 阶导数可表达为 Hermite 多项式乘以高斯因子:
d n + 1 d x n + 1 erf ( x ) = 2 π ( − 1 ) n H n ( x ) e − x 2 \frac{d^{n+1}}{dx^{n+1}} \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} (-1)^n H_n(x) e^{-x^2} d x n + 1 d n + 1 erf ( x ) = π 2 ( − 1 ) n H n ( x ) e − x 2
其中 H n ( x ) H_n(x) H n ( x ) 是物理学家版本的Hermite多项式 。
四. 泰勒级数: 在 x = 0 x=0 x = 0 附近,误差函数的麦克劳林展开为:
erf ( x ) = 2 π ∑ n = 0 ∞ ( − 1 ) n x 2 n + 1 n ! ( 2 n + 1 ) = 2 π ( x − x 3 3 + x 5 10 − x 7 42 + ⋯ ) \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) erf ( x ) = π 2 n = 0 ∑ ∞ n ! ( 2 n + 1 ) ( − 1 ) n x 2 n + 1 = π 2 ( x − 3 x 3 + 10 x 5 − 42 x 7 + ⋯ )
该级数对全体实数收敛,但在 ∣ x ∣ |x| ∣ x ∣ 较大时收敛缓慢,需采用渐近展开。
五. 渐近行为(x → + ∞ x \to +\infty x → + ∞ ): 互补误差函数的渐近展开为:
erfc ( x ) ∼ e − x 2 x π ( 1 − 1 2 x 2 + 3 4 x 4 − 15 8 x 6 + ⋯ ) , 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 erfc ( x ) ∼ x π e − x 2 ( 1 − 2 x 2 1 + 4 x 4 3 − 8 x 6 15 + ⋯ ) , x → + ∞
这是发散级数(渐近级数),截断到适当项可提供极佳的数值近似。
与正态分布的关系
误差函数与正态分布 的关系是其最重要的应用桥梁。若随机变量 X ∼ N ( μ , σ 2 ) X \sim N(\mu, \sigma^2) X ∼ N ( μ , σ 2 ) ,则其累积分布函数 Φ ( x ) \Phi(x) Φ ( x ) 可经由误差函数表达:
Φ ( x ) = 1 2 [ 1 + erf ( x − μ σ 2 ) ] \Phi(x) = \frac{1}{2} \left[ 1 + \operatorname{erf}\left( \frac{x - \mu}{\sigma\sqrt{2}} \right) \right] Φ ( x ) = 2 1 [ 1 + erf ( σ 2 x − μ ) ]
等价地:
erf ( x ) = 2 Φ ( x 2 ) − 1 \operatorname{erf}(x) = 2\Phi(x\sqrt{2}) - 1 erf ( x ) = 2Φ ( x 2 ) − 1
由此,任意正态概率的计算均可归结为误差函数的求值。例如,标准正态分布落在 [ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] 内的概率为:
P ( ∣ Z ∣ ≤ 1 ) = erf ( 1 2 ) ≈ 0.6827 P(|Z| \leq 1) = \operatorname{erf}\left( \frac{1}{\sqrt{2}} \right) \approx 0.6827 P ( ∣ Z ∣ ≤ 1 ) = erf ( 2 1 ) ≈ 0.6827
这对应于统计推断中最常见的"68-95-99.7 法则"的基础值。互补误差函数则直接给出尾部概率:
P ( Z > x ) = 1 2 erfc ( x 2 ) P(Z > x) = \frac{1}{2} \operatorname{erfc}\left( \frac{x}{\sqrt{2}} \right) P ( Z > x ) = 2 1 erfc ( 2 x )
在假设检验 和置信区间 的构造中,p 值的计算实质上是误差函数(或互补误差函数)的求值。
在其他分布中的应用
误差函数不仅限于正态分布。许多涉及高斯核的积分都可以用误差函数封闭表达:
对数正态分布: 对数正态分布 的 CDF 可用误差函数表示为 1 2 + 1 2 erf ( ln x − μ σ 2 ) \frac{1}{2} + \frac{1}{2} \operatorname{erf}\left( \frac{\ln x - \mu}{\sigma\sqrt{2}} \right) 2 1 + 2 1 erf ( σ 2 l n x − μ ) 。
Lévy 分布和稳定分布: 某些参数的稳定分布 的密度和分布函数可借助误差函数及相关 Fresnel 积分表达。
折叠正态分布: 折叠正态分布(Folded Normal)的密度和矩均涉及误差函数,常用于分析绝对偏差和测量误差模型。
概率积分变换: 在Copula函数 理论和依赖建模中,将数据变换为均匀分布时,误差函数作为正态 CDF 的代理频繁出现。
在偏微分方程与物理学中的应用
误差函数的原始动机来自热传导和扩散问题。考虑一维热方程(扩散方程):
∂ u ∂ t = D ∂ 2 u ∂ x 2 \frac{\partial u}{\partial t} = D \frac{\partial^2 u}{\partial x^2} ∂ t ∂ u = D ∂ x 2 ∂ 2 u
当初始条件为阶跃函数 u ( x , 0 ) = u 0 ⋅ 1 x ≥ 0 u(x, 0) = u_0 \cdot \mathbf{1}_{x \geq 0} u ( x , 0 ) = u 0 ⋅ 1 x ≥ 0 时,解为:
u ( x , t ) = u 0 2 erfc ( x 2 D t ) u(x, t) = \frac{u_0}{2} \operatorname{erfc}\left( \frac{x}{2\sqrt{Dt}} \right) u ( x , t ) = 2 u 0 erfc ( 2 D t x )
这一解描述了浓度或温度从界面逐步扩散的平滑过渡,误差函数自然地刻画了扩散前缘的形态。
在Black-Scholes-Merton 期权定价 中,误差函数通过正态 CDF 进入公式。欧式看涨期权的定价公式为:
C = S 0 N ( d 1 ) − K e − r T N ( d 2 ) C = S_0 N(d_1) - K e^{-rT} N(d_2) C = S 0 N ( d 1 ) − K e − r T N ( d 2 )
其中 N ( ⋅ ) N(\cdot) N ( ⋅ ) 即 Φ ( ⋅ ) \Phi(\cdot) Φ ( ⋅ ) ,其计算最终归结为误差函数的求值。d 1 d_1 d 1 和 d 2 d_2 d 2 分别为:
d 1 = ln ( S 0 / K ) + ( r + σ 2 / 2 ) T σ T , d 2 = d 1 − σ T d_1 = \frac{\ln(S_0/K) + (r + \sigma^2/2)T}{\sigma\sqrt{T}}, \quad d_2 = d_1 - \sigma\sqrt{T} d 1 = σ T ln ( S 0 / K ) + ( r + σ 2 /2 ) T , d 2 = d 1 − σ T
因此,整个Black-Scholes-Merton模型 的数值实现离不开高效且精确的误差函数计算。
在通信工程中,误差函数用于计算数字通信的比特误码率 (Bit Error Rate, BER)。对于加性高斯白噪声 (AWGN) 信道中的二进制相移键控 (BPSK),误码率为:
BER = 1 2 erfc ( E b N 0 ) \text{BER} = \frac{1}{2} \operatorname{erfc}\left( \sqrt{\frac{E_b}{N_0}} \right) BER = 2 1 erfc ( N 0 E b )
其中 E b / N 0 E_b/N_0 E b / N 0 为每比特能量与噪声功率谱密度之比。
数值计算
在实际应用中,误差函数的计算通常使用以下策略:
一. 小 x x x 区域(∣ x ∣ < 1 |x| < 1 ∣ x ∣ < 1 ): 直接使用泰勒级数或切比雪夫有理逼近,收敛快且稳定。
二. 中间区域(1 ≤ ∣ x ∣ < 6 1 \leq |x| < 6 1 ≤ ∣ x ∣ < 6 ): 使用有理切比雪夫逼近或 Cody 算法,通过精心设计的有理函数比值实现高精度。经典实现见于 Cody (1969) 和 Abramowitz \& Stegun 的《数学函数手册》。
三. 大 x x x 区域(∣ x ∣ ≥ 6 |x| \geq 6 ∣ x ∣ ≥ 6 ): 改用 erfc ( x ) \operatorname{erfc}(x) 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 π γ ( 1 2 , x 2 ) \operatorname{erf}(x) = \frac{1}{\sqrt{\pi}} \gamma\left( \frac{1}{2}, x^2 \right) erf ( x ) = π 1 γ ( 2 1 , x 2 ) ,其中 γ ( a , z ) \gamma(a, z) γ ( a , z ) 是下不完全Gamma函数 。
合流超几何函数: erf ( x ) = 2 x π 1 F 1 ( 1 2 ; 3 2 ; − x 2 ) \operatorname{erf}(x) = \frac{2x}{\sqrt{\pi}} {}_1F_1\left( \frac{1}{2}; \frac{3}{2}; -x^2 \right) erf ( x ) = π 2 x 1 F 1 ( 2 1 ; 2 3 ; − x 2 ) ,其中 1 F 1 {}_1F_1 1 F 1 是 Kummer 合流超几何函数。
虚误差函数: 虚误差函数定义为 erfi ( x ) = − i erf ( i x ) = 2 π ∫ 0 x e t 2 d t \operatorname{erfi}(x) = -i \operatorname{erf}(ix) = \frac{2}{\sqrt{\pi}} \int_0^x e^{t^2} dt erfi ( x ) = − i erf ( i x ) = π 2 ∫ 0 x e t 2 d t ,与 Dawson 积分密切相关。
Fresnel 积分: 在复数域中,误差函数与 Fresnel 积分可通过复变量的误差函数统一处理,这在衍射理论和光学中具有应用。
常见误区与注意事项
不同学科对误差函数的归一化约定可能不同——有些文献定义误差函数不带 2 π \frac{2}{\sqrt{\pi}} π 2 因子,使用时需仔细核对定义。
erf ( x ) \operatorname{erf}(x) erf ( x ) 和标准正态 CDF Φ ( x ) \Phi(x) Φ ( x ) 之间的转换因子是 2 \sqrt{2} 2 而非 2:Φ ( x ) = 1 2 [ 1 + erf ( x / 2 ) ] \Phi(x) = \frac{1}{2} [1 + \operatorname{erf}(x / \sqrt{2})] Φ ( x ) = 2 1 [ 1 + erf ( x / 2 )] 。经验上这是最频繁出错的转换。
在大 x x x 时直接计算 1 − erf ( x ) 1 - \operatorname{erf}(x) 1 − erf ( x ) 会导致灾难性抵消(两个接近相等的数相减损失有效数字),应始终使用 erfc ( x ) \operatorname{erfc}(x) erfc ( x ) 。
在计量经济学的Probit模型 和Logit模型 比较中,Probit 模型的链接函数就是 Φ − 1 \Phi^{-1} Φ − 1 ,其计算反向依赖误差函数的反函数 erf − 1 \operatorname{erf}^{-1} erf − 1 。误差函数反函数的数值实现复杂度远高于误差函数本身,需采用专门的求根算法或有理逼近。
参见