您的当前位置:首页正文

数值分析习题六解答

2021-04-15 来源:个人技术集锦
 _

习 题 六 解 答

1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。

y10(y1)2ysinxex(1)(2)

y(0)2y(0)0解:(1)取h=0.1,本初值问题的欧拉公式具体形式为

yn1yn(yn1)2(n0,1,2,)

由初值y0=y(0)=2出发计算,所得数值结果如下: x0=0,y0=2;

x1=0.1,y1y0(y01)2211 x2=0.2,y2y1(y11)2101 指出:

可以看出,实际上求出的所有数值解都是1。 (2)取h=0.1,本初值问题的欧拉公式具体形式为

yn1ynh(sinxnexn)2(n0,1,2,)

由初值y0=y(0)=0出发计算,所得数值结果如下: x0=0,y0=0; x1=0.1,

y1y0h(sinx0ex0)200.1(sin0e)00.1(01)0.1x2=0.2,

0

y2y1h(sinx1ex1)20.10.1(sin0.1e指出:

0.1)0.10.1(0.10.9)0.2

本小题的求解过程中,函数值计算需要用到计算器。

2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。

yx22y(0x0.5) y(0)1解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为

2yn1ynh(xn2yn)(n0,1,2,)

由初值y0=y(0)=1出发计算,所得数值结果如下:

_

x0=0,y0=1;

