当前位置:文档之家› 数值积分与微分方法

数值积分与微分方法

数值积分与微分摘要本文首先列举了一些常用的数值求积方法,一是插值型求积公式,以Ne w t o n C o t e s -公式为代表,并分析了复合型的Newton Cotes -公式;另一个是Gauss Ledendre -求积公式,并给出几个常用的Gauss Ledendre -求积公式。

其次,本文对数值微分方法进行分析,主要是差分型数值微分和插值型数值微分,都给出了几种常用的微分方法。

然后,本文比较了数值积分与微分的关系,发现数值积分与微分都与插值或拟合密不可分。

本文在每个方法时都分析了误差余项,并且在最后都给出了MATLAB 的调用程序。

关键词:插值型积分Gauss Ledendre -差分数值微分插值型数值微分 MATLAB一、常用的积分方法计算积分时,根据Newton Leibniz -公式,()()()baf x dx F b F a =-⎰但如果碰到以下几种情况:1)被积函数以一组数据形式表示;2)被积函数过于特殊或者原函数无法用初等函数表示 3)原函数十分复杂难以计算这些现象中,Newton Leibniz -公式很难发挥作用,只能建立积分的近似计算方法,数值积分是常用的近似计算的方法。

1.1 插值型积分公式积分中的一个常用方法是利用插值多项式来构造数值求积公式,具体的步骤如下: 在积分区间上[,]a b 上取一组节点:01201,,,,()n n x x x x a x x x b ≤<<≤ 。

已知()k x f 的函数值,作()x f 的n 次插值多项式,则(1)()10()()()()()(1)!n nx n n k k n k f f L x R x f x l x w x n ++==+=++∑其中,()k l x 为n 次插值基函数,则得(1)+10()(()())1=[()]()[()](1)!bbn n aa nbb n k k n a a k f x dx L x R x dxl x dx f x f x w x dx n ξ+==+++⎰⎰∑⎰⎰()公式写成一般形式:()()[]nbk k n ak f x dx A f x R f ==+∑⎰其中,01100110()()()()()()()()()bbk k k k a a k k k k k k x x x x x x x x A l x dx dx x x x x x x x x -+-+----==----⎰⎰(1)+11[][()](1)!b n n n aR f f x w x dx n ξ+=+⎰() 显然,当被积函数f 为次数小于等于n 的多项式时,其相应的插值型求积公式为准确公式,即:()()nbk k ak f x dx A f x ==∑⎰1.1.1 求积公式的代数精度定义:求积公式对于任何次数不大于m 的代数多项式()f x 均精确成立,而对于1()m f x x +=不精确成立,则称求积公式具有m 次代数精度。

定理:含有1n +个节点(0,1,,)k x k n = 的插值型求积公式的代数精度至少为n 。

1.2 Newton Cotes -公式 1.2.1 Newton Cotes -公式将积分区间等分,并取分点为求积公式,这样构造出来的插值型求积公式就是Newton Cotes -公式。

()0()()nbn k k ak f x dx b a C f x ==-∑⎰()其中,()0()nn k k b a b a C =-=-∑且Cotes 系数满足重要的关系式:()1 (k=0,1,2,,n)nn kk C==∑1n =时,求积公式为梯形公式(两点公式):()[()()]2b ab a f x dx f a f b -≈+⎰ 梯形公式具有1阶代数精度,余项为:3()[]() [,]12T b a R f f a b ηη-''=-∈n =2时,求积公式为Simpson 公式(三点公式):()[()4()()]62b ab a a b f x dx f a f f b -+≈++⎰ Simpson 公式具有3阶代数精度,余项为:5(4)1[]()() [,]902S b a R f f a b ηη-=-∈n =4时,求积公式为Cotes 公式(五点公式): 01234()[7()32()12()32()7()]90b ab a f x dx f x f x f x f x f x -≈++++⎰ 其中,4k b ax a k -=+Cotes 公式具有5次代数精度,余项为:7(6)8[]()() [,]9454C b a R f f a b ηη-=-∈1.2.2 复合Newton Cotes -公式当积分区间过大时,直接使用Newton Cotes -公式所得的积分的近似值很难得到保证,因此在实际应用中为了既能够提高结果的精度,又使得算法简便且容易在计算机上实现,往往采用复合求积的方法。

所谓复合求积,就是先将积分区间分成几个小区间,并从每个小区间上用低阶Newton Cotes -公式计算积分的近似值,然后对这些近似值求和,从而得到所求积分的近似值,由此得到一些具有更大实用价值的数值求积公式,统称为复合求积公式。

