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

  • Post author:
  • Post category:其他


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

  1. 变步长梯形法

对于



I

=

a

b

f

(

x

)

d

x

I=\int_a^bf(x)dx






I




=




















a








b




















f


(


x


)


d


x





,将积分区间



[

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







x










k




















=








a




+








k


H




(


k




=








0


,




1


,




2


,











,




n


)


,




H




=








(


b













a


)


/


n







设此时用复化梯形公式求得的积分值为



T

n

T_n







T










n





















。进一步地,将积分区间



[

a

,

b

]

[a,b]






[


a


,




b


]





分成2n等分,则共有



2

n

+

1

2n+1






2


n




+








1





个分点,设此时用复化梯形公式求得的积分值为



T

2

n

T_{2n}







T











2


n






















。显然,在计算



T

2

n

T_{2n}







T











2


n






















的过程中所用的分点有一半是计算



T

n

T_n







T










n





















时用过的,重复计算是浪费。为此,有必要研究



T

n

T_n







T










n

























T

2

n

T_{2n}







T











2


n






















之间的关系。

对于任意一个子区间



[

x

k

,

x

k

+

1

]

[x_k,x_{k+1}]






[



x










k


















,





x











k


+


1



















]





,用梯形公式计算的积分值记为



T

1

,

k

T_{1,k}







T











1


,


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})







x











k


+














2
















1








































=




















2
















1





















(



x










k




















+









x











k


+


1



















)





后,用复化梯形公式计算的积分值为



T

2

,

k

T_{2,k}







T











2


,


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})]







T











1


,


k





















=



















2














1




















H


[


f


(



x










k


















)




+








f


(



x











k


+


1



















)


]









T











2


,


k





















=



















4














1




















H


[


f


(



x










k


















)




+








2


f


(



x











k


+














2
















1






































)




+








f


(



x











k


+


1



















)


]







分析



T

2

,

k

T_{2,k}







T











2


,


k


























T

1

,

k

T_{1,k}







T











1


,


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}})







T











2


,


k





















=



















2














1





















T











1


,


k





















+



















2














1




















H







f


(



x











k


+














2
















1






































)







所以





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}







T











2


n





















=



















2














1





















T










n




















+



















2














1




















H













k


=


0



















n





1




















f


(



x











k


+














2
















1






































)







(



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}})







T











2


n





















=



















2














1





















T










n




















+








h













k


=


0



















n





1




















f


(



x











k


+














2
















1






































)







式中,



k

=

0

n

1

f

(

x

k

+

1

2

)

\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}})



















k


=


0










n





1





















f


(



x











k


+














2
















1






































)





为区间



[

a

,

b

]

[a,b]






[


a


,




b


]





分成n等分再次二分而增加的新节点的函数值之和。要特别注意的是



H

=

(

b

a

)

/

n

H=(b-a)/n






H




=








(


b













a


)


/


n





为区间



[

a

,

b

]

[a,b]






[


a


,




b


]





分成n等分的步长,



h

=

b

a

2

n

h=\frac{b-a}{2n}






h




=




















2


n
















b





a
























为区间



[

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







x











k


+














2
















1








































=








a




+








(


k




+




















2
















1





















)


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










T











2


n































T










n
































ϵ





,来判断积分近似值



T

2

n

T_{2n}







T











2


n






















是否满足精度要求。

  1. 变步长梯形法的误差

在变步长梯形法中,把区间



[

a

,

b

]

[a,b]






[


a


,




b


]





分成n等分后,用复化梯形公式计算积分I的近似值为



T

n

T_n







T










n





















,截断误差为:





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)







R










n




















=








I














T










n




















=






















1


2














(


b









a


)




















(













n














b









a





















)










2










f











(


2


)










(



η










n


















)







把区间



[

a

,

b

]

[a,b]






[


a


,




b


]





分成2n等分后,用复化梯形公式计算积分I的近似值为



T

2

n

T_{2n}







T











2


n






















,截断误差为:





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})







R











2


n





















=








I














T











2


n





















=






















1


2














(


b









a


)




















(













2


n














b









a





















)










2










f











(


2


)










(



η











2


n



















)











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


)










(



η











2


n



















)





,故





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}


















R










n































R











2


n







































=



















1










T










n






























1










T











2


n



























































4














1

























整理,得事后误差估计式为:





1

T

2

n

1

3

(

T

2

n

T

n

)

1-T_{2n}\approx \frac{1}{3}(T_{2n}-T_n)






1














T











2


n









































3














1




















(



T











2


n































T










n


















)







也就是说,用前后两次计算的结果之差来估计误差,两者越接近则精度越高。这是所谓的误差的时候估计。将



I

I






I









T

2

n

T_{2n}







T











2


n






















的误差补偿给



T

2

n

T_{2n}







T











2


n






















,得到比



T

2

n

T_{2n}







T











2


n






















更精确的积分近似值:





I

=

4

3

T

2

n

1

3

T

n

\overline I=\frac{4}{3}T_{2n}-\frac{1}{3}T_n













I















=



















3














4





















T











2


n









































3














1





















T










n

























版权声明:本文为SanyHo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。