2018年常微分方程的数值解法1.doc
文本预览下载声明
常微分方程的数值解法
在自然科学的许多领域中,都会遇到常微分方程的求解问题。然而,我们知道,只有少
数十分简单的微分方程能够用初等方法求得它们的解,多数情形只能利用近似方法求解。在
常微分方程课中已经讲过的级数解法,逐步逼近法等就是近似解法。这些方法可以给出解的
近似表达式,通常称为近似解析方法。还有一类近似方法称为数值方法,它可以给出解在一
些离散点上的近似值。利用计算机解微分方程主要使用数值方法。
我们考虑一阶常微分方程初值问题
dy,,f(x,y) , dx,,,y(x)y,00
在区间[a, b]上的解,其中f (x, y)为x, y的已知函数,y为给定的初始值,将上述问题的精确0解记为y(x)。数值方法的基本思想是:在解的存在区间上取n + 1个节点
a,x,x,x,?,x,b012n
这里差,i = 0,1, ?, n称为由x到x的步长。这些h可以不相等,但一般取h,x,xii+1iii,1i
b,a成相等的,这时。在这些节点上采用离散化方法,(通常用数值积分、微分。泰勒h,n
展开等)将上述初值问题化成关于离散变量的相应问题。把这个相应问题的解y作为y(x)nn
的近似值。这样求得的y就是上述初值问题在节点x上的数值解。一般说来,不同的离散nn化导致不同的方法。
1
1.
1.对常微分方程初始问题
dy,,fx(y,) (9.1), dx,
,() (9.2)yx,y00,
用数值方法求解时,我们总是认为(9.1)、(9.2)的解存在且唯一。
欧拉法是解初值问题的最简单的数值方法。从(9.2)式由于y (x) = y已给定,因而可00以算出
y(x),f(x,y) 000
设x = h充分小,则近似地有: 1
y(x),y(x)10 ,y(x),f(x,y) (9.3) 000h
y,y(x) i,0,1,?,nii
从而我们可以取 记
y,y,hf(x,y)1000
作为y (x)的近似值。利用y及f (x, y)又可以算出y(x)的近似值: 11112
y,y,hf(x,y)2111
一般地,在任意点x = (n + 1)h处y(x)的近似值由下式给出 n+1
(9.4) y,y,hf(x,y)n,1nnn
这就是欧拉法的计算公式,h称为步长。
不难看出,近似解的误差首先是由差商近似代替微商(见(9.3))引起的,这种近似代替所产生的误差称为截断误差。还有一种误差称为舍入误差,这种误差是由于利用(9.4)进
行计算时数值舍入引起的。
9.1 用欧拉法求初值问题
0.9,y,,y(9.5), 1,2x,
,y(x),1x,0(9.6)00,
当h = 0.02时在区间[0, 0.10]上的数值解。
0.9 把代入欧拉法计算公式。就得 f(x,y),,y1,2x
0.9y,y,hyn,1nn1,2xn ,,0.018,,,1,yn,0,1,?,5n,,1,2xn,,
具体计算结果如下表:
n xyy(x) = y(x) - y,n n nnnn
0 0 1.0000 1.0000 0
1 0.02 0.9820 0.9825 0.0005
2 0.04 0.9650 0.9660 0.0005
3 0.06 0.9489 0.9503 0.0014
4 0.08 0.9336 0.9354 0.0018
5 0.10 0.9192 0.923 0.0021
在上表中y(x)列,乃是初值问题(9.5)、(9.6)的真解 n
,0.45 y(x),(1,2x)
在x上的值。为近似值y的误差。从表中可以看出,随着n的增大,误差也在增大,所,nnn
以说,欧拉法计算简便,对一些问题有较大的使用价值,但是,它的误差较大,所得的数值
解精确度不高。
2
为了构造比较精确的数值方法,我们从另一角度重新分析一下初值问题。一般说来,一x (9.7) y(x),y,f(t,y(t))dt阶方程的初值问题与积分方程 0,x0
是等价的,当x = x时, 1
x1 (9.8) y(x),y,f(t,y(t))dt10,x0
要得到y(x)的值,就必须计算出(
显示全部