常微分方程初值问题解法
常微分方程初值问题数值解法
常微分方程初值问题的数值解法在自然科学、工程技术、经济和医学等领域中,常常会遇到一阶常微分方程初值问题:(,),,(),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) 该格式是显式,也是二阶方法。
常微分方程的初值问题及其解法
常微分方程的初值问题及其解法常微分方程是自然界中各种变化的基础模型,广泛应用于物理、工程、生物、经济学等领域。
初值问题是其中最基本的问题之一。
本文将从初值问题的意义入手,介绍几种不同的数值解法,并评价其优缺点。
1. 初值问题的意义首先,我们来看一个简单的例子。
假设有一个人从一楼的窗户往下跳,忽略空气阻力,我们可以列出他下落的物理规律:$$\frac{d^2h}{dt^2}=g$$其中$h$是跳下来后距离地面的高度,$t$是时间,$g$是常数,表示重力加速度。
上面这条式子就是一个二阶常微分方程。
我们的问题是,如果知道了他的初速度$v_0$和起始高度$h_0$,能否求得他下落到地面时的时间和高度。
这个例子中,$h$和$t$都是连续的量,但是我们并不能解析地求出$h(t)$的解析式,因此需要用数值方法去近似求解。
这就是初值问题的意义。
通常,初值问题是指某一初始时刻$t_0$的初值:$$y'(t_0)=f(y(t_0),t_0),\ y(t_0)=y_0$$其中$y$是未知函数,而$f$则是已知函数。
对于一阶常微分方程,这个条件是充分的,可以唯一地决定一个解。
但是对于更高阶的常微分方程,则需要多个初始条件才能确定一个解。
然而,这已经超出了本文的范畴,这里只讨论一阶常微分方程的初值问题。
2. 数值解法下面将介绍几种常见的数值解法。
2.1. 欧拉法欧拉法是最简单的数值解法之一,其思路是将初值问题离散化。
具体来说,我们可以将时间$t$分成若干个小段,每段的长度为$\Delta t$。
于是,我们可以将初始时刻$t_0$的初始值$y(t_0)=y_0$,并通过欧拉法近似计算下一个时间点$t_0+\Delta t$的值$y_1$:$$y_1=y_0+f(y_0,t_0)\Delta t$$同理,我们可以通过已知的$y_1$和$t_1=t_0+\Delta t$,计算下一个时间点$t_2=t_0+2\Delta t$的值$y_2$:$$y_2=y_1+f(y_1,t_1)\Delta t$$依此类推,直到我们得到一个目标时间$t_m$的值$y_m$。
解常微分方程初值问题
解常微分方程初值问题
解常微分方程初值问题的一般步骤如下:
1.确定微分方程的阶数和自由度数,以及初始条件和边界条件。
2.根据微分方程的形式和初始条件,选择适当的求解方法,如分
离变量法、特征线法、拉格朗日插值法等。
3.运用所选方法求解微分方程,得出通解或特解。
4.根据初始条件确定特解,得出最终解。
下面以一阶常微分方程为例,详细说明解题过程:
例:求解初值问题
dy/dx = x^2, y(0) = 1
解:
1.这是一个一阶常微分方程初值问题,自由度数为1,初始条件
为y(0) = 1。
2.采用分离变量法,将微分方程转化为积分形式:
∫dy/y = ∫ x^2 dx
两边同时积分,得到:
ln |y| = x^3/3 + C1
3.为了确定特解,需要将初始条件带入微分方程中,得到:
ln |y(0)| = 0^3/3 + C1 = C1
因此,特解为:
y(x) = e^(x^3/3 + C1) = e^(x^3/3 + ln |y(0)|) = e^(x^3/3 + ln |1|) = e^(x^3/3)
4.最终解为:y(x) = e^(x^3/3)。
常微分方程初值问题的解法及应用
常微分方程初值问题的解法及应用常微分方程是数学中非常重要的一部分,它涉及了许多领域的模型建立和问题求解。
本文将介绍常微分方程初值问题的解法及其应用。
一、常微分方程初值问题的定义常微分方程初值问题是指给定一个常微分方程,以及它在某一点上的初始条件,求解该方程的解曲线。
通常,一个常微分方程初值问题可以表示为:y'(x) = f(x,y), y(x0) = y0,其中,y(x)是未知函数,f(x,y)是已知函数,y(x0) = y0是初始条件。
二、常微分方程初值问题的解法常微分方程初值问题的解法有多种,下面我们将介绍几种常用的方法。
1.欧拉法欧拉法是最简单的一种求解常微分方程初值问题的方法。
该方法基于初始条件,通过不断迭代计算得到近似解曲线。
具体步骤如下:步骤1:设定步长h,确定求解区间[x0, xn],计算步数n。
步骤2:初始化,即确定初始点(x0, y0)。
步骤3:根据方程dy/dx = f(x,y)和初始点(x0, y0),计算斜率k = f(x0, y0)。
步骤4:根据已知的斜率和步长h,计算下一个点的坐标(xi+1,yi+1)。
步骤5:重复步骤3和步骤4,直到达到步数n。
步骤6:得到近似解曲线。
2.改进的欧拉法(改进欧拉法)改进的欧拉法是对欧拉法的改进,其求解精度比欧拉法更高。
具体步骤如下:步骤1:设定步长h,确定求解区间[x0, xn],计算步数n。
步骤2:初始化,即确定初始点(x0, y0)。
步骤3:根据方程dy/dx = f(x,y)和初始点(x0, y0),计算斜率k1 =f(x0, y0)。
步骤4:根据已知的斜率k1和步长h/2,计算中间点的坐标(x0+h/2, y0+k1*h/2)。
步骤5:根据方程dy/dx = f(x,y)和中间点的坐标(x0+h/2, y0+k1*h/2),计算斜率k2= f(x0+h/2, y0+k1*h/2)。
步骤6:根据已知的斜率k2和步长h,计算下一个点的坐标(xi+1,yi+1)。
常微分方程初值问题的解法
常微分方程初值问题的解法随着科技的不断进步和人类社会的不断发展,工程技术和科学技术的发展已经成为推动社会进步的重要力量,而数学则是工程技术和科学技术的基础和支撑,常微分方程作为数学分支的重要组成部分,对于理论研究和实际应用都有着深远的影响。
在实际工程中,解决常微分方程初值问题是数学理论在抽象式运算与工程实践之间的重要桥梁。
本文将介绍常微分方程初值问题的概念、求解方法以及实际应用。
一、常微分方程初值问题的概念常微分方程是指未知函数一阶或高阶微商与自变量和常数的关系式,常微分方程初值问题是指在初值u(x0)=u0已知的情况下,确定函数u(x)的解的问题。
在初值问题中,自变量是独立变量,取值范围可以是任意实数,因变量是函数值,是依赖自变量而实现的数值,常数是影响函数变化的一些固定参数。
常微分方程模型经常出现在工程技术模型中,一些实际应用场景可以通过建立数学模型来进行求解。
二、常微分方程初值问题的解法常微分方程初值问题的解法大致可以分为两种,一种是解析解法,即直接利用微积分学知识对方程进行求解;另一种是数值解法,即采用数值方法对方程进行数值计算求解。
下面将分别介绍这两种方法的解法原理。
1. 解析解法解析解法是指通过数学工具对函数解析表达式进行研究,以求出常微分方程的解。
该方法的先决条件是对方程具有严格的内部结构和特殊的形式,只有在特殊情况下才能找到一些特解。
这种方法的难点在于方程方程形式和初始条件可能存在巨大的数学难度,解析解的求解需要求解一些解析式的积分、微分和级数。
往往只有在一些特殊情况下,解析解法才能一般性的解决问题,因此该方法的适用场景相对较少。
2. 数值解法数值解法是指通过数值计算的方法,通过有限个代数运算和计算机模拟的方法得出方程的解。
数值解法的优点是具有广泛的适用性,可以有效地求解各种类型的常微分方程初值问题,使得无法通过解析方法求解的问题也可以得到解答。
数值解法可分为无条件稳定和条件稳定两种情况,前者是指方法不会出现不稳定结果的情况,而后者则保证了方法收敛性的同时,存在一定的条件限制。
常微分方程初值问题数值解法
0.4 1.3582 1.3416 0.9 1.7178 1.6733
0.5 1.4351 1.4142 1.0 1.7848 1.7321
7
初值问题(2.2)有解 y ,1按2这x 个解析式子
算出的准确值 y(x同n )近似值 一y起n 列在表9-1中,两者 相比较可以看出欧拉方法的精度很差.
17
所以,局部截断误差可理解为用方法(2.10)计算一步的 误差,也即公式(2.10)中用准确解y(x代) 替数值解产生
的公式误差.
根据定义,显然欧拉法的局部截断误差
Tn1 y( xn1) y( xn ) hf ( xn , y( xn ))
y(xn h) y(xn ) hy(xn )
y(2) n1
yn
hf
( xn1,
y (1) n1
).
11
如此反复进行,得
y (k 1) n1
yn
hf
( xn1,
y(k) n1
),
(k 0,1, ).
(2.6)
由于 f (x,对y) 满足y 利普希茨条件(1.3). 由(2.6)减 (2.5)得
y (k 1) n 1
yn1
h
f
( xn1,
y(k) n 1
积分曲线上一点 (x的, y切)线斜率等于函数 值.
的f (x, y)
如果按函数 f (在x, y) 平x面y上建立一个方向场,那 么,积分曲线上每一点的切线方向均与方向场在该点的方 向相一致.
基于上述几何解释,从初始点 P0 (x出0 ,发y0,) 先依 方向场在该点的方向推进到 x 上x1一点 ,P然1 后再从 P1 依方向场的方向推进到 x 上x2一点 ,循P2此前进做出
常微分方程初值问题解法
详细描述
幂级数解法是通过幂级数展开方法,将一阶 常微分方程转化为可求解的幂级数形式。这 种方法适用于一些具有特定形式的常微分方 程,通过幂级数展开方法,将原方程转化为 可求解的幂级数形式,然后找到方程的解。
03 初值问题的数值解法
欧拉方法
总结词
欧拉方法是求解常微分方程初值问题的一种简单而基础的数 值方法。
详细描述
欧拉方法基于微积分中的中点公式,通过在区间上取几个点 并近似求解微分方程,得到近似解。该方法简单易行,但精 度较低,且对于复杂的问题可能需要较大的步长才能得到满 意的结果。
龙格-库塔方法
总结词
龙格-库塔方法是求解常微分方程初值问题的一种高精度数值方法。
详细描述
龙格-库塔方法采用线性插值的思想,通过构造一系列的插值多项式来逼近微分方程的 解。这种方法精度较高,且适用于各种类型的微分方程,因此在科学计算和工程领域应
数值方法
随着计算机技术的发展,数值解法成为解决初值问题的主要手段,如欧拉法、龙格-库 塔法等,能够给出近似解并适用于各种复杂情况。
稳定性分析
对于解的存在性和稳定性,需要分析初值问题的解是否随时间演化而发散或收敛,这涉 及到解的稳定性分析。
未来研究方向与展望
高维问题
目前对高维初值问题的研究 还不够深入,未来可以探索 更有效的数值方法和理论分 析方法。
应用广泛
在各个领域中都有广泛的应用,如航天、航空、交通、经济等。
发展前景
随着科学技术的发展,常微分方程初值问题的求解方法和应用范围 将不断拓展,具有广阔的发展前景。
02 初值问题的解法
分离变量法
总结词
适用于具有特定形式的一阶常微分方程,通过将方程中的变量分离,转化为可求解的方程。
第6章常微分方程初值问题的解法
ykh 2 k[ (ykx k 1 ) ( yk 1x k 1 1 )]
yk11 29 1yk1k05110
预估-校正Euler方法:
y k 1 0 .90 y k 5 0 .00 k 9 0 .1 5
20
Euler方法
xk
yk
yk y(xk)
0.0 1.000000
0.0
梯形方法
yk
yk y(xk)
1.000000
0.0
续
预估-校正方法
yk
yk y(xk)
1.000000
0.0
0.1 1.000000 0.2 1.010000
4.8×10-3 8.7×10-3
1.004762 1.018594
y(0) 1
其解析解为: y1xe-t2dt x[0,1] 0 很难得到其解析解
4
例如:
y=x+y , x[0,1]
y(0) 1
其解析解为 yx12ex
只有一些特殊类型的微分方程问题能够得到用解析表达式 表示的函数解,而大量的微分方程问题很难得到其解析解。
因此,只能依赖于数值方法去获得微分方程的数值解。
例如:
y=x+y , x[0,1]
y(0) 1
其解析解为:yx12ex
3
但是, 只有一些特殊类型的微分方程问题能够得到用解析 表达式表示的函数解,而大量的微分方程问题很难得到其解 析解。
因此,只能依赖于数值方法去获得微分方程的数值解。
例如:
y =e-x2 ,
x[0,1]
7.5×10-5 1.4×10-4
常微分方程初值问题解法
为了克服欧拉方法精度不足的问题,可以对方法进行改进。一种常见的方法是使用更高阶的离散近似,例如使用 二阶或更高阶的离散化公式。这些改进可以减小数值误差,提高解的精度。
龙格-库塔方法
总结词
龙格-库塔方法是求解常微分方程初值问题 的一种高精度和高稳定性的数值方法。
详细描述
龙格-库塔方法是一种迭代方法,通过构造 一系列近似解来逼近微分方程的精确解。该 方法采用多步策略,每一步使用微分方程的 离散近似来更新未知数的值,同时考虑了更 多的信息,从而提高了数值解的精度和稳定 性。龙格-库塔方法在许多领域都有广泛的 应用,如物理、工程和科学计算等。
初值问题的定义
定义
常微分方程的初值问题由一个微分方程 和一个初始条件组成。给定一个初始状 态,我们需要找出该状态随时间变化的 规律。
VS
形式
dy/dt = f(t, y) with y(t0) = y0,其中f是 关于时间t和状态y的函数,t0是初始时间, y0是初始状态。
02
初值问题的解法
欧拉方法
05
结论与展望
研究成果总结
数值解法
常微分方程初值问题数值解法是当前研究的热点,包括欧拉法 、龙格-库塔法等多种方法,这些方法在精度和稳定性方面取
得了显著进展。
稳定性分析
对于数值解法的稳定性分析,研究者们通过分析数值解法 的收敛性和误差估计,为算法的改进提供了理论支持。
实际应用
常微分方程初值问题在物理、工程、生物等领域有广泛的应用 ,研究成果在实际问题中得到了验证,为解决实际问题提供了
04
实际应用与案例分析
物理问题中的应用
1 2 3
自由落体运动
描述物体在重力作用下的运动轨迹,可以通过常 微分方程求解物体在不同时刻的速度和位置。
常微分方程初值问题的数值解法
常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解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.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
第八章 常微分方程初值问题的解法
第八章常微分方程初值问题的解法在科学与工程问题中,常微分方程描述物理量的变化规律,应用非常广泛. 本章介绍最基本的常微分方程初值问题的解法,主要针对单个常微分方程,也讨论常微分方程组的有关技术.8.1引言本节介绍常微分方程、以及初值问题的基本概念,并对常微分方程初值问题的敏感性进行分析.8.1.1 问题分类与可解性很多科学与工程问题在数学上都用微分方程来描述,比如,天体运动的轨迹、机器人控制、化学反应过程的描述和控制、以及电路瞬态过程分析,等等. 这些问题中要求解随时间变化的物理量,即未知函数y(t),t表示时间,而微分方程描述了未知函数与它的一阶或高阶导数之间的关系. 由于未知函数是单变量函数,这种微分方程被称为常微分方程(ordinary differential equation, ODE),它具有如下的一般形式①:g(t,y,y′,⋯,y(k))=0 ,(8.1) 其中函数g: ℝk+2→ℝ. 类似地,如果待求的物理量为多元函数,则由它及其偏导函数构成的微分方程称为偏微分方程(partial differential equation, PDE). 偏微分方程的数值解法超出了本书的范围,但其基础是常微分方程的解法.在实际问题中,往往有多个物理量相互关联,它们构成的一组常微分方程决定了整个系统的变化规律. 我们先针对单个常微分方程的问题介绍一些基本概念和求解方法,然后在第8.5节讨论常微分方程组的有关问题.如公式(8.1),若常微分方程包含未知函数的最高阶导数为y(k),则称之为k阶常微分方程. 大多数情况下,可将常微分方程(8.1)写成如下的等价形式:y(k)=f(t,y,y′,⋯,y(k−1)) ,(8.2) 其中函数f: ℝk+1→ℝ. 这种等号左边为未知函数的最高阶导数y(k)的方程称为显式常微分方程,对应的形如(8.1)式的方程称为隐式常微分方程.通过简单的变量代换可将一般的k阶常微分方程转化为一阶常微分方程组. 例如对于方程(8.2),设u1(t)=y(t),u2(t)=y′(t),⋯,u k(t)=y(k−1), 则得到等价的一阶显式常微分方程组为:{u1′=u2u2′=u3⋯u k′=f(t,u1,u2,⋯,u k).(8.3)本书仅讨论显式常微分方程,并且不失一般性,只需考虑一阶常微分方程或方程组.例8.1 (一阶显式常微分方程):试用微积分知识求解如下一阶常微分方程:y′=y .[解] 采用分离变量法进行推导:①为了表达式简洁,在常微分方程中一般省略函数的自变量,即将y(t)简记为y,y′(t)简记为y′,等等.dy dt =y ⟹ dy y=dt , 对两边积分,得到原方程的解为:y (t )=c ∙e t ,其中c 为任意常数.从例8.1看出,仅根据常微分方程一般无法得到唯一的解. 要确定唯一解,还需在一些自变量点上给出未知函数的值,称为边界条件. 一种边界条件设置方法是给出t =t 0时未知函数的值:y (t 0)=y 0 .在合理的假定下,从t 0时刻对应的初始状态y 0开始,常微分方程决定了未知函数在t >t 0时的变化情况,也就是说这个边界条件可以确定常微分方程的唯一解(见定理8.1). 相应地,称y (t 0)=y 0为初始条件,而带初始条件的常微分方程问题:{y ′=f (t,y ),t ≥t 0y (t 0)=y 0 . (8.4)为初值问题(initial value problem, IVP ).定理8.1:若函数f (t,y )关于y 满足李普希兹(Lipschitz )条件,即存在常数L >0,使得对任意t ≥t 0,任意的y 与y ̂,有:|f (t,y )−f(t,y ̂)|≤L |y −y ̂| ,(8.5) 则常微分方程初值问题(8.4)存在唯一的解.一般情况下,定理8.1的条件总是满足的,因此常微分方程初值问题的解总是唯一存在的. 为了更清楚地理解这一点,考虑f (t,y )的偏导数ðf ðy 存在,则它在求解区域内可推出李普希兹条件(8.5),因为f (t,y )−f (t,y ̂)=ðf ðy (t,ξ)∙(y −y ̂) , 其中ξ为介于y 和y ̂之间的某个值. 设L 为|ðf ðy (t,ξ)|的上界,(8.5)式即得以满足.对公式(8.4)中的一阶常微分方程还可进一步分类. 若f (t,y )是关于y 的线性函数,f (t,y )=a (t )y +b (t ) ,(8.6) 其中a (t ),b (t )表示自变量为t 的两个一元函数,则对应的常微分方程为线性常微分方程,若b (t )≡0, 则为线性齐次常微分方程. 例8.1中的方程属于线性、齐次、常系数微分方程,这里的“常系数”是强调a (t )为常数函数.8.1.2 问题的敏感性对常微分方程初值问题,可分析它的敏感性,即考虑初值发生扰动对结果的影响. 注意这里的结果(解)是一个函数,而不是一个或多个值. 由于实际应用的需要,分析常微分方程初值问题的敏感性时主要关心t →∞时y (t )受影响的情况,并给出有关的定义. 此外,考虑到常微分方程的求解总与数值算法交织在一起、以及历史的原因,一般用“稳定”、“不稳定”等词汇说明问题的敏感性.定义8.1:对于常微分方程初值问题(8.4),考虑初值y 0的扰动使问题的解y (t )发生偏差的情形. 若t →∞时y (t )的偏差被控制在有界范围内,则称该初值问题是稳定的(stable ),否则该初值问题是不稳定的(unstable ). 特别地,若t →∞时y (t )的偏差收敛到零,则称该初值问题是渐进稳定的(asymptotically stable ).关于定义8.1,说明两点:● 渐进稳定是比稳定更强的结论,若一个问题是渐进稳定的,它必然是稳定的. ● 对于不稳定的常微分方程初值问题,初始数据的扰动将使t →∞时的结果误差无穷大. 因此为了保证数值求解的有效性,常微分方程初值问题具有稳定性是非常重要的.例8.2 (初值问题的稳定性): 考察如下“模型问题”的稳定性:{y ′=λy,t ≥t 0y (t 0)=y 0 . (8.7)[解] 易知此常微分方程的准确解为:y (t )=y 0e λ(t−t 0). 假设初值经过扰动后变为y 0+Δy 0,对应的扰动后解为y ̂(t )=(y 0+Δy 0)e λ(t−t 0),所以扰动带来的误差为Δy (t )=Δy 0e λ(t−t 0) .根据定义8.1,需考虑t →∞时Δy (t )的值,它取决于λ. 易知,若λ≤0,则原问题是稳定的,若λ>0,原问题不稳定. 而且当λ<0时,原问题渐进稳定.图8-1分三种情况显示了初值扰动对问题(8.7)的解的影响,从中可以看出不稳定、稳定、渐进稳定的不同含义.对例8.2中的模型问题,若考虑参数λ为一般的复数,则问题的稳定性取决于λ的实部,若Re(λ)≤0, 则问题是稳定的,否则不稳定. 例8.2的结论还可推广到线性、常系数常微分方程,即根据f (t,y )中y 的系数可确定初值问题的稳定性. 对于一般的线性常微分方程(8.6),由于方程中y 的系数为关于t 的函数,仅能分析t 取某个值时的局部稳定性.例8.3 (局部稳定性): 考察如下常微分方程初值问题的稳定性:{y ′=−10ty,t ≥0y (0)=1 . (8.8)[解] 此常微分方程为线性常微分方程,其中y 的系数为a (t )=−10t . 当t ≥0时,a (t )≤0,在定义域内每个时间点上该问题都是局部稳定的.事实上,方程(8.8)的解析为y (t )=e −5t 2,初值扰动Δy 0造成的结果误差为Δy (t )=Δy 0e −5t 2. 这说明初值问题(8.8)是稳定的.对于更一般的一阶常微分方程(8.4),由于其中f (t,y )可能是非线性函数,分析它的稳定性非常复杂. 一种方法是通过泰勒展开用一个线性常微分方程来近似它,再利用线性常微分方程稳定性分析的结论了解它的局部稳定性. 具体的说,在某个解函数y ∗(t)附近用一阶泰勒展开近似f (t,y ),f (t,y )≈f (t,y ∗)+ðf ðy(t,y ∗)∙(y −y ∗) 则原微分方程被局部近似为(用符号z 代替y ): 图8-1 (a) λ>0对应的不稳定问题, (b) λ=0对应的稳定问题, (c) λ<0对应的渐进稳定问题. (a) (b) (c)z′=ðfðy(t,y∗)∙(z−y∗)+f(t,y∗)这是关于未知函数z(t)的一阶线性常微分方程,可分析t取某个值时的局部稳定性. 因此,对于具体的y∗(t)和t的取值,常微分方程初值问题(8.4)的局部稳定性取决于ðfðy(t,y∗)的实部的正负号. 应注意的是,这样得到的关于稳定性的结论只是局部有效的.实际遇到的大多数常微分方程初值问题都是稳定的,因此在后面讨论数值解法时这常常是默认的条件.8.2简单的数值解法与有关概念大多数常微分方程都无法解析求解(尤其是常微分方程组),只能得到解的数值近似. 数值解与解析解有很大差别,它是解函数在离散点集上近似值的列表,因此求解常微分方程的数值方法也叫离散变量法. 本节先介绍最简单的常微分方程初值问题解法——欧拉法(Euler method),然后给出数值解法的稳定性和准确度的概念,最后介绍两种隐格式解法.8.2.1 欧拉法数值求解常微分方程初值问题,一般都是“步进式”的计算过程,即从t0开始依次算出离散自变量点上的函数近似值. 这些离散自变量点和对应的函数近似值记为:t0<t1<⋯<t n<t n+1<⋯y 0,y1,⋯y n,y n+1,⋯其中y0是根据初值条件已知的. 相邻自变量点的间距为 n=t n+1−t n, 称为步长.数值解法通常使用形如y n+1=G(y n+1,y n,y n−1,…,y n−k)(8.9) 的计算公式,其中G表示某个多元函数. 公式(8.9)是若干个相邻时间点上函数近似值满足的关系式,利用它以及较早时间点上函数近似值可算出y n+1. 若公式(8.9)中k=0,则对应的解法称为单步法(single-step method),其计算公式为:y n+1=G(y n+1,y n) .(8.10) 否则,称为多步法(multiple-step method). 另一方面,若函数G与y n+1无关,即:y n+1=G(y n,y n−1,…,y n−k),则称为显格式方法(explicit method),否则称为隐格式方法(implicit method). 显然,显格式方法的计算较简单,只需将已得到的函数近似值代入等号右边,则可算出y n+1.欧拉法是一种显格式单步法,对初值问题(8.4)其计算公式为:y n+1=y n+ n f(t n,y n) , n=0,1,2,⋯.(8.11) 它可根据数值微分的向前差分公式(第7.7节)导出. 由于y′=f(t,y),则y′(t n)=f(t n,y(t n))≈y(t n+1)−y(t n)n,得到近似公式y(t n+1)≈y(t n)+ n f(t n,y(t n)),将其中的函数值换为数值近似值,则得到欧拉法的递推计算公式(8.11). 还可以从数值积分的角度进行推导,由于y(t n+1)=y(t n)+∫y′(s)dst n+1t n =y(t n)+∫f(s,y(s))dst n+1t n,用左矩形公式近似计算其中的积分(矩形的高为s=t n时被积函数值),则有y(t n+1)≈y(t n)+ n f(t n,y(t n)) ,将其中的函数值换为数值近似值,便得到欧拉法的计算公式.例8.4 (欧拉法):用欧拉法求解初值问题{y ′=t −y +1y (0)=1. 求t =0.5时y (t )的值,计算中将步长分别固定为0.1和0.05.[解] 在本题中,f (t,y )=t −y +1, t 0=0, y 0=1, 则欧拉法计算公式为:y n+1=y n + (t n −y n +1) , n =0,1,2,⋯当步长h=0.1时,计算公式为y n+1=0.9y n +0.1t n +0.1; 当步长h=0.05时,计算公式为y n+1=0.95y n +0.05t n +0.05. 两种情况的计算结果列于表8-1中,同时也给出了准确解y (t )=t +e −t 的结果.表8-1 欧拉法计算例8.4的结果 h=0.1h=0.05 t ny n y (t n ) t n y n t n y n 0.11.000000 1.004837 0.05 1.000000 0.3 1.035092 0.21.010000 1.018731 0.1 1.002500 0.35 1.048337 0.31.029000 1.040818 0.15 1.007375 0.4 1.063420 0.41.056100 1.070320 0.2 1.014506 0.45 1.080249 0.5 1.090490 1.106531 0.25 1.023781 0.5 1.098737 从计算结果可以看出,步长取0.05时,计算的误差较小.在常微分方程初值问题的数值求解过程中,步长 n ,(n =0,1,2,⋯)的设置对计算的准确性和计算量都有影响. 一般地,步长越小计算结果越准确,但计算步数也越多(对于固定的计算区间右端点),因此总计算量就越大. 在实际的数值求解过程中,如何设置合适的步长达到准确度与效率的最佳平衡是很重要的一个问题.8.2.2数值解法的稳定性与准确度在使用数值方法求解初值问题时,还应考虑数值方法的稳定性. 实际的计算过程中都存在误差,若某一步的解函数近似值y n 存在误差,在后续递推计算过程中,它会如何传播呢?会不会恶性增长,以至于“淹没”准确解?通过数值方法的稳定性分析可以回答这些问题. 首先给出稳定性的定义.定义8.2:采用某个数值方法求解常微分方程初值问题(8.4),若在节点t n 上的函数近似值存在扰动δn ,由它引起的后续各节点上的误差δm (m >n )均不超过δn ,即|δm |≤|δn |,(m >n),则称该方法是稳定的.在大多数实际问题中,截断误差是常微分方程数值求解中的主要计算误差,因此我们忽略舍入误差. 此外,仅考虑稳定的常微分方程初值问题.考虑单步法的稳定性,需要分析扰动δn 对y n+1的影响,推导δn+1与δn 的关系式. 以欧拉法为例,先考虑模型问题(8.7),并且设Re(λ)≤0. 此时欧拉法的计算公式为②:y n+1=y n + λy n =(1+ λ)y n ,由y n 上的扰动δn 引起y n+1的误差为:δn+1=(1+ λ)δn ,要使δn+1的大小不超过δn ,则要求|1+ λ|≤1 . (8.12)② 对于稳定性分析以及后面的一些场合,由于只考虑一步的计算,将步长 n 记为 .。
9、常微分方程初值问题数值解法
( 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.改进
常微分方程的解法及应用
常微分方程的解法及应用常微分方程是数学中的一个重要分支,广泛应用于各个领域,例如物理学、生物学、经济学等。
本文将介绍常微分方程的解法和应用。
一、常微分方程的解法常微分方程是描述物理现象和自然现象的重要数学工具,例如天文学、电子学、量子力学、流体力学、热力学、生物学、化学等。
常微分方程主要分为初值问题和边值问题两种。
1.初值问题初值问题是指在某个初始时刻$t_0$,系统的状态已知,求在此后的任意时间$t$内该系统的状态。
其一般形式如下:$$\frac{dy}{dt}=f(y,t), \ \ \ \ y(t_0)=y_0$$其中,$y$是未知的函数,$f$是已知的函数,$y_0$是已知的常数。
2.边值问题边值问题是指在某个区间$[a,b]$内,系统的状态已知,求满足某个条件的函数$y(t)$。
其一般形式如下:$$\frac{d^2y}{dt^2}=f(y,t), \ \ \ \ y(a)=y_A, \ \ \ \ y(b)=y_B$$其中,$y_A$和$y_B$是已知的常数。
3.解法常微分方程的解法有多种方法,下面介绍比较常用的两种方法:欧拉法和四阶龙格-库塔法。
(1)欧拉法欧拉法是常微分方程求解的一种最简单的数值方法,它的基本思想是将微分方程转化为差分方程,利用差分方程求解。
假设在时间t时,y的值为$y(t)$,而在时间$t+h$时的y的值可以用下式计算:$$y(t+h)=y(t)+h\times f(y(t),t)$$其中,$f(y,t)$是微分方程的右端函数,$h$是每次迭代的步长。
(2)四阶龙格-库塔法四阶龙格-库塔法是常微分方程求解的一种较为精确的数值方法,其基本思想是采用区间加权平均法对微分方程进行求解。
四阶龙格-库塔法是由四个步骤组成,分别为:1)计算斜率$k_1=f(y_i,t_i)$2)计算斜率$k_2=f(y_i+\frac{h}{2}k_1,t_i+\frac{h}{2})$3)计算斜率$k_3=f(y_i+\frac{h}{2}k_2,t_i+\frac{h}{2})$4)计算斜率$k_4=f(y_i+hk_3,t_i+h)$将这四个斜率加权平均后即得到四阶龙格-库塔法的解式:$$y_{i+1}=y_i+\frac{1}{6}(k_1+2k_2+2k_3+k_4)$$二、常微分方程的应用常微分方程广泛应用于各个领域,本节将介绍三个常微分方程的应用:自然增长模型、振动模型和物理模型。
第7讲 常微分方程初值问题数值解法
yn1 yn hf ( xn1 , yn1 ) n 0,1, 2,, N 1
称上述公式为向后Euler 公式。 向后Euler 公式为隐式格式,需要利用迭代法求解
10
数值分析
第7讲 常微分方程初值问题数值解法
Euler方法的几何意义
③ 图形解
y
•龙格-库塔法
o
x
2
数值分析
第7讲 常微分方程初值问题数值解法
§1 引言 初值问题及其数值解的概念
dy f ( x , y ); a x b 一阶常微分方程初值问题: d x ( ) y( x ) y 0 0
常用的一些 解析解法:
分离变量法、变量代换、 常数变易法、Lapalace变换等
(3)
用Taylor多项式近似并可估计误差
h
2
y( x n 1 ) y( x n h) y( x n ) hy' ( x n )
y' ' ( ) h
2
2! y' ' ( x n )
y( x n ) hy' ( x n )
2!
进一步: 令
y n 1 y( x n 1 ) , y n y ( x n )
计算结果
(1)步长h=0.1的数值解比较表
x 0 0.1
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
精确解 1 1.0048
1.0187 1.0408 1.0703 1.1065 1.1488 1.1966 1.2493 1.3066 1.3679
向前欧拉 1 1
常微分方程初值问题解法
8
4 后退的欧拉方法
(5)
9
(6)
(6)式称为后退的欧拉方法,它是隐式的, 欧拉公式(2)是显式的,
10
(7)
11
12
后退的欧拉方法的局部截断误差:
13
5 梯形方法
(8)
(8)式称为梯形方法.
14
梯形方法的局部截断误差:
15
6. 改进欧拉法及局部截断误差
(1)改进的欧拉公式:
预测步
~ yn 1 yn hf xn , yn
33
提高Runge-Kutta方法的精度的方法
提高积分方法的精度,我们最熟悉的(不一定是最好的)措施是
Richardson 外推法
我们用一个例子予以说明如下 的近似解: Euler法 yn 1 yn hyn y ( h ) ( x) y ( x) c1h c2 h 2 h 将步长减半为 时,有 2 h ( ) 1 1 y 2 ( x) y ( x) c1h c2 h 2 2 4
h) p 1 Yn( (1 1 ch
d
(h) n 1
因此可以从两次计算当中估计出每一步的截断误差,有了这个误差估计之后, 通过与控制误差限比较,就可以控制步长. 注意这个方法增加了计算量.
35
1 1 2 p
) (h (h) 2 Y Y n 1 ; n 1
30
yx 例 求解初值问题ODE : dy dx
易知其精确解为:y 2 2 x x 2 e x
2
,
y (0) 1.
步长都取为 h 0.1 分别用二阶、四阶 R K方法求解:
x
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
常微分方程初值问题的数值解法
常微分方程初值问题的数值解法在实际应用中,对于某些微分方程,我们并不能直接给出其解析解,需要通过数值方法来求得其近似解,以便更好地理解和掌握现象的本质。
常微分方程初值问题(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j 1
i 2,3, , r
i 1
i ij j 1
确定了阶数之后,再通过Taylor展开、比较两边系数的方
法,确定各待定系数: ci , i , ij
21
➢二阶显式Runge-Kutta方法
22
23
24
25
例 求解初值问题ODE : dy y2 , dx 易知其精确解为:y 1 .
yk 1
yk
h 2 [ f (xk , yk )
f (xk1, yk1 )]
如果将其改成
h
yk1 yk 2 (K1 K 2 )
K1 f (xk , yk )
----------(1)
K 2 f (xk1, yk hK1 )
y0 y(x0 )
18
改进Euler法是由梯形公式和Euler公式复合而成 梯形公式具有2阶精度
第7章 常微分方程初值问题数值解法
7.1 引 言
1
本章研究的问题:
2
• 7.1 欧 拉 方 法及改进的欧拉法 • 7.1.1 欧拉公式
图7.1 欧拉折线法
3
1 欧拉公式
(2) (3)
4
5
2 欧拉公式的截断误差
(4)
6
3 单步法的局部截断误差与 阶
局部截断误差可以理解为计算一步的误差.
7
则称该方法具有P阶精度.
校正步
yn1
yn
h 2
f
xn , yn
f
xn1, ~yn1
或者写成
yp yc
yn yn
hf hf
xn , yn
xn1, y
p
yn1
1 2
yp yc
16
(2)改进的欧拉方法的局部截断误差
17
7.2 Runge-Kutta法
考虑改进Euler法
yk 1 yk hf (xk , yk )
1 x
y(0) 1.
步长都取为 h 0.1 分别用以下两种系数:
1. a 1 ,改进的Euler 法: 2
1 c1 c2 2 ,
2 21 1.
积分公式:
yn1 yn 0.1 yn2 yn 0.1 yn2 2 2
2. a 1 , 3
2
1
c1
3
,
c2
, 3
2
21
3. 2
因此若要在局部截断误差中消去h3项,必须增加包含了以上各项的多
个方程,同时我们注意到r=2时,只有 c1,2 , 1,等2四1 个待定系数,少 于方程的数目,所以这样的系数不存在。故: r=2时Runge-Kutta方 法只能是二阶的。要得到三阶的方法,则必须有r=3。
Yn1 Yn h(c1K1 c2K2 c3K3 )
K1 K2
F (tn ,Yn )
F (tn 2h,
Yn
21hK1 )
K3 F (tn 3h, Yn 31hK1 32hK2 )
其 局 部 截 断 误 差 为 :d n1
Y
(tn 1 )
Y
(tn )
h(c1K1
c2 K2
c3
K3
).
28
➢三阶显式Runge-Kutta方法
将K2 , K3以及Y (tn1)作Taylor展开,使得dn1 O(h4 ), 可 得 待 定 系 数 满 足 的 方程 如 下 :
c1 c2 c3 1
2 21
c232
c222
31 32
c33
1 2
c332
1 3
c32 32
1 6
6个 方 程 要 决 定8个 未 知 数 , 解 不 唯 一 。 因 此 可 以 得 到 众 多 公 式, 它 们 统 称 为 三 阶Runge Kutta公 式 。 特 别 地 , 一 个 常 见 的 公 式 称 为Kutta三 阶 公 式 , 如 下 :
积分公式:
yn1 yn 0.1 2 yn2 yn 3 0.1 yn2 2 2 3
26
结果及比较
27
➢三阶显式Runge-Kutta方法
在推导二阶显式方法的过程中,注意到局部截断误差表达式中h3项包 含了以下表达式:
Yn Ftt(tn,Yn ) 2FtY(tn,Yn )Fn FYY (tn,Yn )Fn2 FY(tn,Yn ) Ft(tn,Yn ) FY(tn,Yn )Fn
同样可以证明,改进Euler法也具有2阶精度。 (1)式为一种二阶Runge-Kutta法
19
➢Runge-Kutta方法的推导
20
Runge-Kutta方法的一般形式:
r
yn1 yn h ci Ki
i 1
K1 f (xn , yn )
, h ij K j )
Yn1
Yn
h 6
K1 2K2 2K3 K4
K1
F (tn ,Yn )
K2 K3
F (tn F (tn
1
2 1
2
h, h,
Yn Yn
h
2 h
2
K1 ) K2)
K4
F (tn
h,
Yn
hK3 )
30
例 求解初值问题ODE : dy y x2 , y(0) 1.
dx 易知其精确解为:y 2 2x x2 ex
Yn1
K1
K2
Yn F (tn F (tn
h 6
(
K1
,Yn )
h 2
,
Yn
4K2 h
2
K3) K1 )
K3 F (tn h, Yn hK1 2hK2 )
29
➢四阶显式Runge-Kutta方法
类似前面的推导,可以导出各种四阶的Runge Kutta公式,它们 的局部截断误差满足dn1 O(h5 )。下面列出最常见的一个:
步长都取为 h 0.1 分别用二阶、四阶R K方法求解:
x
四阶 二阶 真解 四阶误差 二阶误差
0.0 1.000000 1.000000 1.000000 0.0000 0.000000
0.1 1.104829 1.102450 1.104829 1.60E-7 2.38E-3
0.2 1.218597 1.211507 1.218597 3.40E-7 7.09E-3
0.3 1.340141 1.325766 1.340141 5.48E-7 1.44E-2
0.4 1.468175 1.443671 1.468175 7.69E-7 2.45E-2
8
4 后退的欧拉方法
(5)
9
(6)
(6)式称为后退的欧拉方法,它是隐式的, 欧拉公式(2)是显式的,
10
(7)
11
12
后退的欧拉方法的局部截断误差:
13
5 梯形方法
(8)
(8)式称为梯形方法.
14
梯形方法的局部截断误差:
15
6. 改进欧拉法及局部截断误差
(1)改进的欧拉公式:
预测步
~yn1 yn hf xn, yn