变步长积分法 | 梯形法 + 误差

复化求积方法对提高积分精度是行之有效的,但必须事先给出恰当的步长h。如果步长太长,则难以保证精度,太小则增加计算量。在实际应用中,一般采用变步长积分法来解决该问题,即让步长不断减小,考察在不同步长条件下的计算结果的精度,一旦计算结果满足精度要求,则可以停止计算,给出正确答案。这是面向计算机的解决方案。在人工计算的条件下,一般采用一种特殊的变步长法,即采用逐次二分积分区间的方法得到不断减半的步长,再应用复化求积方法,可推导出某种递推公式,既可减少计算量,又可以较快地达到计算精度的要求。

  1. 变步长梯形法

对于 I = ∫ a b f ( x ) d x I=\int_a^bf(x)dx I=abf(x)dx,将积分区间 [ a , b ] [a,b] [a,b]分成n等分,则共有 n + 1 n+1 n+1个分点:
x k = a + k H ( k = 0 , 1 , 2 , ⋯   , n ) , H = ( b − a ) / n x_k=a+kH \quad (k=0,1,2,\cdots,n),H=(b-a)/n xk=a+kH(k=0,1,2,,n),H=(ba)/n
设此时用复化梯形公式求得的积分值为 T n T_n Tn。进一步地,将积分区间 [ a , b ] [a,b] [a,b]分成2n等分,则共有 2 n + 1 2n+1 2n+1个分点,设此时用复化梯形公式求得的积分值为 T 2 n T_{2n} T2n。显然,在计算 T 2 n T_{2n} T2n的过程中所用的分点有一半是计算 T n T_n Tn时用过的,重复计算是浪费。为此,有必要研究 T n T_n Tn T 2 n T_{2n} T2n之间的关系。

对于任意一个子区间 [ x k , x k + 1 ] [x_k,x_{k+1}] [xk,xk+1],用梯形公式计算的积分值记为 T 1 , k T_{1,k} T1,k,在其中间增加一个节点 x k + 1 2 = 1 2 ( x k + x k + 1 ) x_{k+\frac{1}{2}}=\frac{1}{2}(x_k+x_{k+1}) xk+21=21(xk+xk+1)后,用复化梯形公式计算的积分值为 T 2 , k T_{2,k} T2,k。则有:
T 1 , k = 1 2 H [ f ( x k ) + f ( x k + 1 ) ] T 2 , k = 1 4 H [ f ( x k ) + 2 f ( x k + 1 2 ) + f ( x k + 1 ) ] T_{1,k}=\frac{1}{2}H[f(x_k)+f(x_{k+1})] \\ T_{2,k}=\frac{1}{4}H[f(x_k)+2f(x_{k+\frac{1}{2}})+f(x_{k+1})] T1,k=21H[f(xk)+f(xk+1)]T2,k=41H[f(xk)+2f(xk+21)+f(xk+1)]
分析 T 2 , k T_{2,k} T2,k T 1 , k T_{1,k} T1,k的关系,可得:
T 2 , k = 1 2 T 1 , k + 1 2 H ⋅ f ( x k + 1 2 ) T_{2,k}=\frac{1}{2}T_{1,k}+\frac{1}{2}H·f(x_{k+\frac{1}{2}}) T2,k=21T1,k+21Hf(xk+21)
所以
T 2 n = 1 2 T n + 1 2 H ∑ k = 0 n − 1 f ( x k + 1 2 ) (1) T_{2n}=\frac{1}{2}T_n+\frac{1}{2}H\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}}) \tag{1} T2n=21Tn+21Hk=0n1f(xk+21)(1)

T 2 n = 1 2 T n + h ∑ k = 0 n − 1 f ( x k + 1 2 ) T_{2n}=\frac{1}{2}T_n+h\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}}) T2n=21Tn+hk=0n1f(xk+21)
式中, ∑ k = 0 n − 1 f ( x k + 1 2 ) \sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}}) k=0n1f(xk+21)为区间 [ a , b ] [a,b] [a,b]分成n等分再次二分而增加的新节点的函数值之和。要特别注意的是 H = ( b − a ) / n H=(b-a)/n H=(ba)/n为区间 [ a , b ] [a,b] [a,b]分成n等分的步长, h = b − a 2 n h=\frac{b-a}{2n} h=2nba为区间 [ a , b ] [a,b] [a,b]分成2n等分的步长, x k + 1 2 = a + ( k + 1 2 ) H x_{k+\frac{1}{2}}=a+(k+\frac{1}{2})H xk+21=a+(k+21)H

如果将区间 [ a , b ] [a,b] [a,b]继续分成4n等分、8n等分、···、2n(i=0,1,···)等分,均可按照公式(1)递推计算出来。

在实际计算中,利用某二分前后两次积分值之差的绝对值 ∣ T 2 n − T n ∣ ≤ ϵ |T_{2n}-T_n|\leq \epsilon T2nTnϵ,来判断积分近似值 T 2 n T_{2n} T2n是否满足精度要求。

  1. 变步长梯形法的误差

在变步长梯形法中,把区间 [ a , b ] [a,b] [a,b]分成n等分后,用复化梯形公式计算积分I的近似值为 T n T_n Tn,截断误差为:
R n = I − T n = − ( b − a ) 12 ( b − a n ) 2 f ( 2 ) ( η n ) R_n=I-T_n=-\frac{(b-a)}{12}(\frac{b-a}{n})^2f^{(2)}(\eta_n) Rn=ITn=12(ba)(nba)2f(2)(ηn)
把区间 [ a , b ] [a,b] [a,b]分成2n等分后,用复化梯形公式计算积分I的近似值为 T 2 n T_{2n} T2n,截断误差为:
R 2 n = I − T 2 n = − ( b − a ) 12 ( b − a 2 n ) 2 f ( 2 ) ( η 2 n ) R_{2n}=I-T_{2n}=-\frac{(b-a)}{12}(\frac{b-a}{2n})^2f^{(2)}(\eta_{2n}) R2n=IT2n=12(ba)(2nba)2f(2)(η2n)
f ( 2 ) ( η ) f^{(2)}(\eta) f(2)(η)在区间 [ a , b ] [a,b] [a,b]上变化不大时,有 f ( 2 ) ( η n ) ≈ f ( 2 ) ( η 2 n ) f^{(2)}(\eta_n)\approx f^{(2)}(\eta_{2n}) f(2)(ηn)f(2)(η2n),故
R 2 n R n = 1 − T 2 n 1 − T n ≈ 1 4 \frac{R_{2n}}{R_n}=\frac{1-T_{2n}}{1-T_n}\approx \frac{1}{4} RnR2n=1Tn1T2n41
整理,得事后误差估计式为:
1 − T 2 n ≈ 1 3 ( T 2 n − T n ) 1-T_{2n}\approx \frac{1}{3}(T_{2n}-T_n) 1T2n31(T2nTn)
也就是说,用前后两次计算的结果之差来估计误差,两者越接近则精度越高。这是所谓的误差的时候估计。将 I I I T 2 n T_{2n} T2n的误差补偿给 T 2 n T_{2n} T2n,得到比 T 2 n T_{2n} T2n更精确的积分近似值:
I ‾ = 4 3 T 2 n − 1 3 T n \overline I=\frac{4}{3}T_{2n}-\frac{1}{3}T_n I=34T2n31Tn

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值