数值分析第八章常微分方程数值解法解析

合集下载

第八章 基于MATLAB的科学计算—常微分方程数值解法

第八章 基于MATLAB的科学计算—常微分方程数值解法

科学计算—理论、方法及其基于MATLAB 的程序实现与分析微分方程(组)数值解法§1 常微分方程初值问题的数值解法微分方程(组)是科学研究和工程应用中最常用的数学模型之一。

如揭示质点运动规律的Newton 第二定律:()()()⎪⎩⎪⎨⎧'='==000022x t x x t x t F dt xd m (1) 和刻画回路电流或电压变化规律的基尔霍夫回路定律等,但是,只有一些简单的和特殊的常微分方程及常微分方程组,可以求得用公式给出的所谓“解析解”或“公式解”,如一阶线性微分方程的初值问题:()()00y y t f ay dtdy=+= (2) 的解为:()()()τττd f e y e t y tt a at ⎰-+=00 (3)但是,绝大多数在实际中遇到的常微分方程和常微分方程组得不到“解析解”,因此,基于如下的事实:1、绝大多数的常微分方程和常微分方程组得不到(有限形式的)解析解;2、实际应用中往往只需要知道常微分方程(组)的解在(人们所关心的)某些点处的函数值(可以是满足一定精度要求的近似值);如果只需要常微分方程(组)的解在某些点处的函数值,则没有必要非得通过求得公式解,然后再计算出函数值不可,事实上,我们可以采用下面将介绍的常微分方程(组)的初值问题的数值解法,就可以达到这一目的。

一般的一阶常微分方程(组)的初值问题是指如下的一阶常微分方程(组)的定解问题:()()000,y t y t t t y t F dtdyf=≤≤= (7)其中()()()()⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=t y t y t y t y n 21 (8)()()()()⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=y t f y t f y t f y t F n ,,,,21 (9)常微分方程(组)的初值问题通常是对一动态过程(动态系统、动力系统)演化规律的描述,求解常微分方程(组)的初值问题就是要了解和掌握动态过程演化规律。

数值分析常微分方程数值解

数值分析常微分方程数值解

许多实际问题的数学模型是微分方程或微分方程的定解问题。

如物体运动、电路振荡、化学反映及生物群体的变化等。

常微分方程可分为线性、非线性、高阶方程与方程组等类;线性方程包含于非线性类中,高阶方程可化为一阶方程组。

若方程组中的所有未知量视作一个向量,则方程组可写成向量形式的单个方程。

