7常微分方程数值解法

合集下载

常微分方程的解法总结总结

常微分方程的解法总结总结

常微分方程的解法总结前言常微分方程(Ordinary Differential Equation,ODE)是研究一阶或高阶导数与未知函数之间关系的数学方程。

在物理学、工程学和计算机科学等领域,常微分方程扮演着重要的角色。

解决常微分方程是这些领域中许多问题的关键。

本文将总结常用的常微分方程解法方法,帮助读者加深对常微分方程的理解并提供解决问题的思路。

一、可分离变量法可分离变量法是一种常见且简单的求解常微分方程的方法。

它适用于形如dy/dx = f(x)g(y)的一阶常微分方程。

解题思路:1.将方程写成dy/g(y) = f(x)dx的形式,将变量进行分离。

2.两边同时积分得到∫(1/g(y))dy = ∫f(x)dx。

3.求出积分后的表达式,并整理得到解 y 的表达式。

使用这种方法解决常微分方程的步骤相对简单,但要注意确认分母不为零以及选取合适的积分常数。

二、特殊方程类型的求解除了可分离变量法,常微分方程还存在一些特殊的方程类型,它们可以通过特定的方法进行解决。

1. 齐次方程齐次方程是指形如dy/dx = F(y/x)的方程。

其中,F(t) 是一个只有一个变量的函数。

解题思路:1.令 v = y/x,即 y = vx。

将方程转化为dy/dx = F(v)。

2.对于dv/dx = F(v)/x这个方程,可以使用分离变量法进行求解。

3.求出 v(x) 后,将其代入 y = vx 得到完整的解。

2. 齐次线性方程齐次线性方程是指形如dy/dx + P(x)y = 0的方程。

解题思路:1.使用积分因子法求解,将方程乘以一个积分因子,使得左边变成一个可积的形式。

2.求积分因子的方法是根据公式μ = e^(∫P(x)dx),其中 P(x) 是已知的函数。

3.通过乘积的方式求解完整的方程。

3. 一阶线性常微分方程一阶线性常微分方程是指形如dy/dx + P(x)y = Q(x)的方程。

解题思路:1.使用积分因子法,将方程乘以一个积分因子,使得左边变成一个可积的形式。

常微分方程的数值解法及其应用研究

常微分方程的数值解法及其应用研究

常微分方程的数值解法及其应用研究引言:常微分方程是数学中的重要分支,广泛应用于自然科学、工程技术和社会经济等领域。

常微分方程的解析解往往难以获得,因此数值解法的研究成为解决实际问题的有效手段。

本文将介绍常微分方程的数值解法以及其在各个领域的应用。

一、常微分方程的数值解法1. 欧拉方法欧拉方法是最基本的数值解法之一,通过将微分方程中的函数进行逐步的线性近似,得到方程的递推关系,并根据该关系逼近解析解。

欧拉方法具有简单、易于实现的优点,但在稳定性和精度方面存在一定的局限性。

2. 改进的欧拉方法改进的欧拉方法通过使用中点梯形公式,对欧拉方法的误差进行修正,提高了数值解的准确性。

改进的欧拉方法在简单性和准确性方面取得了一定的平衡。

3. 4阶龙格-库塔法4阶龙格-库塔法是一类常用的数值解法,通过计算多个近似解,并按照一定的权重进行加权平均,得到更高精度的数值解。

4阶龙格-库塔法具有高精度和较好的稳定性,被广泛应用于各个领域。

4. 多步法多步法是一类基于历史步长的数值解法,利用之前计算的步长来估计下一个步长的近似值。

常见的多步法包括亚当斯方法和预报校正方法等。

多步法在一定程度上提高了数值解的稳定性和准确性。

5. 常微分方程的辛方法辛方法是一类特殊的数值解法,能够保持微分方程的守恒性质。

辛方法在长时间积分和保持能量守恒方面具有优势,被广泛应用于天体力学和分子动力学等领域。

二、常微分方程数值解法的应用1. 物理科学中的应用常微分方程的数值解法在物理学中有广泛的应用,如天体力学中的行星轨道计算、量子力学中的薛定谔方程求解等。

数值解法处理了复杂的物理现象,为物理学研究提供了可行的途径。

