复合辛普森公式的误差分析与步长选择
我将为您讲解复合辛普森公式的误差分析与步长选择问题。这是一个在数值积分中非常实用的话题,能帮助您理解如何在实际计算中控制精度。
问题描述
假设我们需要计算定积分 ∫ₐᵇ f(x)dx,其中f(x)在区间[a,b]上四阶连续可导。当使用复合辛普森公式时,如何分析其截断误差?如何根据所需的精度来选择合适的子区间个数(即步长)?
理论基础:辛普森公式的基本形式
首先回顾一下基本的辛普森公式:对于区间[x₀, x₂],其中x₁=(x₀+x₂)/2,辛普森公式为:
∫_{x₀}^{x₂} f(x)dx ≈ (h/3)[f(x₀) + 4f(x₁) + f(x₂)],其中h=(x₂-x₀)/2
这个公式具有很高的代数精度,对于三次及以下的多项式能给出精确结果。
复合辛普森公式的构造
当区间[a,b]较大时,我们需要将其分割成多个子区间。设将[a,b]等分为n个小区间(n为偶数),则每个小区间长度为H=(b-a)/n,节点为xₖ=a+kH (k=0,1,...,n)。
复合辛普森公式为:
Sₙ = (H/3)[f(x₀) + 4f(x₁) + 2f(x₂) + 4f(x₃) + 2f(x₄) + ... + 2f(xₙ₋₂) + 4f(xₙ₋₁) + f(xₙ)]
误差分析推导
现在我们来分析复合辛普森公式的截断误差。
- 单个子区间上的误差
对于每个子区间[x₂ᵢ, x₂ᵢ₊₂],基本辛普森公式的误差为:
Eᵢ = -[(x₂ᵢ₊₂ - x₂ᵢ)⁵/(2880)]f⁽⁴⁾(ξᵢ),其中ξᵢ ∈ (x₂ᵢ, x₂ᵢ₊₂)
由于每个子区间长度为2H,所以x₂ᵢ₊₂ - x₂ᵢ = 2H,代入得:
Eᵢ = -[(2H)⁵/(2880)]f⁽⁴⁾(ξᵢ) = -(32H⁵/2880)f⁽⁴⁾(ξᵢ) = -(H⁵/90)f⁽⁴⁾(ξᵢ)
- 整体误差
整个区间上有n/2个子区间,总误差为:
E = ∑ᵢ Eᵢ = -(H⁵/90)∑ᵢ f⁽⁴⁾(ξᵢ)
根据积分中值定理,存在ξ∈(a,b),使得:
∑ᵢ f⁽⁴⁾(ξᵢ) = (n/2)f⁽⁴⁾(ξ)
代入H=(b-a)/n,得到总误差:
E = -(H⁵/90) × (n/2)f⁽⁴⁾(ξ) = -[(b-a)H⁴/(180)]f⁽⁴⁾(ξ)
步长选择策略
现在我们来解决如何根据精度要求选择步长。
-
误差估计公式
由误差表达式E = -[(b-a)H⁴/(180)]f⁽⁴⁾(ξ),我们可以得到误差的界:
|E| ≤ [(b-a)H⁴/(180)] max|f⁽⁴⁾(x)|,x∈[a,b] -
步长计算公式
如果要求误差不超过ε,则需要满足:
[(b-a)H⁴/(180)] max|f⁽⁴⁾(x)| ≤ ε
解得:
H⁴ ≤ [180ε]/[(b-a) max|f⁽⁴⁾(x)|]
因此,步长应满足:
H ≤ {180ε/[(b-a) max|f⁽⁴⁾(x)|]}^{1/4}
对应的子区间个数为:
n = (b-a)/H ≥ (b-a) × {[(b-a) max|f⁽⁴⁾(x)|]/(180ε)}^{1/4}
实际应用示例
考虑积分∫₀¹ eˣ dx,真实值为e-1≈1.71828。
-
误差分析:f⁽⁴⁾(x)=eˣ,在[0,1]上max|f⁽⁴⁾(x)|=e≈2.71828
-
步长选择:若要求误差ε≤10⁻⁶,则:
H ≤ {180×10⁻⁶/[(1)×2.71828]}^{1/4} ≈ 0.092
n ≥ 1/0.092 ≈ 10.87,取n=12(偶数) -
验证计算:用n=12计算,结果与真实值误差约10⁻⁷,满足精度要求。
实用建议
在实际计算中,如果f⁽⁴⁾(x)的界难以估计,可以采用自适应策略:先以较大的n计算,再以2n计算,比较两次结果的差值来估计误差,根据需要调整步长。
这个误差分析和步长选择方法确保了复合辛普森公式在实际应用中的可靠性和效率。