当前位置:文档之家› 常微分方程常用数值解法.

常微分方程常用数值解法.

常微分方程常用数值解法.
常微分方程常用数值解法.

第一章绪论

1.1 引言

常微分方程是现代数学的一个重要分支,是人们解决各种实际问题的有效工具。微分方程的理论和方法从17世纪末开始发展起来,很快成了研究自然现象的强有力工具,在17到18世纪,在力学、天文、科学技术、物理中,就已借助微分方程取得了巨大的成就。1864年Leverrer根据这个方程预见了海王星的存在,并确定出海王星在天空中的位置。现在,常微分方程在许多方面获得了日新月异的应用。这些应用也为常微分方程的进一步发展提供了新的问题,促使人们对微分方程进行更深入的研究,以便适应科学技术飞速发展的需要。

研究常微分方程常用数值解是数学工作者的一项基本的且重要的工作。在国内外众多数学家的不懈努力,使此学科基本上形成了一套完美的体系。微分方程的首要问题是如何求一个给定方程的通解或特解。到目前为止,人们已经对许多微分方程得出了求解的一般方法。由于在生产实际和科学研究中所遇到的微分方程问题比较复杂,使这些问题的解即使能求出解析表达式,也往往因计算量太大而难于求出,而对于一些典型的微分方程则可以运用基本方法求出其解析解,并可以根据初值问题的条件把其中的任意常数确定下来。

由于求通解存在许多困难,人们就开始研究带某种定解条件的特解。首先是Cauchy对微分方程初始解的存在惟一性进行了研究。目前解的存在惟一性、延拓性、大范围的存在性以及解对初始解和参数的延续性和可微性等理论问题都已发展成熟。与此同时,人们开始采取各种近似方法来求微分方程的特解,例如求微分方程数值解的Euler折线法、Runge-Kutta法等,可以求得若干个点上微分方程的近似解。最后,由于当代高科技的发展为数学的广泛应用和深入研究提供了更好的手段。用计算机结合Matlab软件求方程的精确解、近似解,对解的性态进行图示和定性、稳定性研究都十分方便有效。

本章先介绍常微分的一般概念、导出微分方程的一些典型例子及求解微分方程的思路分析。从而得到常微分方程的常用数值解法。

1.2 常微分方程的概念

1.常微分方程的定义

含有未知量的等式称为方程,它表达了未知量所必须满足的某些条件。一般说来,凡含有自变量、未知函数以及未知函数的导数或微分的方程称为微分方程。如果微分方程中的未知函数只依赖于一个自变量,则称为常微分方程;如果未知函数依赖于两个或多个的自变量,并且在方程中出现偏导数,则称为偏微分方程。

在在一个微分方程中,未知函数最高阶导数的阶数,称为方程的阶数。如果一个微分方程关于未知函数及其各阶导数都是线性的,则称它为线性微分方程,否则称之为非线性微分方程。

本论文主要介绍常微分方程,也简称微分方程。

以y 错误!未找到引用源。为未知函数,x 错误!未找到引用源。为自变量的一阶常微分方程的一般形式可表示为微分方程,

,0),,(,=y y x F (1.2.1) 将(1.2.1)中,y 错误!未找到引用源。解出,则得到方程

),,(,y x f y = (1.2.2)

,0),(),(=+dy y x N dx y x M (1.2.3)

也称(1.2.1)为一阶隐式微分方程,(1.2.2)为一阶显式微分方程,(1.2.3)为一阶微分方程的微分形式。

错误!未找到引用源。阶隐式方程的一般形式为

,0),,,,()(,=n y y y x F (1.2.4)

错误!未找到引用源。阶显式方程的一般形式

),,,,,()1(,)(-=n n y y y x f y (1.2.5)

方程(1.2.4)中,如果函数错误!未找到引用源。对未知函数错误!未找到引用源。和它的各阶导数)1(,,,,-n y y y 错误!未找到引用源。都是一次的,则称其为线性常微分方程,否则,称其为非线性微分方程。

以y 错误!未找到引用源。为未知函数,错误!未找到引用源。为自变量的

n 错误!未找到引用源。阶线性微分方程具有如下形式:

),()()()(,1)1(1)(x f y x p y x p y x p y n n n n =++++-- (1.2.6)

2.常微分方程的解

设函数)(x y ?=是定义在区间错误!未找到引用源。上的错误!未找到引用源。阶可微导数。如果把错误!未找到引用源。代入方程(1.2.4)后能使其成为恒等式,即

()()()()()

,,',..,0,n F x x x x x I

???≡∈

则称错误!未找到引用源。是微分方程(1.2.4)在区间错误!未找到引用源。上的一个解。

例如,kx e y -=是微分方程

0=+ky dx

dy

在()+∞∞-,的一个解.x y tan =是微分方程21'y y +=在区间??

?

??-2,2ππ的一个解.

如果关系式()0,=y x F 决定的隐函数)(x y ?=是方程(1.2.4)的解,则我们称

()0,=y x F 是(1.2.4)的隐式解。例如一阶微分方程

0=+ydy xdx 有隐式解

.022=-+c y x 我们把含有n 个相互独立的任意常数n c c c ,...,21的解 ),..,,,(21n c c c x y ?= 称为n 阶微分方程(1.2.4)的通解。

在通解之中当一组任意常数确定时,所得到确定的解称为特解。例如,

x c x c y sin cos 21+=是二阶线性方程0''=+y y 的通解,而x

x y x y sin cos ,sin +==都是其特解,其中21,c c 是任意常数。一般地,方程的特解可由其通解中任意常

数取确定的常数导出,且方程的通解不一定表示方程的所有解。 3.常微分方程初值问题

为了确定微分方程的一个特解,我们可以给出这个微分方程的所满足的定解条件,常见的定解条件是初始条件,即方程(1.2.4)在某一点0x 所满足的条件: ()()()()().,...,'',000000n n y x y y x y y x y === (1.2.7) 微分方程(1.2.4)连同初始条件(1.2.7)一起称为初始值问题。 一阶常微分方程初值问题是求解函数)(x y ,且满足

?????=≤≤=.

)(,

),,(αy a y b x a y x f dx dy

(1.2.8)

其中),(y x f 错误!未找到引用源。为已知函数,αy 为给定的初值。 定理1.2.1 假设),(y x f 错误!未找到引用源。在矩形区域

{}),(],,[),(+∞-∞∈∈=Ωy b a x y x 内连续,且关于变元y Lipschitz 连续,即存在正常数L ,使得对任意],[b a x ∈及,成立不等式

,),(),(2121y y L y x f y x f -≤- (1.2.9) 其中常数错误!未找到引用源。称为Lipschitz 常数,则处置问题存在惟一解

()],[b a C x y ∈,()x y 连续依赖于初值.αy 由常微分方程的基本理论,我们有:

换句话说,若是()x y η如下初值问题

?????+=≤≤=.

)(,

),,(ηαy a y b x a y x f dx dy

(1.2.10)

的解错误!未找到引用源。,则

()()].,[,lim 0

b a x x y x y ∈=→ηη错误!未找到引用源。

因此问题(1.2.8)是适定的。

定理1.2.2 当假定函数),(y x f 错误!未找到引用源。满足定理1.2.1中的

条件时,也即微分方程(1.2.8)的解)(x y 错误!未找到引用源。是适定的。

综上,高阶常微分方程初值问题一般为

???????-==≤≤=+--.

1,,1,0,)(,),,,,,(111n i y dx a y d b x a dx

y

d dx dy y x f dx y d i i

i n n n n (1.2.11)

其中n y y αα,,1 错误!未找到引用源。为给定值。 引进新的变量函数

.,,2,1,,)