2. 工程技术中的应用常微分方程的数值解法在工程技术中被广泛应用,如电路分析、结构力学、流体力学等。

通过数值解法,可以模拟和分析复杂的工程问题,提供设计和优化方案。

3. 经济学中的应用经济学中的许多问题可以转化为常微分方程的形式,如经济增长模型、市场供需关系等。

常微分方程中的数值方法

常微分方程中的数值方法

常微分方程中的数值方法常微分方程是数学中的一个重要分支。

它主要研究的对象是随时间变化的函数。

在实际应用中,我们需要求解这些函数的解析解,但通常情况下,解析解并不容易得到,甚至是不可能得到。

因此,我们需要使用数值方法来求解这些函数的数值近似解。

在本文中,我们将介绍常微分方程中的数值方法。

一、欧拉法欧拉法是常微分方程数值解法中最基本的一种方法。

它是根据欧拉公式推导而来的。

具体地,我们可以将一阶常微分方程dy/dt=f(t,y)写成如下形式:y(t+h)=y(t)+hf(t,y(t))其中,h是步长,f(t,y)是t时刻y的导数。

欧拉法就是通过上面的公式进行逐步逼近,然后得到最终的数值解。

欧拉法的计算过程非常简单,但所得到的解可能会出现误差。

这是因为欧拉法忽略了f(t+h,y(t+h))和f(t,y(t))之间的变化。

因此,我们需要使用更为精确的数值方法来解决这个问题。

二、改进欧拉法为了解决欧拉法中的误差问题,我们可以使用改进欧拉法。

改进欧拉法又称作四阶龙格-库塔法。

它的基本思想是对欧拉法公式进行改进,以提高计算精度。

具体地,根据龙格-库塔公式,可将改进欧拉法表示为:y(t+h)=y(t)+1/6(k1+2k2+2k3+k4)其中,k1=h*f(t,y)k2=h*f(t+h/2,y+k1/2)k3=h*f(t+h/2,y+k2/2)k4=h*f(t+h,y+k3)改进欧拉法的计算过程比欧拉法要复杂些,但所得到的数值解比欧拉法更精确。

这种方法适用于一些特殊的问题,但在求解一些更为复杂的问题时,还需要使用其他的数值方法。

三、龙格-库塔法龙格-库塔法是求解常微分方程中数值解的常用方法之一。

它最常用的是四阶龙格-库塔法。

这种方法的基本思想是使用四个不同的斜率来计算数值解。

具体地,我们可以将四阶龙格-库塔法表示为:y(t+h)=y(t)+1/6(k1+2k2+2k3+k4)其中,k1=h*f(t,y)k2=h*f(t+h/2,y+k1/2)k3=h*f(t+h/2,y+k2/2)k4=h*f(t+h,y+k3)与改进欧拉法相比,龙格-库塔法的计算复杂度更高,但所得到的数值解更为精确。

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

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

代入(6―3)式得
h yi 1 yi [ f ( xi , yi ) f ( xi 1 , yi 1 )] 2 i 0,1, 2, , n 1
(6―5)
这样得到的点列仍为一折线,只是用平均斜率 来代替原来一点处的斜率。式(6―5)称为改进的欧拉 公式。
不难发现,欧拉公式(6―3)是关于yi+1 的显式,只
h y xi 1 yi 1 f xi 1 , y xi 1 f xi 1 , yi 1 2 (6―15) h 3 '' f 12
因此
hL h3 y ( xi 1 ) yi 1 y ( xi 1 ) yi 1 f ( ) 2 12 h3 (1 q) y ( xi 1 ) yi 1 f ( ) 12 y ( xi 1 ) yi 1 O ( h 3 )
c 并取 yi 1 yi(1)
(6―7)
虽然式(6―7)仅迭代一次,但因进行了预先估计,
故精度却有较大的提高。 在实际计算时,还常常将式(6―7)写成下列形式:
k1 f ( xi , yi ) k f ( x h, y hk ) i i 1 2 h yi 1 yi 2 (k1 k2 ) i 0,1, 2,
在进行误差分析时,我们假设yi=y(xi),考虑用
yi+1 代替y(x
i+1)而产生截断误差,确定欧拉公式和改
进的欧拉公式的精确度。 设初值问题(6―1)的准确解为y=y(x),则利用泰 勒公式
y ( xi 1 ) y ( xi h ) h2 y ( xi ) hy ( xi ) y ( xi ) 2! h3 y ( xi ) 3!

