习 题 六 解 答
1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。
y10(y1)2ysinxex(1)(2)
y(0)2y(0)0解:(1)取h=0.1,本初值问题的欧拉公式具体形式为
yn1yn(yn1)2(n0,1,2,)
由初值y0=y(0)=2出发计算,所得数值结果如下: x0=0,y0=2;
x1=0.1,y1y0(y01)2211 x2=0.2,y2y1(y11)2101 指出:
可以看出,实际上求出的所有数值解都是1。 (2)取h=0.1,本初值问题的欧拉公式具体形式为
yn1ynh(sinxnexn)2(n0,1,2,)
由初值y0=y(0)=0出发计算,所得数值结果如下: x0=0,y0=0; x1=0.1,
y1y0h(sinx0ex0)200.1(sin0e)00.1(01)0.1x2=0.2,
0
y2y1h(sinx1ex1)20.10.1(sin0.1e指出:
0.1)0.10.1(0.10.9)0.2
本小题的求解过程中,函数值计算需要用到计算器。
2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。
yx22y(0x0.5) y(0)1解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为
2yn1ynh(xn2yn)(n0,1,2,)
由初值y0=y(0)=1出发计算,所得数值结果如下:
_
x0=0,y0=1;
22y0)10.1(0221)0.8 x1=0.1,y1y0h(x0x2=0.2,y2y1h(x122y1)0.80.1(0.1220.8)0.641
yn+1ynhf(xn,yn)(2)由预测校正公式, hyn+1yn[f(xn,yn)f(xn1,yn1)]2取h=0.1,本初值问题的预测-校正公式的具体形式为
2yy0.1(x2yn)nn+1n 22yn+1yn0.05[(xn2yn)(xn12yn1)]由初值y0=y(0)=1出发计算,所得数值结果如下: x0=0,y0=1; x1=0.1,
2y1y00.1(x02y0)0.8,2y1y00.05[(x02y0)(x122y1)]
10.05[(02)(0.1220.8]0.8205x2=0.2,
y2y10.1(x122y1)0.82050.1(0.1220.8205)0.65742y2y10.05[(x122y1)(x22y2)]
0.82050.05[(0.1220.8205)(0.2220.0.6574]0.67523、试导出解一阶常微分方程初值问题
yf(x,y)y(x0)y0的隐式欧拉格式
(x0axb)
yn1ynhf(xn1,yn1)(n0,1,2,)
_
并估计其局部截断误差。
解:在区间[xn,xn+1]上对常微分方程y /(x)=f(x,y)两端同时积分,得
yn1yn
xn1xnf(x,y(x))dx
由右矩形公式得
xn1xnf(x,y(x))dxhf(xn1,yn1)
所以有差分格式
yn1ynhf(xn1,yn1)(n0,1,2,)
这是所谓隐式欧拉公式。
对于隐式欧拉法yn1ynhf(xn1,yn1)(n0,1,2,) 假定yn=y(xn),上式右边的yn+1=y(xn+1),则
yn1ynhf(xn1,yn1)y(xn)hf(xn1,y(xn1))y(xn)hy(xn1)
将y/(xn+1) 按泰勒公式展开,上式为 yn1y(xn)hy(xn1) y(xn)hy(xnh)y(xn)h[y(xn)hy(xn)将y(xn+1)按泰勒公式展开,得
y(xn1)y(xnh)]h2h3y(xn)hy(xn)y(xn)y(xn)2!3!两式相减,得
h2h3y(xn1)yn1[y(xn)hy(xn)y(xn)y(xn)2!3!h2y(xn)O(h3)2!]y(xn)h[y(xn)hy(xn)]即
h2y(xn1)yn1y(xn)O(h3)
2!所以,
y(xn1)yn1O(h2)
指出:
可以用多种方法导出,其中差商法、数值积分方法是简单的方法。 4、验证改进的欧拉公式对任何不超过二次的多项式
_
yax2bxc
准确成立,并说明理由。
分析:①本题所说的改进的欧拉法,是指梯形公式
hyi1yi(f(xi,yi)f(xi1,yi1))。
2yf(x,y)②在初值问题y(x0)y0(x0axb)中,y是解函数。
③本题要证明的是,如果解函数是yax2bxc,则用梯形公式求出的数值解yn等于相应的解函数的函数值y(xn),而y(xn)axn2bxnc,即要证明
ynaxn2bxnc。
④为了证明结论成立,先建立求解格式。
⑤注意,yax2bxc,所以f(x,y)y2axb。 解:因为yax2bxc 所以y2axbyexf。
记f(x)exf,设xiih,i0,1,2,改进的欧拉公式为
hyy(f(xi,yi)f(xi1,yi1))ii12hy((exif)(exi1f))(i0,1,2,) i2y0c将上式对i从0到n-1求和并利用初值条件得
_
hyn((exif)(exi1f))ci02ehn1ehn1(xixi1)nfhc(ih(i1)h)nfhc2i02i0eh22eh2n1n1(ii1)nfhc(i(i1))nfhc2i0i0i0
22n1eheh1(2in)nfhc(2n(n1)n)nfhc222i0n1n1e(nh)21fnhce(nh)2fnhc221exn2fxncaxn2bxnc2则ynaxn2bxncy(xn)
所以,改进的欧拉法对任何不超过二次的多项式
yax2bxc
准确成立。 指出:
通过累加,把递推关系变成了函数关系。 5、对于初值问题
yxy2(0x1) y(0)1试用(1)欧拉法;(2)改进的欧拉法;(3)四阶经典龙格-库塔法分别求解,并比较之,取h0.2。
解:(1)取h0.2,本初值问题的欧拉公式具体形式为
2yn1ynhxnyn(n0,1,2,)
由初值y0=y(0)=1出发计算,所得数值结果如下: x0=0,y0=1;
x1=0.2,y110.20121 x2=0.4,y210.20.2121.04
x2=0.6,y31.040.20.41.0421.126528
_
yn+1ynhf(xn,yn)(2)由预测校正公式, hyn+1yn[f(xn,yn)f(xn1,yn1)]2取h0.2,本初值问题的预测-校正公式的具体形式为
yn+1ynhxny2n 2h2yn+1yn[xnynxn1yn1]2由初值y0=y(0)=1出发计算,所得数值结果如下: x0=0,y0=1; x1=0.2,
y1y0hx0y021 2h0.2222y1y0[x0y0x1y1]1[010.21]1.0222x2=0.4,
y2y1hx1y121.020.20.21.0221.061616 2h0.2222y2y1[x1y1x2y2]1.02[0.21.020.41.061616]1.08575222(3) 四阶经典龙格-库塔公式为
hyy(k12k22k3k4)ii16k1f(xi,yi)hk1h kf(x,y)2ii22hk2hkf(x,y)ii322k4f(xih,yihk3)在本题中,f(x,y)xy2, 取h0.2,y(0)1,计算得
_
2k1f(x0,y0)x0y00kf(xh,yhk1)(xh)(yhk1)2(00.2)(10)20.100002222222hk2hkhh0.20.20.12)(x0)(y02)2(0)(1)0.10201k3f(x0,y0222222k4f(xih,yihk3)(x0h)(y0hk3)2(00.2)(10.20.10201)20.20824yyh(k2k2kk)10.2(020.120.102010.20824)1.0204110123466
6、用经典四阶龙格-库塔方法求下列初值问题的数值解。
3yyx2x3yy(1)(2) 1xy(1)1(1x2,h0.2)y(0)1(0x1,h0.2)解(1)四阶经典龙格-库塔公式为
hyy(k12k22k3k4)ii16k1f(xi,yi)hk1h )k2f(xi,yi22hk2hkf(x,y)ii322k4f(xih,yihk3)在本题中,f(x,y)3y, 1x取h0.2,y(0)1,计算得
i 1 2 3 4 5 xi yi 1.242 800 000 1.583 635 920 2.044 212 913 2.651 041 652 2.436 502 273 1.727 548 209 2.742 051 299 4.049 181 355 5.829 210 728 7.996 012 143 _
7、选取参数p、q,使得下列公式
k1f(xiph,yiqhk1) yi1yihk1具有二阶精度。 解:
k1f(xiph,yiqhk1)f(xi,yi)phfx(xi,yi)qhk1fy(xi,yi)O(h2) y(xi)phfx(xi,yi)qhk1fy(xi,yi)O(h2)所以
(1qhfy(xi,yi))k1y(xi)phfx(xi,yi)O(h2)k1y(xi)phfx(xi,yi)O(h2)1qhfy(xi,yi)
则
yi1yihk1yihy(xi)phfx(xi,yi)O(h3)
1qhfy(xi,yi)而y(xi+1)泰勒展开得
h2y(xi1)y(xi)hy(xi)y(xi)O(h3)2 2hy(xi)hy(xi)(fx(xi,yi)fy(xi,yi)y)O(h3)2…… 指出:
显然,两个式子不能逐项对比。实际上,k1f(xiph,yiqhk1)不形成递推而形成循环,本题应为错题。
7*、选取参数p、q,使得下列公式
_
k1f(xi,yi)k2f(xiph,yiqhk1) yyhki2i1具有二阶精度。
解:因为k1f(xi,yi)y(xi)
k2f(xiph,yiqhk1)f(xi,yi)phfx(xi,yi)qhk1fy(xi,yi)O(h2) y(xi)phfx(xi,yi)qhy(xi)fy(xi,yi)O(h2)则
yi1yihk2yih(y(xi)phfx(xi,yi)qhy(xi)fy(xi,yi)O(h2)) yihy(xi)ph2fx(xi,yi)qh2y(xi)fy(xi,yi)O(h3)而y(xi+1)泰勒展开得
h2y(xi1)y(xi)hy(xi)y(xi)O(h3)2 22hhy(xi)hy(xi)fx(xi,yi)fy(xi,yi)yO(h3)22比较上面两个关系式,如果三项相等,此方法是二阶数值方法,此时
pq1。 28、用亚当姆斯预报-校正系统求解初值问题
dy1y(0x1) dxy(0)0取步长h=0.1计算。
解:四阶的亚当姆斯预测—校正系统为
_
h预测:yy(55yi59yi137yi29yi3)i1i24yi1=f(xi1,yi1) 校正:yyh(9y19y5yy)i1ii1ii1i224yi1=f(xi1,yi1)解:将yf(x,y)1y,h0.1,代入预报-校正系统得 预报:
yi1yi校正:
0.1(2455yi59yi137yi29yi3) 24yi1yi0.1(249yi119yi5yi1yi2) 24用龙格-库塔法先求出y1,y2,y3,再用亚当姆斯预测-校正法计算得
i 1 2 3 4 5 6 7 8 9 10
xi 龙格-库塔法 0.095 162 5 0.181 269 1 0.259 181 6 预测-校正法 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.329 680 1 0.393 469 7 0.451 188 9 0.503 415 4 0.550 671 9 0.593 431 3 0.632 121 6 _
补充题(一)
1、用欧拉公式求解初值问题
0.9yy(0x1) 12xy(0)1当x取步长为h=0.02,用欧拉公式解初值问题0,0.02,0.04,…,0.10时的解。 2、取步长为h=0.2,用欧拉公式解初值问题
yyxy2(0x0.6)。 y(0)1答 案
1. 解:将f(x,y)形式为:
yn1ynh0.9y代入欧拉公式,得本初值问题的欧拉公式的具体12x0.0180.9yn1yn,(n0,1,2,3,4,5) 12xn12xn取h0.02由初值y0=y(0)=0出发计算,所得数值结果如下: 用欧拉公式求解的计算结果
n 0 xn yn y(xn) y(xn)yn 0 1 2 3 4
5 1.0000 0.9820 0.9655 0.9489 0.9336 0.9100 1.0000 0.9825 0.9660 1.9503 0.9354 0.9213 0 0.0005 0.0005 0.0014 0.0018 0.0113 0.02 0.04 0.06 0.08 0.10 事实上,利用变量分离法,很容易求得该初值问题的准确解为:y(x)(12x)0.45
_
表中y(xn)的第一列就是精确解y(x)在xxn处的值。断误差,从表中可以看出,随着n的增大,数值解精度较低。
y(xn)yny(xn)yn表示yn的局部截
的值也在增大。所以,欧拉
公式虽然计算简便,对一些问题有一定的使用价值,但是它的误差较大,所得的
22. 解:将f(x,y)yxy代入欧拉公式,得本初值问题的欧拉公式的具
体形式为:
2yn1ynhf(xn,yn)yn0.2(ynxnyn)
20.8yn0.2xnyn
取步长为h=0.2由初值y0=y(0)=1出发计算,所得数值结果如下:
2y(0.2)y10.8y00.2x0y00.810.20120.8
y(0.4)y20.8y10.2x1y120.80.80.20.20.820.6144
2y(0.6)y30.8y20.2x2y20.80.61440.20.40.614420.4613
补充题(二)
1、证明对任意的参数t,如下的龙格-库塔方法是二阶的。
hyy(k2k3)nn12kf(x,y) nn1k2f(xnth,ynthk1)k3f(xn(1t)h,yn(1t)hk1)分析与解答
1、证明:
因为k1f(xn,yn)y(xn)
k2f(xnth,ynthk1)f(xn,yn)thfx(xn,yn)thk1fy(xn,yn)O(h2) y(xn)thfx(xn,yn)thy(xn)fy(xn,yn)O(h2)k3f(xn(1t)h,yn(1t)hk1)f(xn,yn)(1t)hfx(xn,yn)(1t)hk1fy(xn,yn)O(h2) y(xn)(1t)hfx(xn,yn)(1t)hy(xn)fy(xn,yn)O(h2) _
则
hyn1yn(k2k3)2hyn(y(xn)thfx(xn,yn)thy(xn)fy(xn,yn)O(h2)2
2y(xn)(1t)hfx(xn,yn)(1t)hy(xn)fy(xn,yn)O(h))h2h2ynhy(xn)fx(xn,yn)y(xn)fy(xn,yn)O(h3)22而y(xn+1)泰勒展开得
h2y(xn1)y(xn)hy(xn)y(xn)O(h3)2 2hy(xn)hy(xn)(fx(xn,yn)fy(xn,yn)y)O(h3)2比较上面两个关系式,前三项总相等。
所以,无论t取何值,此龙格-库塔法总是二阶数值方法。
因篇幅问题不能全部显示,请点此查看更多更全内容