将[,]a b 区间n 等分,记分点为(0,1,,)k x a kh k n =+= ,其中,b ah n-=称为步长,然后在每个小区间内利用梯形公式,即可导出复合梯形公式:1111()()[()()]2k k n nb x k k a x k k h f x dx f x dx f x f x --===≈+∑∑⎰⎰ 若将所得积分近似值记为n T ,并注意到0,n x a x b ==,则复合梯形公式为:11()=[()2()()]2n bn k ak hf x dx T f a f x f b -=++∑⎰其余项为:2210()()()= () [,]1212n n k T k f b a h b a h R f a b n ηηη-=''--''=--∈∑类似可得复合Simpson 公式:111012()[()4()2()()]6n n b n k a k k k hf x dx S f a f x f x f b --+===+++∑∑⎰ 其中,1/212k k x x h +=+.其余项为:4(4)()= ()() [,]1802n S b a h R f a b ηη--∈1.2.3 Newton Cotes -公式在MATLAB 中的实现1)复合梯形数值积分:调用形式:Z=trapz(X,Y)其中,X,Y 分别代表数目相同的向量或者数值,Y 与X 的关系可以是函数形态或者离散形态;Z 代表返回的积分值。

2)自适应Simpson 公式基本调用格式:q=quad (fun ,a ,b ,tol ,trace ,p1,p2) 其中:fun 代表被积函数;a ,b 为积分的上下限; q 为积分结果;tol 为默认误差限,默认了1.e-6;trace 表示取0表示不用图形显示积分过程,非0表示用图形显示积分过程; p1,p2为直接传递给函数fun 的参数 3)自适应Lobatto 法数值积分:quadl ()Quadl 是高阶的自适应Newton Cotes -数值积分法函数,比quad 函数更有效,精度更高,使用方法与quad 完全相同。

1.3 Gauss Ledendre -求积公式1、精度较高Gauss Ledendre -公式(1)Ledendre 多项式。

以Gauss 点k x 为零点的n 次多项式:12()()()()n n p x x x x x x x =---上式称为Ledendre 多项式(2)Gauss Ledendre -求积公式。

以Ledendre 多项式的n 个实根为节点的插值求积公式为Gauss Ledendre -求积公式。

考虑在[1,1]-上Gauss 求积公式的构造 1)一个节点11()2(0)f x dx f -≈⎰2)两个节点二次Ledendre 正交多项式221()(31)2p x x =- 所以两点的Gauss Ledendre -求积公式为:11()f x dx f f -≈⎰对于一般区间的积分,可以用22a b b ax t +-=+将[,]a b 区间转化为[1,1]-,即1111()()222b a a b b a f x dx f t dt ---+-=+⎰⎰然后用相应的Gauss Ledendre -求积公式计算。

(3)一般形式的Gauss Ledendre -求积公式为:1()()()nbj j aj w x f x dx A f x =≈∑⎰其中()w x 是一个权重函数,j A 为系数,j x 为横坐标上的节点。

因为()1w x =,所以,一个n 点的求积公式具有如下形式:111()()nj j j f x dx A f x -=≈∑⎰其中,()j f x 是函数()f x 在节点j x 处的值,节点j x 是Ledendre 正交多项式的根。

222[()](1)j nj j A p x x ='-MATLAB 没有提供Gauss Ledendre -的有关计算函数,此处给出一部分的编程代码:function q=gaussL (f ,a ,b ,x ,A ) N=length (x ); T=zeros (1,N );T=(a+b )/2+((b-a)/2)*x;q=((b-a)/2)*sum(A.*feval(‘f’.T));其中,f 为被积函数;x 和A 的值可有上表查到。

二、数值微分数值微分的建立常用的三种思路:1、直接从微分的定义出发,通过近似的处理(泰勒展开),得到数值微分的近似公式;2、利用插值的基本思想,采用插值近似公式,对插值公式的近似求导得到原数值微分的近似公式3、根据已知数据,利用最小二乘拟合的方法,得到近似的函数,然后对此近似函数求微分就可以得到数值微分的近似公式。

2.1 差分法近似微分1、计算公式在微积分中,一阶微分的计算可以在相邻点x h +和x 间函数取得极限求得。

000()()()()()()22()lim lim lim h h h h h f x f x f x h f x f x f x h f x h h h→→→+--+---'=== 所以给出下列差分近似式子: 一阶向前差分:()()()f x h f x f x h+-'=一阶向后差分:()()()f x f x h f x h--'=精度较高的一阶中心差分:()()22'()h h f x f x f x h+--=2、在MATLAB 中的实现 调用形式:Y=diff(X,n)其中:X 表示求导变量,可以是向量或者矩阵。

相关主题