常微分方程的数值解法

常微分方程的数值解法
第九章 常微分方程的数值解法
主要内容
§1、引言 §2、初值问题的数值解法--单步法 §3、龙格-库塔方法 §4、收敛性与稳定性 §5、初值问题的数值解法―多步法 §6、方程组和刚性方程 §7、习题和总结
§1、 引 言 主要内容 ➢研究的问题 ➢数值解法的意义
1.什么是微分方程 ? 现实世界中大多数事物
使得对任意的x [a,b]及y1, y2都成立
则称 f (x,y) 对y 满足李普希兹条件,L 称为 Lipschitz常数.
就可保证方程解的存在唯一性
若 f (x,y) 在区域 G连续,关于y
满足李普希兹 条件
一阶常微分方程的初值问题的解存在且唯一. 我们以下的讨论,都在满足上述条件下进行.
一阶常微分方程组常表述为:
y(x0
)
y0
(1.2)
种 数 值 解

其中f (x,y)是已知函数,(1.2)是定解条件也称为 初值条件。
常微分方程的理论指出:
当 f (x,y) 定义在区域 G=(a≤x≤b,|y|<∞)
若存在正的常数 L 使:
(Lipschitz)条件
| f (x, y1) f (x, y2) | L | y1 y2 | (1.3)
节点 xi a ihi,一般取hi h( (b a) / n)即等距
要计算出解函数 y(x) 在一系列节点
a x0 x1 xn b
处的近似值 yi y(xi )
y f (x, y)
y
(
x0
)
y0
a xb
(1.1) (1.2)
对微分方程(1.1)两端从 xn到xn1 进行积分
内部联系非常复杂
其状态随着 时间、地点、条件 的不同而不同

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

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

浙江大学城市学院实验报告课程名称数值计算方法实验项目名称常微分方程初值问题的数值解法 实验成绩指导老师签名日期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. 欧拉法:欧拉法是一种基础的数值解法,通过将微分方程离散化,近似得到方程的数值解。

欧拉法的基本思想是根据微分方程的导数信息进行近似计算,通过逐步迭代来逼近真实解。

但是欧拉法存在截断误差较大、收敛性较慢等问题。

2. 改进的欧拉法(改进欧拉法推导过程略):为了解决欧拉法的问题,改进的欧拉法引入了更多的导数信息,改善了截断误差,并提高了算法的收敛速度。

改进欧拉法是一种相对简单而可靠的数值解法。

3. 四阶龙格-库塔法:四阶龙格-库塔法是常微分方程数值解法中最常用和最经典的一种方法。

通过多次迭代,四阶龙格-库塔法可以获得非常精确的数值解,具有较高的精度和稳定性。

二、常微分方程数值解法的实际应用研究:1. 建筑物的结构动力学分析:建筑物的结构动力学分析需要求解一些动力学常微分方程,例如考虑结构的振动和应力响应。

利用数值解法可以更好地模拟建筑物的振动情况,并对其结构进行安全性评估。

2. 生态系统模型分析:生态系统模型通常包含一系列描述物种数量和相互作用的微分方程。

数值解法可以提供对生态系统不同时间点上物种数量和相互作用的变化情况的模拟和预测。

这对于环境保护、物种保护以及生态系统可持续发展方面具有重要意义。

3. 电路模拟与分析:电路模拟与分析通常涉及电路中的电容、电感和电阻等元件,这些元件可以通过常微分方程进行建模。

数值解法可以提供电路中电压、电流等关键参数的模拟和分析,对电路设计和故障诊断具有重要帮助。

4. 化学反应动力学研究:化学反应动力学研究需要求解涉及反应速率、物质浓度等的微分方程。

常微分方程数值解法


