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

合集下载

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

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

例1 函数f ( t , y ) = t y 在区域D0 = {( t , y ) | 1 ≤ t ≤ 2, −3 ≤ y ≤ 4}
关于y满足Lipschitz条件,相应的Lipschitz常数可取为L = 2
3 存在性定理 定理1 设函数f ( t , y )在凸集D ⊂ R 2中有定义,若存在常数
(7.2.7)
称为显式Runge-Kutta(龙格-库塔 )方法,简称R-K方法,
其中正整数N 称为R-K方法的级,所有ci , ai , bij 都是待定 常数。
根据定义(7.2.7),N 级R-K方法(7.9)的局部截断误差为
Rn+1 = y( t n+1 ) − y( t n ) − h∑ ci ki
dy 其斜率为 = f ( t0 , y0 ) dt ( t0 , y0 ) 由 点 斜 式 写 出 切线 方 程 dy y = y0 + ( t − t0 ) = y0 + ( t − t0 ) f ( t0 , y0 ) dt ( x0 , y )
0
等步长为h,则t1 - t0 = h, 可由切线算出 y1 : 则 y1 = y0 + hf ( t0 , y0 ) 按此逐步计算y( tn ), 在tn +1处的值 : yn+1 = yn + hf ( tn , yn ) y 注意: 这是“ 注意 : 这是 “ 折 yN 线法” 而非“ 线法 ” 而非 “ 切 线法” 线法 ” 除第一个 点是曲线切线外, 点是曲线切线外 , 其他点不是切线 y2 而是折线(如右 y1 y0 图所示)。 图所示 。
பைடு நூலகம்
则称数值解法(7.5)为显式方法。否则,称数值解法(7.3) 为隐式方法。

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

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

常微分方程的初值问题及其解法常微分方程是自然界中各种变化的基础模型,广泛应用于物理、工程、生物、经济学等领域。

初值问题是其中最基本的问题之一。

本文将从初值问题的意义入手,介绍几种不同的数值解法,并评价其优缺点。

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$。

常微分方程初值问题的解法及应用

常微分方程初值问题的解法及应用

常微分方程初值问题的解法及应用常微分方程是数学中非常重要的一部分,它涉及了许多领域的模型建立和问题求解。

本文将介绍常微分方程初值问题的解法及其应用。

一、常微分方程初值问题的定义常微分方程初值问题是指给定一个常微分方程,以及它在某一点上的初始条件,求解该方程的解曲线。

通常,一个常微分方程初值问题可以表示为: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)。

第七章常微分方程数值解法

第七章常微分方程数值解法

h2 h3 y ( xi 1 ) y ( xi h) y ( xi ) hy '( xi ) y ''( xi ) y '''( xi ) 2! 3!
丢掉高阶项,有
y( xi 1 ) y( xi h) y( xi ) hy '( xi ) yi hf ( xi , yi )
| f ( x, y1 ) f ( x, y2 ) | L | y1 y2 | ,
那么模型问题在 [ a, b] 存在唯一解。
Lipschitz 连续: | f ( x, y1 ) f ( x, y2 ) | L | y1 y2 | .
(1) 比连续性强: y1 y2 可推出 f ( x, y1 ) f ( x, y2 ) ; (2) 比连续的 1 阶导弱:具有连续的 1 阶导,则
f | f ( x, y1 ) f ( x, y2 ) || ( ) || y1 y2 | L | y1 y2 | . y
常微分方程数值解法
目标:计算出解析解 y ( x) 在一系列节点 a x0 x1 xn1 xn b 处的近似值 yi y( xi ) ,即所谓的数值解。节点间距 hi xi 1 xi ,一般 取为等距节点。
常微分方程初值问题的数值解法一般分为两大类: (1)单步法:在计算 yn 1 时,只用到前一步的值,即用到 xn1 , xn , yn ,则给定初
值之后,就可逐步计算。例如 Euler 法、向后欧拉法、梯形公式、龙格-库塔法;
(2) 多步法: 这 类 方 法 在 计算 yn 1 时 , 除 了 用 到 xn1 , xn , yn 外 , 还 要 用到

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

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

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

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

常微分方程初值问题的解法随着科技的不断进步和人类社会的不断发展,工程技术和科学技术的发展已经成为推动社会进步的重要力量,而数学则是工程技术和科学技术的基础和支撑,常微分方程作为数学分支的重要组成部分,对于理论研究和实际应用都有着深远的影响。

在实际工程中,解决常微分方程初值问题是数学理论在抽象式运算与工程实践之间的重要桥梁。

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

一、常微分方程初值问题的概念常微分方程是指未知函数一阶或高阶微商与自变量和常数的关系式,常微分方程初值问题是指在初值u(x0)=u0已知的情况下,确定函数u(x)的解的问题。

在初值问题中,自变量是独立变量,取值范围可以是任意实数,因变量是函数值,是依赖自变量而实现的数值,常数是影响函数变化的一些固定参数。

常微分方程模型经常出现在工程技术模型中,一些实际应用场景可以通过建立数学模型来进行求解。

二、常微分方程初值问题的解法常微分方程初值问题的解法大致可以分为两种,一种是解析解法,即直接利用微积分学知识对方程进行求解;另一种是数值解法,即采用数值方法对方程进行数值计算求解。

下面将分别介绍这两种方法的解法原理。

1. 解析解法解析解法是指通过数学工具对函数解析表达式进行研究,以求出常微分方程的解。

该方法的先决条件是对方程具有严格的内部结构和特殊的形式,只有在特殊情况下才能找到一些特解。

这种方法的难点在于方程方程形式和初始条件可能存在巨大的数学难度,解析解的求解需要求解一些解析式的积分、微分和级数。

往往只有在一些特殊情况下,解析解法才能一般性的解决问题,因此该方法的适用场景相对较少。

2. 数值解法数值解法是指通过数值计算的方法,通过有限个代数运算和计算机模拟的方法得出方程的解。

数值解法的优点是具有广泛的适用性,可以有效地求解各种类型的常微分方程初值问题,使得无法通过解析方法求解的问题也可以得到解答。

数值解法可分为无条件稳定和条件稳定两种情况,前者是指方法不会出现不稳定结果的情况,而后者则保证了方法收敛性的同时,存在一定的条件限制。

解常微分方程初值问题

解常微分方程初值问题

解常微分方程初值问题常微分方程初值问题是求解一个确定初始值条件下的常微分方程的解。

解常微分方程的方法有很多种,下面将介绍几种常用的方法和相关参考内容。

1. 变量分离法:将微分方程中的变量分离,然后进行分离变量的积分。

这是解常微分方程最常用的方法之一。

相关参考内容:《普通微分方程教程》(陈英席著)、《普通微分方程》(王永乐著)2. 齐次方程法:对于齐次方程 dy/dx = f(x,y)(其中 f(x,y) 是关于 x 和 y 的函数),通过引入新的变量 u = y/x,将其转化为一个关于 u 的单变量方程。

然后再解这个方程。

相关参考内容:《普通微分方程与应用》(杨万明、杨卓玲著)、《数学物理方程》(尤伯杯著)3. 线性方程法:对于形如 dy/dx + P(x)y = Q(x) 的线性方程,可以使用积分因子法将其转化为一个可解的方程。

相关参考内容:《普通微分方程讲义》(陈方正、李学勤著)、《分析数学基础讲义》(包维楷等著)4. 变换法:通过进行适当的变量变换,将原方程转化为易于求解的形式。

相关参考内容:《常微分方程讲义》(李鼎立著)、《常微分方程教程》(张世忠、赵寿明著)5. 解特殊的微分方程:一些特殊的微分方程有相应的解法,例如 Bernoulli 方程、Riccati 方程等。

相关参考内容:《常微分方程教程》(孙士焜著)、《微分方程教程》(刘川著)此外,常微分方程的初值问题可以利用数值方法进行求解,例如 Euler 方法、Runge-Kutta 方法等。

相关参考内容:《数值分析》(李庆扬、褚国新著)、《常微分方程数值解法》(赵义、余长星著)解常微分方程初值问题需要动用到微积分、线性代数等数学知识,因此具备扎实的数学基础是解题的前提。

上述参考内容对于理解和掌握常微分方程的解法都具有很好的帮助,读者可以根据自己的实际情况选择适合的参考教材进行学习。

此外,还可以通过参考数学相关的学术论文和网络资源来进一步深入了解常微分方程的解法。

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

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

浙江大学城市学院实验报告课程名称数值计算方法实验项目名称常微分方程初值问题的数值解法 实验成绩指导老师签名日期2015/12/16 一.实验目的和要求1. 用Matlab 软件掌握求微分方程数值解的欧拉方法和龙格-库塔方法; 2. 通过实例学习用微分方程模型解决简化的实际问题;二.实验内容和原理编程题2-1要求写出Matlab 源程序m 文件,并有适当的注释语句;分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上; 2-1 编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 2-2 分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度; 2-3 分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法; 3龙格-库塔方法;2-4 分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较; MATLAB 相关函数求微分方程的解析解及其数值的代入dsolve‘egn1’,‘egn2’,‘x ’ subsexpr,{x,y,…},{x1,y1,…}其中‘egn i ’表示第i 个方程,‘x ’表示微分方程中的自变量,默认时自变量为t ; subs 命令中的expr 、x 、y 为符合型表达式,x 、y 分别用数值x1、x2代入; >>symsxyz>>subs'x+y+z',{x,y,z},{1,2,3} ans= 6>>symsx>>subs'x^2',x,2 ans= 4>>s=dsolve‘12Dy y ∧=+’,‘(0)1y =’,‘x ’ ans= >>symsx >>subss,x,2 ans=右端函数(,)f x y 的自动生成f=inline ‘expr ’,’var1’,‘var2’,……其中’expr ’表示函数的表达式,’var1’,‘var2’表示函数表达式中的变量,运行该函数,生成一个新的函数表达式为fvar1,var2,……; >>f=inline'x+3y','x','y' f=Inlinefunction: fx,y=x+3y >>f2,3 ans= 114,5阶龙格-库塔方法求解微分方程数值解t,x=ode45f,ts,x0,options其中f 是由待解方程写成的m 文件名;x0为函数的初值;t,x 分别为输出的自变量和函数值列向量,t的步长是程序根据误差限自动选定的;若ts=t0,t1,t2,…,tf,则输出在自变量指定值,等步长时用ts=t0:k:tf,输出在等分点;options 用于设定误差限可以缺省,缺省时设定为相对误差310-,绝对误差610-,程序为:options=odeset ‘reltol ’,rt,’abstol ’,at,这里rt,at 分别为设定的相对误差和绝对误差;常用选项见下表;选项名 功能 可选值 省缺值 AbsTol 设定绝对误差正数 RelTol 设定相对误差 正数InitialStep 设定初始步长 正数 自动 MaxStep设定步长上界正数MaxOrder 设定ode15s 的最高阶数 1,2,3,4,5 5 Stats 显示计算成本统计 on,off off BDF 设定ode15s 是否用反向差分on,offoff例:在命令窗口执行>>odefun =inline ‘2*y t y -’,‘t ’,‘y ’;>>[],45(,[0,4],1)t y ode odefun =;ans=>>t y ‘o-’,%解函数图形表示>>45(,[0,4],1)ode odefun %不用输出变量,则直接输出图形 >>[],45(,0:4,1)t y ode odefun =;[],t yans=三.操作方法与实验步骤包括实验数据记录和处理2-1编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1Euler 法y=eulera,b,n,y0,f,f1,b1 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; yi+1=yi+hfxi,yi; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; for i=1:100y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解'改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 %求微分方程的数值解 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; T1=fxi,yi; T2=fxi+1,yi+hT1; yi+1=yi+h/2T1+T2; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; fori=1:100 y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解' 2-2分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度;1向前欧拉法>>euler0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8(2)改进欧拉法>>eulerpro0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8改进欧拉法的精度比向前欧拉法更高; 2-3分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法;2-4分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较;1>>euler0,50,50,,inline'','t','p','Dp=','p0= 1' ans= 精确解为 s=1-99/100expx/500 ans=Columns1through82>>dsolve'Dp=','p0=','t' ans=1-99/100expt/500 >>1-99/100exp ans=与欧拉法求得的精确值差0,0001四.实验结果与分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 x
y(0) 1.
步长都取为 h 0.1 分别用以下两种系数:
1. a 1 ,改进的Euler 法: 2
c1
c2
1 2
,
2 21 1.
积分公式:
yn1 yn 0.1 yn2 yn 0.1 yn2 2 2
2. a 1 , 3
c1
2 3
,
c2
1, 3
2
21
3. 2
积分公式:
校正步
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 )
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 ), 可 得 待 定 系 数 满 足 的 方程 如 下 :
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阶精度.
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
因此若要在局部截断误差中消去h3项,必须增加包含了以上各项的多
个方程,同时我们注意到r=2时,只有 c1,2 , 1,等2四1 个待定系数,少 于方程的数目,所以这样的系数不存在。故: r=2时Runge-Kutta方 法只能是二阶的。要得到三阶的方法,则必须有r=3。
Yn1 Yn h(c1K1 c2K2 c3K3 )
8
4 后退的欧拉方法
(5)
9
(6)
(6)式称为后退的欧拉方法,它是隐式的, 欧拉公式(2)是显式的,
10
(7)
11
12
后退的欧拉方法的局部截断误差:
13
5 梯形方法
(8)
(8)式称为梯形方法.
14
梯形方法的局部截断误差:
15
6. 改进欧拉法及局部截断误差
(1)改进的欧拉公式:
预测步
~yn1 yn hf xn, yn
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
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
步长都取为 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
同样可以证明,改进Euler法也具有2阶精度。 (1)式为一种二阶Runge-Kutta法
19
➢Runge-Kutta方法的推导
20
Runge-Kutta方法的一般形式:
r
yn1 yn h ci Ki Nhomakorabeai 1
K1 f (xn , yn )
,
i 1
Ki F (xn i h, yn h ij K j )
Yn1
K1
K2
h Yn 6 (K1 F (tn ,Yn )
h F (tn 2 , Yn
4K2 K3) h
2 K1)
K3 F (tn h, Yn hK1 2hK2 )
29
➢四阶显式Runge-Kutta方法
类似前面的推导,可以导出各种四阶的Runge Kutta公式,它们 的局部截断误差满足dn1 O(h5 )。下面列出最常见的一个:
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 .
相关文档
最新文档