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

合集下载

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

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

浅谈常微分方程初值问题数值解法在自然科学、工程技术、甚至社会科学的一些领域中,常常会遇见一阶常微分方程的求解问题:()上述问题,寻求解的具体表达式十分困难,仅对一些特殊形式的才有可能找到解的解析表达式,在大多情况下,初值问题的解不能用初等函数表示出来即使可写出解的解析表达式,但因为这些表达式过于复杂,要计算它在某些点上的函数值也异常困难。

在实际问题中,经常需要的恰是解在某些点上的函数值,因此研究初值问题的数值解法十分必要。

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章 常微分方程初值问题数值解法
2
数值分析
第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章 常微分方程初值问题数值解法

第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 ε+=。

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

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

常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解y′=f(x,y),x∈[x0,b]y(x0)=y0.定理1(利普希茨条件)若存在正数L,使得对任意,y1,y2,有|f(x,y1)−f(x,y2)|≤L|(y1−y2)|定理2(解存在性)①若函数f在方区域x∈[a,b],y∈R连续,②函数f关于y 满足利普希茨条件,则对任意x∈[a,b],常微分方程存在唯一的连续可微数值解.两类问题:①单步法---计算下一个点的值yn+1只需要用到前面一个点的值yn②多步法---计算下一个点的值yn+1需要用到前面l个点的值yl1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值•具体过程一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。

怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法-----迭代---将微分方程在区间[xn,xn+1]进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。

•局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为O(hp+1)•p阶精度:由理论证明:若局部误差阶的时间复杂度为O(hp+1),则整体误差阶为O(hp)我们称公式精度为p。

•显示欧拉法与隐式欧拉法•梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.•改进的欧拉方法---思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.2、龙格-库塔方法思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。

注意:怎么计算任意斜率Ki?第i个点的斜率Ki有微分方程可以算出f′=f(xn,yn)所以要算的f(xn,yn)值,由欧拉法即可算出, yn+1=yn+hf′•2阶-龙格-库塔方法----类似改进的欧拉法根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。

第7章-常微分方程初值问题的数值解法