欧拉方法
总结词
欧拉方法是常微分方程数值解法中最基础的方法之一,其基本思想是通过离散化时间点上的函数值来 逼近微分方程的解。
详细描述
欧拉方法基于微分方程的局部线性化,通过在时间点上逐步逼近微分方程的解,得到一系列离散点上 的近似值。该方法简单易行,但精度较低,适用于求解初值问题。
龙格-库塔方法
总结词
影响
数值解法的稳定性对计算结果的精度和可靠 性有重要影响。
判断方法
通过分析数值解法的迭代公式或离散化方法, 判断其是否具有稳定性和收敛性。
数值解法的收敛性
定义
数值解法的收敛性是指随着迭代次数的增加, 数值解逐渐接近于真实解的性质。
影响
数值解法的收敛性决定了计算结果的精度和 计算效率。
分类
根据收敛速度的快慢,可以分为线性收敛和 超线性收敛等。
判断方法
通过分析数值解法的迭代公式或离散化方法, 判断其是否具有收敛性。
误差分析
定义
误差分析是指对数值解法计算过程中 产生的误差进行定量分析和估计的过 程。
分类
误差可以分为舍入误差、截断误差和 初始误差等。
影响
误差分析对于提高计算精度和改进数 值解法具有重要意义。
分析方法
通过建立误差传递公式或误差估计公 式,对误差进行定量分析和估计。
生物学
生态学、生物种群动态和流行病传播 等问题可以通过常微分方程进行建模
和求解。
化学工程
化学反应动力学、化学工程流程模拟 等领域的问题可以通过常微分方程进 行描述和求解。
经济学
经济系统动态、金融市场模拟和预测 等问题可以通过常微分方程进行建模 和求解。
02 常微分方程的基本概念
常微分方程的定义

常微分方程的数值解法

常微分方程的数值解法常微分方程是研究变量的变化率与其当前状态之间的关系的数学分支。

它在物理、工程、经济等领域有着广泛的应用。

解常微分方程的精确解往往十分困难甚至不可得,因此数值解法在实际问题中起到了重要的作用。

本文将介绍常见的常微分方程的数值解法,并比较其优缺点。

1. 欧拉方法欧拉方法是最简单的数值解法之一。

它基于近似替代的思想,将微分方程中的导数用差商近似表示。

具体步骤如下:(1)确定初始条件,即问题的初值。

(2)选择相应的步长h。

(3)根据微分方程的定义使用近似来计算下一个点的值。

欧拉方法的计算简单,但是由于误差累积,精度较低。

2. 改进欧拉方法为了提高欧拉方法的精度,改进欧拉方法应运而生。

改进欧拉方法通过使用两个点的斜率的平均值来计算下一个点的值。

具体步骤如下:(1)确定初始条件,即问题的初值。

(2)选择相应的步长h。

(3)根据微分方程的定义使用近似来计算下一个点的值。

改进欧拉方法相较于欧拉方法而言,精度更高。

3. 龙格-库塔法龙格-库塔法(Runge-Kutta)是常微分方程数值解法中最常用的方法之一。

它通过迭代逼近精确解,并在每一步中计算出多个斜率的加权平均值。

具体步骤如下:(1)确定初始条件,即问题的初值。

(2)选择相应的步长h。

(3)计算各阶导数的导数值。

(4)根据权重系数计算下一个点的值。

与欧拉方法和改进欧拉方法相比,龙格-库塔法的精度更高,但计算量也更大。

4. 亚当斯法亚当斯法(Adams)是一种多步法,它利用之前的解来近似下一个点的值。

具体步骤如下:(1)确定初始条件,即问题的初值。

(2)选择相应的步长h。

(3)通过隐式或显式的方式计算下一个点的值。

亚当斯法可以提高精度,并且比龙格-库塔法更加高效。

5. 多步法和多级法除了亚当斯法,还有其他的多步法和多级法可以用于解常微分方程。

多步法通过利用多个点的值来逼近解,从而提高精度。

而多级法则将步长进行分割,分别计算每个子问题的解,再进行组合得到整体解。

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

第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。

在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。

