计算方法 常微分方程初值问题数值解法Euler公式龙格库塔法

合集下载

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

常微分方程初值问题的数值解法
3 要求 Ri y( xi 1 ) yi 1 O(h ) ,则必须有:
1 1 2 1 , 2 p 2
这里有 3 个未知 数, 2 个方程。
存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库 塔格式。注意到,p 1, 1 2 1 就是改进的欧拉法。
Step 1: 将 K2 在 ( xi , yi ) 点作 Taylor 展开
K 2 f ( xi ph, yi phK1 ) f ( xi , yi ) phf x ( xi , yi ) phK1 f y ( xi , yi ) O( h2 )
y( xi ) phy( xi ) O(h2 )
d f ( x, y) dx 首先希望能确定系数 1、2、p,使得到的算法格式有 2阶 dy 精度,即在 yi y( xi ) 的前提假设下,使得 f x ( x, y) f y ( x, y) dx Ri y( xi 1 ) yi 1 O(h3 ) f x ( x, y) f y ( x, y) f ( x, y) y( x )
y( x0 ) y0 yk 1 yk h f ( xk , yk 1 )
, k 0,1,...
隐式欧拉法的求解: 利用迭代的思路进行.
yi 1 yi hf ( xi , yi 1 )
变换为
y
( k 1) i 1
yi hf ( xi , y )
y i 1 K1 K2

1 1 y i h K 1 K 2 2 2 f ( xi , yi ) f ( xi h, yi hK 1 )
步长一定是一个h 吗?
§2 Runge-Kutta Method

计算方法 常微分方程初值问题数值解法-Euler公式-龙格-库塔法

计算方法 常微分方程初值问题数值解法-Euler公式-龙格-库塔法

[xi , xi 1 ]上积分得,
y(xi 1 ) y(xi )

xi 1
xi
f[x, y(x)]dx
(9.4 )
改用梯形方法计算其积分项,即

xi 1
x i 1 x i [f(x i , y(x i )) f(x i 1 , y(x i 1 ))] 2
xi
f[x, y(x)]dx
0 1 n1 n
… , y(xn ) (未知) 处的函数值 y(x 0 ), y(x1 ),
, yn 的近似值 y 0 , y1 ,…
y=y(x)
a=x0 x1
x2
x3
xn=b
• 相邻两个节点的间距 h xi 1 xi 称为步长,
步长可以相等,也可以不等。
• 本章总是假定h为定数,称为定步长,这时节 点可表示为
第9章 常微分方程初值问题数值解法
§9.1 引言
包含自变量、未知函数及未知函数的导数的方程称 为微分方程。
自变量个数只有一个的微分方程称为常微分方 程。
微分方程中出现的未知函数最高阶导数的阶数 称为微分方程的阶数。 如果未知函数y及其各阶导数
y, y, … , y
(n)
都是一次的,则称其为线性的,否则称为非线性的。
• 如下是一些典型方程求解析解的基本方法 可分离变量法、 常系数齐次线性方程的解法、 常系数非齐次线性方程的解法等。
• 但能求解的常微分方程仍然是很少的,大多数
的常微分方程是不可能给出解析解。例如,一
阶微分方程
y x y
2
2
的解就不能用初等函数及其积分来表达。
• 从实际问题当中归纳出来的微分方程,通常主 要依靠数值解法来解决。 • 本章主要讨论一阶常微分方程初值问题

计算方法 常微分方程初值问题数值解法Euler公式龙格库塔法 ppt课件

计算方法 常微分方程初值问题数值解法Euler公式龙格库塔法 ppt课件