第7章-常微分方程初值问题的数值解法
由于f(x0,y0)及(x0,y0) 已知,必有切线方程。
由 点 斜 式 写 出 切 线 方 程 :
dy yy0(xx0)dx(x0,y0) y0(xx0)f(x0,y0)
等 步 长 为 h , 则 x x 0 h , 可 由 切 线 算 出 y 1
y1y0hf(x0,y0)
2021/4/9
10
其 中 , y n 1 是 当 y n y (x n )(精 确 解 )时 由 E u le r法 求 出 的 值 , 即 y n 无 误 差 。
将 y (x n 1 )在 x n 点 T a y lo r展 开 :
y (x n 1 ) y (x n h ) y (x n ) h f(x n ,y (x n )) (h 2 x2 n y ()xn1)
ax0 x1 x2 xn b 在节点上用离散化方法将连续型微分方程 转化成离散型代数方程即差分方程来求解。
具 体 作 法 : 利 用 y(x0)求 出 y(x1)的 近 似 值 y1, 再 由
y1求 出 y2,, 直 到 求 出 yn为 止 。 该 算 法 称 为 步 进
式 或 递 推 式 算 法 。
积 分 用 梯 形 公 式 , 且 令 : yn1y(xn1),yny(xn) 则 得 : yn1ynh 2(f(xn,yn)f(xn1,yn1))
R n 1 y (x n 1 ) y n 1 1 h 2 3y () x n x n 1
与Euler法结合,形成迭代算法,对n0, 1, 2,
yn(0)1ynhf(xn,yn) (75)
y 2021/4/9
(k1) n1
ynh2(f(xn,yn)f(xn1,yn(k1))k0,1,2,
12
2. Euler方法的截断误差

计算方法课件第八章常微分方程初值问题的数值解法

计算方法课件第八章常微分方程初值问题的数值解法

整体截断误差与局部截断误差的关系
定理:如果f(x,y)满足李普希兹(Lipschitz)条件
f(x ,y 1 )f(x ,y 2) L y 1y 2
且局部截断误差有界:
|R n|1 2h2M 2
(n1,2, )
则Euler法的整体截断误差n满足估计式:
ne(ba)L 0h 2L M 2(e(ba)L1)
分光滑。初值问题的解析解(理论解)用 y(x表n ) 示, 数值解法的精确解用 y表n 示。
常微分方程数值解法一般分为:
(1)一步法:在计算y n 1 时,只用到x n 1 ,x n和 y,n 即前一步的值。
(2)多步法:计算 y n 1 时,除用到 x n 1 ,x n 和 y n 以外,还要用 x n p 和 y n p (p1 ,2 k;k0) ,即前
其中L为李普希兹常数,b-a为求解区间长度,
M2 mayx(x) 。 axb
证明参见教材。
Remark:该定理表明,整体截断误差比局部截 断误差低一阶。对其它方法,也有类似的结论。
收敛性与稳定性
收敛性定义:如果某一数值方法对于任意固定的
xn=x0+nh,当h0(同时n )时有yn y(xn),
则称该方法收敛。 稳定性定义 定义 用一个数值方法,求解微分方程初值问 题时,对给定的步长h>0,若在计算 y n 时引入 误差 (n 也称扰动),但由此引起计算后面的 ynk(k1,2, )时的误差按绝对值均不增加,则 称这个数值方法是稳定的。
一般的显式rk方法可以写成型钢截面只需少量加工即可用作构件省工省时成本低但型钢截面受型钢种类及型钢号限制难于完全与受力所需的面积相对应用料较多其中为常数选取这些常数的原则是要求第一式的右端在处泰勒展开后按h型钢截面只需少量加工即可用作构件省工省时成本低但型钢截面受型钢种类及型钢号限制难于完全与受力所需的面积相对应用料较多上述公式叫做n级的rungekutta方法其局部截断误差为显然euler法是一级一阶rk方法

常微分方程的初值问题

常微分方程的初值问题

常微分方程的初值问题常微分方程是数学中的一种重要工具,它能够描述许多自然界和社会现象的变化规律。

而常微分方程的初值问题则是常微分方程研究中的常见问题之一,它需要确定未知函数及其导数在某个特定点的值。

本文将介绍常微分方程的初值问题的定义、求解方法以及实际应用。

一、初值问题的定义在常微分方程中,初值问题是指在已知微分方程的解的条件下,需要确定一个特定点上未知函数及其导数的值。

具体而言,考虑一个形如dy/dx=f(x,y)的一阶常微分方程,其中x是自变量,y是因变量,f是已知的函数。

若已知y(x0)=y0,则求解这个微分方程的过程即为解决初值问题。

二、求解方法对于常微分方程的初值问题,可以使用多种方法进行求解,下面将介绍两种常见的方法:欧拉方法和四阶龙格-库塔方法。

1. 欧拉方法欧拉方法是一种简单而直观的求解常微分方程的数值方法。

它的基本思想是将求解区间等分为多个小区间,然后通过逐步逼近的方式计算未知函数的近似值。

具体步骤如下:- 将求解区间[a, b]等分为n个小区间,步长h=(b-a)/n。

- 定义网格节点xi=a+i*h,i=0,1,2,...,n。

- 初始条件为y(x0)=y0,通过递推公式y(xi+1) = y(xi) + h*f(xi, y(xi)),计算出近似值y(xi+1)。

- 重复上述步骤,直到计算到需要的点。

欧拉方法的优点是简单易懂,但对于某些特定的微分方程,其数值解可能不够精确。

2. 四阶龙格-库塔方法四阶龙格-库塔方法是一种更为精确的求解常微分方程的数值方法,它通过计算多个逼近值的组合来提高计算精度。

具体步骤如下:- 将求解区间[a, b]等分为n个小区间,步长h=(b-a)/n。

- 定义网格节点xi=a+i*h,i=0,1,2,...,n。

- 初始条件为y(x0)=y0,通过递推公式计算逼近值k1、k2、k3和k4。

- k1 = h*f(xi, y(xi))- k2 = h*f(xi + h/2, y(xi) + k1/2)- k3 = h*f(xi + h/2, y(xi) + k2/2)- k4 = h*f(xi + h, y(xi) + k3)- 计算近似值y(xi+1) = y(xi) + (k1 + 2k2 + 2k3 + k4)/6。

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

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

(1.2.3)
其中rn,k(t)为插值余项。 代到(1.2.2)式中得
u ( tn +1 ) = u ( tn ) +
舍去余项 并用uj代替u(tj)即得

tn+1 tn
Ln , k ( t ) dt + ∫ t rn , k ( t ) dt
tn+1
n
(1.2.4 (1.2.5)
Rn , k = ∫
⎡ ∑ ⎣α u
j =0
j =0
αk ≠ 0
(1.2.1)
j n+ j
⎤ − hβ j f n + j ⎦ = 0(数值解满足的差分方程)
因此称(1.2.1)为多步法 或 k-步法。 又因为(1.2.1)关于 u n + j , f n + j 是线性的,所以称为线性多步法。 为使多步法的计算能够进行,除给定的初值u0 外,还要 知道附加初值u1,u2,…,uk-1 ,这可用其它方法计算。 若 β k = 0 则称(1.2.1)是显式的; 若 β k ≠ 0 则方法(1.2.1)是隐式的。 例如,一般线性二步法可写成:
f ( t , u ( t ) ) = Ln , k +1 ( t ) + rn , k +1 ( t )
其中rn,k+1(t)为插值余项。 同理即
un +1 = un + h ∑ bk +1i f ( tn −i +1 , un −i +1 )
i =0
k +1
其中
bk +1i
=∫ ∏
−1
j =0 j ≠i
0
k +1

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

9、常微分方程初值问题数值解法
( 2.8) − (2.7)得 : |
( k +1) yn +1
xn +1 ∫xn
− yn +1 |≤
hL 2
|
(k ) yn +1
− yn +1 |,
( 只要 hL < 1,则( 2.8)的ynk +1)收敛到(2.7)的yn +1. +1 2
三、单步法的局部截断误差与阶
一阶常微分方程初值问题(1.1)(1.2)的单步法的一般形式 yn +1 = yn + hϕ ( xn , yn , yn +1, h).
clear x=0,yn=1 %初始化 for n=1:10 yp=yn+0.1*(yn-2*x/yn); %预测 x=x+0.1; yc=yn+0.1*(yp-2*x/yp) ; yn=(yp+yc)/2 %校正 end
( 2.2)
作业: 作业:P381, 1, 2(1).
龙格—库塔 库塔(Runge-Kutta)法 §3 龙格 库塔 法
进一步 y ( xn +1 ) = y ( xn ) + ∫
xn +1 xn
f ( x, y ( x))dx,
(Байду номын сангаас.3)

⇒ 其中
xn +1 xn
f ( x, y ( x))dx ≈ h ∑ ci f ( xn + λi h, y ( xn + λi h)).
yn +1 = yn + hϕ ( xn , yn , h),
i =1
r
(3.4) (3.5) 欧拉法r = 1, p = 1.改进

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

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

本章讨论常微分方程初值问题的数值解法
2
考虑一阶常微分方程的初值问题
⎧ dy ⎪ = f ( x, y ) ⎨ dx ⎪ ⎩ y (a ) = y0
x ∈ [a, b]
只要 f (x, y) 在[a, b] × R1 上连续,且关于 y 满足 Lipschitz 条 件,即存在与 x, y 无关的常数 L 使对任意x∈[a, b] ,和y1, y2 ∈ R1 都有 | f ( x, y1) − f ( x, y2 ) | ≤ L| y1 − y2 | 在唯一解。 成立, 则上述问题存
⎧ ⎪ ⎨ ⎪ ⎩ y n +1 = yn + hf ( xn , yn ), h yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , y n +1 )] 2
改进的Euler方法:y0=1,
y1=y0+hf (x0, y0) =1.1, y1=1+01./2 ×[(1−2 ×0/1)+(1.1−2 ×0.1/1.1)] =1.095909, …… y11=…… y11=1.737869.
1 yn +1 = yn + h[ f ( xn , yn ) + f ( xn +1 , yn +1 )] 2
12
称之为梯形公式。这是一个隐式的计算公式,欲求的yn+1需 解一个方程。
3.截断误差
定义 在假设 yn = y(xn),即第 n 步计算是精确的前提下,考 虑的截断误差 εn+1 = y(xn+1) − yn+1 称为局部截断误差
⎧ y n +1 = y n + k1 ⎨ ⎩k1 = hf ( xn ,y n )

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