在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、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 ε+=。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16:30:06
Numerical Analysis
17
h3 y ( xn 1 ) y ( xn 1 ) 2hy( xn ) y( ) 3 h3 y ( xn 1 ) y ( xn 1 ) 2hy( xn ) y( ) 3 设 yn y ( xn ) , yn 1 y ( xn 1 ) 前两步准确。则上式成为
x1 x2 xn xn1
上的近似值 y1,y2,,yn,yn+1,. 相邻两个节点的间距
hn=xn+1-xn称为步长. 今后如不特别说明,总是假定
hi=h(i=1,2,)为定数, 这时节点为xn=x0+nh(i=0,1,2,) (等距节点).
16:30:06
Numerical Analysis
yn-k+1,称为k步法. 其次,要研究公式的局部截断误差
和阶,数值解yn与精确解y(xn)的误差估计及收敛性, 还有递推公式的计算稳定性等问题.
16:30:06
Numerical Analysis
5
欧拉法
一阶常微分方程
y f ( x, y ) y ( x0 ) y0 的解 y y ( x ) 是通过点 ( x0 , y0 ) 的一条曲线 y y ( x ) ,称之为微分 方程的积分曲线。积分曲线上每一点 ( x, y ) 的切线斜率 y( x) 等于
2
欧拉法数学推导: 数值积分
将方程 y( x) f ( x, y ) 两端从 xn 到 xn 1 积分,有

xn1
xn
y( x)dx
xn1
xn
f ( x, y ( x))dx
y ( xn 1 ) y ( xn )
xn1
xn
f ( x, y ( x))dx
算出积分项,可得 y ( xn 1 ) 。利用左矩形公式
y y1 f ( x1 , y1 )( x x1 )
当 x x2 时,得 y2 y1 f ( x1 , y1 )( x2 x1 ) ,取 y ( x2 ) y2 。 一般地,过 ( xn , yn ) 做以 y( xn ) f ( xn , yn ) 为切线斜率的方程
16:30:06
Numerical Analysis
9
2 欧拉法数学推导 :数值微分(用差商代替导数 ) 设 x0 , x1 , x2 , , xn 等距,步长 h xn1 xn ,
y( x ) y( x h) y( x ) , h
n 0,1,
y x h y x h y x y x h f x , y
依次计算下去,部分计算结果见下表.
xn 欧拉公式数值解yn 准确解y(xn) 0.2 0.4 0.6 0.8 1.0 1.191818 1.358213 1.508966 1.649783 1.784770 1.183216 1.341641 1.483240 1.612452 1.732051 误差 0.008602 0.016572 0.025726 0.037331 0.052719
与准确解 y 1 2 x 相比,可看出欧拉公式的计算结 果度很差.16:30:06
Numerical Analysis
13
局部截断误差和阶: 数值公式的精度 定义 局部截断误差:假设第n步是准确的,即 y(xn )=yn,将y(xn+1 ) - yn+1定义为数值方法的局部截断 误差。
由于实际上yn不是准确值,因此它的误差会传播下去。 实际计算时,每一步都可能产生舍入误差。
16:30:06
Numerical Analysis
18
梯形法
对微分方程y′=f(x,y) 两边求xn到xn+1 的定积分,有
y( xn1 ) y( xn )
xn1 xn
f ( x, y( x))dx
利用梯形公式计算积分,有
点,用 y2 作为曲线 y ( x ) 上的点 ( x2 , y ( x2 )) 的纵坐标 y ( x2 ) 的近似 值。这样下去便可作出一条折线 P0 P 。设已作出折线的顶点 1P 2 为 Pn ,再从 Pn 做切线 y( xn ) ,推进到 Pn 1 ( xn 1 , yn 1 ) 。
16:30:06
Numerical Analysis
2
简单的数值方法与基本概念
科学技术中常常需要求解常微分方程的定解问 题. 这类问题最简单的形式,是本章将着重考察的一 阶方程的初值问题
y f ( x, y ), y ( x0 ) y0 .
我们知道,只有f(x, y)适当光滑—譬如关于y满足 利普希茨(Lipschitz)条件
数值分析
第七章 常微分方程初值问题数值解法
本章内容
欧拉法

线性多步法
亚当斯法 亚当斯预报-校正公式 误差修正法

欧拉公式 两步欧拉公式 梯形法 改进欧拉法
收敛性与稳定性 微分方程组和高阶微分方程
龙格-库塔法

