1、第2章数值积分与数值微分高斯型求积公式高精度的求积公式考虑积分=baxxfI d )(将节点 x0 , xn以及系数 A0 , An都作为待定系数。令 f (x) = 1, x, x2, , x2n+1代入可求解,得到的公式具有 2n+1 次代数精度。能否利用n+1个节点x0 , xn构造出具有2n+1 次代数精度的求积公式=niiibaxfAxxf0)(d )(?举例(一)例:试确定 x0 , x1以及系数 A0, A1,使得下面的求积公式具有尽可能高的代数精度。)()(d )(110011xfAxfAxxf +=+=+=+=+03/202311300211200110010xAxAxAxA
2、xAxAAA解:将 f (x) = 1, x, x2, x3代入,使其精确成立得解得=3111010xxAA不是线性方程组,不易求解高斯点与高斯公式定义若存在节点xi a, b及求积系数Ai,使得下面的求积公式具有2n+1 次代数精度,则称节点xi 为高斯点,Ai 为高斯系数,求积公式为高斯(Gauss)求积公式。=niiibaxfAxxf0)(d )(注:(1)Gauss求积公式仍然是 插值型 求积公式;(2)Gauss系数可通过 Gauss点和 Lagrange基函数得到;高斯点的确定定理节点xi (i = 0, 1, , n) 是求积公式(2-30)的Gauss点的充要条件是:多项式与任
3、意次数不超过n 的多项式p(x) 正交,即=niixxxw0)()(且高斯系数Ai为0d )()(0=xxxxpbaniixxlAbaiid )(=其中li为以节点xi 为节点的Lagrange 基函数。高斯点的确定证明: “”x0 xn为 Gauss 点 , 则公式至少有 2n+1 次代数精度。=baniiixfAdxxf0)()(对任意次数不大于n 的多项式 p (x), p (x) w(x) 的次数不大于 2n+1,则代入公式应精确成立:=niiiibaxwxpAdxxwxp0)()()()(0= 09“” 要证明 x0 xn为 Gauss 点,即要证公式对任意次数不大于 2n+1 的多
4、项式 p(x) 精确成立,即证明:=niiibaxpAdxxp0)()(设)()()()( xrxqxwxp +=+=bababadxxrdxxqxwdxxp )()()()(0=niiixr0)(=niiixp0)(9高斯公式代数精度定理用n+1个点x0 , , xn构造的插值型求积公式的代数精度不超过2n+1。=niiibaxfAxxf0)(d )(即Gauss公式是插值型求积公式中代数精度最高的。Gauss-Legendre公式设f (x) C-1, 1 ,考虑Gauss型求积公式在-1, 1 上的正交多项式为Legendre多项式1211111() ( 1)2( 1)!nnnnndPx
5、 xndx+=+取其n+1 个零点作为Gauss 点,即可得Gauss-Legendre求积公式。=niiixfAxxf011)(d )(G-L 公式的余项定理设f (x) C 2n+2-1, 1 ,则G-L求积公式的余项为(2 2)11200()() d ( ) ( ) d(2 2)!nnnii ifRf fx x fx x x xn+= +证明:以 x0 xn为节点,构造 f (x) 的 2n+1 次 Hermite插值多项式 H(x),满足() (), () (),ii i iHx fx Hx fx= =(i = 0, 1, , n)插值余项为(2 2)20()() () ( ),(2
6、2)!nnxiiffx Hx x xn+= +x (-1,1)上式两边积分得G-L 公式的余项(续)11 1(2 2) 201() d () d ( ) ( ) d(2 2)!nnxiifx x Hx x f x x xn+ = + 由于G-L 求积公式具有 2n+1 次代数精度,故所以110() d ( )niiiRf fx x fx=1(2 2) 2101() ( ) d(2 2)!nnxiifxxxn+=+积分中值定理(2 2)1210()() d(2 2)!nniifxx xn+=+, (-1,1)9=niiiniiixfAxHAxxH0011)()(d )(几个简单的G-L 公式n
7、= 0: Pn+1(x) = x, x0= 0, 0= 2 n = 1: Pn+1(x) = (3x2 -1)/2, 0=1=1 0113, 13,xx= =n = 2: Pn+1(x) = (5x3 -3x)/2, ( )()( )11585( ) d 155 0 155999fx x f f f + +两点G-L公式三点G-L公式)0(2)(d )(011fxfAxxfniii=)3/1()3/1()(d )(011ffxfAxxfniii+=G-L公式的Gauss系数定理G-L求积公式中的Gauss点为Pn+1(x) 的n+1 个零点,Gauss系数为2212(1 ) ( )iinixP
8、x+= (i = 0, 1, , n)更多G-L 公式当n 3 时,可用数值方法计算Pn+1(x) 的零点(mygl.m)n节点个数Gauss点Gauss系数0 1 0.0000000 2.00000001 2 0.5773503 1.00000002 30.77459670.00000000.55555560.88888893 40.86113630.33998100.34785480.65214524 50.90617980.53846930.00000000.23692690.47862870.56888895 60.932469510.661209390.238619190.17132
9、4490.360761570.46791393一般区间上的G-L 公式设f (x) Ca, b作变量替换 x = (b- a) t/2+(b + a)/2,则 t -1, 1 ( )11() d d222baba ba bafx x f t t+=+i( )0() d222nbiiaiba ba bafx x f x= +其中 xi 和 Ai分别为 Gauss点 和 Gauss系数。AiG-L 公式的优缺点与前面求积方法的比较9复合梯形公式:用了 210+1 个节点达到 7 位有效数字9Romberg公式:用了 9 个节点达到 7 位有效数字9G-L公式 :用了 3 个节点达到 7 位有效数字
10、 G-L求积公式的优点:计算精度高;可计算无穷区间上的积分和奇异积分。 G-L求积公式的缺点:需计算 Gauss点和 Gauss系数;增加节点时需重新计算。高斯求积公式的求积系数全是正的 ,且是稳定的算法例题1用4点(n=3)的高斯-勒让德求积公式计算=202cosxdxxI解先将区间0,/2化为-1,1,可以得到+=1123)1(4cos)1()4( dtttI例题2套用三点高斯公式计算积分=311dxxI解作变换x=2+t将积分区间变到-1,1,然后套用三点高斯高斯公式有+=11532195219853219521dttI2.5 数值微分数值微分就是用函数值的线性组合近似函数在某点的导数值
11、。按照数学分析的定义,导数f(a)是差商当f(a+h)-f(a)/h当h0时的极限.如果精度要求不高,我们可以简单地取差商作为导数的近似值,这样便建立起一种简单的数值微分方法插商公式为要利用中点公式计算导数值f(a),首先必须选取合适的步长.为此需要进行误差分析.分别将f(a h)在x=a 泰勒展开有中点公式代入上式得由此得知,从截断误差的角度来看,步长越小,计算结果越准确.且)(max6)()(2xfMMhhGafhax其中中点公式的误差再考察舍入误差.按中点公式计算,当h 很小时,由于f(a +h)与f(a -h)很接近,直接相减会造成有效数字的严重损失.因此从舍入误差的角度来看,步长是不
12、宜太小的.综上所述,步长过大,则截断误差显著;但如果步长太小,又会导致舍入误差的增长,在实际计算时,我们希望在保证截断误差满足精度要求的前提下选取尽可能大的步长,然而事先给出一个合适的步长往往是困难的,通常在变步长的过程中实现步长的自动选择.步长的选取插值型的求导公式问题:已知f (x) 在节点x0 , xn上的函数值,如何计算在这些节点处导数的近似值?方法:插值型数值微分先构造出 f (x) 的插值多项式 pn(x) ,然后用 pn(x) 的导数来近似 f (x) 的导数。(1)0()() () ( )(1)!n nxnjjffx Px x xn+= +多项式插值余项两边求导得()(1)0(
13、1)0()() () ( )(1)!1( ) ( )(1)!n nxjnnjxjff x P x x xnxx fn+=+= +(1)0()() () ( )(1)!n nxini ijjjiff x P x x xn+= +x (x0 , xn)插值型的求导公式的误差两点公式两点公式(等距):n = 1,节点 x0 , x1 ,步长 h = x1 -x0 ()1101() ( ) ( )P x f x f xh=0110101 10() ( ) ( )xxxxPx fx fxxx xx=+10 01()()()()xxf xxxf xh +=所以()00011() ( () 2)(f x f
14、 x fhfxh=()10111() ( () 2)(f x f x fhfxh+=两点公式三点公式(等距)等距三点公式:n = 2,步长 h ,节点 xi= x0 + ih , i = 0, 1, 21220010202 01121012 2021()()() ( )()()()() ()()( ) ( )()() ()()xxxxPx fxxxxxxxxx xxxxf xfxxxxx xxxx = + 20 0 1 21( ) (2 3) ( ) 4( 1) ( ) (2 1) ( )2Px th t fx t fx t fxh+= +20 0 1 211()(1)(2)()(2)()(1
15、)()22Px th t t f xtt f xttf x+= + 令 x = x0 + th ,得所以分别令 t = 0, 1, 2 ,得20 0 1 21() 3()4() ()2P x f x f x f xh= + 21 0 21() () ()2P x f x f xh= +22 0 1 21() ()4()3()2P x f x f x f xh=+0012(3)021() 3()4() ()(3) 2f x f x f x fhx fh= + +2(2)13101( ) ( ) ( ) ()2 6hf x f x f xhf =+ 202321()21() ()4()3() ()
16、 32hf x f x f x f fxh=+三点公式三点公式(等距)等距三点公式:20 0 1 211()(1)(2)()(2)()(1)()22Px th t t f xtt f xttf x+= + 20 0 1 221() ()2()()P x th fx fx fxh+= +所以101222(4)1() ()2() () ()12hf x fx fx fx fh=+三点公式(等距)例:已知函数 y = ex的函数值表xi2.5 2.6 2.7 2.8 2.9yi12.1825 13.4637 14.8797 16.4446 18.1741试用两点和三点公式计算 x = 2.7 处的一
17、阶、二阶导数。解:两点公式:取 x0 =2.6, x1 =2.7,得()1(2.7) (2.7) (2.6) 14.16000.1f f f=若取 x0 =2.7, x1 =2.8,则()1(2.7) (2.8) (2.7) 15.64900.1f f f=例题1若取 x0 =2.5, x1 =2.7,则()1(2.7) (2.7) (2.5)0.13.48602f f f=若取 x0 =2.7, x1 =2.9,则()1(2.7) (2.9) (2.7)0.16.47202f f f=通常步长越小,误差也越小。三点公式:取 x0 =2.6, x1 =2.7, x1 =2.8,得()1(2.7) (2.8) (2.6) 14.904520.1f f f=21(2.7) (2.8) 2 (2.7) (2.6) 14.89000.1f f f f+=例题1