因此研究一阶微分方程的初值问题⎪⎩⎪⎨⎧=≤≤=0)(),(y a y bx a y x f dxdy, (9-1) 的数值解法具有典型性。

常微分方程的解能用初等函数、特殊函数或它们的级数与积分表达的很少。

用解析方法只能求出线性常系数等特殊类型的方程的解。

对非线性方程来说,解析方法一般是无能为力的,即使某些解具有解析表达式,这个表达式也可能非常复杂而不便计算。

因此研究微分方程的数值解法是非常必要的。

只有保证问题(9-1)的解存在唯一的前提下,研究其数值解法或者说寻求其数值解才有意义。

由常微分方程的理论知,如果(9-1)中的),(y x f 满足条件(1)),(y x f 在区域} ),({+∞<<∞-≤≤=y b x a y x D ,上连续; (2)),(y x f 在上关于满足Lipschitz 条件,即存在常数,使得y y L y x f y x f -≤-),(),(则初值问题(9-1)在区间],[b a 上存在惟一的连续解)(x y y =。

在下面的讨论中,我们总假定方程满足以上两个条件。

所谓数值解法,就是求问题(9-1)的解)(x y y =在若干点b x x x x a N =<<<<= 210处的近似值),,2,1(N n y n =的方法。

),,2,1(N n y n =称为问题(9-1)的数值解,n n x x h -=+1称为由到1+n x 的步长。

今后如无特别说明,我们总假定步长为常量。

建立数值解法,首先要将微分方程离散化,一般采用以下几种方法: (1) 用差商近似导数在问题(9-1)中,若用向前差商hx y x y n n )()(1-+代替)(n x y ',则得)1,,1,0( ))(,()()(1-=≈-+N n x y x f hx y x y n n n n n)(n x y 用其近似值代替,所得结果作为)(1+n x y 的近似值,记为1+n y ,则有 1(,) (0,1,,1)n n n n y y hf x y n N +=+=-这样,问题(9-1)的近似解可通过求解下述问题100(,) (0,1,,1)()n n n n y y hf x y n N y y x +=+=-⎧⎨=⎩(9-2)得到,按式(9-2)由初值经过步迭代,可逐次算出N y y y ,,21。

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

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

的解为
y ( x) e
x2

x 0
e dt
t2
但要计算它的值,还需要用数值积分的方法。如果要 对许多个 x 值计算解 y(x) 的近似值,那么工作量非常大。况 且实际计算不一定要求解析表达式,而是只需求在某些点 上满足精度的解的近似值或解的近似表达式就可以了。
由于高阶常微分方程可以转化为一阶常微分方程组,因 此,为了不失一般性,本章主要介绍一类一阶常微分方程初 值问题
的解来近似微分方程初值问题(8.2)的解,其 中 h (b- a) / 2 ,式(8.3)也称为欧拉公式。
欧拉法的几何意义是用一条自点 ( x0 , y0 ) 出发的 折线去逼近积分曲线 y f (x) ,如图8.1所示。 因此,这种方法又称为折线法。显然,欧拉法 简单地取折线的端点作为数值解,精度非常差。
float euler(float x0,float xn,float y0,int N) { float x,y,h; int i; x=x0; y=y0; h=(xn-x0)/(float)N; /* 计算步长 */ for(i=1;i<=N;i++) /* 欧拉公式 */ { y=y+h*func(x,y); x=x0+i*h; } return(y); }
8.4 龙格—库塔(Runge-Kutta)法 8.4.1 龙格—库塔法的基本思想
在欧拉法 yi 1 yi h f ( xi , yi ) (i 0,1,) 中,用解函数 y f (x) 在 点 x i 处的斜率 f ( xi , y i ) 计算从 yi 到 y i 1 的增量,y i 1 的表达式 与 y( xi 1 ) 的Taylor展开式的前二项相等,使方法只有一阶精度。 改进的欧拉法用两个点 x i ,x i 1 处的斜率 f ( xi , y i )、f ( xi 1 , yi 1 ) 的平均值计算增量,使方法具有二阶精度,即 y i 1 的表达式 与 y( xi 1 ) 的Taylor展开式的前三项相等。 由此龙格和库塔提出了一种间接地运用Taylor公式的方法, y (x) 即利用 在若干个待定点上的函数值和导数值做出线性组 合式,选取适当系数使这个组合式进行Taylor展开后与 y( xi 1 ) 的Taylor展开式有较多的项达到一致,从而得出较高阶的数 值公式,这就是龙格—库塔法的基本思想。

数值分析常微分方程数值解法

数值分析常微分方程数值解法
7
第8页/共105页
➢ 数值积分方法(Euler公式)
设将方程 y=f (x, y)的两端从 xn 到xn+1 求积分, 得
y( xn1) y( xn )
xn1 f ( x, y( x))dx :
xn
xn1 F ( x)dx
xn
用不同的数值积分方法近似上式右端积分, 可以得到计算 y(xn+1)的不同的差分格 式.
h2 2
y''( )
Rn1
:
y( xn1)
yn1
h2 2
y''( )
h2 2
y''( xn ) O(h3 ).
局部截断误差主项
19
第20页/共105页
➢ 向后Euler法的局部截断误差
向后Euler法的计算公式
yn1 yn hf ( xn1, yn1 ), n 0, 1, 2,
定义其局部截断误差为
y 计算 的n递1 推公式,此类计算格式统称为差分格式.
3
第4页/共105页
数值求解一阶常微分方程初值问题
y' f ( x, y), a x b,
y(a)
y0
难点: 如何离散 y ?
➢ 常见离散方法
差商近似导数 数值积分方法 Taylor展开方法
4
第5页/共105页
➢ 差商近似导数(Euler公式)
(0 x 1)
y(0) 1.
解 计算公式为
yn1
yn
hfn
yn
h( yn
2xn ), yn
y0 1.0
n 0, 1, 2,
取步长h=0.1, 计算结果见下表
13

常微分方程的数值解与解析解

常微分方程的数值解与解析解

一、 常微分方程的解析解常微分方程的解析解也就是常微分方程的精确解,也称为常微分方程的符号解;一般可理解为求微分方程的通解或者特解的解析式或表达式;但只有少数的微分方程存在解析解。

在MA TLAB 中,由函数dsolve()求解常微分方程(组)的解析解,其具体格式如下: X=dsolve(‘方程1’,‘方程2’,…‘方程n ’,‘初始条件’,‘自变量’)函数dsolve 用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。

例1:求解常微分方程1dy dx x y =+的MA TLAB 程序为:dsolve('Dy=1/(x+y)','x'),注意,系统缺省的自变量为t ,因此这里要把自变量写明。

结果为:-lambertw(-C1*exp(-x-1))-x-1其中:Y=lambertw(X)表示函数关系Y*exp(Y)=X 。

例2:求解常微分方程2'''0yy y -=的MA TLAB 程序为:Y2=dsolve('y*D2y-Dy^2=0’,’x’) 结果为:Y2 =[ exp((x+C2)/C1)][ C2]我们看到有两个解,其中一个是常数。

例3:求常微分方程组253t tdx x y e dt dy x y e dt ⎧++=⎪⎪⎨⎪--=⎪⎩通解的MA TLAB 程序为:[X,Y]=dsolve('Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t)','t')例4:求常微分方程组020210cos ,224,0t t t dx dy x t x dt dt dx dy y e y dt dt =-=⎧+-==⎪⎪⎨⎪++==⎪⎩通解的MA TLAB 程序为:[X,Y]=dsolve('Dx+2*x-Dy=10*cos(t),Dx+Dy+2*y=4*exp(-2*t)','x(0)=2','y(0)=0')二、 常微分方程的数值解在生产和科研中所处理的微分方程往往很复杂且大多得不出一般解。

常微分方程数值解法

常微分方程数值解法

介绍常微分方程数值解法常微分方程(ordinary differential equations,ODE)可用于描述许多日常存在的物理系统。

处理ODE问题常常被称为数值求解法,这指的是找到概括ODE或者其他适用于数学模型的解决方案来模括这些ODE。

这种解决方案可能在一系列不同方案中发挥重要作用,以此来提供更好的解释和预测。

常微分方程与几何图形更为相关,它利用二维或者三维空间中曲线的绘制以及分析。

通过引入一些不同的方法,可以对不同的常微分方程中的量进行描述,使得可以通过数值方法的解析来进行研究。

数值解法可能是时间消耗较多的,但有助于验证几何图形中的某些过程,以此帮助揭示数学模型。

四种常见的常微分方程数值解法四种常见的常微分方程数值解法是:前向差分法、向后差分法、中点法和全分方法。

•前向差分法:前向差分法的基本概念是利用ODE的特定解来表达时间步的影响。

这是一种基本的数值法,可以在ODE中确定任意位置的点作为终点。

在这里,任何这样的点都可以表示为ODE右边的时间步。

•向后差分法:它是反过来基于前向差分法。

它要求对ODE中的时间步进行逆向推导,以获得某一特定点的解。

向后差分法要求推导反向解中点,以便可以从每一步中获取该点的解。

•中点法:这是一种非常基本的数值解法,可以用来求解ODE中的某一步的解,但不具有直观的方法解释。

主要的思想是在每一次时间步中通过求出ODE的中点来寻找解。

•全分方法:这是一种更复杂的数值解法,它要求将ODE中的每一步解细分并解决。

与前面提到的三种解法不同,它首先要求将ODE分解成若干离散区间,然后计算每一段区间中的点。

这种解法可以更准确地进行处理,但时间消耗较多,因此比较少被使用。

优化方案在需要解决常微分方程时,为了得到最佳的结果,有必要考虑一些优化措施。

•首先,应考虑将一个复杂的ODE拆分成一些更易解决的问题。

这样做的结果是,预见到解决此ODR的总耗时将会降低。

•其次,为了加快计算速度,可以考虑使用预解算法。

常微分方程数值解法

常微分方程数值解法

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

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

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

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

y(xn1) y(xn ) hy(xn ) y(xn ) hf (xn, y(xn ))
yn1 yn hf (xn , yn )

y0

y(x0
)
方程初值问题Euler公式
16/66 郑郑州州大大学学研研究究生生2021011-42-021021学5学年年课课程程 数数值值分分析析 NNumumereicriaclaAl nAanlaylsyisis
只要求解上述方程,就可求出体积V与高度x之间的
函数关系,从而可标出容器壁上容积的刻度,但问题
是函数D(x)无解析表达式,我们无法求出其解析解.
5/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.1 引言
包含自变量x、未知函数y及未知函数的导数或 微分的方程称为微分方程。在微分方程中, 自变量 的个数只有一个, 称为常微分方程。自变量的个数 为两个或两个以上的微分方程叫偏微分方程。微分 方程中出现的未知函数最高阶导数的阶数称为微分 方程的阶数。如果未知函数y及其各阶导数
§8.1 引言
问题提出 倒葫芦形状容器壁上的刻度问题.对于圆柱形状
容器壁上的容积刻度,可以利用圆柱体体积公式
V D 2 H
2
其中直径D为常数.由于体积V与相对于容器底部的任意高度 H的函数关系明确,因此在容器上可以方便地标出容器刻度。
对于几何形状不是规则的容器,比如倒葫芦形状容器壁上 如何标出刻度呢?
22/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
P1 P1 P0
Pi Pi+1 Pn Pi
Pi+1
y=y(x) Pn
x0 x1
xi xi+1 xn
同样, 过点P1(x1,y1),作积分曲线y=y(x)的切线
交直线x=x2于P2点,切线 P1P2 的斜率y(x1) f (x1, y1)
y 1 1 sin x
y |x0 1
y |x0 1
当x=0时,y=1,可得c=-1时特解
9/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.1 引言
在高等数学中,对于常微分方程的求解,给出 了一些典型方程求解析解的基本方法,如可分离变 量法、常系数齐次线性方程的解法、常系数非齐次 线性方程的解法等。但能求解的常微分方程仍然是 有限的,大多数的常微分方程是不可能给出解析解。

yn1 yn y0 y(x0 )
hf
(
xn
,
yn
)
差分方程初值问题 向前Euler方法
17/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
若用向后差商近似导数,即
y( xn1 ) f ( xn1, y( xn1 ))
f (xk , yk )是一阶导数近似值
14/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
推导Euler格式: ★ Taylor展开法 ★ 数值微分 ★ 数值积分法
对微分方程的离散,可 以有多种思路,但最基 本的想法是“以直代曲”
xn
)

h 2
f ( xn , y( xn )) f ( xn1, y( xn1 ))


yn1

yn

h 2
f (xn , yn ) f (xn1, yn1)
y0 y(x0 )
梯形欧拉公式
20/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
数值解法:递推法
12/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
13/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
记号:y(xk )精确值,yk近似值,f (x k , y(xk ))是一阶导数精确值,
的刻度,由微元思想分析可知 dV 1 D2dx
4
4/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.1 引言
其中x表示高度,直径D是高度x的函数,记为D(x), 因此得到如下微分方程初值问题
dV
1 D 2 ( x)
dx 4
V (0) 0
y( xn1 )
y( xn1 ) y( xn ) h
y( xn1) h
y(xn )

f ( xn1, y( xn1 ))
y( xn1 ) y( xn ) hf ( xn1, y( xn1 ))
yn1 yn hf (xn1, yn1)

y0

15/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
(1) Taylor展开法 设给定等距剖分
x0 x1 xn ,其中步长h xn1 xn,(n 0,1,...)
将yy((xxnn11))在y点(xxn )=xnh处y '(泰xn勒) 展12 h开2 y,''( ), (xn, xn1) 当步长h充分小时,略去h2项,得
21/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
Euler法的求解过程是:从初
始点P0(即点(x0,y0))出发, 作积分曲线y=y(x)在P0点上 切线 P0P1 (其斜率为
P1 P1 P0
Pi+1 Pn y=y(x)
PPii
Pn
Pi+1
| f (x, y1) f (x, y2) | L | y1 y2 |,x[a,b]
则上述IVP存在唯一解。
11/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
如何求解
解析解法:(常微分方程理论) 只能求解极少一类常微分方程;实际中给定的问题不一 定是解析表达式,而是函数表,无法用解析解法。
§8.2 欧拉(Euler)法
(2) 用差商近似导数
y( xn ) f (xn, y(xn ))
y(xn )

y(xn1) h
y(xn ) ,
y( xn1) h
y(xn )

f (xn,
y( xn ))
y(xn1) y(xn ) hy(xn ) y(xn ) hf (xn, y(xn ))

ydy xdx

y
|x0

1

1

2
y
y2 c |x0 1


1 2
x2

c
y 1 x2
当x=0时,y=1,可得c=1时特解
dy 例: dx

y2
cos
x


1 y2
dy

cos
xdx


1 y

c

sin
x

c
y(0) 1
直线方程为
y y1 f (x1, y1 )( x x1 )
当 x x2 时,得 y2 y1 f (x1, y1 )( x2 x1 )
23/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
P1 P1 P0
Pi Pi+1 Pn
10/66
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.1 引言
待求解的问题:一阶常微分方程的初值问题 /* Initial-Value
Problem */:
dy

dx

f (x, y)
x [a,b]
y(x0 ) y0
解的存在唯一性(“常微分方程”理论):只要 f (x, y) 在[a, b] R1 上连续,且关于 y 满足 Lipschitz 条件,即存在与 x, y 无关的常数 L 使
郑州大学研究生课程 (2014-2015学年第一学期)
数值分析 Numerical Analysis
第八章 常微分方程数值解法
第八章 常微分方程数值解法
§8.1 引言 §8.2 欧拉(Euler)法 §8.3 改进欧拉(Euler)方法 §8.4 单步法的稳定性
2/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
y(x0 )
向后Euler方法
18/66 郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
(3)用数值积分方法
xn1 y( x)dx xn1 f ( x, y( x))dx
xn
xn
y( xn1 ) y( xn )
y(x0) f (x0, y(x0))),与x=x1直线
x0 x1
xi xi+1 xn
相交于P1点(即点(x1,y1),得到y1作为y(x1)的近似值, 如上图所示。过点(x0,y0),以f(x0,y0)为斜率的切线
方程为
y y0 f (x0 , y0 )( x x0 )
相关文档
最新文档