喻文健-数值分析与算法-第单元七.pdf
1
10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
1
本帖代码和教程有Matlab技术论坛原创,原帖参见http://www.matlabsky.com/viewthread.php?tid=3885 一、数值积分基本公式 数值求积基本通用公式如下 Eqn1.gif (1.63 KB) 2009-11-20 23:23 xk:求积节点 Ak:求积系数,与f(x)无关 数值积分要做的就是确定上式中的节点xk和系数Ak。可以证明当求积系数Ak全为正时,上述数值积分计算过程是稳定。 二、插值型数值积分公式 对f(x)给定的n+1个节点进行Lagrange多项式插值,故 Eqn2.gif (2.95 KB) 2009-11-20 23:23 即求积系数为 Eqn3.gif (3.29 KB) 2009-11-20 23:23 三、牛顿-柯特斯数值积分公式 当求积节点在[a,b]等间距分布时,插值型积分公式(先使用Lagrange对节点进行多项式插值,再计算求积系数,最后求积分值)称为Newton-Cotes积分公式。 由于Newton-Cotes积分是通过Lagrange多项式插值变化而来的,我们都知道高次多项式插值会出现Runge振荡现象,因此会导致高阶Newton-Cotes公式不稳定。 Newton-Cotes积分公式的求积系数为 Eqn4.gif (3.38 KB) 2009-11-20 23:28 其中C(k,n)称为柯特斯系数。 (1)当n=1时,Newton-Cotes公式即为梯形公式 Eqn5.gif (1.68 KB) 2009-11-20 23:28 容易证明上式具有一次代数精度(对于Newton-Cotes积分公式,n为奇数时有n次迭代精度,n为偶数时具有n+1次精度,精度越高积分越精确,同时计算量也越大) (2)当n=2时,Newton-Cotes公式即为辛普森(Simpson)公式或者抛物线公式 Eqn6.gif (2.04 KB) 2009-11-20 23:28 上式具有3次迭代精度 (3)当n=4时,Newton-Cotes公式称为科特斯(Cotes)公式 Eqn7.gif (2.68 KB) 2009-11-20 23:28 上式具有5次迭代精度。由于n=3和n=2时具有相同的迭代精度,但是n=2时计算量小,故n=3的Newton-Cotes积分公式用的很少 (4)当≥8时,通过计算可以知道,在n=8时柯特斯系数出现负值 由于数值积分稳定的条件是求积系数Ak必须为正,所以n>=8以上高阶Newton-Cotes公式,我们不能保证积分的稳定性(其根本原因是,Newton-Cotes公式是由Lagrange插值多项推导出来的,而高阶多项式会出现Rung现象)。 四、复化求解公式 n阶Newton-Cotes公式只能有n+1个积分节点,但是高阶Newton-Cotes公式由不稳定。为了提高大区间的数值积分精度,我们采用了分段积分的方法,即先将原区间划分成若干小区间,然后对每一个小区间使用Newton-Cotes积分公式,这就是复化Newton-Cotes求积公式。 (1)当n=1时,称为复化梯形公式。将[a,b]等分为n份,子区间长度为h=(b-a)/n,则复化梯形公式为 (注意:复化求解公式不需要求积子区间等间距,只是Newton-Cotes公式分段积分时自动对小区间进行等分,我们这里采用等分子区间是为了便于计算而已) Eqn8.gif (2.18 KB) 2009-11-20 23:28 (2)当n=2时,称为复化辛普森公式。 Eqn9.gif (2.96 KB) 2009-11-20 23:28 五、Newton-Cotes数值积分公式Matlab代码
2019-12-21 20:21:34 126KB Matlab 技术论坛 牛顿 科特斯
1