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

合集下载

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

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

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

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

常微分方程初值问题的数值解法在自然科学、工程技术、经济和医学等领域中,常常会遇到一阶常微分方程初值问题:(,),,(),y f x y a x b y a y '=≤≤⎧⎨=⎩ (1) 此处f 为,x y 的已知函数,0y 是给定的初始值。

本章讨论该问题的数值解法,要求f 在区域{(,)|,}G x y a x b y =≤≤<∞内连续,并对y 满足Lipschitz 条件,从而初值问题(1)有唯一的连续可微解()y y x =,且它是适定的。

1 几个简单的数值积分法1.1 Euler 方法(1)向前Euler 公式(显式Euler 公式)10(,),0,1,2,,(),n n n n y y hf x y n y y a +=+=⎧⎨=⎩(2) 其中h 为步长。

由此便可由初值0y 逐步算出一阶常微分方程初值问题(1)的解()y y x =在节点12,,x x 处的近似值12,,y y 。

该公式的局部截断误差为2()O h ,是一阶方法。

(2)向后Euler 公式(隐式Euler 公式)1110(,),0,1,2,,(),n n n n y y hf x y n y y a +++=+=⎧⎨=⎩(3) 这是一个隐格式,也是一阶方法。

这类隐格式的计算比显格式困难,一般采用迭代法求解。

首先用向前Euler 公式提供迭代初值,然后迭代计算:(0)1(1)()111(,),(,),0,1,2,n n n n k k n n n n y y hf x y y y hf x y k +++++⎧=+⎨=+=⎩ (4)1.2 梯形方法1110[(,)(,)],2(),(0,1,2,)n n n n n n h y y f x y f x y y y a n +++⎧=++⎪⎨⎪=⎩= (5) 这也是一个隐格式,是二阶方法。

一般也采用迭代法求解。

迭代公式如下:(0)1(1)()111(,),[(,)(,)],0,1,2,2n n n n k k n n n n n n y y hf x y h y y f x y f x y k +++++⎧=+⎪⎨=++=⎪⎩ (6)1.3 改进的Euler 方法11110(,),[(,)(,)],0,1,2,,2(),n n n n n n n n n n y y hf x y h y y f x y f x y n y y a ++++⎧=+⎪⎪=++=⎨⎪=⎪⎩(7) 为了便于上机编程计算,(7)可改写为110(,),(,),0,1,2,,1(),2(),p n n n cn n p n p c y y hf x y y y hf x y n y y y y y a ++=+⎧⎪=+⎪⎪=⎨=+⎪⎪=⎪⎩(8) 该格式是显式,也是二阶方法。

第5章 - 常微分方程初值问题

第5章 - 常微分方程初值问题

xn b x
的近似曲线 , 折线 p1 p2 pn , 称为欧拉折线,所以欧拉方法又称为
折线法。
二、隐式Euler方法和梯形方法 (Euler方法的改进) 1. 隐式 Euler方法 将 y( xk ) 在 x xk 1 点进行Taylor展开 y(k ) 2 2 y( xk ) y( xk 1 ) hk f ( xk 1 , y( xk 1 )) hk ,k [ xk , xk 1 ],忽略 hk 项, 用 yk , yk 1 , fk 1 f ( xk 1 , yk 1 ) 分别近似 y( xk ), y( xk 1 ), f ( xk 1 , y( xk 1 )), 可得隐式欧拉方法: (13) yk 1 yk hk f ( xk 1 , yk 1 ), k 0,1,, n 1 或 yk 1 yk hk fk 1 , k 0,1,, n 1 说明: (1)隐式 Euler方法也可用向后差商,即用 dy y ( xk ) y ( xk 1 ) , 近似微分 dx x x hk y y( x ) 或者用右矩数值求积公式来建立. (2)隐式 Euler方法(13)是关于 yk 1 的方程,若求 yk 1 需要 解方程(13).
y(x)存在且适定.
二、 初值问题数值解的基本概念 因为初值问题的数值解法是通过微分方程离散化而给出解在某些 为了讨论问题方便,引入以下概念。 离散点上(节点上)的近似值, 在 [a , b]上引入节点{ x k }n 0 , a x0 x1 x2 xn b, hk xk xk 1 k ba h , 则有 xk a kh( k 0,, n). ( k 1,2,, n) 称为步长。 常用等步长: n (1),(2)的准确解记为y(x), y( xk ) 的近似解记为 yk ,记 f ( xk , yk ) fk .

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

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

常微分方程数值解法欧拉法

