龙格库塔方法及其matlab实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+( = f( , )
+)
(10)
f( + ,
)
= f( + ,
= f( +h,
)
这就是标准四阶龙格库塔公式 对实例的研究
利用龙格-库塔法求解方程
) n=0,1…N-1
少保留四位小数。
的数值,其中 h=,计算 y 的近似值。至
解:f(x,y)=8-3y,利用四阶龙格-库塔公式有
)=-
当 x0=0,y0=2, y≈y1=+=+×2= y≈y2=+=+×=
研究的方法
对实例的研究对比,实现精度的要求,龙格库塔是并不是一个固定的公式,所以只是对典 型进行分析
2. 龙格-库塔方法
龙格-库塔公式 在一阶精度的的拉格朗日中值定理有: 对于函数 y=f(x,y)
y'=f(x,y) y(n+1)=y(n)+h*K1
K1=f( , ) 这就是一阶龙格-库塔方法
形如
满足(5)式,若取 = ,则得到 =
则公式则恰为预估-校正法公式
若取 = ,则
f( , ) (6)
f( + ,
由(5)式,可知龙格-库塔法不是唯的 三阶龙格-库塔法
) n=0,1…N-1
+h(
)
= f( , )
(7)
f( +h ,
)
= f( +h ,
)
若,
,
,,
( )。类似二阶龙格-库塔法推导的
且满足 +
关键词:龙格-库塔 matlab 微分方程
1. 前言
:知识背景
龙格-库塔法(Runge-Kutta)是用于非线性常微分方程的解的重要的一类隐式或显式迭 代法。这些技术由数学家卡尔·龙格和马丁·威尔海姆·库塔于 1900 年左右发明。通常 所说的龙格库塔方法是相对四阶龙格库塔而言的,成为经典四阶龙格库塔法。该方法具有 精度高,收敛,稳定,计算过程中可以改变步长不需要计算高阶导数等优点,但是仍需计 算在一些点上的值,比如四阶龙格-库塔法没计算一步需要计算四步,在实际运用中是有 一定复杂性的。
龙格-库塔方法及其 matlab 实现
摘要:本文的目的数值求解微分方程精确解,通过龙格-库塔法,加以利用 matlab 为工具 达到求解目的。龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算 法,用于数值求解微分方程。MatLab 软件是由美国 Mathworks 公司推出的用于数值计算和 图形处理的科学计算系统环境。MatLab 是英文 MATrix LABoratory(矩阵实验室)的缩 写。在 MratLab 环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输 出、文件管理等各项操作。
Matlab 是在 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用 LINPACK 和 EISPACK 库程序的“通俗易用”的接口,此即用 FORTRAN 编写的萌芽状态的 MATLAB。
经几年的校际流传,在 Little 的推动下,由 Little、Moler、Steve Bangert 合 作,于 1984 年成立了 MathWorks 公司,并把 MATLAB 正式推向市场。从这时起,MATLAB 的 内核采用 C 语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。
MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性, 使原先控制领域里的封闭式软件包(如英国的 UMIST,瑞典的 LUND 和 SIMNON,德国的 KEDDC)纷纷淘汰,而改以 MATLAB 为平台加以重建。在时间进入 20 世纪九十年代的时 候,MATLAB 已经成为国际控制界公认的标准计算软件。
+( = f( , )=8-3
f( + ,
)=
= f( + ,
)=
+) = f( +h,
n=0,1…N-1
y(n+1)=y(n)+h* =f( , )
f( 故二阶龙格-库塔公式
, h* i=2…r
y(n+1)=y(n)+h( + )
f( , ) (2)
f(
,
将 y(x)在 处展成幂级数
) h)
Biblioteka Baidu
y( )=y( )+h ( )+
( )+o( )
f(x,y(x))
(x,y(x))+ (x,y(x))·f(x,y(x))
= ,,并使得局部截断误差为 o
+
=1
+
= (8)
+=
形如(7),常数满足(8),局部截断误差为 o( )的求解方法称为三阶龙格库塔法
在(8)式中若取
则得 = , = ,
代入(7)中得三阶龙格-库塔法公式
1, =-1, =2
+(
)
= f( , )
(9)
f( + ,
)
= f( +h ,
)
四阶龙格库塔法的推导类似于三阶龙格-库塔法,但相对复杂这里不再进行推 导,公式如下
到九十年代初期,在国际上 30 几个数学类科技应用软件中,MATLAB 在数值计算方面独占 鳌头,而 Mathematica 和 Maple 则分居符号计算软件的前两名。Mathcad 因其提供计算、 图形、文字处理的统一环境而深受中学生欢迎。
研究的意义
精确求解数值微分方程,对龙格库塔的深入了解与正确运用,主要是在已知方程导数和初 值信息,利用计算机仿真时应用,省去求解微分方程的复杂过程。利用 matlab 强大的数 值计算功能,省去认为计算的过程,达到快速精确求解数值微分方程。在实际生活中可以 利用龙格库塔方法和 matlab 的完美配合解决问题。
y( )=y( )+hf+ (
)+ o( ) (3)
将(2)式中的 在( , )点展成幂级数
f(
, h)
=f+h + h
+ o( )
将 , 代入(2)式,得
= +h(
)f
+h (
)+ o( )
对比(3)(4),当 y( )= 时
(4)
只有
(5)
形如(2)存在常数满足(5)式,局部截断误差为 o( )的求解方法称为二阶龙格-库塔 法。