_关于单步法于多步法部分方法的分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要: 通过《数值分析》这门课程我们学习了求解常微分方程初值问题
⎪⎩⎪⎨⎧==0
0)()
,(y x y y x f dx
dy
的方法分为单步法和多步法,单步法主要有欧拉方法。

改进的欧拉方法和龙格法,多步法主要有Adams 法等方法,关于一阶常微分方程初
值问题求解⎪⎩⎪⎨⎧==0
0)()
,(y x y y x f dx dy
用数值方法求的是)(k x f 的近似值k y .所以本文主
要用改进的欧拉方法和Adams 法分别作为单步法和多步法的为代表进行误差分析等比较.
方法介绍: 一.单步法 1、欧拉公式:
1、方法构造的思想:微分方程初值问题
⎪⎩⎪⎨⎧==0
0)(),(y x y y x f dx
dy
),()
(000y x f dx x dy = 再用前项差代替一阶导数
h
x y x y dx
dy
x x )
()(010
-≈
=,则 ),()
((0001y x f h
x y x y ≈- 此时x 0, y 0均已知y(x 0)= y 0,则由此式可近似求出y(x 1)的近似值y,
⎪⎩⎪
⎨⎧+=+≈=)
,(),()()(0001
000100y x hf y y y x hf y x y y x y 般的利用在n x 处的微分方程可得:),(1n n n n y x hf y y +=+, ,2,1,0=n 于这个差分格式我们称为欧拉公式.
特点 (1).单步方法; (2)显示格式 (3)局部截断误差()
2h ο因而是一阶精度.
2.改进欧拉方法
⎪⎩⎪⎨⎧==0
0)()
,(y x y y x f dx
dy
对其从k x 到1+k x 进行定积分得: ⎰
+=-+1
))(,()()(1k k
x x k k dx x y x f x y x y
将右端的定积分用梯形公式来进行近似计算:)),(),((2
111+++++
=k k k k k k y x f y x f h
y y
二.多步法
前面讲的方法:欧拉方法、改进欧拉方法、龙格-库塔方法均是单步方法,即在每一步要计算1+n y 时,只要前面一个值n y 已知的条件下秒可以计算出
1+n y 了。

可以自成系统进行直接计算,因为初始条件只有一个已知0y ,由0y 可以计算1y ,21y y →, ,32y y →用前面已知计算出来的
11,,,+--k n n n y y y ,这前面计算好的k 个值来计算1+n y ,这样自由度的增加
来提高格式的精度。

如:
1.Adams 方法:
1、方法构造的思想:微分方程初值问题⎪⎩⎪⎨⎧==0
0)()
,(y x y y x f dx dy
将微分方程在[]
1,+k k x x 上积分,()()()()⎰+=++1
,1k k
x x k k k dx x y x f x y x y .
即若已知k k k k y y y y ,,,123---来计算k y ,
简记()k k k y x f f ,=,用k k k k x x x x ,,,123---的拉格朗日插值多项式代替f
()()3322110---+++=k k k k f l f l f l f x l x P
()()()()
511
h dx x P x y x y k k
x x k k ο++=⎰
++
()()()()()3
1
211111
3210-+-+-+++⎪⎭
⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛=⎰⎰⎰⎰⎰
k k k k k k k k k k k k k
f dx x l f dx x l f dx x l f dx x l dx x P x x x x x x k x x x x 截断()
5h ο部分,用等距步长,得到的方法就是显式Adams 方法. 的局部截断误
差是()5h ο因而是四阶精度的.
K 步的Adams (阿达姆斯)公式:∑--=-++=1
1
1k j j i j i i f h y y β.
1步显式Adams 公式:),(1i i i i y t hf y y +≈+,即Euler 公式. 2步显式Adams 公式:)3(2
11-+-+=i i i i f f h y y
3 步显式Adams 公式:)51623(12211--++-+
=i i i i i f f f h
y y 4 步显式Adams 公式(较常用公式之一):
)9375955(24
3211---+-+-+
=i i i i i i f f f f h
y y 类似可推导隐式 Adams 公式:
1 步隐式Adams 公式:)(2
11i i i i f f h y y ++=++,即梯形公式。

2 步隐式Adams 公式:)85(12
111-++-++
=i i i i i f f f h
y y 3 步隐式Adams 公式(较常用公式之一):
)5199(24
2111--+++-++
=i i i i i i f f f f h
y y 预测-校正方法:用显式公式预测,用隐式公式校正。

以 4 阶Adams 公式为例 预报:)9375955(24
3211---+-+-+
=i i i i i i f f f f h
y y 校正:)519),(9(24
21111--++++-++
=i i i i i i i f f f y t f h
y y 三.实例分析:
运用matlab 分别用改进欧拉方法和Adams (三步法)法分别对方程常微分
方程2
)0()
1(2=-=y y y dx dy
进行求解.
求得精确解为:3
44)(22-=
x
x
e e x y 分别在窗口中运行: 方法1欧拉:
x0=0;xn=1.2;y0=2;h=0.1;
[y,x]=Eulergj(x0,xn,y0,h);
n=length(x);
fprintf(' i x(i) y1(i)\n');
for i=1:n
fprintf('%2d %4.4f %4.4f\n',i,x(i),y(i)); end
方法2 Adams(三步法):
x0=0;xn=1.2;y0=2;h=0.1;
[y,x]=Adamswai3(x0,xn,y0,h);
n=length(x);
fprintf(' i x(i) y2(i)\n');
for i=1:n
fprintf('%2d %4.4f %4.4f\n',i,x(i),y(i)); end
Matlab运行结果:
1.改进欧拉方法:
2. Adams(三步法)法:
把数据放到excel中处理得:
总结:从表中的数据来看出通过用改进的欧拉算法和Adams(三步法)法,求解得出Adams(三步法)法的总体误差要小于改进的欧拉算法。

附录:
Matlab . M 文件: 1.要求解的方程
)1(2y y dx
dy
-=程序: function z=f(x,y) z=y*(1-y.^2);;
2.改进欧拉法:
function [y,x]=Eulergj(x0,xn,y0,h)
x=x0:h:xn;
n=length(x);
y=x;
y(1)=y0;
y1(1)=y0;
for i=1:n-1
y1=y(i)+h*f(x(i),y(i));
y2=y(i)+h*f(x(i+1),y1);
y(i+1)=0.5*(y1+y2);
end
3. Adams(三步法)法:
function [y,x]=Adamswai3(x0,xn,y0,h) x=x0:h:xn;
n=length(x);
y=x;
y(1)=y0;
y1(1)=y0;
n1=2;
for i=1:n1
K1=f(x(i),y(i));
K2=f(x(i)+h/2,y(i)+h/2*K1);
K3=f(x(i)+h,y(i)-h*K1+2*h*K2); y(i+1)=y(i)+h/6*(K1+4*K2+K3); end。

相关文档
最新文档