常微分方程数值解法

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

第八章 常微分方程的数值解法

一.内容要点

考虑一阶常微分方程初值问题:⎪⎩⎪⎨⎧==0

0)()

,(y x y y x f dx dy

微分方程的数值解:设微分方程的解y (x )的存在区间是[a,b ],在[a,b ]内取一系列节

点a= x 0< x 1<…< x n =b ,其中h k =x k+1-x k ;(一般采用等距节点,h=(b-a)/n 称为步长)。在每个节点x k 求解函数y(x)的近似值:y k ≈y(x k ),这样y 0 , y 1 ,...,y n 称为微分方程的数值解。

用数值方法,求得f(x k )的近似值y k ,再用插值或拟合方法就求得y(x)的近似函数。 (一)常微分方程处置问题解得存在唯一性定理

对于常微分方程初值问题:⎪⎩⎪⎨⎧==0

0)()

,(y x y y x f dx dy

如果:

(1) 在B y y A x x 00≤-≤≤,的矩形内),(y x f 是一个二元连续函数。 (2) ),(y x f 对于y 满足利普希茨条件,即

2121y y L y x f y x f -≤-),(),(则在C x x 0≤≤上方程⎪⎩⎪⎨⎧==0

0)()

,(y x y y x f dx

dy

的解存在且唯一,这里C=min((A-x 0),x 0+B/L),L 是利普希茨常数。

定义:任何一个一步方法可以写为),,(h y x h y y k k k 1k Φ+=+,其中),,(h y x k k Φ称为算法的增量函数。

收敛性定理:若一步方法满足: (1)是p 解的.

(2) 增量函数),,(h y x k k Φ对于y 满足利普希茨条件.

(3) 初始值y 0是精确的。则),()()(p h O x y kh y =-kh =x -x 0,也就是有

0x y y lim k x x kh 0h 0

=--=→)(

(一)、主要算法 1.局部截断误差

局部截断误差:当y(x k )是精确解时,由y(x k )按照数值方法计算出来的1~

+k y 的误差y (x k+1)- 1~

+k y 称为局部截断误差。

注意:y k+1和1~

+k y 的区别。因而局部截断误差与误差e k +1=y (x k +1) -y k +1不同。

如果局部截断误差是O (h p+1),我们就说该数值方法具有p 阶精度。

1. 显式欧拉格式:⎩⎨⎧=+=+001)()

,(y x y y x hf y y k k k k k =1,2,⋯n-1.

显式欧拉格式的特点:

(1)、单步方法; (2)、显式格式;

(3)、局部截断误差)(2h O 因而是一阶精度 。

隐式欧拉格式⎩

⎨⎧=+=+++00111)()

,(y x y y x hf y y k k k k

2. 两步欧拉格式:⎩⎨⎧=+=-+001)()

,(y x y y x hf 2y y k k 1k k k =1,2,⋯n-1.

两步欧拉格式的局部截断误差)(3h O ,因而是二阶精度 3. 梯形方法:

=+1k y []⎪⎩

⎪⎨⎧

=+⋅+=+++00)(),(),(y x y y x f y x f 2h y y k k 1k 1k k 1

k ; 3.改进的欧拉方法:

预测值: ),(^

k k k 1k y x f h y y ⋅+=+

校正值: =+1k y ⎥⎦

⎢⎣⎡+⋅+++),(),(^k k 1k 1k k y x f y x f 2h y 。

或改写为:⎪⎪⎩

⎪⎨⎧

+=+=+=++)

(21

),(),(11c p k p k k c k k k p y y y y x f h y y y x f h y y

4、梯形方法与改进欧拉方法的截断误差是O(h 3),具有二阶精度。

5、龙格-库塔法的思想

1). 二阶龙格-库塔法计算公式: ⎪⎩⎪

⎨⎧λ+λ-+=++==+)

)((),(),(211

121K K 1h y y hK p y h p x f K y x f K k k k k k k

当:2

1

=λp 时,得一簇龙格-库塔公式,其局部截断误差均为O (h 3)都是二阶精度。特别取1p ==

λ,21

,就是改进欧拉公式。 取1p =λ=,2

1

,得二阶龙格—库塔法为:

⎩⎪⎨⎧+=++==+2

1121)2,2(),(hK y y K h y h x f K y x f K k k k

k k k ,称为二阶中点格式。 2)、经典龙格-库塔格式(也称为标准龙格-库塔方法):

⎪⎪⎪⎪

⎪⎪⎨⎧++++=++=++=++==+)22(6),()2,2()2,2(),(432113423121K K K K h y y hK y h x f K K h y h x f K K h y h x f K y x f K k

k k k k

k k

k k k 四阶龙格-库塔方法的截断误差为()5h O ,具有四阶精度。一般一阶常微分方程初值问题用四阶龙格-库塔方法计算,其精度均满足实际问题精度要求。

3).变步长龙格-库塔方法: 从节点x k 出发,以步长h 据四阶龙格-库塔方法求出一

个近似值)

(1h k y +,然后以步长h/2求出一个近似值)2/(1h k y +,得误差事后估计式:

)()

(1)2/(1)

2/(1

h k h k h k 1k y y 15

1y y ++++-≈- 根据)

(1)2/(1h k h k y y ++-=∆来选取步长h 。

4). RKF 格式:变步长龙格-库塔方法,因频繁加倍或折半步长会浪费计算量。Felhberg 改进了传统龙格-库塔方法,得到RKF 格式,较好解决了步长的确定,而且提高了精度与稳定性,为Matlab 等许多数值计算软件采用。

4/5阶RKF 格式:由4阶龙格-库塔方法与5阶龙格-库塔方法结合而成。

⎝⎛+-+++=⎪

⎝⎛-+++=++654311^

5431155250956430285611282566561351651410121972565140821625K K K K K h y y K K K K h y y n n n n

⎪⎪

⎪⎪⎪⎪⎩

⎪⎪⎪⎪

⎪⎪⎪⎨

-+-+-+=-+-++=+-++=++

+=++==)401141041859256535442278,2()

410484551336808216439,()219772962197720021971932,1312()32

9

323,83()

4,4(),(443216432153214213121K K K K K y h x f K K K K K y h x f K K K K y h x f K K K y h x f K K h y h x f K y x f K n n n n n n

n n n n n n

相关文档
最新文档