第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法 2
- 格式:doc
- 大小:174.50 KB
- 文档页数:8
Ordinary Differential Equations•一阶常微分方程的初值问题:•节点:x 1<x 2< …<x n•步长为常数⎪⎩⎪⎨⎧==00)(),(y x y y x f dx dy 1--=i i x x h•一欧拉方法(折线法)y i +1=y i +h f (x i ,y i ) (i =0,1, …, n-1)优点:计算简单。
缺点:一阶精度。
•二改进的欧拉方法)(21),(),(11c p i p i i c i i i p y y y y x hf y y y x hf y y +=+=+=++•改进的欧拉公式可改写为它每一步计算f (x,y )两次,截断误差为O(h 3)⎪⎪⎩⎪⎪⎨⎧++==++=+),(),()(2121211hk y h x f k y x f k k k h y y i i i i i iy dtdy-=10,1)0(≤≤=t y tey -=精确解:function [t,y] = Heun(ode,tspan,h,y0)t = (tspan(1):h:tspan(end))';n = length(t);y = y0*ones(n,1);for i=2:nk1 = feval(ode,t(i-1),y(i-1)); k2 = feval(ode,t(i),y(i-1)+h*k1);y(i) = y(i-1)+h*(k1+k2)/2;end•三龙格—库塔法(Runge-Kutta)欧拉公式可改写为它每一步计算f (x i ,y i ) 一次,截断误差为O(h 2)⎩⎨⎧=+=+),(111i i i i y x f k hk y y•标准四阶龙格—库塔公式每一步计算f (x, y ) 四次,截断误差为O(h 5)⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧++=++=++==++++=+),()2,2()2,2(),()22(6342312143211hk y h x f k k hy h x f k k hy h x f k y x f k k k k k hy y i i i i i i i i i i 01/21/21/201/210011/62/62/61/6.)()),(),(,()(;)()),(),(,()(''βα====b v x v x u x g x v a u x v x u x f x u ()()4321143211226226c c c c hv v k k k k hu u i i i i ++++=++++=++),,(),,()21,21,2()21,21,2()21,21,2()21,21,2(),,(),,(33433422322311211211hc v hk u h x g c hc v hk u h x f k hc v hk u h x g c hc v hk u h x f k hc v hk u h x g c hc v hk u h x f k v u x g c v u x f k i i i i i i i i i i i i i i i i i i i i i i i i +++=+++=+++=+++=+++=+++===对于两个分量的一阶常微分方程组用经典4阶Runge-Kutta 法求解的格式为,11∑=++=nj j j i i k b h y y .,,3,2,),,(),,(11111n j a c k a h y h c x f k y x f k j m jm j j m m jm i j i j i i ==++==∑∑-=-=n 级显式Runge-Kutta 方法的一般计算格式:其中.1,,3,2),51623(12211-=+-+=--+N i f f f hy y i i i i i .1,,4,3),9375955(243211-=-+-+=---+N i f f f f hy y i i i i i i .1,,3,2),5199(242111-=+-++=--++N i f f f f hy y i i i i i i Adams 外插公式(Adams-Bashforth 公式)是一类k +1 步k +1 阶显式方法三步法(k =2),四步法(k =3),Adams 内插公式(Adams-Moulton 公式)是一类k +1 步k +2 阶隐式方法三步法(k =2),Adams 预估-校正方法(Adams-Bashforth-Moulton 公式)一般取四步外插法与三步内插法结合。
第8章 常微分方程数值解法本章主要内容:1.欧拉法、改进欧拉法. 2.龙格-库塔法。
3.单步法的收敛性与稳定性。
重点、难点一、微分方程的数值解法在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。
对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。
本章我们主要讨论常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(yx y y x f dx dy的数值解法。
数值解法的基本思想是:在常微分方程初值问题解的存在区间[a,b]内,取n+1个节点a=x 0<x 1<…<x N =b (其中差h n = x n –x n-1称为步长,一般取h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。
二、欧拉法与改进欧拉法欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。
将常微分方程),(y x f y ='变为()*+=⎰++11))(,()()(n xn x n n dtt y t f x y x y1.欧拉法(欧拉折线法)欧拉法是求解常微分方程初值问题的一种最简单的数值解法。
欧拉法的基本思想:用左矩阵公式计算(*)式右端积分,则得欧拉法的计算公式为:Nab h N n y x hf y y n n n n -=-=+=+)1,...,1,0(),(1 欧拉法局部截断误差11121)(2++++≤≤''=n n n n n x x y h R ξξ或简记为O (h 2)。
我们在计算时应注意欧拉法是一阶方法,计算误差较大。
欧拉法的几何意义:过点A 0(x 0,y 0),A 1(x 1,y 1),…,A n (x n ,y n ),斜率分别为f (x 0,y 0),f (x 1,y 1),…,f (x n ,y n )所连接的一条折线,所以欧拉法亦称为欧拉折线法。
常微分方程的数值解法与实际应用研究引言:常微分方程是数学中一种重要的数学工具,广泛应用于物理、经济、生物等领域的实际问题的数学建模。
在解析求解常微分方程存在困难或不可行的情况下,数值解法提供了一种有效的求解方法,并被广泛应用于实际问题的研究中。
本文将介绍常微分方程的数值解法以及一些实际应用的研究案例。
一、常微分方程的数值解法:1. 欧拉法:欧拉法是一种基础的数值解法,通过将微分方程离散化,近似得到方程的数值解。
欧拉法的基本思想是根据微分方程的导数信息进行近似计算,通过逐步迭代来逼近真实解。
但是欧拉法存在截断误差较大、收敛性较慢等问题。
2. 改进的欧拉法(改进欧拉法推导过程略):为了解决欧拉法的问题,改进的欧拉法引入了更多的导数信息,改善了截断误差,并提高了算法的收敛速度。
改进欧拉法是一种相对简单而可靠的数值解法。
3. 四阶龙格-库塔法:四阶龙格-库塔法是常微分方程数值解法中最常用和最经典的一种方法。
通过多次迭代,四阶龙格-库塔法可以获得非常精确的数值解,具有较高的精度和稳定性。
二、常微分方程数值解法的实际应用研究:1. 建筑物的结构动力学分析:建筑物的结构动力学分析需要求解一些动力学常微分方程,例如考虑结构的振动和应力响应。
利用数值解法可以更好地模拟建筑物的振动情况,并对其结构进行安全性评估。
2. 生态系统模型分析:生态系统模型通常包含一系列描述物种数量和相互作用的微分方程。
数值解法可以提供对生态系统不同时间点上物种数量和相互作用的变化情况的模拟和预测。
这对于环境保护、物种保护以及生态系统可持续发展方面具有重要意义。
3. 电路模拟与分析:电路模拟与分析通常涉及电路中的电容、电感和电阻等元件,这些元件可以通过常微分方程进行建模。
数值解法可以提供电路中电压、电流等关键参数的模拟和分析,对电路设计和故障诊断具有重要帮助。
4. 化学反应动力学研究:化学反应动力学研究需要求解涉及反应速率、物质浓度等的微分方程。
常微分方程组数值解法一、引言常微分方程组是数学中的一个重要分支,它在物理、工程、生物等领域都有广泛应用。
对于一些复杂的常微分方程组,往往难以通过解析方法求解,这时候数值解法就显得尤为重要。
本文将介绍常微分方程组数值解法的相关内容。
二、数值解法的基本思想1.欧拉法欧拉法是最基础的数值解法之一,它的思想是将时间连续化,将微分方程转化为差分方程。
对于一个一阶常微分方程y'=f(x,y),其欧拉公式为:y_{n+1}=y_n+hf(x_n,y_n)其中h为步长,x_n和y_n为第n个时间点上x和y的取值。
2.改进欧拉法改进欧拉法是对欧拉法的改良,其公式如下:y_{n+1}=y_n+\frac{h}{2}[f(x_n,y_n)+f(x_{n+1},y_n+hf(x_n,y_n))] 3.四阶龙格-库塔方法四阶龙格-库塔方法是目前最常用的数值解法之一。
其公式如下:k_1=f(x_n,y_n)k_2=f(x_n+\frac{h}{2},y_n+\frac{h}{2}k_1)k_3=f(x_n+\frac{h}{2},y_n+\frac{h}{2}k_2)k_4=f(x_n+h,y_n+hk_3)y_{n+1}=y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)其中,k_i为中间变量。
三、常微分方程组的数值解法1.欧拉法对于一个二阶常微分方程组:\begin{cases} y'_1=f_1(x,y_1,y_2) \\ y'_2=f_2(x,y_1,y_2)\end{cases}其欧拉公式为:\begin{cases} y_{n+1,1}=y_{n,1}+hf_1(x_n,y_{n,1},y_{n,2}) \\y_{n+1,2}=y_{n,2}+hf_2(x_n,y_{n,1},y_{n,2}) \end{cases}其中,x_n和y_{n,i}(i=1, 2)为第n个时间点上x和y_i的取值。
第8章 常微分方程数值解法本章主要内容:1.欧拉法、改进欧拉法. 2.龙格-库塔法。
3.单步法的收敛性与稳定性。
重点、难点一、微分方程的数值解法在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。
对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。
本章我们主要讨论常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(yx y y x f dx dy的数值解法。
数值解法的基本思想是:在常微分方程初值问题解的存在区间[a,b]内,取n+1个节点a=x 0<x 1<…<x N =b (其中差h n = x n –x n-1称为步长,一般取h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。
二、欧拉法与改进欧拉法欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。
将常微分方程),(y x f y ='变为()*+=⎰++11))(,()()(n xn x n n dtt y t f x y x y1.欧拉法(欧拉折线法)欧拉法是求解常微分方程初值问题的一种最简单的数值解法。
欧拉法的基本思想:用左矩阵公式计算(*)式右端积分,则得欧拉法的计算公式为:Nab h N n y x hf y y n n n n -=-=+=+)1,...,1,0(),(1 欧拉法局部截断误差11121)(2++++≤≤''=n n n n n x x y h R ξξ或简记为O (h 2)。
我们在计算时应注意欧拉法是一阶方法,计算误差较大。
欧拉法的几何意义:过点A 0(x 0,y 0),A 1(x 1,y 1),…,A n (x n ,y n ),斜率分别为f (x 0,y 0),f (x 1,y 1),…,f (x n ,y n )所连接的一条折线,所以欧拉法亦称为欧拉折线法。
例1用欧拉法解初值问题⎪⎩⎪⎨⎧=≤≤-=1)0()10(2y x xy dx dy在x =0 (0.2) 1处的近似解。
(计算过程保留4位小数)。
【思路】 用欧拉法求解常微分方程的初值问题时,首先熟练掌握欧拉公式的一般形式, 根据具体题目写出找出欧拉公式的迭代式,并根据初始条件和所给步长进行迭代求解。
解 ∵ f (x ,y )=-2xy ,h =0.2,欧拉公式为:)5,4,3,2,1,0()4.01()2(2.0),(1=-=-+=+=+n y x y x y y x hf y y n n n n n n n n n列表计算如下:2.改进欧拉法改进欧拉法比欧拉法的计算准确,是对欧拉法的改进。
改进欧拉法的基本思想:用梯形公式计算(*)式右端积分,则得改进欧拉法的计算公式为:[]Na b h N n y x f y x f hy y n n n n n n -=-=++=+++)1,...,1,0(),(),(2111利用改进欧拉法计算常微分方程初值问题时,我们应注意此公式为隐式表达式,需要对它进行迭代求解。
计算时可以采用一次迭代和多次迭代,因此,就有改进欧拉法预估-校正法公式和反复迭代的改进欧拉法预估-校正法公式。
改进欧拉法预估-校正法公式:()()[]⎪⎩⎪⎨⎧-=++=+=++++)1,...,1,0(),(),(2),(011101N n y x f y x f h y y y x hf y y nn n n n n n n n n反复迭代的改进欧拉法预估-校正法公式:()()()[]⎪⎩⎪⎨⎧=-=++=+=+++++),...,1,0,1,,0(),(),(2),(111101m N n y x f y x f h y y y x hf y y m n n n n n m n n n n n改进欧拉法的局部截断误差11131)(12++++≤≤'''=n n n n n x x y h R ξξ或简记为O (h 3)。
从局部截断误差的形式看,改进欧拉法是二阶方法,因此,它比欧拉法更精确。
例2用预估-校正法求初值问题⎪⎩⎪⎨⎧=≤≤--='1)0()10(2y x xy y y在x=0(0.2)1的解。
【思路】掌握预估-校正法的计算公式,根据已知条件迭代求解。
解 步长h=0.2,将2),(xy y y x f --=代入预估-校正公式,整理得⎪⎩⎪⎨⎧+--=-=+++++2)0(11)0(1212)0(1)((1.01.09.02.08.0n n n n n n n n n n n y x y y x y y y x y y 列表计算如下:例3用改进欧拉法求解例1的初值问题,要求3)1()(10--<-m nm n y y 。
【思路】掌握改进欧拉法的计算公式,根据已知条件迭代求解,并检验迭代解是否满足精度要求,若满足则确定此解为常微分方程在某点的近似解。
解 将xy y x f 2),(-=代入改进欧拉法的计算公式得:()()[]()[]⎪⎩⎪⎨⎧+-=++=-=-+=+=-++-++++)2.0),(),(2)4.01()2(2.0),(1111111)0(1m n n n n n m n n n n n m n n n n n n n n n ny x y x y y x f y x f h y y y x y x y y x hf y y列表计算如下:三、龙格-库塔法 1.龙格-库塔法龙格-库塔法具有精度高、收敛、稳定,不需要计算高阶导数等优点,是求解微分方程初值问题的一组著名的显示单步方法,广泛应用于求解常微分方程的初值问题。
本章我们介绍了二、三、四阶龙格-库塔法。
龙格-库塔法的基本思想:在计算初值问题⎩⎨⎧=='00)(),(y x y y x f y 的数值解时,考虑均差h x y x y n n )()(1-+,则由微分中值定理可得)10()()()(1<<+'=-+θθh x y h x y x y n n n , 由初值问题可得公式为:))(,()()(1h x y h x hf x y x y k k k k θθ+++=+上式中))(,(h x y h x f k k θθ++称为区间上的平均斜率。
如果给平均斜率一种计算方法,就可得到计算y (x n+1)的近似值y n+1的公式。
如果仅取n x 处的斜率值),(n n y x f 作为平均斜率的近似值,则得到的1+n y 的公式为欧拉公式;如果取1,+n n x x 处的斜率值),(n n y x f ,),(11++n n y x f 的平均值作为平均斜率的近似值,则得到的1+n y 的公式改进欧拉公式。
㈠ 二阶龙格-库塔法的公式和局部截断误差:⎪⎪⎩⎪⎪⎨⎧+==++=++),(),()(112122111hk y x f k y x f k k k h y y n n n n n n λλ在上式中选择不同的参数,会得到不同的二阶龙格-库塔法公式,所以二阶龙格-库塔法公式不唯一。
二阶龙格-库塔法公式的局部截断误差为Ο(h 3)。
常见的二阶龙格-库塔法公式有以下两种 改进欧拉法迭代公式⎪⎪⎩⎪⎪⎨⎧+==++=++),(),()(21121211hk y x f k y x f k k k h y y n n n n n n ⎪⎪⎩⎪⎪⎨⎧++==+=+)2,2(),(12121k h y h x f k y x f k hk y y n n n n n n㈡ 三阶龙格-库塔法的公式和局部截断误差: 常见的三阶龙格-库塔法公式为⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧+-+=++==+++=+)2,()2,2(),()4(62131213211hk hk y h x f k k h y h x f k y x f k k k k h y y n n n n n n n n三阶龙格-库塔法公式的局部截断误差为Ο(h 4)。
㈢ 四阶龙格-库塔法公式通常所说的龙格-库塔法是指四阶龙格-库塔法,也称为标准龙格-库塔法。
由于它是一步法,(即已知n y ,就可以求出1+n y ,无需知道1-n y ,2-n y ,…的值)且它的计算精度高,所以应用较多,但在计算时,因为每一步都需要计算四次f (x ,y )的值,计算量较大,所以,一般用来计算前几项的近似值,即“表头”。
四阶龙格-库塔法公式为的公式和局部截断误差:⎧+2⎪⎪⎩⎪⎪⎨+==+=+),2(),(12121k h y h x f k y x f k hk y y n n n n n n⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧++=++=++==++++=+),()2,2()2,2(),()22(6342312143211hk y h x f k k h y h x f k k h y h x f k y x f k k k k k h y y n n n n nn n n n n四阶龙格-库塔法的局部截断误差为Ο(h 5)。
四、单步法的收敛性和稳定性 1.收敛性如果在无舍入误差且步长h 充分小的情况下,求得的近似值n y 足够精确地逼近真解)(n x y ,即:当0→h 时,一致地有)(n n x y y →①欧拉法整体截断误差:n n ny x y -=)(ε其中)(n x y 为真解,n y 为在无舍入误差情况下,从y 0用欧拉法计算公式求得的近似解。
② 欧拉法的收敛条件:如果f(x,y)关于y 满足Lipschitz 条件,且局部截断误差R n 有 界,即),,...,2,1(222N n M h R n =≤则欧拉法收敛。
且欧拉法的整体截断误差估计式为:)1(2)(2-≤-a b L n e LhM ε 其中L 为Lipschitz 常数,b-a 为求解区间的长度,)(max 2x y M bx a ''=≤≤。
3.稳定性和绝对稳定性①稳定性:指初始(或某步)产生的误差在后面的迭代计算中不会再扩大。
即存在常数C 及h 0,0<h ≤h 0时,对任意两个初始值00~,y y 满足不等式 00~~y y C y y n n -≤-。
② 欧拉法稳定性的条件:如果f(x,y)关于y 满足Lipschitz 条件,则欧拉法稳定。
③ 绝对稳定性:若对固定步长0h 及任意两个初始值00~,y y 满足不等式00~~y y y y n n -≤-。
④ 我们在讨论稳定性时应注意,一般在实际计算中只能取固定步长,它不可能任意缩小。
所以绝对稳定性则表示的是对固定步长h 0,在初始(或某步)所产生的误差,在以后计算中不会逐步增长。