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

  1. 变步长梯形法

对于梯形法算积分值Python 梯形法求积分的精度_解决方案,将积分区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成n等分,则共有梯形法算积分值Python 梯形法求积分的精度_解决方案_03个分点:
梯形法算积分值Python 梯形法求积分的精度_解决方案_04
设此时用复化梯形公式求得的积分值为梯形法算积分值Python 梯形法求积分的精度_递推公式_05。进一步地,将积分区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成2n等分,则共有梯形法算积分值Python 梯形法求积分的精度_解决方案_07个分点,设此时用复化梯形公式求得的积分值为梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08。显然,在计算梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08的过程中所用的分点有一半是计算梯形法算积分值Python 梯形法求积分的精度_递推公式_05时用过的,重复计算是浪费。为此,有必要研究梯形法算积分值Python 梯形法求积分的精度_递推公式_05梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08之间的关系。

对于任意一个子区间梯形法算积分值Python 梯形法求积分的精度_递推公式_13,用梯形公式计算的积分值记为梯形法算积分值Python 梯形法求积分的精度_递推公式_14,在其中间增加一个节点梯形法算积分值Python 梯形法求积分的精度_解决方案_15后,用复化梯形公式计算的积分值为梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_16。则有:
梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_17
分析梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_16梯形法算积分值Python 梯形法求积分的精度_递推公式_14的关系,可得:
梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_20
所以
梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_21

梯形法算积分值Python 梯形法求积分的精度_解决方案_22
式中,梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_23为区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成n等分再次二分而增加的新节点的函数值之和。要特别注意的是梯形法算积分值Python 梯形法求积分的精度_递推公式_25为区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成n等分的步长,梯形法算积分值Python 梯形法求积分的精度_解决方案_27为区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成2n等分的步长,梯形法算积分值Python 梯形法求积分的精度_解决方案_29

如果将区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02继续分成4n等分、8n等分、···、2n(i=0,1,···)等分,均可按照公式(1)递推计算出来。

在实际计算中,利用某二分前后两次积分值之差的绝对值梯形法算积分值Python 梯形法求积分的精度_递推公式_31,来判断积分近似值梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08是否满足精度要求。

  1. 变步长梯形法的误差

在变步长梯形法中,把区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成n等分后,用复化梯形公式计算积分I的近似值为梯形法算积分值Python 梯形法求积分的精度_递推公式_05,截断误差为:
梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_35
把区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02分成2n等分后,用复化梯形公式计算积分I的近似值为梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08,截断误差为:
梯形法算积分值Python 梯形法求积分的精度_解决方案_38
梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_39在区间梯形法算积分值Python 梯形法求积分的精度_解决方案_02上变化不大时,有梯形法算积分值Python 梯形法求积分的精度_解决方案_41,故
梯形法算积分值Python 梯形法求积分的精度_递推公式_42
整理,得事后误差估计式为:
梯形法算积分值Python 梯形法求积分的精度_解决方案_43
也就是说,用前后两次计算的结果之差来估计误差,两者越接近则精度越高。这是所谓的误差的时候估计。将梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_44梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08的误差补偿给梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08,得到比梯形法算积分值Python 梯形法求积分的精度_梯形法算积分值Python_08更精确的积分近似值:
梯形法算积分值Python 梯形法求积分的精度_解决方案_48