22y0)10.1(0221)0.8 x1=0.1,y1y0h(x0x2=0.2,y2y1h(x122y1)0.80.1(0.1220.8)0.641

yn+1ynhf(xn,yn)(2)由预测校正公式, hyn+1yn[f(xn,yn)f(xn1,yn1)]2取h=0.1,本初值问题的预测-校正公式的具体形式为

2yy0.1(x2yn)nn+1n 22yn+1yn0.05[(xn2yn)(xn12yn1)]由初值y0=y(0)=1出发计算,所得数值结果如下: x0=0,y0=1; x1=0.1,

2y1y00.1(x02y0)0.8,2y1y00.05[(x02y0)(x122y1)]

10.05[(02)(0.1220.8]0.8205x2=0.2,

y2y10.1(x122y1)0.82050.1(0.1220.8205)0.65742y2y10.05[(x122y1)(x22y2)]

0.82050.05[(0.1220.8205)(0.2220.0.6574]0.67523、试导出解一阶常微分方程初值问题

yf(x,y)y(x0)y0的隐式欧拉格式

(x0axb)

yn1ynhf(xn1,yn1)(n0,1,2,)

_

并估计其局部截断误差。

解:在区间[xn,xn+1]上对常微分方程y /(x)=f(x,y)两端同时积分,得

yn1yn

xn1xnf(x,y(x))dx

由右矩形公式得

xn1xnf(x,y(x))dxhf(xn1,yn1)

所以有差分格式

yn1ynhf(xn1,yn1)(n0,1,2,)

这是所谓隐式欧拉公式。

对于隐式欧拉法yn1ynhf(xn1,yn1)(n0,1,2,) 假定yn=y(xn),上式右边的yn+1=y(xn+1),则

yn1ynhf(xn1,yn1)y(xn)hf(xn1,y(xn1))y(xn)hy(xn1)

将y/(xn+1) 按泰勒公式展开,上式为 yn1y(xn)hy(xn1) y(xn)hy(xnh)y(xn)h[y(xn)hy(xn)将y(xn+1)按泰勒公式展开,得

y(xn1)y(xnh)]h2h3y(xn)hy(xn)y(xn)y(xn)2!3!两式相减,得

h2h3y(xn1)yn1[y(xn)hy(xn)y(xn)y(xn)2!3!h2y(xn)O(h3)2!]y(xn)h[y(xn)hy(xn)]即

h2y(xn1)yn1y(xn)O(h3)

2!所以,

y(xn1)yn1O(h2)

指出:

可以用多种方法导出,其中差商法、数值积分方法是简单的方法。 4、验证改进的欧拉公式对任何不超过二次的多项式

_

yax2bxc

准确成立,并说明理由。

分析:①本题所说的改进的欧拉法,是指梯形公式

hyi1yi(f(xi,yi)f(xi1,yi1))。

2yf(x,y)②在初值问题y(x0)y0(x0axb)中,y是解函数。

③本题要证明的是,如果解函数是yax2bxc,则用梯形公式求出的数值解yn等于相应的解函数的函数值y(xn),而y(xn)axn2bxnc,即要证明

ynaxn2bxnc。

④为了证明结论成立,先建立求解格式。

⑤注意,yax2bxc,所以f(x,y)y2axb。 解:因为yax2bxc 所以y2axbyexf。

记f(x)exf,设xiih,i0,1,2,改进的欧拉公式为

hyy(f(xi,yi)f(xi1,yi1))ii12hy((exif)(exi1f))(i0,1,2,) i2y0c将上式对i从0到n-1求和并利用初值条件得

_

hyn((exif)(exi1f))ci02ehn1ehn1(xixi1)nfhc(ih(i1)h)nfhc2i02i0eh22eh2n1n1(ii1)nfhc(i(i1))nfhc2i0i0i0

22n1eheh1(2in)nfhc(2n(n1)n)nfhc222i0n1n1e(nh)21fnhce(nh)2fnhc221exn2fxncaxn2bxnc2则ynaxn2bxncy(xn)

所以,改进的欧拉法对任何不超过二次的多项式

yax2bxc

准确成立。 指出:

通过累加,把递推关系变成了函数关系。 5、对于初值问题

yxy2(0x1) y(0)1试用(1)欧拉法;(2)改进的欧拉法;(3)四阶经典龙格-库塔法分别求解,并比较之,取h0.2。

解:(1)取h0.2,本初值问题的欧拉公式具体形式为

2yn1ynhxnyn(n0,1,2,)

由初值y0=y(0)=1出发计算,所得数值结果如下: x0=0,y0=1;

x1=0.2,y110.20121 x2=0.4,y210.20.2121.04

x2=0.6,y31.040.20.41.0421.126528

_

yn+1ynhf(xn,yn)(2)由预测校正公式, hyn+1yn[f(xn,yn)f(xn1,yn1)]2取h0.2,本初值问题的预测-校正公式的具体形式为

yn+1ynhxny2n 2h2yn+1yn[xnynxn1yn1]2由初值y0=y(0)=1出发计算,所得数值结果如下: x0=0,y0=1; x1=0.2,

y1y0hx0y021 2h0.2222y1y0[x0y0x1y1]1[010.21]1.0222x2=0.4,

y2y1hx1y121.020.20.21.0221.061616 2h0.2222y2y1[x1y1x2y2]1.02[0.21.020.41.061616]1.08575222(3) 四阶经典龙格-库塔公式为

hyy(k12k22k3k4)ii16k1f(xi,yi)hk1h kf(x,y)2ii22hk2hkf(x,y)ii322k4f(xih,yihk3)在本题中,f(x,y)xy2, 取h0.2,y(0)1,计算得

_

2k1f(x0,y0)x0y00kf(xh,yhk1)(xh)(yhk1)2(00.2)(10)20.100002222222hk2hkhh0.20.20.12)(x0)(y02)2(0)(1)0.10201k3f(x0,y0222222k4f(xih,yihk3)(x0h)(y0hk3)2(00.2)(10.20.10201)20.20824yyh(k2k2kk)10.2(020.120.102010.20824)1.0204110123466

6、用经典四阶龙格-库塔方法求下列初值问题的数值解。

3yyx2x3yy(1)(2) 1xy(1)1(1x2,h0.2)y(0)1(0x1,h0.2)解(1)四阶经典龙格-库塔公式为

hyy(k12k22k3k4)ii16k1f(xi,yi)hk1h )k2f(xi,yi22hk2hkf(x,y)ii322k4f(xih,yihk3)在本题中,f(x,y)3y, 1x取h0.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,使得下列公式

k1f(xiph,yiqhk1) yi1yihk1具有二阶精度。 解:

k1f(xiph,yiqhk1)f(xi,yi)phfx(xi,yi)qhk1fy(xi,yi)O(h2) y(xi)phfx(xi,yi)qhk1fy(xi,yi)O(h2)所以

(1qhfy(xi,yi))k1y(xi)phfx(xi,yi)O(h2)k1y(xi)phfx(xi,yi)O(h2)1qhfy(xi,yi)

yi1yihk1yihy(xi)phfx(xi,yi)O(h3)

1qhfy(xi,yi)而y(xi+1)泰勒展开得

h2y(xi1)y(xi)hy(xi)y(xi)O(h3)2 2hy(xi)hy(xi)(fx(xi,yi)fy(xi,yi)y)O(h3)2…… 指出:

显然,两个式子不能逐项对比。实际上,k1f(xiph,yiqhk1)不形成递推而形成循环,本题应为错题。

7*、选取参数p、q,使得下列公式

_

k1f(xi,yi)k2f(xiph,yiqhk1) yyhki2i1具有二阶精度。

解:因为k1f(xi,yi)y(xi)

k2f(xiph,yiqhk1)f(xi,yi)phfx(xi,yi)qhk1fy(xi,yi)O(h2) y(xi)phfx(xi,yi)qhy(xi)fy(xi,yi)O(h2)则

yi1yihk2yih(y(xi)phfx(xi,yi)qhy(xi)fy(xi,yi)O(h2)) yihy(xi)ph2fx(xi,yi)qh2y(xi)fy(xi,yi)O(h3)而y(xi+1)泰勒展开得

h2y(xi1)y(xi)hy(xi)y(xi)O(h3)2 22hhy(xi)hy(xi)fx(xi,yi)fy(xi,yi)yO(h3)22比较上面两个关系式,如果三项相等,此方法是二阶数值方法,此时

pq1。 28、用亚当姆斯预报-校正系统求解初值问题

dy1y(0x1) dxy(0)0取步长h=0.1计算。

解:四阶的亚当姆斯预测—校正系统为

_

h预测:yy(55yi59yi137yi29yi3)i1i24yi1=f(xi1,yi1)  校正:yyh(9y19y5yy)i1ii1ii1i224yi1=f(xi1,yi1)解:将yf(x,y)1y,h0.1,代入预报-校正系统得 预报:

yi1yi校正:

0.1(2455yi59yi137yi29yi3) 24yi1yi0.1(249yi119yi5yi1yi2) 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.9yy(0x1) 12xy(0)1当x取步长为h=0.02,用欧拉公式解初值问题0,0.02,0.04,…,0.10时的解。 2、取步长为h=0.2,用欧拉公式解初值问题

yyxy2(0x0.6)。 y(0)1答 案

1. 解:将f(x,y)形式为:

yn1ynh0.9y代入欧拉公式,得本初值问题的欧拉公式的具体12x0.0180.9yn1yn,(n0,1,2,3,4,5) 12xn12xn取h0.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)(12x)0.45

_

表中y(xn)的第一列就是精确解y(x)在xxn处的值。断误差,从表中可以看出,随着n的增大,数值解精度较低。

y(xn)yny(xn)yn表示yn的局部截

的值也在增大。所以,欧拉

公式虽然计算简便,对一些问题有一定的使用价值,但是它的误差较大,所得的

22. 解:将f(x,y)yxy代入欧拉公式,得本初值问题的欧拉公式的具

体形式为:

2yn1ynhf(xn,yn)yn0.2(ynxnyn)

20.8yn0.2xnyn

取步长为h=0.2由初值y0=y(0)=1出发计算,所得数值结果如下:

2y(0.2)y10.8y00.2x0y00.810.20120.8

y(0.4)y20.8y10.2x1y120.80.80.20.20.820.6144

2y(0.6)y30.8y20.2x2y20.80.61440.20.40.614420.4613

补充题(二)

1、证明对任意的参数t,如下的龙格-库塔方法是二阶的。

hyy(k2k3)nn12kf(x,y) nn1k2f(xnth,ynthk1)k3f(xn(1t)h,yn(1t)hk1)分析与解答

1、证明:

因为k1f(xn,yn)y(xn)

k2f(xnth,ynthk1)f(xn,yn)thfx(xn,yn)thk1fy(xn,yn)O(h2) y(xn)thfx(xn,yn)thy(xn)fy(xn,yn)O(h2)k3f(xn(1t)h,yn(1t)hk1)f(xn,yn)(1t)hfx(xn,yn)(1t)hk1fy(xn,yn)O(h2) y(xn)(1t)hfx(xn,yn)(1t)hy(xn)fy(xn,yn)O(h2) _

hyn1yn(k2k3)2hyn(y(xn)thfx(xn,yn)thy(xn)fy(xn,yn)O(h2)2

2y(xn)(1t)hfx(xn,yn)(1t)hy(xn)fy(xn,yn)O(h))h2h2ynhy(xn)fx(xn,yn)y(xn)fy(xn,yn)O(h3)22而y(xn+1)泰勒展开得

h2y(xn1)y(xn)hy(xn)y(xn)O(h3)2 2hy(xn)hy(xn)(fx(xn,yn)fy(xn,yn)y)O(h3)2比较上面两个关系式,前三项总相等。

所以,无论t取何值,此龙格-库塔法总是二阶数值方法。

因篇幅问题不能全部显示,请点此查看更多更全内容