常微分方程初值问题数值解法
7
y ( xn ) 1.0954 1.1832 1.2649 1.3416
1.4351 1.4142
初值问题(2.2)有解 y 1 2 x ,按这个解析式子 算出的准确值 y ( xn ) 同近似值 y n一起列在表9-1中,两者 相比较可以看出欧拉方法的精度很差. 还可以通过几何直观来考察欧拉方法的精度. 假设 yn y ( xn ) ,即顶点 Pn 落在积分曲线 y y ( x) 上,那么,按欧拉方法做出的折线 Pn Pn 1 便是 y y ( x) 过点 Pn 的切线(图9-2).
yn 1 yn hf ( xn 1 , yn 1 ),
(2.5)
称为后退的欧拉法. 后退的欧拉公式与欧拉公式有着本质的区别,后者是 关于 yn 1 的一个直接的计算公式,这类公式称作是显式的;

yn1 yn hf ( xn , yn ). y0 r)公式. 式(2.1)可逐步算出
y1 y0 hf ( x0 , y0 ), y2 y1 hf ( x1 , y1 ),
例1
求解初值问题
2x y y y y (0) 1. (0 x 1),
n ( xn , xn 1 ).
在 yn y ( xn ) 的前提下, f ( xn , yn ) f ( xn , y( xn )) y( xn ) . 于是可得欧拉法(2.1)的公式误差
y ( xn 1 ) yn 1 h2 h2 y( n ) y( xn ), 2 2
(1.3)
y y ( x) 理论上就可以保证初值问题(1.1),(1.2)的解 存在并且唯一.
1
所谓数值解法,就是寻求解 y ( x) 在一系列离散节点

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

