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

浅谈常微分方程初值问题数值解法在自然科学、工程技术、甚至社会科学的一些领域中,常常会遇见一阶常微分方程的求解问题:()上述问题,寻求解的具体表达式十分困难,仅对一些特殊形式的才有可能找到解的解析表达式,在大多情况下,初值问题的解不能用初等函数表示出来即使可写出解的解析表达式,但因为这些表达式过于复杂,要计算它在某些点上的函数值也异常困难。
在实际问题中,经常需要的恰是解在某些点上的函数值,因此研究初值问题的数值解法十分必要。
1 常微分方程初值问题的数值解法常微分方程的近似解法大体可分成三大类:一类是图解法和器械法;第二类是解的近似法;第三类是数值解法,即通过离散化的方法直接求出函数在某些点上的近似值,此数值解仅为精确解的近似解。
其基本原理为:一阶常微分方程的初值问题的解是上变量的连续函数,因此求上述问题的数值解,就是在区间上的若干离散点上用离散化的方法将初值问题化成离散变量的相应问题,从而相应问题的解可作为初值问题理论解的近似值。
由常微分方程的理论可知,只要在区域内连续,且关于满足林普希兹条件,则方程的解存在且唯一。
初值问题的数值解法通常采取“步进法”,而“步进法”又可分为“单步法”和“多步法”两类。
(1)单步法。
所谓“单步法”是指在计算时,只用到前一步的有关信息。
其一般形式为:,主要包括下面三种方法:Euler方法,改进的Euler公式-梯形公式和Runge-Kutta法。
(2)线性多步法。
单步法没有用到前几步计算得到的信息,因此为了提高精度,需重新计算多个点处的函数数值,如RK方法,故计算量较大。
线性多步法的基本思想是充分利用前面的已知信息来构造精度高且计算量小的算法来计算。
多步法常用方法是线性多步法,求解公式为:构造的常用方法是Taylor展开和数值积分方法。
常用的线性多步公式有:四阶Adams显式公式:四阶Adams隐式公式:四阶Milne显式公式:三阶Hamming公式:(隐式公式)预测校正系统和预测校正修正法:一般地,同阶的隐式法比显式法精确,而且数值稳定性好,但隐式公式中的求解较难,需要用到迭代法,这就增加了计算量。
常微分方程初值问题数值解法

数值解法的必要性
实际应用需求
许多实际问题需要求解常微分方程初值问题,如物理、 化学、生物、工程等领域。
解析解的局限性
对于复杂问题,解析解难以求得或不存在,因此需要 采用数值方法近似求解。
数值解法的优势
未来发展的方向与挑战
高精度算法
研究和发展更高精度的算法,以提高数值解的准确性和稳定性。
并行计算
利用并行计算技术,提高计算效率,处理大规模问题。
自适应方法
研究自适应算法,根据问题特性自动调整计算精度和步长。
计算机技术的发展对数值解法的影响
1 2
硬件升级
计算机硬件的升级为数值解法提供了更强大的计 算能力。
它首先使用预估方法(如欧拉方法)得到一个 初步解,然后使用校正方法(如龙格-库塔方法) 对初步解进行修正,以提高精度。
预估校正方法的优点是精度较高,且计算量相 对较小,适用于各种复杂问题。
步长与误差控制
01
在离散化过程中,步长是一个重要的参数,它决定 了离散化的精度和计算量。
02
误差控制是数值逼近的一个重要环节,它通过设定 误差阈值来控制计算的精度和稳定性。
能够给出近似解的近似值,方便快捷,适用范围广。
数值解法的历史与发展
早期发展
早在17世纪,科学家就开始尝 试用数值方法求解常微分方程。
重要进展
随着计算机技术的发展,数值 解法在20世纪取得了重要进展, 如欧拉法、龙格-库塔法等。
当前研究热点
目前,常微分方程初值问题的 数值解法仍有许多研究热点和 挑战,如高精度算法、并行计
软件优化
软件技术的发展为数值解法提供了更多的优化手 段和工具。
微分方程初值问题的数值解法

