数值积分的加速技巧(5)

2019-01-07 15:32

第21 页 共 52 页

1(T2n?Tn)?I?T2n 3这里I表示真值,从上式看到可以用 T2n?T?3?

来判断近似值T2n是否已满足要求。 下面就用这一思想编出程序解决问题。

例题2:用变步长复化梯形公式来计算以下积分:

14, dx?01?x2?0x2dx 11要求误差不超过10?4。

源程序及运行后结果见附录3。它的收敛速度与上面的定步长的复化梯形求积公式相同,只是在对于精度有要求的时候可以方便地达到精度要求。我们看到,对于以上两个积分,精度达到10?4时它分别迭代了8次和7次。

3.2 抛物线公式的算法思想及程序设计

在这里我们也主要介绍两种很常用的抛物线公式:定步长抛物线公式以及变步长抛物线公式。

3.2.1定步长的复化抛物线公式

定步长的复化抛物线积分公式的运用像定步长的复化梯形公式一样,通常用于对于积分区间的长度有一定要求,或者是用于一些表函数,它的基本思想就是:当步长给定之后,在每一个积分的小区间上面运用抛物线公式求积分。

下面我们还是来看上面的例题在这里运用抛物线公式会得到什么样的结果: 例题3:用定步长抛物线公式来计算以下积分:

4?01?x2dx,

1

第22 页 共 52 页

要求将区间分为2i(i=1,2,?10)份。

源程序及运行后结果见附录4。我们将其结果与定步长梯形求积公式的结果列表比较如下:

表三:定步长的复化梯形与抛物线公式比较示例 积分 n 2 4 8 16 32 64 128 256 512 1024 精确值

由上表我们可以看出,抛物线求积公式的收敛速度明显地快于梯形求积公式,它的每一步迭代的值都较梯形求积公式更加接近于精确解,因此,它是一种精确度较高的积分方法。

3.2.2变步长的复化抛物线公式

同样,对抛物线求积公式也可以用逐次分半的办法来处理,计算

S1,S2,?S,nS,n2f(x)??4dx 01?x21定步长的复化梯形积分结果 3.1000 3.1311 3.1389 3.1409 3.1414 3.1415 3.1415 3.1415 3.1415 3.1415 定步长的复化抛物线积分结果 3.1333 3.1415 3.1415 3.1415 3.1415 3.1415 3.1415 3.1415 3.1415 3.1415 3.1415 ?,

第23 页 共 52 页

hn(1)(2)(f(a)?f(b)?2Sn?4Sn),n?1,2,4,? 3b?a(1)其中,hn?,Sn是在原分点上函数值之和

2nSn?(1)Sn?f(x2)?f(x4)???f(x2n?2)

(2)而Sn是在原分点上函数值之和

(2)Sn?f(x1)?f(x3)???f(x2n?1),xi?a?ihn,i?1,2,?2n?1

再利用复化抛物线公式的误差估计可得 I?S2n?1(S2n?Sn) 15因此,抛物线公式的逐次分半算法以S2n?Sn?15?为停步标准,此时I?S2n为满足精度要求的积分近似值。 利用以上思想编程解题如下:

例题4:用变步长的复化抛物线公式来计算积分:

14 ?dx, ?x2dx 要求误差不超过10?4。 2001?x11源程序及运行结果见附录5。

由运行结果我们可以清楚地看到,对于上面两个积分,要达到同样的精度,复化抛物线公式迭代的次数分别为2次和7次。对于第一个积分而言,达到同样的精度,迭代次数相对于复化梯形求积公式迭代的8次是明显地减少了,但是从第二个积分的结果来看,复化抛物线求积公式仍然是一种很不理想的求积方法,它的迭代次数与复化梯形求积公式相同,并没有体现出明显的优越性。这也正是我们为什么要进一步研究收敛速度更高的算法的原因之一。

3.3 牛顿-柯特斯公式的算法思想及程序设计

在这里我们主要讨论n较小的牛顿-柯特斯公式以及n=4的复化柯特斯公式。

第24 页 共 52 页

3.3.1牛顿-柯特斯公式

简单的牛顿-柯特斯公式计算公式比较简单,知道了柯特斯系数之后只需将其带入公式即可。下面我们通过一个例子来说明简单牛顿-柯特斯公式的计算量和精度,以对这种方法进行综合的评判。

例题5:用1,到20阶牛顿-柯特斯公式来计算积分: ?4dx 01?x21源程序及运行结果见附录6。我们将结果列表如下:

表四:高阶牛顿-柯特斯公式的稳定性判别表 阶数n 1 2 3 4 5 6 7 8 9 10 精确解

函数f(x)?4仅在x??i处有奇点,从而此积分在理论上应该收敛于正常 1?x2数值积分值 3.000000000000000 3.133333333333333 3.138461538461538 3.142117647058823 3.141878417926011 3.141570855669216 3.141579302563190 3.141592673874376 3.141592696193490 3.141592749911249 阶数n 11 12 13 14 15 16 17 18 19 20 数值积分值 3.141592714224295 3.141592644147219 3.141592647371224 3.141592653970459 3.141592653853797 3.141592653611311 3.141592653603239 3.141592653584831 3.141592653586467 3.141592653590183 3.141592653589793值π,结果,由上表我们可以看出,在n=10之前收敛得很快,但其后结果则没有什么改善,反而有所波动。

由牛顿-柯特斯系数表我们可以看到,当n较大时,它的系数值也很大,而且符号是混合的。这时由于互相抵消会丢失不少有效数字,所以高阶牛顿-柯特斯法

第25 页 共 52 页

则在使用时必须小心,在积分时使用阶数逐渐增加的牛顿-柯特斯公式的方法是不值得推崇的。下面我们将牛顿-柯特斯积分结果同复化抛物线公式积分结果相比较,源程序见附录7,比较如下:

表五:牛顿-柯特斯方法与复化抛物线公式比较 积分I??变步长复化抛物线公式 迭代次数 2 结果 精度

从以上计算实例看出,从计算工作量和计算精度等方面综合考虑,相同的条件和精度要求,一般的数值积分大都选用变步长复化抛物线公式。因此,牛顿-柯特斯公式在平常积分中的应用并不是很广泛。

3.3.2复化柯特斯公式

在n个小区间[xxk+

k4dx 01?x21单步牛顿-柯特斯公式 阶数 6 3.141570855669216 0.000021 3.141592502458706 结果 0.0精度 ,x

k?1]内增加3个分点x

k+

h, x4k+

2h, 43h(k=0,1,2,?n-1)此时,区间[a,b]上共有4n+1个等距节点,两节点之间的4h距离(新的步长)h’=。

4在小区间[x0,x1]上的牛顿-柯特斯公式为

??

x1x0f(x)dx?h[732h1223237f(x0)?f(x0?)?f(x0?h)?f(x0?h)?f(x1)] 9090490490490同理

x2x1f(x)dx?h[732h1223237f(x1)?f(x1?)?f(x1?h)?f(x1?h)?f(x2)] ?? 9090490490490732h1223237f(xn?1)?f(xn?1?)?f(xn?1?h)?f(xn?1?h)?f(xn)] 9090490490490?xnxn?1f(x)dx?h[


数值积分的加速技巧(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014年上半年安全生产工作总结1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: