
牛顿-柯特斯数值积分公式及其在MATLAB中的应用(Matlab技术论坛)。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本帖提供的代码和教程源自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)所示。具体而言,求积系数为 Eqn3.gif (3.29 KB)所示。
三、牛顿-柯特斯数值积分公式:当求积节点在[a,b]等间距分布时,采用插值型积分公式(即先使用Lagrange多项式插值来获得节点上的多项式近似值,然后计算求积系数,最后计算积分值)被称为Newton-Cotes积分公式。由于Newton-Cotes积分是通过Lagrange多项式插值变化而来的,而高次多项式插值可能导致Runge振荡现象,因此高阶Newton-Cotes公式的稳定性可能受到影响。 Newton-Cotes积分公式的求积系数表示为 Eqn4.gif (3.38 KB)所示;其中C(k,n)称为柯特斯系数。
(1)当n=1时,牛顿-柯特斯公式简化为梯形公式 Eqn5.gif (1.68 KB)所示。 值得注意的是,对于Newton-Cotes积分公式而言,当n为奇数时具有n次迭代精度;当n为偶数时则具有n+1次精度。 精度越高通常意味着更精确的积分结果,但同时也伴随着更大的计算量。
(2)当n=2时,牛顿-柯特斯公式变为辛普森(Simpson)公式或抛物线公式 Eqn6.gif (2.04 KB)所示。 该公式具有3次迭代精度。
(3)当n=4时,牛顿-柯特斯公式被称为科特斯(Cotes)公式 Eqn7.gif (2.68 KB)所示;其迭代精度为5次。
由于 n=3 和 n=2 时具有相同的迭代精度, 但 n=2 的计算量较小, 因此 n=3 的 Newton-Cotes 积分 公式应用较少。(4)当 n ≥ 8 时, 通过计算可以发现, 在 n = 8 时柯特斯系数出现负值;由于数值积分稳定的条件是要求积系数 Ak 必须为正, 因此 n ≥ 8 以上高阶 Newton-Cotes 公式无法保证积分的稳定性(其根本原因在于 Newton-Cotes 公式是由 Lagrange 插值多项式推导出来的, 而高次多项式会出现Rung现象)。
四、复化求解公式:为了提高大区间数值积分的精度, 我们采用了分段积分的方法, 即首先将原始区间划分成若干个小区间, 然后对每个小区间分别使用 Newton-Cotes 积分 公式; 这便是复化 Newton-Cotes 求积 公式。(1) 当 n = 1 时, 该方法被称为复化梯形公式;将 [a, b] 等分为 n 份, 子区间长度为 h = (b - a)/n , 则复化梯形 公式表示为 Eqn8.gif (2.18 KB)。 (2) 当 n = 2 时, 该方法被称为复化辛普森 公式;Eqn9.gif (2.96 KB)。
五、Newton-Cotes 数值积分 公式 Matlab 代码
全部评论 (0)