积分法:
yk 1 yk h f ( xk , yk ) y ( x0 ) y0
积分项利用矩形公式计算
(1) y( xk 1 ) y( xk )
xk 1
xk
f (t , y(t ))dt
(★)
xk 1
xk
f (t , y(t ))dt h f ( xk , yk ) y( xk 1 ) y( xk ) h f ( xk , yk )
引言
初值问题的数值解法:求初值问题的解在一系列节点的值 y ( xn )的近似值 yn 的方法.本章数值解法的特点:都是采用“步进 式”,即求解过程顺着节点排列的次序一步步向前推进. 常微分方程初值问题: dy f ( x, y ), x [a, b] dx y ( x0 ) y0
替 f (x , y)关于 y 满足Lipschitz条件. 除了要保证(1)有唯一解外,还需保证微分方程本身是稳定的,即 (1)的解连续依赖于初始值和函数 f (x , y). 也就是说, 当初始值 y0 及函数 f (x , y)有微小变化时, 只能引起解的微小变化.
注: 如无特别说明,总假设(1)的解存在唯一且足够光滑. 在 f 连续有界, 则 f (x , y)对变量 y 可微的情形下, 若偏导数 y 可取L为
也称折线法 x
2. 梯形法
若采用梯形公式计算(★)中的积分项,则有 h y ( xk 1 ) y ( xk ) [ f ( xk , y ( xk )) f ( xk 1 , y ( xk 1 ))] 2 h yk 1 yk [ f ( xk , yk ) f ( xk 1 , yk 1 )] 2 称之为梯形公式.这是一个隐式公式,通常用迭代法求解.具体做 法: (0) (0) 先用Euler法求出初值 yk ,1 即 ,将其代入梯形公式 yk 1 yk h f ( xk , yk ) 的右端,使之转化为显式公式,即 h ( l 1) (l ) yk 1 yk [ f ( xk , yk ) f ( xk 1 , yk (☆ ) 1 )] 2
第五章 常微分方程初值问题数值解法