常微分方程数值解法欧拉法

)
f ( xn1, yn1)
hL
y(k ) n 1
yn1
L
hL
k 1
y(0) n 1
yn1
Q
hL 1,
y (k 1) n 1
yn1 (k
)
在迭代公式中取极限,有
yn1 yn h f ( xn1, yn1 ) 因此yn(k1)的极限就是隐式方程的解
几何意义
y
设已知曲线上一点 Pn (xn , yn ),过该 点作弦线,斜率为(xn+1 , yn +1 ) 点的 方向场f(x,y)方向,若步长h充分小, 可用弦线和垂线x=xn+1的交点近似 曲线与垂线的交点。
式。隐式公式不能直接求解,一般需要用Euler显式公式
得到初值,然后用Euler隐式公式迭代求解。因此隐式公
式较显式公式计算复杂,但稳定性好
y0 n1
yn
h
y(k 1) n1
yn
h
f (xn , yn )
f
( xn1 ,
y(k) n1
)
收敛性
y (k 1) n 1
yn1
h
f
( xn1,
y(k ) n 1
如何求解
解析解法:(常微分方程理论)
只能求解极少一类常微分方程;实际中给定的问题不一 定是解析表达式,而是函数表,无法用解析解法。
数值解法: 求解所有的常微分方程
计算解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
处的近似值 yi y( xi ) (i 1, ... , n)
y(xn1) y(xn ) hy(xn ) y(xn ) yn
y(xn1) yn1 yn h f (xn , yn )

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

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

则有
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!

第5章_常微分方程数值解法


(5.2.6)
由于方程关于 uk +1 是隐式形式,所以式(5.2.6)称为隐式 Euler 公式。前面显式和隐式 Euler 公式在计
u '(tk ) ≈
得到的递推公式:
u (tk +1 ) − u (tk −1 ) 2h
(5.2.7)
uk +1 ≈ uk −1 + 2hf (tk , uk )
在计算 uk +1 时,需要用到前两步结果 uk −1 , uk ,称为两步法公式。 (2)积分近似方法 将(5.2.1)式的微分方程写成 du = f (t , u )dt ,在区间 [tk , tk +1 ] 上积分,有:
5.2.2 Runge-Kutta 方法 Euler 方法比较简单,但它的收敛阶数低。可以利用 Taylor 展开式构造高阶的单步方法。Euler 公式 可以看成是由一阶 Taylor 展开式得到的,所以应用高阶 Taylor 展开就可以得到高阶单步法。例如:将 u (tk +1 ) 在 tk 处作 q 阶 Taylor 展开:
dy = a − by (t ) dt
是一阶常微分方程,而
2 ∂ 2 u ( x, t ) 2 ∂ u ( x, t ) a = ∂t 2 ∂x 2
(5.1.1)
(5.1.2)
是二阶偏微分方程。 所有使微分方程成为等式的函数,都是微分方程的解;在 n 阶微分方程中,将微分方程的含有 n 个任 意常数的解称为该微分方程的通解。为确定微分方程通解中的任意常数而需要的条件称为定解条件;定解 条件可以分为初始条件和边界条件两类。由微分方程和定解条件一起构成的问题称为微分方程定解问题。 根据定解条件的不同,常微分方程分为初值问题和边值问题;若定解条件是描述函数在一点(或初始 点)处状态的,则称为初值问题,一阶常微分方程初值问题的一般形式为:

常微分方程初值问题解法

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

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

线性k步法的一般公式
5.2Adams方法
显式Adams方法 隐式Adams方法
5.3预测-校正方法
y(0)n+1 = yn + h f(tn,yn)
(5.20)
y n+1 = (1/2)[y(0)n+1 + yn + hf(tn+1, y(0)n+1 )] (5.21)
n = 0,1,2,…N-1 ; y0= η
定理4 若Ф(t,y,h) 对于 a ≤t ≤ b, 0 ≤ h≤ h0以及一 切实数y,关于t,y,h满足Lipschitz条件,则单步 法(4.1)是稳定的。
定义4 对给定的微分方程和给定的步长h,若有
单步法(显式或隐式)计算yn时有大小为δ的误
差,即计算得yn` = yn + δ,而引起其后值ym(m>n)
(5.20)起预测y n+1 的作用, (5.21)起校正作用。 记f(i)n=f(tn,y(i)n).用P表预测过程,C表校正过程,E表计 算f的过程
P: y(0)n+1 = yn + hfn, E: f(0)n+1 = f(t n+1 , y(0)n+1 ) C: y n+1 = yn + (h/2)(fn+f(0)n+1)
5.4Hamming方法
Milne方法 建立线性多步法的待定系数法 Hamming方法
7线性多步法的相容性、收敛性和稳定 性
定义1 若求解初值问题(1.1)的线性k步法(5.1)至少是一阶 方法,则称他们是相容的。 记 ρ(λ)= αk λk+ αk -1 λk-1+…+ α1 λ + α0, σ(λ)= βk λk+ βk-1 λk-1+…+ β1 λ + β0。 他们由线性k步法(5.1)完全确定。反之,若给定了ρ(λ)和 σ(λ),则他们唯一确定一个线性k步法。我们称ρ(λ)为线 性k步法(5.1)的特征多项式。

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

常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解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乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

y=y(x) Pn
x0
x1
xi
xi+1
xn
这样,从x0逐个算出 x1 , x2 , xn 对应的数值解
y1 , y2 , yn
从图形上看,就获得了一条近似于曲线y=y(x) 的折线 PP 1 2P 3
P n.
Euler格式算法实现 (1)计算步骤 ba ① 输入 a, b, h, f ( x, y), x0 , y0 ,并计算出 N ; h ② 使用Euler格式进行计算
向前推进,描述这类算法,要求给出用已知信息 差分格式 yn , yn1 , yn2 , 计算 yn1 的递推公式. 建立这类递推公式的基本方法是在这些节点上用数 值积分、数值微分、泰勒展开等离散化方法,对初 值问题 y f ( x, y ) y ( x0 ) y 0 中的导数 y 进行不同的离散化处理.
输出 x1, y1 n
n=N ? n+1 n
y 结束
x1 x0 y1 y0
例5.1 用Euler格式解初值问题
2x y y y y(0) 1
取步长h=0.1.
(0 x 1)
Euler格式的具体形式为
yn1 yn hf ( xn , yn ) 2 xn yn 0.1( yn ) yn 0.2 xn 1.1yn yn
y x y
2
2
这个一阶微分方程就不能用初等函数及其积分来 表达它的解.
再如,方程
y y y (0) 1
的解 y e x ,虽然有表可查,但对于表上没 有给出 e x 的值,仍需插值方法来计算
从实际问题当中归纳出来的微分方程,通常主要依 靠数值解法来解决.本章主要讨论一阶常微分方程初 值问题
5.2.2 后退的Euler格式
对 y '( x) f ( x, y( x)),在点xn+1处为
y '( xn1 ) f ( xn1, y( xn1 ))
y ( xn 1 ) y ( xn ) y ( xn 1 ) y ( xn ) 取 y '( xn 1 ) xn 1 xn h
则有 y( xn1 ) y( xn ) hf ( xn1, y( xn1 )) 设y(xn)的近似值yn已知,用它带入上式右端进行计
算,并取计算结果yn+1作为y(xn+1)的近似值,则可得
yn1 yn hf ( xn1 , yn1 )
( 5.3 )
后退的Euler格式
隐式方程(5.3) yn1 yn hf ( xn1 , yn1 )常用迭代法求解 (0) (0) 设用Euler格式 yn 给出迭代初值 y hf ( x , y ) y 1 n n n n 1
长可以相等,也可以不等.本章总是假定h为定数,
称为定步长,这时节点可表示为
,
xn x0 nh, n 0,1, 2,
数值解法需要把连续性的问题加以离散化,从而求 出离散节点的数值解.
对常微分方程数值解法的基本出发点就是离散 化.其数值解法有个基本特点,它们都采用“步进 式”,即求解过程顺着节点排列的次序一步一步地
对R内任意两个 y1 , y2 都成立,则方程( 5.1 )的解 y y ( x) 在a, b上存在且唯一.
数值方法的基本思想 对常微分方程初值问题(5.1)式的数值解法,就 是要算出精确解y(x)在区间a,b上的一系列离散节
点 x1 x2
xn xn1 处的函数值 y( x1 ), y( x2 ), y( xn ), y( xn1 ), 的近似值 y1, y2 , , yn , yn1, 相邻两个节点的间距 h xi 1 xi 称为步长,步
从而有
h2 h3 y( xn1 ) yn 1 y ''( xn ) y '''( xn ) 2 3 hf y ( xn 1 , )( y( xn 1 ) yn 1 ) 移项整理得 1 h2 h3 y( xn1 ) yn1 ( y ''( xn ) y '''( xn ) 1 hf y ( xn1 , ) 2 3 1 由 1 x 2 x3 可知 1 x 1 2 1 hf y ( xn1 , ) (hf y ( xn 1 , )) 1 hf y ( xn1 , )
以 f ( xn , yn )为斜率作直线 y yn f ( xn , yn )(x xn )
当 x xn1 时,得 yn1 yn f ( xn , yn )(x x1 xn ) 取 y( xn1 ) yn1
P1 P0 P1
Pi+1 Pn Pi Pi+1 Pi
程的阶数.如果未知函数y及其各阶导数
y, y,, y
( n)
都是一次的,则称它是线性的,否则称为非线性的.
在《常微分方程》中,对于常微分方程的求解,
给出了一些典型方程求解析解的基本方法,如可分
离变量法、常系数齐次线性方程的解法、常系数非
齐次线性方程的解法等.但能求解的常微分方程仍 然是有限的,大多数的常微分方程是不可能给出解 析解. 譬如
当 x x2 时,得 y2 y1 f ( x1 , y1 )(x2 x1 ) 由此获得了P2的坐标.
P1 P0 P1
Pi+1 Pn Pi Pi+1 Pi
y=y(x) Pn
x0
x1
xi
xi+1
xn
重复以上过程,就可获得一系列的点:P1,P1,…,Pn.对 已求得点 Pn ( xn , y n )
y f ( x, y ) y ( x0 ) y 0 的数值解法,首先要解决的问题就是如何对微分方 程进行离散化,建立求数值解的递推公式. 递推公式通常有两类,一类是计算yn+1时只用到xn+1, xn和yn,即前一步的值,因此有了初值以后就可以逐 步往下计算,此类方法称为单步法. 另一类是计算yn+1时,除用到xn+1,xn和yn以外,还要 用到 xn1, yn1, xn2 , yn2 , xnk , ynk , 即前面k步的值,此 类方法称为多步法.
即有 y '( x) f ( x, y( x))
在点xn处为 y '( xn ) f ( xn , y( xn ))
y( xn1 ) y( xn ) y( xn1 ) y( xn ) 取 y '( xn ) xn1 xn h
y( xn1 ) y( xn ) hf ( xn , y( xn )) yn1 yn 设y(xn)的近似值yn已知,用它带入上式右端进行计 算,并取计算结果yn+1作为y(xn+1)的近似值,则可得
计算公式的精度 常以Taylor展开为工具来分析计算公式的精度. 为简化分析,假定yn是准确的,即在 yn y( xn ) 的前提下估计误差 y( xn1 ) yn1 Euler格式的局部截断误差 由 从而
局部截断误差
f ( xn , yn ) f ( xn , y( xn )) y '( xn ) y( xn1 ) yn1 y( xn1 ) ( yn hf ( xn , yn )) y( xn1 ) y( xn ) hy '( xn ) h2 y ''( xn ) 2
(k ) 如果迭代过程收敛,则极限值 yn 1 lim yn 1 k
必满足隐式方程(5.3),从而获得后退的Euler格式的解.
后退的Euler格式的局部截断误差(假设 yn y( xn ) )
yn1 yn hf ( xn1 , yn1 ) y( xn ) h f ( xn1 , yn1 )
用它带入(5.3)的右端,使之转化为显式,直接计算得
(1) ( 0) yn y hf ( x , y 1 n n1 n1 )
然后再用 y
(1) n 1 ( 2) n1
带入(5.3)的右端,又有 (1) y yn hf ( xn1, yn 1 )
如此反复进行迭代,得
( k 1) (k ) yn y hf ( x , y 1 n n1 n1 ), k 0,1,
y1 y0 hf ( x0 , y0 ) x1 x0 h
③ 输出 x1 , y1,并使 x1 x0 , y1 y0 转到 ② 直至n > N 结束.
( ) 格 式 的 流 程 图
开始 输入 a,b,h,x0, y0,f(x,y) N=(b-a)/h;n=1
2 Euler
y0+hf(x0,y0 ) y1 x0+h x1
y f ( x, y ) ( 5.1 ) y ( x ) y 0 0 在区间a≤x≤b上的数值解法. 可以证明,如果函数在带形区域 R={a≤x≤b,-∞<y<∞} 内连续,且关于y满足Lipschitz条件,即存在常数 L(它与x,y无关)使 f ( x, y1 ) f ( x, y2 ) L y1 y2
对于初值问题
§5.2 Euler方法 5.2.1 Euler格式
Euler方法是解初值问题的最简单的数值方法.
初值问题
y f ( x, y ) y ( x0 ) y 0 的解y=y(x)称为它的积分曲线.积分曲线上每一点 ( x, y ) 处的切线的斜率 y ( x) 等于函数 f ( x, y ) 在这 点的值.
由f ( xn1, yn1 ) f ( xn1, y( xn1 )) f y ( xn1,)( yn1 y( xn1 ))
f ( xn1, y( xn1 )) y '( xn1 )(在xn点Taylor展开) h2 y '( xn ) hy ''( xn ) y '''( xn ) ... 2 3 h 2 因此yn 1 y ( xn ) hy '( xn ) h y ''( xn ) y '''( xn ) 2 hf y ( xn 1 , )( yn 1 y ( xn 1 )) 2 3 h h y ( xn1 ) y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 3!
相关文档
最新文档