习 题 六 解 答1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。
(1)210(1)(0)2y y y '⎧=--⎨=⎩(2)sin (0)0x y x e y -'⎧=+⎨=⎩解:(1)取h=0.1,本初值问题的欧拉公式具体形式为21(1)(0,1,2,)n n n y y y n +=--=由初值y 0=y(0)=2出发计算,所得数值结果如下: x 0=0,y 0=2;x 1=0.1,2100(1)211y y y =--=-= x 2=0.2,2211(1)101y y y =--=-= 指出:可以看出,实际上求出的所有数值解都是1。
(2)取h=0.1,本初值问题的欧拉公式具体形式为21(sin )(0,1,2,)n x n n n y y h x e n -+=++=由初值y 0=y(0)=0出发计算,所得数值结果如下: x 0=0,y 0=0; x 1=0.1,021000(sin )00.1(sin 0)00.1(01)0.1x y y h x e e -=++=+⨯+=+⨯+=x 2=0.2,122110.1(sin )0.10.1(sin 0.1)0.10.1(0.10.9)0.2x y y h x e e --=++=+⨯+=+⨯+=指出:本小题的求解过程中,函数值计算需要用到计算器。
2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。
22(00.5)(0)1y x y x y '⎧=-≤≤⎨=⎩ 解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为21(2)(0,1,2,)n n n n y y h x y n +=+-=由初值y 0=y(0)=1出发计算,所得数值结果如下:x 0=0,y 0=1;x 1=0.1,221000(2)10.1(021)0.8y y h x y =+-=+⨯-⨯= x 2=0.2,222111(2)0.80.1(0.120.8)0.641y y h x y =+-=+⨯-⨯=(2)由预测校正公式11(,)[(,)(,)]2n n n n n n n n y hf x y hy f x y f x y ++⎧=+⎪⎨=++⎪⎩n+1n+1y y , 取h=0.1,本初值问题的预测-校正公式的具体形式为122210.1(2)0.05[(2)(2)]nn n n n n n n y x y y x y x y ++⎧=+⨯-⎪⎨=+-+-⎪⎩n+1n+1y y 由初值y 0=y(0)=1出发计算,所得数值结果如下: x 0=0,y 0=1; x 1=0.1,2000220001120.1(2)0.8,0.05[(2)(2)]10.05[(02)(0.120.8]0.8205y x y y x y x y =+⨯-==+⨯-+-=+⨯-+-⨯=11y yx 2=0.2,211122211122220.1(2)0.82050.1(0.120.8205)0.65740.05[(2)(2)]0.82050.05[(0.120.8205)(0.220.0.6574]0.6752y x y y x y x y =+⨯-=+⨯-⨯==+⨯-+-=+⨯-⨯+-⨯=22y y3、试导出解一阶常微分方程初值问题000(,)()()y f x y x a x b y x y '==≤≤⎧⎨=⎩的隐式欧拉格式111(,)(0,1,2,)n n n n y y hf x y n +++=+=并估计其局部截断误差。
解:在区间[x n ,x n+1]上对常微分方程y /(x)=f(x,y)两端同时积分,得11(,())n nx n n x y y f x y x dx ++-=⎰由右矩形公式得111(,())(,)n nx n n x f x y x dx hf x y +++≈⎰所以有差分格式111(,)(0,1,2,)n n n n y y hf x y n +++=+=这是所谓隐式欧拉公式。
对于隐式欧拉法111(,)(0,1,2,)n n n n y y hf x y n +++=+= 假定y n =y(x n ),上式右边的y n +1=y(x n +1),则111111(,)()(,())()()n n n n n n n n n y y hf x y y x hf x y x y x hy x ++++++'=+=+=+将y /(x n +1) 按泰勒公式展开,上式为 11()()()()()[()()]n n n n n n n n y y x hy x y x hy x h y x h y x hy x ++'=+'=++'''=+++ 将y(x n +1)按泰勒公式展开,得123()()()()()()2!3!n n n n n n y x y x h h h y x hy x y x y x +=+''''''=++++两式相减,得231123()[()()()()]()[()()]2!3!()()2!n n n n n n n n n n h h y x y y x hy x y x y x y x h y x hy x h y x O h ++'''''''''-=++++--++''=-+即2311()()()2!n n n h y x y y x O h ++''-=-+所以,211()()n n y x y O h ++-=指出:可以用多种方法导出,其中差商法、数值积分方法是简单的方法。
4、验证改进的欧拉公式对任何不超过二次的多项式2y ax bx c =++准确成立,并说明理由。
分析:①本题所说的改进的欧拉法,是指梯形公式111((,)(,))2i i i i i i hy y f x y f x y +++=++。
②在初值问题000(,)()()y f x y x a x b y x y '==≤≤⎧⎨=⎩中,y 是解函数。
③本题要证明的是,如果解函数是2y ax bx c =++,则用梯形公式求出的数值解n y 等于相应的解函数的函数值()n y x ,而2()n n n y x ax bx c =++,即要证明2n n n y ax bx c =++。
④为了证明结论成立,先建立求解格式。
⑤注意,2y ax bx c =++,所以(,)2f x y y ax b '==+。
解:因为2y ax bx c =++ 所以2y ax by ex f ''=+=+。
记()f x ex f =+,设,0,1,2,i x ih i ==改进的欧拉公式为11110((,)(,))2(()())(0,1,2,)2i i i i i i ii i h y y f x y f x y h y ex f ex f i y c ++++⎧=++⎪⎪⎪=++++=⎨⎪=⎪⎪⎩将上式对i 从0到n -1求和并利用初值条件得11011100221110002210(()())2()((1))22(1)((1))221(2)(2(1))222(n n i i i n n i i i i n n n i i i n i hy ex f ex f ceh eh x x nfh c ih i h nfh c eh eh i i nfh c i i nfh c eh eh i n nfh c n n n nfh c e nh -+=--+==---===-==++++=+++=++++=++++=++++=+++=⨯-+++=∑∑∑∑∑∑∑2222)1()2212n n n n fnh c e nh fnh cex fx c ax bx c ++=++=++=++则2()n n n n y ax bx c y x =++=所以,改进的欧拉法对任何不超过二次的多项式2y ax bx c =++准确成立。
指出:通过累加,把递推关系变成了函数关系。
5、对于初值问题2(01)(0)1y xy x y '⎧=≤≤⎨=⎩ 试用(1)欧拉法;(2)改进的欧拉法;(3)四阶经典龙格-库塔法分别求解,并比较之,取0.2h =。
解:(1)取0.2h =,本初值问题的欧拉公式具体形式为21(0,1,2,)n n n n y y hx y n +=+=由初值y 0=y(0)=1出发计算,所得数值结果如下: x 0=0,y 0=1;x 1=0.2,2110.2011y =+⨯⨯= x 2=0.4,2210.20.21 1.04y =+⨯⨯=x 2=0.6,23 1.040.20.4 1.04 1.126528y =+⨯⨯=(2)由预测校正公式11(,)[(,)(,)]2n n n n n n n n y hf x y hy f x y f x y ++⎧=+⎪⎨=++⎪⎩n+1n+1y y , 取0.2h =,本初值问题的预测-校正公式的具体形式为12221[]2nn n n n n n n y hx y h y x y x y ++⎧=+⎪⎨=++⎪⎩n+1n+1y y 由初值y 0=y(0)=1出发计算,所得数值结果如下: x 0=0,y 0=1; x 1=0.2,001200222200110.2[]1[010.21] 1.0222y hx y h y x y x y =+==++=+⨯+⨯=11y y x 2=0.4,112221122221121.020.20.2 1.02 1.0616160.2[] 1.02[0.2 1.020.4 1.061616] 1.08575222y hx y h y x y x y =+=+⨯⨯==++=+⨯+⨯=22y y (3) 四阶经典龙格-库塔公式为112341122343(22)6(,)(,)22(,)22(,)i i i i i ii i i i h y y k k k k k f x y hk h k f x y hk h k f x y k f x h y hk +⎧=++++⎪⎪=⎪⎪⎪=++⎨⎪⎪=++⎪⎪=++⎪⎩ 在本题中,2(,)f x y xy =, 取0.2,(0)1h y ==,计算得2100002211200002222300002243003(,)00.20(,)()()(0)(1)0.12222220.20.20.1(,)()()(0)(1)0.10201222222(,)()()(00.2)(10.20.10201)i i k f x y x y hk hk h h k f x y x y hk hk h h k f x y x y k f x h y hk x h y hk ====++=++=++=⨯=++=++=++==++=++=++⨯1012340.208240.2(22)1(020.120.102010.20824) 1.0204166h y y k k k k ⎧⎪⎪⎪⎪⎪⎨⎪⎪=⎪⎪=++++=+⨯+⨯+⨯+=⎪⎩6、用经典四阶龙格-库塔方法求下列初值问题的数值解。