()(1

1n k b x a dx

x y d x y k k k =≤≤=-- (1.2.12) 则初值问题(1.2.11)化成了一阶常微分方程组初值问题

??????????

??

?=====-.

,,2,1,)(),,,,(,,,11

21

n i y a y y y x f dx dy y dx dy y dx dy i i n n

n n αb x a ≤≤ (1.2.13) 通过求解(1.2.13)得到(1.2.11)的解).(x y

1.3 常微分方程常用数值解法的思路

一般说来,对于某些典型微分方程可以通过初等积分法求解,而对于复杂微分方程,需要得到解在若干个点上的近似值或者便于计算的近似表达式即可。本论文讲研究常微分方程常用数值解法及其matlab 程序设计。

对于一阶常微分方程的初值问题为

?????==.

)(),

,(00y x y y x f dx

dy

(1.3.1) 求微分方程初值问题(1.3.1)的数值解,就是求解函)(x y y =在一系列离

散点错误!未找到引用源。),,2,1(n i x i =错误!未找到引用源。上精确值

)(,),(),(21n x y x y x y 错误!未找到引用源。的近似值n y y y ,,,21 错误!未找到引用源。。

由于计算的复杂及繁冗,在计算常微分方程初值问题的数值解是一般使用Matlab 软件进行编程计算,按如下步骤:

(1)引入点列{}i x 错误!未找到引用源。,其中h i h x x i i i ,,2,1,1 =+=-,错误!未找到引用源。称为步长。为了便于使用计算机进行编程计算,一般取步长为定值,即h h i =错误!未找到引用源。,

,1,0,0=+=i ih x x i , (2.2)

(2)使用常微分方程常用数值解方法,即输入由1-i y 错误!未找到引用源。计算出),,2,1(n i y i =错误!未找到引用源。的递推公式。

(3)利用(2)中的公式逐步求出近似解.,,,21n y y y 错误!未找到引用源。

第二章 单步法

所谓单步法是指这类方法在计算1+n y 时,只用到前一步的值n n n y x x ,,1+,然后逐步往下计算。单步法的精度不高,这是它的缺点。但我们只要给定初值就可以计算,所以还是比较方便的。以下我们介绍两种典型的单步法:Euler 法和Runge-Kutta 法。

2.1 Euler 法

为了计算出初始值问题

?????==.

)(),