计算方法 常微分方程初值问题数值解法 Euler公式 龙格 库塔法
计算方法 (Numerical Analysis)
第12次 常微分方程初值问题数值解法
内容
1. 常微分方程初值问题解的存在性定理 2. Euler公式 3. 梯形公式 4. 两步Euler公式 5. 欧拉法的局部截断误差 6. 改进型Euler公式 7. 龙格-库塔法 8. 算法实现
常微分方程初值问题 解的存在性定理
欧拉法的局部截断误差
9.2.4. 欧拉法的局部截断误差
衡量求解公式好坏的一个主要标准是求解公式的精 度, 因此引入局部截断误差和阶数的概念。
定义9.1 在yi准确的前提下, 即 yi y(xi)时, 用数值
方法计算yi+1的误差:
R i yi( 1 ) x y i 1
称为该数值方法计算时yi+1的局部截断误差。
通常表示成下列平均化形式
yi1的近似 y p y i hf(x i , y i )
yi1的近似 y c y i hf(x i 1 , y p )
yi1的更好 的近似
y i1
1 2
(y p
yc)
i 0, 1, 2 … , n 1
(9.12)
例9.2 用改进欧拉法解初值问题
y
y
2x y
f( y 1 ) x f,( y 2 ) x L y , 1 y 2 , y 1 ,y 2 R
则方程( 9.1 ) 在a, b上存在唯一的连续可微分的 解的解 y=y(x) 。
推论:如果函数f(x,y)对y的偏导数
f(x, y
y)
在带形
区域 R { a x b ,y - }
内有界。
两步欧拉公式的局部截断误差为:
y(i1 x )yi1O3 ()h
从而两步欧拉公式的阶数是2.推导过程省略。

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

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

