预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

i.常微分方程初值问题数值解法 本章讨论常微分方程初值问题数值解法,主要是差分法。解微分方程的所谓差分法的要点如下:首先是区域的离散,即将连续的求解区域离散化成有限个网格点。其次是方程的离散,例如用差商代替微商,或者对微分方程积分使之变成积分方程,然后数值积分,或者……。最后得到网格点上的近似解所满足的一个差分方程,解之即得差分解。 i.1常微分方程差分法 考虑常微分方程初值问题:求函数SKIPIF1<0满足 SKIPIF1<0(i.1a) SKIPIF1<0(i.1b) 其中SKIPIF1<0是定义在区域SKIPIF1<0:SKIPIF1<0,SKIPIF1<0上的函数,SKIPIF1<0和SKIPIF1<0是给定的常数。我们假设SKIPIF1<0对SKIPIF1<0满足Lipschitz条件,即存在常数SKIPIF1<0使得 SKIPIF1<0(i.2) 这一条件保证了(i.1)的解是适定的,即存在,唯一,而且连续依赖于初值SKIPIF1<0。 通常情况下,(i.1)的精确解不可能用简单的解析表达式给出,只能求近似解。本章讨论常微分方程最常用的近似数值解法--差分方法。先来讨论最简单的Euler法。为此,首先将求解区域SKIPIF1<0离散化为若干个离散点: SKIPIF1<0(i.3) 其中SKIPIF1<0,SKIPIF1<0称为步长。 在微积分课程中我们熟知,微商(即导数)是差商的极限。反过来,差商就是微商的近似。在SKIPIF1<0处,在(i.1a)中用向前差商SKIPIF1<0代替微商SKIPIF1<0,便得 SKIPIF1<0 如果忽略误差项SKIPIF1<0,再换个记号,用SKIPIF1<0代替SKIPIF1<0便得到 SKIPIF1<0 一般地,我们有 SKIPIF1<0(i.4) 从(i.1b)给出的初始值SKIPIF1<0出发,由上式可以依次算出SKIPIF1<0上的差分解SKIPIF1<0。 下面我们用数值积分法重新导出Euler法以及其它几种方法。为此,在区间SKIPIF1<0上积分常微分方程(i.1a),得 SKIPIF1<0(i.5) 用各种数值积分公式计算(i.5)中的积分,便导致各种不同的差分法。例如,若用左矩形公式就得到Euler法(i.4)。如果用右矩形公式,便得到下面的: SKIPIF1<0(i.6) 类似地,如果用梯形公式,就得到 SKIPIF1<0(i.7) 当SKIPIF1<0关于SKIPIF1<0是非线性函数的时候,不能由(i.6)和(i.7)从SKIPIF1<0直接算出SKIPIF1<0,称这一类方法为隐式,通常采用某种迭代法求解。例如,将一般的隐式方法写成 SKIPIF1<0(i.8) 则可以利用如下的迭代法由SKIPIF1<0算出SKIPIF1<0: SKIPIF1<0(i.9) 关于SKIPIF1<0的迭代通常只需进行很少几步就可以满足精度要求了。 为了避免对隐式方法进行迭代的麻烦,比如说对于改进的Euler方法(i.7),可以采用某种预估法近似算出SKIPIF1<0,然后再用(i.7)作校正,这就导致所谓预估校正法。下面给出一个例子: SKIPIF1<0(i.10) 这是一个多步法,即计算节点SKIPIF1<0上的近似值SKIPIF1<0时,除了用到前一点的近似值SKIPIF1<0之外,还要用到SKIPIF1<0,甚至可能用到SKIPIF1<0。而用前面的各种Euler法计算节点SKIPIF1<0上的近似值SKIPIF1<0时,只用到SKIPIF1<0,因此称之为单步法。 下面给出另一个多步法的例子。在区间SKIPIF1<0上积分(i.1a),得 SKIPIF1<0 用Simpson公式(即把被积函数看作二次函数)近似计算积分,便得到 SKIPIF1<0(i.11) 用多步法(i.10)或(i.11)计算时,必须先用某种单步法由SKIPIF1<0计算出SKIPIF1<0,称为造表头。然后再逐次算出SKIPIF1<0。 一般说来,多步法比Euler法等简单的单步法精度要高一些。下面我们讨论一类所谓Ronge-Kutta法。他们是单步法,但是其精度可以与多步法比美。最常用的是下面的标准Ronge-Kutta法和Gear法: SKIPIF1<0(i.12) SKIPIF1<0(i.13) 从几何上,