(b)-(a),得
y(i x 1)yi1
h2
y(ξ)
2!
定义9.2 若数值方法的局部截断误差为O(hp1) , 则称这种数值方法的精度阶数是P。
评论: • 步长(h<1) 越小,P越高,则局部截断误差
越小。计算精度越高。
欧拉公式的精度讨论 欧拉公式的局部截断误差为 :
y(xi+1 ) – yi+1 = O(h2) 欧拉方法仅为一阶方法。
点可表示为
x i x 0 ih i , 1… ,,2 n,
数值解法需要把连续性的问题加以离散化,从 而求出离散节点的数值解。
a=x0 x1 x2 x3 x4 xn-1 xn=b
• 常微分方程数值解法的基本出发点:离散化。 采用“步进式”,即求解过程顺着节点排列的 次序逐步向前推进。
• 算法:要求给出用已知信息
直线 P1P 2 方程为: y y 1 f1 ( ,y 1 x )( x x 1 ) 当 x x2时,得
y 2 y 1 f1 ( ,y 1 x )2 ( x x 1 )
由此获得了P2的坐标。
重复以上过程, 对已求得点 Pi(xi,yi),以 y(ix )f(i,x yi)
为(近似)斜率作直线
• 如果老师最后没有总结一节课的重点的难点,你 是否会认为老师的教学方法需要改进?
• 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭
• “不怕太阳晒,也不怕那风雨狂,只怕先生骂我 笨,没有学问无颜见爹娘 ……”
• “太阳当空照,花儿对我笑,小鸟说早早早……”
常微分方程初值问题 解的存在性定理
的解y=y(x)代表通过点 ( x0, y0)的一条称之为微分方
程的积分曲线。

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

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

yi1 y(xi ) h f (xi1, y(xi1))

y(xi1)
yi1
h2 2
y(xi ) O(h3) O(h2 )
因此,后退欧拉公式的局部截断误差为 O (h2)
(6 9)
(3)对梯形公式,注意到其公式可改写为
1
yi1 2 [ yi hf ( xi , yi )] [ yi h f ( xi1 , yi1 )]
x x 0 x1 x i h x i1 xn b
yi1 yi y0 y( x0 )
h
f
(
xi1
,
yi1
)
(i 0,1, , N 1)
(6 3)
这称为后退欧拉公式
后退欧拉公式是一个隐式公式,通常采用迭代法求解。
例6.1 以 h=0.1为步长,用欧拉法求常微分方程初值问题
y xe x y y(0) 1
h
f
(
xi
,
yi
)
(i 0,1, , N 1)
(6 2)
2.后退欧拉公式
y

xi 1 xi
f (x,
y( x))dx
h
f ( xi1 ,
y( xi1 ))
时由(6 4)得,
Y f (x, y)
y( xi1 ) y( xi ) h f ( xi1 , y( xi1 )) o 由此可建立另一公式
由中值定理,有
y( xi1 ) y( xi ) ( xi1 xi ) y( ) h f ( , y( )), ( xi , xi1 )
因此,以上介绍的各种单步法本质上都是对平均斜
率 f( , y( )) 进行近似,龙格-库塔据之提出了适当选取若

常微分方程数值解法-欧拉法、改进欧拉法与四阶龙格库塔法常微分方程数值解法

常微分方程数值解法-欧拉法、改进欧拉法与四阶龙格库塔法常微分方程数值解法

y( xn1)
y( xn
Байду номын сангаас
h)
y(xn )
hy'( xn )
h2 2!
y''( )
进一步: 令
h2 y( xn ) hy'( xn ) 2! y''( xn )
常微分方 yn1 y( xn1 ) , yn y( xn )
程数值解
法-欧拉法 yn1 yn hf ( xn , yn ) h2
、改进欧 y( xn1 ) yn1
2
max y''( x)
a xb
拉法和四
三、Euler方法
已 知 初 值 问 题 的 一 般 形式 为:
dy
dx
f (x, y)
a xb
(1)
y( x0 ) y0
常微分方 用差商近似导数 程数值解 问题转化为
yn1 yn dy
h
dx
法-欧拉法 yn1 yn hf ( xn , yn )
法-欧 y(拉0) 法1
、改进欧
拉法和四
四、几何意义
由 x0 , y0 出发取解曲线 y yx 的切线(存在!),则斜率
dy
f x0, y0
dx x y
,
0
0
常微分方 由于 f x0, y0 及 x0, y0 已知,必有切线方程。
由点斜式写出切程线方数程:值解
法、-改欧进拉欧法 ddxy y y0 x x0
常微分方 程数值解 能用解析方法求出精确解的微分方程为数不多,
而且有的方程即使有解析解,也可能由于解的表达
法-欧拉法 式非常复杂而不易计算,因此有必要研究微分方程

常微分方程初值问题的Runge-Kutta解法[文献综述]

常微分方程初值问题的Runge-Kutta解法[文献综述]