,(00y x y y x f dx dy

(2.1.1)

在],[00b x x +这一区间上若干个点上解的近似解,我们将此区间n 等分,令

k k y n k kh x x n

b

h ,,...,2,1,,0=+==

为(2.1.1)的解,即k x x =当时精确值)(k x y 的近似解。我们的任务是要用尽可能简单的方法求出与)(k x y 尽可能接近的值k y 。Euler 法又称Euler 折线法,Euler 折线法是数值解法最简单的一种。

Euler 折线法的基本思想是利用微分中值定理对(2.1.1)的解()x y y =函数进行近似。由于()x y 是可微函数,故

()()(),'00h y x y h x y ζ=-+

其中,是ζ介于0x 和h x +0之间的一个值。当h 比较小时,()ζ'y 和()0'x y 相差不大,故用0x 代替上式中的ζ,就得到了的近似值

().,0001h y x f y y +=

当1y 知道以后,再用类似方法来求()x y 在点k x 的近似值.k y

().,..,2,1,,111n k h y x f y y k k k k =+=--- (2.1.2) 这样就得到了(2.1.1)的解在点n x x x ,...,,10的近似解,从几何上看,Euler 折线法就是在局部范围内用切线上的值去替代解曲线上的值。

Euler 公式在实际计算时较少采用,但由于它的结构简单,易于分析,在理论上具有非常重要的意义。

2.1.1 向前Euler 法

Euler 折线法的计算量小,但误差大,后来人们对Euler 折线法进行了改进: 由方程(2.1.1),在节点n x 处成立

()()().,'n n n x y x f x y = (2.1.3) 将()1+n x y 在n x 处利用Taylor 展开式展开,得

()()(),''2

')(2

1n n n n y h x hy x y x y ξ++=+ 其中将().,1+∈n n n x x ξ将式(2.1.3)代入上式得

()()()().''2

,)(2

1n n n n n y h x y x hy x y x y ξ++=+ (2.1.4) 在式(2.1.4)中略去高阶项

()()n n y h h x E ξ''2

,2

= (2.1.5) 并用n y 和1+n y 分别代替式(2.1.4)中的)(n x y 和()1+n x y ,可得Euler 公式(也称

向前Euler 公式:

().1,..,1,0,,11-=+=++N n y x hf y y n n n n (2.1.6)

2.1.2 向后Euler 法

向后Euler 法和向前Euler 法相差不大,只是将()1-n x y 在n x 处利用Taylor 展开式展开,得

()()(),''2

')(2

1n n n n y h x hy x y x y ξ+-=- 其中将().,1n n n x x -∈ξ将式(2.1.3)代入上式得

()()()().''2

,)(2

1n n n n n y h x y x hy x y x y ξ+-=- (2.1.7) 在式(2.1.7)中略去高阶项,并用n y 和1-n y 分别代替式(2.1.7)中的)(n x y 和

()1-n x y ,可得向后Euler 公式:

().1,..,1,0,,111-=+=+++N n y x hf y y n n n n (2.1.8) 其中a y a y y ==)(0,局部截断误差为

()()).(''2

,212

h O y h h x E n n =-=+ξ

因此,向后Euler 公式同向前Euler 公式,为一阶方法。

向前Euler 公式(2.1.6)和向后Euler 公式(2.1.8)相比,向前Euler 公式关于1+n y 是显式格式。而向后Euler 公式中,1+n y 隐含在方程中,称这样的格式为隐式格式。

2.1.3 中点差分公式法

若将展开式(2.1.4)和(2.1.7)多展开一项,得

()()()()),('"6

''2,)(1

321n n n n n n y h y h x y x hy x y x y ξξ+++=+

()()()()).('"6

''2,)(23

21n n n n n n y h y h x y x hy x y x y ξξ-+-=- 其中().,,1121

+-∈n n n n x x ξξ将上述两式相减并整理得

()()()),('"3

,2)(3

11n n n n n y h x y x hy x y x y ξ++=-+

其中().,11+-∈n n n x x ξ略去高阶项,并用n n y y ,1-和1+n y 代替上式中()n n x y x y ),(1- 和

)(1+n x y ,即得中心差分公式

().1,..,1,0,,211-=+=-+N n y x hf y y n n n n (2.1.9) 其局部截断误差为

()()).('"3

,33

h O y h h x E n n ==ξ 即中心差分公式为二阶方法。

2.1.4 梯形公式

如果将(2.1.1)中微分方程两端从n x 到1+n x 积分,则得 b ().,)()(11dx y x f x y x y n n

x x n n ?

+=-+

如果用梯形求积公式计算上式中的积分,则有

()()()()())).(,("12

,,[2)(3

111n n n n n n n n y f h x y x f x y x f h x y x y ξξ-

+=-+++ 略去高阶项可得梯形公式:

()().1,..,1,0],,,[2

111-=++

=+++N n y x f y x f h

y y n n n n n n (2.1.10) 其中a y a y y ==)(0,局部截断误差为

()()).('"12

,33

h O y h h x E n n =-=ξ

显然,梯形公式为二阶隐式公式。

2.1.5 改进Euler 法

一般来说,隐式格式比显示格式具有较好的数值稳定性。但是,由于在隐式格式里,1+n y 往往满足的是一个非线性方程,因而需要使用迭代法得到的一个1+n y 近似值,然后代入隐式格式作校正,并以这个校正值作为()1+n x y 的近似值。印版地,可以选择适当的显示格式计算预测值,我们把这样的格式称为预估一校正公式。预估一校正公式往往既便于计算又具有较好的数值稳定性。

如,对于梯形公式,可用向前Euler 公式计算出的预测值,再用梯形公式修正得到:

()()

[]

??

?

??++=+=++++.

),(),(2),

,(101110n n n n n n n n n n y x f y x f h y y y x hf y y

上述公式为改进Euler 公式。

其总体截断误差为).(3h O 在步长h 取得足够小的时侯,我们用改进Euler 方法解得数值与理论值非常接近。

2.2 Runge-Kutta 法

Runge-Kutta 法是一种间接使用Taylor 展开式来获取高阶方法的数值方法,也是一种特殊的单步法,具有相当实用价值。其基本做法是:首先,用函数()y x f ,在()n n y x ,附近的m 个点上的函数值的线性组合来代替()x y 的导数。然后,通过Taylor 展开式,确定其中的组合系数。这样既可以避免计算高阶导数,又可以获得较高的方法阶。

设m 为一个正整数(代表使用()y x f ,的函数值的个数), ()m i c i ,...,2,1=和

()i j m i b a ij i <≤=1,,...,3,2,为一些特定参数,则数值方法

??

?

???

?????

++=++==++++=∑-=+).

,(......),,(),,(),

..(1

112122122111

m j j mj n m n m n n n n m m n n K b h y h a x f K K hb y h a x f K y x f K K c K c K c h y y (2.2.1)

称为m 级Runge-Kutta 公式。

2.2.1 二阶Runge-Kutta 法

显然,公式(2.2.1)是显式的。如果对于该代数方程组的一组解,对应的方法阶为p ,则得到一个m 级p 阶显式Runge-Kutta 公式。

当2=m 时,公式(2.2.1)变为

???

??++==++=+).

,(),,(),

(12122

122111K hb y h a x f K y x f K K c K c h y y n n n n n n

其局部截断误差为

()).(,3h O h x E n = 经计算得参数方程组:

???

?

?

?

???

===+.21,21,12122221b c a c c c (2.2.2)

1.若取,1,1,2

1

21221====b a c c 则对应两二级二阶方法(又称变形Euler 公式):

???

?

???

++==++=+).

,(),,(),(2

1

21211

hK y h x f K y x f K K K h y y n n n n n n

2.若取,3

2

,43,4121221====b a c c 则对应两级二阶方法(又称两级Huen 公式):

???

?

???

++==++=+).

32

,32(),,(),3(4

121211

hK y h x f K y x f K K K h y y n n n n n n

2.2.2 三阶Runge-Kutta 法 1.三级Kutta 公式(三级三阶格式)

??????

???

+-+=++==+++=+).

2,(),2

,2(),

,(),4(6

2131

213211

hK hK y h x f K K h y h x f K y x f K K K K h y y n n n n n n n n

2.三级Huen 公式(三级三阶格式)

???

??

?

??

???++=++==++=+).32,32(),3

,3(),,(),3(4

2312

1311

hK y h x f K K h

y h x f K y x f K K K h y y n n n n n n n n

这两个常用方法在实际使用中能达到较低的精确要求。

2.2.3 古典Runge-Kutta 法

古典Runge-Kutta 公式是精度高、最实用的一种常微分方程常用数值解法。

()????

?

??

???

???

++=++=++==++++=+.

,),,2

(),2,2(),,(),22(6

3423

12143211

hK y h x f K hK y h x f K K h y h x f K y x f K K K K K h y y n n n n n n n n n n

2.2.4 一级隐式中点公式

设m 为一个正整数(代表使用()y x f ,的函数值的个数), ()m i c i ,...,2,1=和

()i j m i b a ij i <≤=1,,...,3,2,为一些特定参数,则数值方法

??

???

??

??????++=++=++=++++=∑∑∑-===+).

,(......),,(),

,(),..(1112221

111

22111m j j mj n m n m m j j j n n m

j j

j n n m m n n K b h y h a x f K K b h y h a x f K K b h y h a x f K K c K c K c h y y (2.2.2)

称为m 级隐式Runge-Kutta 公式。 当2,1==p m 时,有一级隐式中点公式为

???

??++=+=+).2,2(,

1111K h

y h x f K hK y y n n n n 2.2.5 二级隐式中点公式

当2,1==p m 时,有二级隐式中点公式为

???

??

?

???

+++++=-++-+=++=+).4112323,633(),1232341,633(),(2

21

2211211

hK hK y h x f K hK hK y h x f K K K h y y n n n n n n

相对显式公式而言,对于同样的m ,隐式格式不仅可获取较高的精度,而且具有较好的数值稳定性。

第三章 多步法

所谓多步法指:这类方法在计算1+n y 时,除了用到前一步的值n n n y x x ,,1+,之外,还要用到

)0;,,2,1(,>=--k k p y x p n p n , 这前面k 步的值,这个算法的代表就是阿达姆斯(Adams)方法。

本章介绍线性多步法。线性多步法多使用于求解步骤较多的情况。一般地,

k 步线性多步法公式可写成

()().,1

1

10

1∑∑--=---=-++=k j j n j n j k j j n j n y x f h x y y βα (3.1)

当01=-β时,式(3.1)为显式格式。否则为隐式格式。 1.显式格式

首先,将常微分方程(2.1.1)两端在区间],[1+-n p n x x 上求定积分,得 ()()()().,11?

+-+=-+n p

n x x p n n dt t y t f x y x y

如果在上面等式中的定积分用关于结点q n n n x x x -+,...,,1的数值积分近似,可得如下

显式格式

().,01∑=---++=q

j j n j n j p n n y x f h y y α

其中

()?+-==1

,,...,1,0,1n p

n x x j j q j dt t l h α

而()()q j t l j ,...,1,0=为函数()()x y x f ,关于结点q n n n x x x -+,...,,1的Lagrange 插值函数的基函数。

当3=q 时,四步Adams 显式格式

()()()()].,9,37,59,55[24

3322111------+-+-+

=n n n n n n n n n n y x f y x f y x f y x f h

y y 其局部截断误差为

()

()).(720

2516551h O y h E n n n +-=+ξ

2.隐式格式

如果在等式(3.1)中的定积分用关于结点q n n n x x x -++11,...,,的数值积分近似,可得如下隐式格式

().,0111∑=-+-+-++=q

j j n j n j p n n y x f h y y β

其中

()?+-==

1

,,...,1,0,1n p n x x j j q j dt t l h

β 而()()q j t l j ,...,1,0=为函数()()x y x f ,关于结点q n n n x x x -++11,...,,的Lagrange 插值函数的基函数。

当3=q 时,三步Adams 隐式格式 ()()()()].,,5,19,9[24

2211111----++++-++

=n n n n n n n n n n y x f y x f y x f y x f h

y y 其局部截断误差为

()

()).(720

196551h O y h E n n n +-

=+ξ Adams 显式与隐式法相比较而言:同阶数情况下,隐式格式的局部截断误差

系数的绝对值比显式格式的小,隐式格式的稳定性相对显式格式的要大。

总结

本论文总结了单步法(向前Euler法,向后Euler法,中心差分法,梯形法,改进Euler法,Runge-Kutta法)及线性多步法(Adams法)几种比较常用的常微分方程数值解法,并通过数值算例对同一问题的解的误差计算比较,总结各种算法的优缺点。一般而言,对Euler法而言,求解常微分方程初值问题数值时计算简单、程序简洁并且计算量小,但是,计算精度却很低。中心差分法及梯形法较好地提高计算精确度,同时又保持计算简单,程序简洁的优点。改进的Euler 法比Euler法得到的计算结果要好很多。我们用改进Euler方法解得数值与理论值非常接近。对Runge-Kutta法来说,越高阶的方法计算精度越高,但相应的计算量也越大。古典Runge-Kutta公式是精度高、最实用的一种常微分方程常用数值解法。而线性多步法多使用于求解步骤较多的情况。

我们要把常微分方程常用数值解法掌握并灵活运用并加以推广应用,来解决我们的实际生活中所遇到问题,为我国的发展服务,充分体现了常微分方程常用数值解法的重大意义。作为一名数学工作者,我们有责任也有义务继续探索常微分方程组的数值解法,并且在不断探索其解法的前提下,开发出更好更优的软件来解决实际算法问题。但是,其现有理论也还远远不能满足需要,有待于进一步

研究,使这门学科的理论更加完善。

数值实例

1.分别用改进Euler 公式和古典Runge-Kutta 公式解常微分方程初值问题

2,01,(0)1x y y x y y ?'

=-≤≤??

?=?

取步长0.1h =,计算结果保存于下表1中,精确解为()12y x x =+。 解:fun 函数:

function f=fun(x,y); f=y-2*x/y;

精确解:

x=0:0.1:1; y=sqrt(1+2*x) y =

Columns 1 through 9

1.0000 1.0954 1.1832 1.2649 1.3416 1.4142 1.4832 1.5492 1.6125

Columns 10 through 11

1.6733 1.7321

1.应用改进Euler法,运用matlab软件,程序为:format long

h=0.1;

x=0:h:1.0;

y=zeros(size(x));

y(1)=1;

y1=sqrt(1+2*x);

N=length(x);

for n=1:N-1

K1=feval(@fun,x(n),y(n));

K2=feval(@fun,x(n)+0.5*h,y(n)+0.5*h*K1);

y(n+1)=y(n)+h*K1;

end

y

2.应用古典Runge-Kutta法,运用matlab软件,程序为:format long

h=0.1;

x=0:h:1.0;

y=zeros(size(x));

y(1)=1;

y1=sqrt(1+2*x);

N=length(x);

for n=1:N-1

K1=feval(@fun,x(n),y(n));

K2=feval(@fun,x(n)+0.5*h,y(n)+0.5*h*K1);

K3=feval(@fun,x(n)+0.5*h,y(n)+0.5*h*K2);

K4=feval(@fun,x(n)+h,y(n)+h*K3);

y(n+1)=y(n)+h/6*(K1+2*K2+2*K3+K4); end y

表1

2.分别用向前Eul er

公式、向后Euler 公式、中心差分公式和梯形公式解常微分方程初值问题

x

精确解 改进Euler 公式 古典Runge-Kutta

公式 0.1

1.09544511501033

2

1.10000000000000

1.09544553169309

4

0.2 1.18321595661992

3

1.19181818181818

2

1.18321674550599

3

0.3 1.26491106406735

2

1.27743783371472

2

1.26491222834039

2

0.4 1.34164078649987

4

1.35821259956028

9

1.34164235375037

1

0.5 1.41421356237309

5

1.43513291865779

6

1.41421557789008

5

0.6 1.48323969741913

3

1.50896625356633

2

1.48324222277199

2

0.7 1.54919333848296

7

1.58033823765521

7

1.54919645230214

3

0.8 1.61245154965971

1.64978343104771

1

1.61245534965898

6

0.9 1.67332005306815

1

1.71777934786008

7

1.67332465901625

6

1.0 1.73205080756887

7

1.78477083249798

2

1.73205636516556

5

常微分方程边值问题的数值解法

第8章 常微分方程边值问题的数值解法 引 言 第7章介绍了求解常微分方程初值问题的常用的数值方法;本章将介绍常微分方程的边值问题的数值方法。 只含边界条件(boundary-value condition)作为定解条件的常微分方程求解问题称为常微分方程的边值问题(boundary-value problem). 为简明起见,我们以二阶边值问题为 则边值问题(8.1.1)有唯一解。 推论 若线性边值问题 ()()()()()(),, (),()y x p x y x q x y x f x a x b y a y b αβ'''=++≤≤?? ==? (8.1.2) 满足 (1) (),()p x q x 和()f x 在[,]a b 上连续; (2) 在[,]a b 上, ()0q x >, 则边值问题(8.1.1)有唯一解。 求边值问题的近似解,有三类基本方法: (1) 差分法(difference method),也就是用差商代替微分方程及边界条件中的导数,最终化为代数方程求解; (2) 有限元法(finite element method);

(3) 把边值问题转化为初值问题,然后用求初值问题的方法求解。 差分法 8.2.1 一类特殊类型二阶线性常微分方程的边值问题的差分法 设二阶线性常微分方程的边值问题为 (8.2.1)(8.2.2) ()()()(),,(),(), y x q x y x f x a x b y a y b αβ''-=<

一阶常微分方程解法总结

第 一 章 一阶微分方程的解法的小结 ⑴、可分离变量的方程: ①、形如 )()(y g x f dx dy = 当0)(≠y g 时,得到 dx x f y g dy )() (=,两边积分即可得到结果; 当0)(0=ηg 时,则0)(η=x y 也是方程的解。 例1.1、 xy dx dy = 解:当0≠y 时,有 xdx y dy =,两边积分得到)(2ln 2为常数C C x y += 所以)(112 12 C x e C C e C y ±==为非零常数且 0=y 显然是原方程的解; 综上所述,原方程的解为)(12 12 为常数C e C y x = ②、形如0)()()()(=+dy y Q x P dx y N x M 当0)()(≠y N x P 时,可有 dy y N y Q dx x P x M ) () ()()(=,两边积分可得结果; 当0)(0=y N 时,0y y =为原方程的解,当0(0=) x P 时,0x x =为原方程的解。 例1.2、0)1()1(2 2 =-+-dy x y dx y x 解:当0)1)(1(2 2 ≠--y x 时,有 dx x x dy y y 1 122-=-两边积分得到 )0(ln 1ln 1ln 22≠=-+-C C y x ,所以有)0()1)(1(22≠=--C C y x ; 当0)1)(1(2 2 =--y x 时,也是原方程的解; 综上所述,原方程的解为)()1)(1(2 2 为常数C C y x =--。 ⑵可化为变量可分离方程的方程: ①、形如 )(x y g dx dy = 解法:令x y u =,则udx xdu dy +=,代入得到)(u g u dx du x =+为变量可分离方程,得到

常微分方程解题方法总结.doc

常微分方程解题方法总结 来源:文都教育 复习过半, 课本上的知识点相信大部分考生已经学习过一遍 . 接下来, 如何将零散的知 识点有机地结合起来, 而不容易遗忘是大多数考生面临的问题 . 为了加强记忆, 使知识自成 体系,建议将知识点进行分类系统总结 . 著名数学家华罗庚的读书方法值得借鉴, 他强调读 书要“由薄到厚、由厚到薄”,对同学们的复习尤为重要 . 以常微分方程为例, 本部分内容涉及可分离变量、 一阶齐次、 一阶非齐次、 全微分方程、 高阶线性微分方程等内容, 在看完这部分内容会发现要掌握的解题方法太多, 遇到具体的题 目不知该如何下手, 这种情况往往是因为没有很好地总结和归纳解题方法 . 下面以表格的形 式将常微分方程中的解题方法加以总结,一目了然,便于记忆和查询 . 常微分方程 通解公式或解法 ( 名称、形式 ) 当 g( y) 0 时,得到 dy f (x)dx , g( y) 可分离变量的方程 dy f ( x) g( y) 两边积分即可得到结果; dx 当 g( 0 ) 0 时,则 y( x) 0 也是方程的 解 . 解法:令 u y xdu udx ,代入 ,则 dy 齐次微分方程 dy g( y ) x dx x u g (u) 化为可分离变量方程 得到 x du dx 一 阶 线 性 微 分 方 程 P ( x)dx P ( x) dx dy Q(x) y ( e Q( x)dx C )e P( x) y dx

伯努利方程 解法:令 u y1 n,有 du (1 n) y n dy , dy P( x) y Q( x) y n(n≠0,1)代入得到du (1 n) P(x)u (1 n)Q(x) dx dx 求解特征方程:2 pq 三种情况: 二阶常系数齐次线性微分方程 y p x y q x y0 二阶常系数非齐次线性微分方程 y p x y q x y f ( x) (1)两个不等实根:1, 2 通解: y c1 e 1x c2 e 2x (2) 两个相等实根:1 2 通解: y c1 c2 x e x (3) 一对共轭复根:i , 通解: y e x c1 cos x c2 sin x 通解为 y p x y q x y 0 的通解与 y p x y q x y f ( x) 的特解之和. 常见的 f (x) 有两种情况: x ( 1)f ( x)e P m ( x) 若不是特征方程的根,令特解 y Q m ( x)e x;若是特征方程的单根,令特 解 y xQ m ( x)e x;若是特征方程的重根, 令特解 y*x2Q m (x)e x; (2)f (x) e x[ P m ( x) cos x p n ( x)sin x]

常微分方程数值解法的误差分析教材

淮北师范大学 2013届学士学位论文 常微分方程数值解法的误差分析 学院、专业数学科学学院数学与应用数学 研究方向计算数学 学生姓名李娜 学号 20091101070 指导教师姓名陈昊 指导教师职称讲师 年月日

常微分方程数值解法的误差分析 李娜 (淮北师范大学数学科学学院,淮北,235000) 摘要 自然界与工程技术中的很多现象,往往归结为常微分方程定解问题。许多偏微分方程问题也可以化为常微分方程问题来近似求解。因此,研究常微分方程的数值解法是有实际应用意义的。数值解法是一种离散化的数学方法,可以求出函数的精确解在自变量一系列离散点处的近似值。随着计算机计算能力的增强以及数值计算方法的发展,常微分方程的数值求解方法越来越多,比较成熟的有Euler 法、后退Euler法、梯形方法、Runge—Kutta方法、投影法和多步法,等等.本文将对这些解的误差进行分析,以求能够得到求解常微分数值解的精度更好的方法。 关键词:常微分方程, 数值解法, 单步法, 线性多步法, 局部截断误差

Error Analysis of Numerical Method for Solving the Ordinary Differential Equation Li Na (School of Mathematical Science, Huaibei Normal University, Huaibei, 235000) Abstract In nature and engineering have many phenomena , definite solution of the problem often boils down to ordinary differential equations. So study the numerical solution of ordinary differential equations is practical significance. The numerical method is a discrete mathematical methods, and exact solution of the function can be obtained in the approximation of a series of discrete points of the argument.With the enhanced computing power and the development of numerical methods,ordinary differential equations have more and more numerical solution,there are some mature methods. Such as Euler method, backward Euler method, trapezoidal method, Runge-Kutta method, projection method and multi-step method and so on.Therefore, numerical solution of differential equation is of great practical significance. Through this paper, error of these solutions will be analyzed in order to get a the accuracy better way to solve the numerical solution of ordinary differential. Keywords:Ordinary differential equations, numerical solution methods, s ingle ste p methods, l inear multi-step methods, local truncation error

常微分方程数值解法

i.常微分方程初值问题数值解法 常微分方程初值问题的真解可以看成是从给定初始点出发的一条连续曲线。差分法是常微分方程初值问题的主要数值解法,其目的是得到若干个离散点来逼近这条解曲线。有两个基本途径。一个是用离散点上的差商近似替代微商。另一个是先对微分方程积分得到积分方程,再利用离散点作数值积分。 i.1 常微分方程差分法 考虑常微分方程初值问题:求函数()u t 满足 (,), 0du f t u t T dt =<≤ (i.1a ) 0(0)u u = (i.1b) 其中(,)f t u 是定义在区域G : 0t T ≤≤, u <∞上的连续函数,0u 和T 是给定的常数。我们假设(,)f t u 对u 满足Lipschitz 条件,即存在常数L 使得 121212(,)(,), [0,]; ,(,)f t u f t u L u u t T u u -≤-?∈∈-∞∞ (i.2) 这一条件保证了(i.1)的解是适定的,即存在,唯一,而且连续依赖于初值0u 。 通常情况下,(i.1)的精确解不可能用简单的解析表达式给出,只能求近似解。本章讨论常微分方程最常用的近似数值解法-差分方法。先来讨论最简单的Euler 法。为此,首先将求解区域[0,]T 离散化为若干个离散点: 0110N N t t t t T -=<< <<= (i.3) 其中n t hn =,0h >称为步长。 在微积分课程中我们熟知,微商(即导数)是差商的极限。反过来,差商就是微商的近似。在0t t =处,在(i.1a )中用向前差商 10()()u t u t h -代替微商du dt ,便得 10000()()(,())u t u t hf t u t ε=++ 如果忽略误差项0ε,再换个记号,用i u 代替()i u t 便得到 1000(,)u u hf t u -= 一般地,我们有 1Euler (,), 0,1, ,1n n n n u u hf t u n N +=+=-方法: (i.4) 从(i.1b) 给出的初始值0u 出发,由上式可以依次算出1,,N t t 上的差分解1,,N u u 。

常微分方程初值问题数值解法

常微分方程初值问题数值解法 朱欲辉 (浙江海洋学院数理信息学院, 浙江舟山316004) [摘要]:在常微分方程的课程中讨论的都是对一些典型方程求解析解的方法.然而在生产实 际和科学研究中所遇到的问题往往很复杂, 在很多情况下都不可能给出解的解析表达式. 本篇文章详细介绍了常微分方程初值问题的一些数值方法, 导出了若干种数值方法, 如Euler法、改进的Euler法、Runge-Kutta法以及线性多步法中的Adams显隐式公式和预测校正 公式, 并且对其稳定性及收敛性作了理论分析. 最后给出了数值例子, 分别用不同的方法计算出近似解, 从得出的结果对比各种方法的优缺点. [关键词]:常微分方程;初值问题; 数值方法; 收敛性; 稳定性; 误差估计 Numerical Method for Initial-Value Problems Zhu Yuhui (School of Mathematics, Physics, and Information Science, Zhejiang Ocean University, Zhoushan, Zhejiang 316004) [Abstract]:In the course about ordinary differential equations, the methods for analytic solutions of some typical equations are often discussed. However, in scientific research, the problems are very complex and the analytic solutions about these problems can’t be e xpressed explicitly. In this paper, some numerical methods for the initial-value problems are introduced. these methods include Euler method, improved Euler method, Runge-Kutta method and some linear multistep method (e.g. Adams formula and predicted-corrected formula). The stability and convergence about the methods are presented. Some numerical examples are give to demonstrate the effectiveness and accuracy of theoretical analysis. [Keywords]:Ordinary differential equation; Initial-value problem; Numerical method; Convergence; Stability;Error estimate

各类微分方程的解法大全

各类微分方程的解法 1.可分离变量的微分方程解法 一般形式:g(y)dy=f(x)dx 直接解得∫g(y)dy=∫f(x)dx 设g(y)及f(x)的原函数依次为G(y)及F(x),则G(y)=F(x)+C为微分方程的隐式通解 2.齐次方程解法 一般形式:dy/dx=φ(y/x) 令u=y/x则y=xu,dy/dx=u+xdu/dx,所以u+xdu/dx=φ(u),即du/[φ(u)-u]=dx/x 两端积分,得∫du/[φ(u)-u]=∫dx/x 最后用y/x代替u,便得所给齐次方程的通解 3.一阶线性微分方程解法 一般形式:dy/dx+P(x)y=Q(x) 先令Q(x)=0则dy/dx+P(x)y=0解得y=Ce- ∫P(x)dx,再令y=u e-∫P(x)dx代入原方程解得u=∫Q(x) e∫P(x)dx dx+C,所以y=e-∫P(x)dx[∫Q(x)e∫P(x)dx dx+C] 即y=Ce-∫P(x)dx +e- ∫P(x)dx∫Q(x)e∫P(x)dx dx为一阶线性微分方程的通解 4.可降阶的高阶微分方程解法 ①y(n)=f(x)型的微分方程 y(n)=f(x) y(n-1)= ∫f(x)dx+C1 y(n-2)= ∫[∫f(x)dx+C1]dx+C2 依次类推,接连积分n次,便得方程y(n)=f(x)的含有n个任意常数的通解②y”=f(x,y’) 型的微分方程 令y’=p则y”=p’,所以p’=f(x,p),再求解得p=φ(x,C1) 即dy/dx=φ(x,C1),所以y=∫φ(x,C1)dx+C2 ③y”=f(y,y’) 型的微分方程

令y ’=p 则y ”=pdp/dy,所以pdp/dy=f(y,p),再求解得p=φ(y,C 1) 即dy/dx=φ(y,C 1),即dy/φ(y,C 1)=dx,所以∫dy/φ(y,C 1)=x+C 2 5.二阶常系数齐次线性微分方程解法 一般形式:y ”+py ’+qy=0,特征方程r 2+pr+q=0 6.二阶常系数非齐次线性微分方程解法 一般形式: y ”+py ’+qy=f(x) 先求y ”+py ’+qy=0的通解y 0(x),再求y ”+py ’+qy=f(x)的一个特解y*(x) 则y(x)=y 0(x)+y*(x)即为微分方程y ”+py ’+qy=f(x)的通解 求y ”+py ’+qy=f(x)特解的方法: ① f(x)=P m (x)e λx 型 令y*=x k Q m (x)e λx [k 按λ不是特征方程的根,是特征方程的单根或特征方程的重根依次取0,1或2]再代入原方程,确定Q m (x)的m+1个系数 ② f(x)=e λx [P l(x)cos ωx+P n (x)sin ωx ]型 令y*=x k e λx [Q m (x)cos ωx+R m (x)sin ωx ][m=max ﹛l,n ﹜,k 按λ+i ω不是特征方程的根或是特征方程的单根依次取0或1]再代入原方程,分别确定Q m (x)和R m (x)的m+1个系数

常微分方程数值解法

第八章 常微分方程数值解法 考核知识点: 欧拉法,改进欧拉法,龙格-库塔法,单步法的收敛性与稳定性。 考核要求: 1. 解欧拉法,改进欧拉法的基本思想;熟练掌握用欧拉法,改进欧拉法、求微 分方程近似解的方法。 2. 了解龙格-库塔法的基本思想;掌握用龙格-库塔法求微分方程近似解的方 法。 3. 了解单步法的收敛性、稳定性与绝对稳定性。 例1 用欧拉法,预估——校正法求一阶微分方程初值问题 ? ??=-='1)0(y y x y ,在0=x (0,1)0.2近似解 解 (1)用1.0=h 欧拉法计算公式 n n n n n n x y y x y y 1.09.0)(1.01+=-+=+,1.0=n 计算得 9.01=y 82.01.01.09.09.02=?+?=y (2)用预估——校正法计算公式 1,0)(05.01.09.0)0(111)0(1=???-+-+=+=++++n y x y x y y x y y n n n n n n n n n 计算得 91.01=y ,83805.02=y 例2 已知一阶初值问题 ???=-='1 )0(5y y y 求使欧拉法绝对稳定的步长n 值。 解 由欧拉法公式 n n n n y h y h y y )51(51-=-=+ n n y h y ~)51(~1-=+

相减得01)51()51(e h e h e n n n -==-=-Λ 当 151≤-h 时,4.00≤

常微分方程数值解法

第八章 常微分方程的数值解法 一.内容要点 考虑一阶常微分方程初值问题:?????==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. 根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。 2. 找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等等)。 3. 运用这些规律列出方程和定解条件。基本模型 1. 发射卫星为什么用三级火箭 2. 人口模型 3. 战争模型 4. 放射性废料的处理通常需要求出方程的解来说明实际现象,并加以检验。如果能得到解析形式的解固然是便于分析和应用的,但是我们知道,只有线性常系数微分方程,并且自由项是某些特殊类型的函数时,才可以得到这样的解,而绝大多数变系数方程、非线性方程都是所谓“解不出来” 的于是对于用微分方程解决实际问题来说,数值解法就是一个十分重要的手段。 1. 改进Euler 法: 2. 龙格—库塔( Runge—Kutta )方法: 【源程序】 1. 改进Euler 法: function [x,y]=eulerpro(fun,x0,x1,y0,n);%fun 为函数,(xO, x1)为x 区间,yO 为初始值,n 为子 区间个数 if nargin<5,n=5O;end h=(x1-xO)/n; x(1)=xO;y(1)=yO; for i=1:n x(i+1)=x(i)+h; y1=y(i)+h*feval(fun,x(i),y(i)); y2=y(i)+h*feval(fun,x(i+1),y1); y(i+1)=(y1+y2)/2; end 调用command 窗口 f=i nlin e('-2*y+2*x A2+2*x') [x,y]=eulerpro(f,O,,1,1O) 2 x +2x , (0 < x < , y(0) = 1 求解函数y'=-2y+2 2. 龙格—库塔( Runge—Kutta )方法: [t,y]=solver('F',tspan ,y0) 这里solver为ode45, ode23, ode113,输入参数F是用M文件定义的微分方程y'= f (x, y)右端的函数。tspan=[t0,tfinal]是求解区间,y0是初值。 注:ode45和ode23变步长的,采用Runge-Kutta算法。 ode45表示采用四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(△ 口人5解 决的是Nonstiff(非刚性)常微分方程。

常微分方程的数值解

实验4 常微分方程的数值解 【实验目的】 1.掌握用MATLAB软件求微分方程初值问题数值解的方法; 2.通过实例用微分方程模型解决简化的实际问题; 3.了解欧拉方法和龙格-库塔方法的基本思想和计算公式,及稳定性等概念。 【实验内容】 题3 小型火箭初始重量为1400kg,其中包括1080kg燃料。火箭竖直向上发射时燃料燃烧率为18kg/s,由此产生32000N的推力,火箭引擎在燃料用尽时关闭。设火箭上升时空气阻力正比于速度的平方,比例系数为0.4kg/m,求引擎关闭瞬间火箭的高度、速度、加速度,及火箭到达最高点的时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。 模型及其求解 火箭在上升的过程可分为两个阶段,在全过程中假设重力加速度始终保持不变,g=9.8m/s2。 在第一个过程中,火箭通过燃烧燃料产生向上的推力,同时它还受到自身重力(包括自重和该时刻剩余燃料的重量)以及与速度平方成正比的空气阻力的作用,根据牛顿第二定律,三个力的合力产生加速度,方向竖直向上。因此有如下二式: a=dv/dt=(F-mg-0.4v2)/m=(32000-0.4v2)/(1400-18t)-9.8 dh/dt=v 又知初始时刻t=0,v=0,h=0。记x(1)=h,x(2)=v,根据MATLAB 可以求出0到60秒内火箭的速度、高度、加速度随时间的变化情况。程序如下: function [ dx ] = rocket( t,x ) a=[(32000-0.4*x(2)^2)/(1400-18*t)]-9.8; dx=[x(2);a]; end ts=0:1:60;

x0=[0,0]; [t,x]=ode45(@rocket,ts,x0); h=x(:,1); v=x(:,2); a=[(32000-0.4*(v.^2))./(1400-18*t)]-9.8; [t,h,v,a]; 数据如下: t h v a 0 0 0 13.06 1.00 6.57 13.19 13.30 2.00 26.44 26.58 1 3.45 3.00 59.76 40.06 13.50 4.00 106.57 53.54 13.43 5.00 16 6.79 66.89 13.26 6.00 240.27 80.02 12.99 7.00 326.72 92.83 12.61 8.00 425.79 105.22 12.15 9.00 536.99 117.11 11.62 10.00 659.80 128.43 11.02 11.00 793.63 139.14 10.38 12.00 937.85 149.18 9.71 13.00 1091.79 158.55 9.02 14.00 1254.71 167.23 8.33 15.00 1425.93 175.22 7.65 16.00 1604.83 182.55 6.99 17.00 1790.78 189.22 6.36 18.00 1983.13 195.27 5.76 19.00 2181.24 200.75 5.21 20.00 2384.47 205.70 4.69 21.00 2592.36 210.18 4.22 22.00 2804.52 214.19 3.79 23.00 3020.56 217.79 3.41 24.00 3240.08 221.01 3.07 25.00 3462.65 223.92 2.77 26.00 3687.88 226.56 2.50 27.00 3915.58 228.97 2.27

15第十五章 常微分方程的解法

-293- 第十五章 常微分方程的解法 建立微分方程只是解决问题的第一步,通常需要求出方程的解来说明实际现象,并加以检验。如果能得到解析形式的解固然是便于分析和应用的,但是我们知道,只有线性常系数微分方程,并且自由项是某些特殊类型的函数时,才可以得到这样的解,而绝大多数变系数方程、非线性方程都是所谓“解不出来”的,即使看起来非常简单的方程如 22x y dx dy +=。于是对于用微分方程解决实际问题来说,数值解法就是一个十分重要的手段。 §1 常微分方程的离散化 下面主要讨论一阶常微分方程的初值问题,其一般形式是 ?????=≤≤=0 )() ,(y a y b x a y x f dx dy (1) 在下面的讨论中,我们总假定函数),(y x f 连续,且关于y 满足李普希兹(Lipschitz)条 件,即存在常数L ,使得 |||),(),(|y y L y x f y x f ?≤? 这样,由常微分方程理论知,初值问题(1)的解必定存在唯一。 所谓数值解法,就是求问题(1)的解)(x y 在若干点 b x x x x a N =<<<<=L 210 处的近似值),,2,1(N n y n L =的方法,),,2,1(N n y n L =称为问题(1)的数值解, n n n x x h ?=+1称为由n x 到1+n x 的步长。今后如无特别说明,我们总取步长为常量h 。 建立数值解法,首先要将微分方程离散化,一般采用以下几种方法: (i )用差商近似导数 若用向前差商h x y x y n n ) ()(1?+代替)('n x y 代入(1)中的微分方程,则得 )1,,1,0())(,() ()(1?=≈?+N n x y x f h x y x y n n n n L 化简得 ))(,()()(1n n n n x y x hf x y x y +≈+ 如果用)(n x y 的近似值n y 代入上式右端,所得结果作为)(1+n x y 的近似值,记为1+n y , 则有 )1,,1,0() ,(1?=+=+N n y x hf y y n n n n L (2) 这样,问题(1)的近似解可通过求解下述问题 ?? ?=?=+=+) () 1,,1,0(),(01a y y N n y x hf y y n n n n L (3) 得到,按式(3)由初值0y 可逐次算出N y y y ,,,21L 。式(3)是个离散化的问题,称为差分方程初值问题。

(整理)常微分方程数值解法

i.常微分方程初值问题数值解法 i.1 常微分方程差分法 考虑常微分方程初值问题:求函数()u t 满足 (,), 0du f t u t T dt =<≤ (i.1a ) 0(0)u u = (i.1b) 其中(,)f t u 是定义在区域G : 0t T ≤≤, u <∞上的函数,0u 和T 是给定的常数。我们假设(,)f t u 对u 满足Lipschitz 条件,即存在常数L 使得 121212(,)(,), [0,]; ,(,)f t u f t u L u u t T u u -≤-?∈∈-∞∞ (i.2) 这一条件保证了(i.1)的解是适定的,即存在,唯一,而且连续依赖于初值0u 。 通常情况下,(i.1)的精确解不可能用简单的解析表达式给出,只能求近似解。本章讨论常微分方程最常用的近似数值解法--差分方法。先来讨论最简单的Euler 法。为此,首先将求解区域[0,]T 离散化为若干个离散点: 0110N N t t t t T -=<<<<=L (i.3) 其中n t hn =,0h >称为步长。 在微积分课程中我们熟知,微商(即导数)是差商的极限。反过来,差商就是微商的近似。在0t t =处,在(i.1a )中用向前差商 10()()u t u t h -代替微商du dt ,便得 10000()()(,())u t u t hf t u t ε=++ 如果忽略误差项0ε,再换个记号,用i u 代替()i u t 便得到 1000(,)u u hf t u -= 一般地,我们有 1Euler (,), 0,1,,1n n n n u u hf t u n N +=+=-L 方法: (i.4) 从(i.1b) 给出的初始值0u 出发,由上式可以依次算出1,,N t t L 上的差分解1,,N u u L 。

(完整版)专题一(二阶常微分方程解法)

二阶微分方程: 时为非齐次 时为齐次,0)(0)()()()(22≠≡=++x f x f x f y x Q dx dy x P dx y d 二阶常系数齐次线性微分方程及其解法: 2 122,)(2,,(*)0)(1,0(*)r r y y y r r q pr r q p qy y p y 式的两个根、求出的系数; 式中的系数及常数项恰好是,,其中、写出特征方程:求解步骤: 为常数; ,其中?'''=++?=+'+''式的通解:出的不同情况,按下表写、根据(*),321r r 二阶常系数非齐次线性微分方程 型 为常数; 型,为常数 ,]sin )(cos )([)()()(,)(x x P x x P e x f x P e x f q p x f qy y p y n l x m x ωωλλλ+===+'+'' 二阶常系数非齐次线性微分方程的一般形式是 ''+'+=y py qy f x () (1) 其中p q ,是常数。 方程(1)的通解为对应的齐次方程 0=+'+''qy y p y (2) 的通解Y 和方程(1)的一个特解*y 之和。即 *y Y y +=.我们已解决了求二阶常系数齐 次线性方程通解的问题,所以,我们只需讨论求二阶常系数非齐次线性微分方程的特解* y 的方法。 下面我们只介绍当方程(1)中的)(x f 为如下两种常见形式时求其特解*y 的方法。 一、 f x e P x x m ()()=?λ型 由于方程(1)右端函数f x ()是指数函数e x λ?与m 次多项式P x m ()的乘积,而指数

函数与多项式的乘积的导数仍是这类函数,因此,我们推测: 方程(1)的特解应为 y e Q x x *?=λ()( Q x ()是某个次数待定的多项式 ) y e Q x e Q x x x *??'=+'λλλ()() y e Q x Q x Q x x *?"=?+'+''λλλ[()()()]22 代入方程(1),得 e Q x p Q x p q Q x e P x x x m λλλλλ???''++'+++≡?[()()()()()]()22 消去e x λ?,得 ''++'+++≡Q x p Q x p q Q x P x m ()()()()()()22λλλ (3) 讨论 01、如果λ不是特征方程 r pr q 20++=的根。 即 02≠++q p λλ 由于P x m ()是一个m 次的多项式,欲使(3)的两端恒等,那未Q x ()必为一个m 次多项式,设为 Q x b x b x b x b m m m m m ()=++++--0111Λ 将之代入(3),比较恒等式两端x 的同次幂的系数,就得到以b b b b m m 01 1,,,,Λ-为未知数的m +1个线性方程的联立方程组,解此方程组可得到这m +1个待定的系数,并得到特解 y e Q x x m *?=λ() 02、如果λ是特征方程 r pr q 20++=的单根。 即 λλ20++=p q ,但 20λ+≠p 欲使(3)式的两端恒等,那么'Q x ()必是一个m 次多项式。 因此,可令 Q x x Q x m ()()=? 并且用同样的方法来确定)(x Q 的系数b b b b m m 0 11,,,,Λ-。 03、如果λ是特征方程 r pr q 20++=的二重根。 即 λλ20++=p q ,且 20λ+=p 。 欲使(3)式的两端恒等,那么''Q x ()必是一个m 次多项式 因此, 可令 Q x x Q x m ()()=?2 并且用同样的方法来确定)(x Q 的系数b b b b m m 011,,,,Λ-。

二阶常微分方程的解法及其应用

目录 1 引言 (1) 2 二阶常系数常微分方程的几种解法 (1) 2.1 特征方程法 (1) 2.1.1 特征根是两个实根的情形 (2) 2.1.2 特征根有重根的情形 (2) 2.2 常数变异法 (4) 2.3 拉普拉斯变化法 (5) 3 常微分方程的简单应用 (6) 3.1 特征方程法 (7) 3.2 常数变异法 (9) 3.3 拉普拉斯变化法 (10) 4 总结及意义 (11) 参考文献 (12)

二阶常微分方程的解法及其应用 摘要:本文通过对特征方程法、常数变易法、拉普拉斯变换法这三种二阶常系数常微分方程解法进行介绍,特别是其中的特征方程法分为特征根是两个实根的情形和特征根有重根的情形这两种情况,分别使用特征值法、常数变异法以及拉普拉斯变换法来求动力学方程,现今对于二阶常微分方程解法的研究已经取得了不少成就,尤其在二阶常系数线性微分方程的求解问题方面卓有成效。应用常微分方程理论已经取得了很大的成就,但是,它的现有理论也还远远不能满足需要,还有待于进一步的发展,使这门学科的理论更加完善。 关键词:二阶常微分方程;特征分析法;常数变异法;拉普拉斯变换

METHODS FOR TWO ORDER ORDINARY DIFFERENTIAL EQUATION AND ITS APPLICATION Abstract:This paper introduces the solution of the characteristic equation method, the method of variation of parameters, the Laplasse transform method the three kind of two order ordinary differential equations with constant coefficients, especially the characteristic equation method which is characteristic of the root is the two of two real roots and characteristics of root root, branch and don't use eigenvalue method, method of variation of constants and Laplasse transform method to obtain the dynamic equation, the current studies on solution of ordinary differential equations of order two has made many achievements, especially in the aspect of solving the problem of two order linear differential equation with constant coefficients very fruitful. Application of the theory of ordinary differential equations has made great achievements, however, the existing theory it is still far from meeting the need, needs further development, to make the discipline theory more perfect. Keywords:second ord er ordinary differential equation; Characteristic analysis; constant variation method; Laplasse transform 1 引言 数学发展的历史告诉我们,300年来数学分析是数学的首要分支,而微分方程

相关主题
文本预览
相关文档 最新文档