基本思路 二阶、三阶龙格-库塔法 经典龙格-库塔法 隐式龙格-库塔法
f ( x, y ) f ( x, y ) L y y .
理论上就可以保证初值问题的解y=f(x)存在并且唯一.
16:30:06
Numerical Analysis
3
虽然求解常微分方程有各种各样的解析方法,但
解析方法只能用来求解一些特殊类型的方程,实际问 题中归结出来的微分方程主要靠数值解法. 所谓数值解法, 就是寻求解y(x)在一系列离散节点
16:30:06
Numerical Analysis
6
过 ( x0 , y0 ) 做以 y( x0 ) f ( x0 , y0 ) 为切线斜率的方程
y y0 f ( x0 , y0 )( x x0 )
当 x x1 时,得 y1 y0 f ( x0 , y0 )( x1 x0 ) ,取 y ( x1 ) y1 。 过 ( x1 , y1 ) 做以 y( x1 ) f ( x1 , y1 ) 为切线斜率的方程
定义 若局部截断误差为O(hp+1), p为正整数,则称数 值公式是p阶公式。
16:30:06
Numerical Analysis
14
欧拉公式的局部截断误差和阶
yn1 yn h f ( xn , yn ) y( xn ) h y( xn )
1 y ( ) h 2 2
二阶泰勒公式
15
隐式(后退)欧拉公式
隐式(后退)欧拉公式:取 y ( xn 1 ) 的向后差商
1 y( xn 1 ) [ y ( xn 1 ) y ( xn )] h
替代 y( xn 1 ) f ( xn 1 , yn 1 ) 中的导数项,并离散化,有隐式欧拉公 式 yn 1 yn hf ( xn 1 , yn 1 ) 隐式(后退)欧拉公式的局部截断误差:假设 yn y ( xn ) , 则
函数 f ( x, y ) 在这点的值。 1 几何推导 从初始点 P0 ( x0 , y0 ) 出发,做切线 y( x0 ) ,与
x x1 交于 P 1 ( x1 , y1 ) 点,用 y1 作为曲线 y ( x ) 上的点 ( x1 , y ( x1 )) 的纵 坐标 y ( x1 ) 的近似值。 再从 P 与 x x2 交于 P2 ( x2 , y2 ) 1 做切线 y ( x1 ) ,
h2 h3 y ( xn 1 ) y ( xn h) y ( xn ) hy( xn ) y( xn ) y( ) 2! 3! h2 h3 y ( xn 1 ) y ( xn h) y ( xn ) hy( xn ) y( xn ) y( ) 2! 3! 上二式相减,可得.
16:30:06
Numerical Analysis
7
16:30:06
Numerical Analysis
8
2 欧拉法的数学推导:泰勒展开法
将 y ( xn 1 ) 在 xn 处做泰勒展开 h2 y ( xn 1 ) y ( xn h) y ( xn ) hy( xn ) y( n ) 2! 当 h 充分小时,忽略高次项得 h2 y( n ) O(h 2 ) 2! 因此,有欧拉公式 yn 1 yn hf ( xn , yn )
h2 y ( xn 1 ) yn 1 y ''( xn ) 2
16:30:06
Numerical Analysis
16
两步欧拉公式
为了提高精度,改用中心差商
1 [ y ( xn 1 ) y ( xn 1 )] 替代 2h
y( xn ) f ( xn , yn ) 中的导数项,并离散化,有两步欧拉公式 yn 1 yn 1 2hf ( xn , yn ) 两步欧拉公式是两步法,要用前两步的值。 两步欧拉公式的局部截断误差

xn1
xn
f ( x, y ( x))dx hf ( x, y ( x))
代入,并离散化,有欧拉公式 yn 1 yn hf ( xn , yn )
16:30:06
Numerical Analysis
11
例7-1 用欧拉公式求解初值问题
2x (0 x 1), y y y y (0) 1.
4
初值问题的数值解法有个基本特点,他们都采 取“步进式”,即求解过程顺着节点排列的次序一步 一步地向前推进. 描述这类算法,只要给出用已知信
息yn,yn-1,yn-2,计算yn+1的递推公式.
首先,要对微分方程离散化,建立求解数值解的
相关文档
最新文档