毕业论文文献综述信息与计算科学常微分方程初值问题的Runge-Kutta 解法一、前言部分常微分方程在很多学科领域内有着重要的作用,如自动控制、各种电子学装置的设计、弹道的计算、飞机和导弹飞行的稳定性的研究、化学反应过程稳定性的研究等等,这些问题都可以化为求微分方程的解,或者化为研究解的性质的问题。

这些问题都包含某个变量关于另一个变量的变化。

大多数这样的问题需要求解一个初值问题,即求解满足给定初值条件的微分方程[]1。

我们更多的是使用逼近原问题的解的方法来逼近原方程的解。

因逼近方法给出更精确的结果和实际的误差信息,所以更经常被使用。

一些典型的常微分初值问题的数值求解问题的方法有:单步法和线性多步法。

在求解区间[]b a ,上取定节点b x x x x x a N N =<<<<<=-1210令n n n x x x -=∆+1,称为积分网格的步长。

用N y y y ,,,10 表示初值问题精确解()x y 在节点N x x x ,,,10 上函数值()()()()N x y x y x y x y ,,,,210 的近似值。

对给定的数值积分方法,{}n y 中的各个n y 市按某一个递推算法确定的。

一个递推算法,如果在用它计算1+n y 时只用到已经求出的诸值n y y y ,,10中的n y ,而无须使用其余值110,,-n y y y 中的任何一个,则称此算法为单步方法[]2。

相反的则是多步法。

单步法主要有欧拉法和Runge-Kutta 法,多步法主要有Adams 法和Milne 法等[]3。

本文综述常微分初值问题初值问题的数值解法及其误差估计(相容性、稳定性和收敛性分析),重点介绍了Runge-Kutta 法。

二、主题部分2.1 常微分方程的初值问题概述[]114-常微分方程在微积分概念出现后即已出现。

从莱布尼兹专门研究用变量变换解决一阶微分方程的求解问题的“求通解”时代,到1841年刘维尔的里卡蒂方程不存在一般初等解和柯西的初值问题的提出,常微分方程转向“求定解”时代。

常微分方程初值问题数值解的实现和分析—四阶Rungekutta方法与预估校正算法毕业论文

常微分方程初值问题数值解的实现和分析—四阶Rungekutta方法与预估校正算法毕业论文

《数值分析》课程设计常微分方程初值问题数值解的实现和分析—四阶Runge-kutta方法及预估-校正算法常微分方程初值问题数值解的实现和分析—四阶Runge-kutta方法及预估-校正算法摘要求解常微分方程的初值问题,Euler方法,改进的Euler方法及梯形方法精度比较低,所以本文构造高精度单步的四级Runge-kutta方法及高精度的多步预估—校正算法及其Matlab编程来实现对常微分方程初值问题的求解,使在求解常微分方程时,对以前积分方法的收敛速度及精度都有了很高的提高。

关键词:Runge-kutta方法,Adams方法,预估—校正算法,Matlab目录1.前言 (1)2. 几个简单的数值积分法 (2)2.1Runge-kutta方法 (2)2.1.1 Runge-kutta方法的应用 (5)2.2预估—校正算法 (7)2.2.1 Adams数值积分方法简介及预估—校正算法 (7)2.2.2 预估—校正算法的应用 (12)3. 结果分析 (16)总结 (17)参考文献 (18)英文原文和中文翻译 (19)1英文原文 (19)2中文翻译 (20)1.前言常微分方程的初值问题是微分方程定解问题的一个典型代表,以下面的例子介绍常微分方程初值问题数值解的基本思想和原理。

例1.1 一重量垂直作用于弹簧所引起的震荡,当运动阻力与速度的平方成正比时,可借助如下二阶常微分方程描述若令和,则上述二阶常微分方程可化成等价的一阶常微分方程组类似于例1.1,对于m阶常微分方程其中。

若定义可得如下等价的一阶常微分方程组我们知道多数常微分方程主要靠数值解法。

所谓数值解法,就是寻求解在一系列离散节点上的近似值。

相邻两个节点之间的间距称为步长[1]。

2. 几个简单的数值积分法2.1 Runge-kutta方法Runge在1985年提出了一种基于Euler折线法的新的数值方法,此后这种新的数值方法又经过其同胞K.Heun和Kutta的努力[2],发展完善成为后世所称的Runge-kutta 方法。