常微分方程初值问题的数值解法在实际应用中,对于某些微分方程,我们并不能直接给出其解析解,需要通过数值方法来求得其近似解,以便更好地理解和掌握现象的本质。

常微分方程初值问题(IVP)即为一种最常见的微分方程求解问题,其求解方法有多种,本文将对常微分方程初值问题的数值解法进行较为详细的介绍。

一、欧拉法欧拉法是最基本的一种数值解法,它采用泰勒级数展开并截断低阶项,从而获得一个差分方程近似求解。

具体来讲,设 t 为独立变量,y(t) 为函数 y 关于 t 的函数,方程为:$$y'(t) = f(t, y(t)), \qquad y(t_0) = y_0$$其中 f(t,y(t)) 为已知的函数,y(t_0) 为已知的初值。

将函数 y(t) 进行泰勒级数展开:$$y(t+h) = y(t) + hf(t, y(t)) + O(h^2)$$其中 h 表示步长,O(h^2) 表示其他高阶项。

为了使误差较小,一般取步长 h 尽可能小,于是我们可以用欧拉公式表示数值解:$$y_{n+1} = y_n + hf(t_n, y_n), \qquad y_0 = y(t_0)$$欧拉法的优点是容易理解和实现,但是由于截取低阶项且使用的单步法,所以误差较大,精度较低,在具体应用时需要慎重考虑。

二、龙格-库塔法龙格-库塔法(Runge-Kutta method)是一种多步法,比欧拉法更加精确。

龙格-库塔法的主要思想是使用不同的插值多项式来计算近似解,并且将时间步长分解,每次计算需要多次求解。

以下简要介绍二阶和四阶龙格-库塔法。

二阶龙格-库塔法将时间步长 h 分解成两步 h/2,得到近似解表达式:$$\begin{aligned} k_1 &= hf(t_n, y_n)\\ k_2 &= hf(t_n+h/2,y_n+k_1/2)\\ y_{n+1} &= y_n+k_2+O(h^3)\\ \end{aligned}$$四阶龙格-库塔法四阶龙格-库塔法是龙格-库塔法中应用最为广泛的一种方法,其需要计算的中间值较多,但是具有更高的精度。

实验八 常微分方程初值问题数值解法报告

实验八 常微分方程初值问题数值解法报告

实验八 常微分方程初值问题数值解法一、基本题科学计算中经常遇到微分方程(组)初值问题,需要利用Euler 法,改进Euler 法,Rung-Kutta 方法求其数值解,诸如以下问题:(1) ()⎪⎩⎪⎨⎧=-='004y xy y x y 20≤<x分别取h=0.1,0.2,0.4时数值解。

初值问题的精确解245x y e -=+。

(2) ()⎩⎨⎧=--='0122y y x y 01≤≤-x用r=3的Adams 显式和预 - 校式求解取步长h=0.1,用四阶标准R-K 方法求值。

(3)()()()100010321331221==-='⎪⎩⎪⎨⎧-='-='='y y y y y y y y y 10≤≤x用改进Euler 法或四阶标准R-K 方法求解取步长0.01,计算(0.05),(0.1y y y 数值解,参考结果 123(0.15)0.9880787,(0.15)0.1493359,(0.15)0.8613125y y y ≈-≈≈。

(4)利用四阶标准R- K 方法求二阶方程初值问题的数值解(I )()()⎩⎨⎧='==+'-''10,00023y y y y y 02.0,10=≤≤h x(II)()()()⎩⎨⎧='==+'--''00,10011.02y y y y y y 1.0,10=≤≤h x(III)()()⎪⎩⎪⎨⎧='=+='00,101y y e y y x 1.0,20=≤≤h x(IV)()()⎩⎨⎧='==+''00,100sin y y y y 2.0,40=≤≤h x二、应用题1. 小型火箭初始质量为900千克,其中包括600千克燃料。

火箭竖直向上发射时燃料以15千克/秒的速率燃烧掉,由此产生30000牛顿的恒定推力.当燃料用尽时引擎关闭。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ——校正值。
相关文档
最新文档