则有
yn 1 yn hf ( xn , yn )
( 5.2 ) Euler格式
例5.1 用Euler格式解初值问题
2x y y y y (0) 1
取步长h=0.1.
(0 x 1)
Euler格式的具体形式为
y n 1 y n hf ( x n , y n ) 2 xn yn 0.1( yn ) yn 0.2 xn 1.1 yn yn
计算公式的精度 常以Taylor展开为工具来分析计算公式的精度. 为简化分析,假定yn是准确的,即在 yn y ( xn ) 的前提下估计误差 y ( xn 1 ) yn 1 Euler格式的局部截断误差 由 从而 局部截断误差
f ( xn , yn ) f ( xn , y ( xn )) y '( xn ) y ( xn 1 ) yn 1 y ( xn 1 ) ( yn hf ( xn , yn )) y ( xn 1 ) y ( xn ) hy '( xn )
y ( xn ), y ( xn 1 ), 的近似值 y1 , y2 , , yn , yn 1 ,
相邻两个节点的间距 h xi 1 xi 称为步长,步 长可以相等,也可以不等.本章总是假定h为定数, 称为定步长,这时节点可表示为
xn x0 nh , n 0,1, 2,
由f ( xn 1 , yn 1 ) f ( xn 1 , y ( xn 1 )) f y ( xn 1 , )( yn 1 y ( xn 1 )) f ( xn 1 , y ( xn 1 )) y '( xn 1 )(在xn点Taylor展开) h2 y '( xn ) hy ''( xn ) y '''( xn ) ... 2 3 2 h h 因此yn 1 y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 4 h f y ( xn 1 , )( yn 1 y ( xn 1 )) 2 h2 h3 y ( xn 1 ) y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 3!
第9章 常微分方程初值问题数值解法

数值分析
第9章 常微分方程初值问题数值解法
《常微分方程》中介绍的微分方程主要有:
(1)变量可分离的方程 (2)一阶线性微分方程(贝努利方程) (3)可降阶的一类高阶方程 (4)二阶常系数齐次微分方程 (5)二阶常系数非齐次微分方程 (6)全微分方程 本章主要介绍一阶常微分方程初值问题的数值解法。
进一步: 令
y n1 y n
xn 1 xn
y n 1 y( x n 1 ) , y n y( x n )
f ( x , y( x ))dx h f ( x n , y n )
宽
9
高
实际上是矩形法
数值分析
第9章 常微分方程初值问题数值解法
(3)
用Taylor多项式近似并可估计误差
解决方法:有的可化为显格式,但有的不行 18
数值分析
第9章 常微分方程初值问题数值解法
与Euler法结合,形成迭代算法 ,对n 0,2, 1,
( yn0 )1 yn hf x n , yn ( k 1) h ( yn1 yn f x n , yn f x n1 , ynk )1 2
7
数值分析
第9章 常微分方程初值问题数值解法
建立数值解法的常用方法
建立微分方程数值解法,首先要将微分方程离散 化. 一般采用以下几种方法: (1) 用差商近似导数
dy yx yx x x dx x y
n 1 n n 1 n
n
,
n
进一步: 令
yn1 y( xn1 ) , yn y( xn )
由 x0 , y0 出发取解曲线 y y x 的切线(存在!),则斜率
第9章 常微分方程初值问题数值解法

oa
b
a f ( x)dx (b a) f (b)
中矩形公式
b
ab
a f ( x)dx (b a) f ( 2 )
计算方法
梯形公式
bx
右矩形公式 中矩形公式 左矩形公式
§ 欧拉方法几何意义
y y y(x)
y0 y1 y2 0 x0 x1 x2
计算方法
x
§ 隐式欧拉方法
➢隐式欧拉法 /* implicit Euler method */
初 值 问 题 的 解 必 存 在 且唯 一 。
计算方法
§9.1 引言
三. 数值解法含义
所谓数值解法, 就是设法将常微分方程离散化, 建 立差分方程, 给出解在一些离散点上的近似值。
微分方程的数值解: 设方程问题的解y(x)的存在区 间是[a,b], 令a= x0< x1<…< xn =b, 其中hk=xk+1-xk, 如是等距节点h=(b-a)/n, h称为步长。
yi1 yi1 2h f ( xi , yi ) i 1, ... , n 1
计算方法
预估-校正法
三. 预估 — 校正法
/* predictor-corrector method */
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单
稳定性最好
精度提高
精度低
精度低, 计算量大
计算量大
精度提高, 显式
在x0 x X上的数值解法。
四. 误差估计、收敛性
和稳定性
计算方法
§9.2 简单的数值方法与基本概念
一. 欧拉(Euler)格式
设 节 点 为xi a ih (i 0,1,2 , n) 方 法 一 :Taylor展 开 法
常微分方程初值问题解法

为了克服欧拉方法精度不足的问题,可以对方法进行改进。一种常见的方法是使用更高阶的离散近似,例如使用 二阶或更高阶的离散化公式。这些改进可以减小数值误差,提高解的精度。
龙格-库塔方法
总结词
龙格-库塔方法是求解常微分方程初值问题 的一种高精度和高稳定性的数值方法。
详细描述
龙格-库塔方法是一种迭代方法,通过构造 一系列近似解来逼近微分方程的精确解。该 方法采用多步策略,每一步使用微分方程的 离散近似来更新未知数的值,同时考虑了更 多的信息,从而提高了数值解的精度和稳定 性。龙格-库塔方法在许多领域都有广泛的 应用,如物理、工程和科学计算等。
初值问题的定义
定义
常微分方程的初值问题由一个微分方程 和一个初始条件组成。给定一个初始状 态,我们需要找出该状态随时间变化的 规律。
VS
形式
dy/dt = f(t, y) with y(t0) = y0,其中f是 关于时间t和状态y的函数,t0是初始时间, y0是初始状态。
02
初值问题的解法
欧拉方法
05
结论与展望
研究成果总结
数值解法
常微分方程初值问题数值解法是当前研究的热点,包括欧拉法 、龙格-库塔法等多种方法,这些方法在精度和稳定性方面取
得了显著进展。
稳定性分析
对于数值解法的稳定性分析,研究者们通过分析数值解法 的收敛性和误差估计,为算法的改进提供了理论支持。
实际应用
常微分方程初值问题在物理、工程、生物等领域有广泛的应用 ,研究成果在实际问题中得到了验证,为解决实际问题提供了
04
实际应用与案例分析
物理问题中的应用
1 2 3
自由落体运动
描述物体在重力作用下的运动轨迹,可以通过常 微分方程求解物体在不同时刻的速度和位置。
常微分方程初值问题的数值解法

第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。
在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。
在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、Taylor 级数法和数值积分法。
常微分方程初值问题的数值解法的分类有显示方法和隐式方法,或者可以分为单步法和多步法。
在这里单步法是指计算第n+1个y 的值时,只用到前一步的值,而多步法则是指计算第n+1个y 的值时,用到了前几步的值。
通过对本章的学习,已经能熟练掌握如何用Taylor 级数法去求解单步法中各方法的公式和截断误差,但是对线性多步法的求解理解不怎么透切,特别是计算过程较复杂的推理。
在本章的学习过程中还遇到不少问题,比如本章知识点多,公式多,在做题时容易混淆,其次对几种R-K 公式的理解不够透彻,处理一个实际问题时,不知道选取哪一种公式,通过课本里面几种方法的计算比较得知其误差并不一样,,这个还需要自己在往后的实际应用中多多实践留意并总结。
二、本章知识梳理常微分方程初值问题的数值解法一般概念步长h ,取节点0,(0,1,...,)n t t nh n M =+=,且M t T ≤,则初值问题000'(,),()y f t y t t Ty t y =≤≤⎧⎨=⎩的数值解法的一般形式是1(,,,...,,)0,(0,1,...,)n n n n k F t y y y h n M k ++==-@显示单步法7.2.1 显示单步法的一般形式1(,,),(0,1,...,1)n n n n y y h t y h n M ϕ+=+=-定理7.2.1 设增量函数(,,)n n t y h ϕ在区域00{(,,)|,||,0}D t y h t t T y h h =≤≤<∞≤≤内对变量y 满足Lipschitz 条件,即存在常数K ,使对D 内任何两点1(,,)t u h 和2(,,)t u h ,不等式1212|(,,)(,,)|||t u h t u h K u u ϕϕ-≤-成立,那么,若单步法的局部截断误差1n R +与1(1)p h p +≥同阶,即11()p n R O h ++=,则单步法的整体截断误差1n ε+与p h 同阶,即1()p n O h ε+=。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
~yi
1
yi
h (xiexi
yi )
yi1
yi
h 2
[(
xi
e
xi
yi ) (xi1exi1
~yi 1 )]
(i 0,1, ,9)
计算结果见表6-2(书125页)
6.2 计算公式的误差分析
定义6.1 若 yi+1 是 yi=y(xi) 从计算得到的近似解,则称 y(xi+1) - yi+1为所用公式的局部截断误差,简称为截断误差。
yi1
yi y(x0 )
hf
( xi y0
,
yi
)
利用泰劳展开式:
y(x)
y(xi )
y '(xi )(x
xi )
y(xi ) (x 2!
xi )2
L
则精确解y ( xi 1 )
y ( xi
h)
y(xi )
y '(xi )h
y(xi ) 2!
h
b
x0 N
, 然后逐个求解出节点上的函数值
y ( x1 ),
y(x2 ),
,
y(xN )的近似值
6.1 欧拉方法
6.1.1 欧拉公式与改进欧拉公式
1)算法:
已知
y f (x, y)
y(
x0
)
y0
(1) (2)
求y(x)在点x1, x2 ,L xn处的近似值。
设y(xi )表示y(x)在xi处的精确值,yi表示y(x)在xi处的 近似值。
yi1 y(xi ) h f (xi , y(xi )) y(xi ) hy(xi )
故
y(xi1)
yi1
h2 2
y(xi ) O(h3 )
O(h2)
因此,欧拉公式的局部截断误差为 O (h2)
(6 8)
(2)对后退欧拉公式,有
yi1 y(xi ) h f (xi1, y(xi1))
故
y(xi1)
yi1
h2 2
y(xi ) O(h3) O(h2 )
因此,后退欧拉公式的局部截断误差为 O (h2)
(6 9)
(3)对梯形公式,注意到其公式可改写为
yi1
1 2
[
yi
hf
( xi
,
yi
)][ yi
h
f
( xi 1 ,
yi1)]
故由式(6-9)和(6-9)得
而 y(xi1) y(xi ) hy(xi ) (h2 / 2) y(xi ) O(h3 )
y(xi )
hy(xi )
h2[1 2
f x
1 2
y
f ]y ( xi , y( xi ))
O(h3 )
根据格式为二阶精度,即 y(xi+1) -yi+1 = O(h3) 比较两式系数得
第六章 常微分方程初值问题的数 值解法
6.1 欧拉方法 6.2 计算公式的误差分析
6.3 龙格-库塔方法 6.4 向一阶方程组与高阶方程的推广
一、欧拉法:
1.问题的提出:
求解
y y(
x0
f )
(x, y) y0
x [x0,b]
(5 1)
只要f(x,y)满足一定条件,则此问题的解是存在的, 且是唯一的。
在求解的过程中,我们已掌握了一些典型方程的 解法。但是仍有不少方程是无法求出其解析解的,因 此我们要讨论其数值解。即在微分方程解存在的前提 下,构造一种算法,计算出微分方程的解y(x)在存在 区间上点 x1, x2,L , xn 上的值的近似值,即不求其准确 解y=y(x)的解析表达式,而求出一个函数表格
y(xi1 )
yi1
1 2
y(xi1 ) [ yi h f (xi , yi )]
y(xi1 ) [ yi h f (xi1, yi1 )]
1 h2
2
[
2
y
(
xi
)
O(h
3
)
]
[
h2 2
y
(
xi
)
O(h
3
)]
O(h3 )
xi
xi1 f (x, y(x))dx
xi
从而把微分方程问题转化为积分方程问题
y(xi1) y(xi )
xi1 xi
f (x, y(x))dx
(6 4)
由
xi1 xi
f
(x,
y( x))dx
h[ 2
f
(xi ,
y(xi ))
f (xi1, y(xi1))]
得
y ( xi 1 )
h2
L
而
yi1 yi hf (xi , yi ) yi hy '(xi )
y(xi1) yi1
y(xi ) h2 L 2!
O(h2 )
欧拉公式的截断误差为O(h2 ).
例6.1 以 h=0.1为步长,用欧拉法求常微分方程初值问题
y xex y
得到初值问题(1)(2)的各种数值解法。
若
xi1 xi
f (x, y)dx
hf
(xi , yi )
则得到
yi1
yi y(x0 )
hf
( xi y0
,
yi
)
——欧拉公式
若
xi1 xi
f (x, y)dx
hf (xi1, yi1)
则得到
yi
1
yi hf (xi1, y(x0 ) y0
定理6.1 若单步法 yi+1 = yi+h (xi , yi , h) 的局部截断 误差为 O (h p+1) ,且增量函数 (x , y , h) 关于 y 满足李普希 兹条件,即存在常数 L>0,使对 y, ~y 成立不等式
| (x, y, h) (x, ~y, h) | L | y ~y |
yi 1 )
——后退欧拉公式
这样由(x0 , y0 ) (x1, y1) (x2, y2 )L (xn , yn ).
误差
误差是由两部分构成,每一步计算所产生的误差与误
差的积累。我们仅讨论前一种误差,即在计算 yi1 时认为前 一步是精确的,即 y(xi ) yi ,我们估计 y(xi1) y i1 ——截断误差(局部)
x x0 x1 x2 xn y y0 y1 y2 yn 列表函数
在这里我们考虑等距节点,即xi xi1 h, h为常数,则 xk x0 kh , xk为节点。
上述问题与插值问题正好相反,一个是将离散问题 连续化,一个是将连续问题离散化。
2.数值求解方法:
对区间[x0,b]作等距分割,生成节点xi x0 ih (i 0,1, , n),
(6 10)
因此,梯形公式的局部截断误差为 O ( h3 )
(4)对改进欧拉公式,有
~yi1 y(xi ) h y(xi )
yi1
h[ f 2
(xi ,
yi )
f (xi1, ~yi1)]
而由 y f (x, y) 得 y fx(x, y) yf y(x, y) ,故有
~yi
1
yi1
yi yi
h f (xi , yi )
h 2
[
f
(
xi
,
yi
)
f
( xi 1 ,
~yi1
)
(i ]
0,1,
,N
1)
这称为改进欧拉公式
例6.2 仍取步长h = 0.1,采用改进欧拉法重新计算例 6.1 的 常微分方程初值问题。
解 这时改进欧拉公式为
则其整体截断误差 y(xi)- yi=O(hp)
截断误差的估计(基本假设: yi = y( xi ) )
设 y(x)C 3 [x0 , b] , 则
y(xi1) y(xi h) y(xi ) hy(xi )
h2 2
y(xi ) O(h3)
(6 7)
(1)对欧拉公式,有
h2 2
y(xi ) O(h3)
与式(6-7)比较得 y(xi+1) -yi+1 = O ( h3 ) 因此,改进欧拉公式的局部截断误差为 O ( h3 )
定义6.2 若一种求解常微分方程初值问题的数值计算方 法的局部截断误差为 O ( hp+1 ) ,则称该方法为 p阶精度,或 称该方法为 p阶方法。
y(xi )
h[ 2
f
(xi ,
y(xi ))
f
( xi 1 ,
y( xi 1 ))]
从而导出梯形公式
yi
1
yi
h[ 2
f
(xi ,
yi )
f
( xi 1 ,
yi 1 )]
y0 y(x0 )
(6 5)
欧拉公式是显示格式,而梯形公式也是隐式公式,在求 yi1 是 要解一个函数方程(不方便)。因此我们利用将梯形公式与欧 拉公式联合使用,先用欧拉公式求得一个初步近似值 ²yi1 ,称 为预报值,然后代入梯形公式右边,得到 yi1 ——校正值。