数值分析常微分方程的数值解法

数值分析常微分方程的数值解法

《计算机数学基础》数值部分第五单元辅导14 常微分方程的数值解法一、重点内容 1. 欧拉公式:),...,,,(),()(1-210=⎩⎨⎧+=+=≈01+1+n k kh x x y x hf y y x y kk k k k k局部截断误差是O (h 2)。

2. 改进欧拉公式:预报-校正公式:⎪⎩⎪⎨⎧++=+=++++)],(),([2),(1111k k k k k k k k k k y x f y x f hy y y x hf y y 校正值预报值即 ))],(,(),([211k k k k k k k k y x hf y x f y x f hy y +++=++ 或表成平均的形式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+21=+=+=1+1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y改进欧拉法的局部截断误差是O (h 3)3. 龙格-库塔法二阶龙格-库塔法的局部截断误差是O (h 3) 三阶龙格-库塔法的局部截断误差是O (h 4) 四阶龙格−库塔法公式: )22(643211κκκκ++++=+hy y k k其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +21h κ2);κ4=f (x k +h ,y k +h κ3)四阶龙格-库塔法的局部截断误差是O (h 5)。

二、实例例1 用欧拉法解初值问题⎩⎨⎧1=060≤≤0--='2)().(y x xy y y ,取步长h =0.2。

计算过程保留4位小数。

解h =0.2, f (x )=-y -xy 2。

首先建立欧拉迭代格式),,)((.),(210=-420=--=+=21+k y x y y hx hy y y x hf y y k k k kk k k k k k k当k =0,x 1=0.2时,已知x 0=0,y 0=1,有y (0.2)≈y 1=0.2×1(4-0×1)=0.8000当k =1,x 2=0.4时,已知x 1=0.2, y 1=0.8,有 y (0.4)≈y 2=0.2×0.8×(4-0.2×0.8)=0.614 4 当k =2,x 3=0.6时,已知x 2=0.4,y 2=0.6144,有 y (0.6)≈y 3=0.2×0.6144×(4-0.4×0.4613)=0.8000例2 用欧拉预报-校正公式求解初值问题⎩⎨⎧1=10=++'2)(sin y x y y y ,取步长h =0.2,计算y (0.2),y (0.4)的近似值,计算过程保留5位小数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直线 P1P2 方程为: y y1 f(x1 , y1 )(x x1 ) 当 x x2 时,得
y2 y1 f(x1 , y1 )(x 2 x1 )
由此获得了P2的坐标。
重复以上过程, 对已求得点 Pi(xi , yi ) ,以 y(xi ) f(x i , yi )
为(近似)斜率作直线
y yi f(x i , yi )(x xi )
当 x xi1 时,得
yi1 yi f(x i , yi )(x i1 xi )
这样,从x0逐个算出 x1 , x2 , … xn
对应的数值解
y1 , y 2 , … yn
就获得了一系列的点: P1, P1,…,Pn。 从图形上看,就获得了一条近似于曲线y=y(x)
yi, yi1, yi2,… , y0
计算 y i1 的递推公式。
以便对初值问题
y f(x, y) y(x0 ) y0
中的导数 y 进行离散化处理。
§9.2 简单的数值方法与基本概念
9.2.1 Euler公式
欧拉(Euler)方法是解初值问题的最简单的数值方法。
初值问题
y f(x, y) y(x0 ) y0
的解y=y(x)代表通过点 (x0, y0 ) 的一条称之为微分方程
的积分曲线。
积分曲线上每一点 (x, y)的切线的斜率 y(x)等于函 数 f(x, y) 在这点的函数值。
Euler法的求解过程: 从初始点P0( 即点(x0,y0))出发,
作积分曲线y=y(x)在P0点上切线 P0P1,其斜率为
• 如下是一些典型方程求解析解的基本方法 ➢ 可分离变量法、 ➢ 常系数齐次线性方程的解法、 ➢ 常系数非齐次线性方程的解法等。
• 但能求解的常微分方程仍然是很少的,大多数 的常微分方程是不可能给出解析解。例如,一 阶微分方程
y x2 y2
的解就不能用初等函数及其积分来表达。
• 从实际问题当中归纳出来的微分方程,通常主 要依靠数值解法来解决。
计算方法 (Numerical Analysis)
第12次 常微分方程初值问题数值解法
内容
1. 常微分方程初值问题解的存在性定理 2. Euler公式 3. 梯形公式 4. 两步Euler公式 5. 欧拉法的局部截断误差 6. 改进型Euler公式 7. 龙格-库塔法 8. 算法实现
常微分方程初值问题 解的存在性定理
y(x0 ) f(x 0 , y0 )
Pn
y
P1(x1 , y1)
P2(x2 , y2)
y=y(x)
Pi(xi , yi) Pi+1(xi+1 , yi+1) y(xn)
P0y(x0) y(x1)
y(x2) y(xi)
y(xi+1)
x0 x1
x2 xi
xi+1
xn
直线 P0P1 的方程为: y y0 f(x 0 , y0 )(x x0 )
对R内的所有x,y 都成立。
则方程( 9.1 ) 在a , b上存在唯一的连续可微解
y=y(x) 。
Home
Euler公式
本章假设微分方程初值问题(9.1)有解
常微分方程初值问题(9.1)的数值解法的基本思想:
• 算出精确解y(x)在区间a,b上的一系列离散节 点
a x0 x1 … xn1 xn b
第9章 常微分方程初值问题数值解法
§9.1 引言
➢ 包含自变量、未知函数及未知函数的导数的方程称 为微分方程。
➢ 自变量个数只有一个的微分方程称为常微分方 程。
➢ 微分方程中出现的未知函数最高阶导数的阶数 称为微分方程的阶数。
➢ 如果未知函数y及其各阶导数
y, y, … , y(n)
都是一次的,则称其为线性的,否则称为非线性的。
当 x x1 时,得 y1 y0 f(x 0 , y0 )(x1 x0 )
这样就获得了P1点的坐标: (x1, y1) 。将y1作为y(x1)的 近似值(想象(x1, y1) 在积分曲线y=y(x)上)
过点P1(x1,y1),作积分曲线y=y(x)的切线交直线x=x2于
P2点。注意切线 P1P2 的斜率(近似)为 y(x1 ) f(x1 , y1 )
yi1 yi y0 y(x0 )
hf(xi
,
yi
)
,
i
0,1,...,n
( 9.2 )
其中,h xi1 xi 为常数,i=0,1,…,n
处的函数值 y(x 0 ), y(x 1 ), … , y(x n ) (未知)
的近似值 y 0 , y1 ,… , yn
y=y(x)
a=x0 x1 x2 x3 xn=b
• 相邻两个节点的间距 h xi1 xi 称为步长,
步长可以相等,也可以不等。 • 本章总是假定h为定数,称为定步长,这时节
的折线 P1P2P3 … Pn 。
y
y1
y2
yi
yi+1
P0y(x0) y(x1)
y(x2) y(xi)
y(xi+1)
yn Pn y=y(x)
y(xn)
x0 x1
x2 xi
xi+1
xn
微分方程(9.1)的精确解y=y(x)的近似解为:
y1, y2, …, yn
Euler公式
Euler法的计算公式可以表达为:
• 本章主要讨论一阶常微分方程初值问题
y f(x, y) y(x 0 ) y 0
在区间a ≤ x ≤ b上的数值解法。
(9.1 )
定理1:如果函数f(x, y)在带形区域
R {a x b,- y }
内连续,且关于y满足李普希兹(Lipschitz)条件, 即存在常数L(它与x, y无关)使
点可表示为
xi x0 ih, i 1,2, … , n
数值解法需要把连续性的问题加以离散化,从 而求出离散节点的数值解。
a=x0 x1 x2 x3 x4 xn-1 xn=b
• 常微分方程数值解法的基本出发点:离散化。 采用“步进式”,即求解过程顺着节点排列的 次序逐步向前推进。
• 算法:要求给出用已知信息
f(x, y1 ) f(x, y2) L y1 y2 , y1 , y2 R
则方程( 9.1 ) 在a, b上存在唯一的连续可微分的 解的解 y=y(x) 。
推论:如果函数f(x,y)对y的偏导数
f(x, y) }
内有界。
即存在常数L(它与x,y无关)使 | f(x, y) | L y
相关文档
最新文档