数值分析复习---第八章 常微分方程数值解法
08常微分方程数值解法(工程数学)

k2为 x i + ph 点处的切线斜率值,对照改进的欧拉 法,将
x i + p 视为 x i +1,即可得 k 2 = f ( x i + ph, y i + phk1 )
21
对常微分方程初值问题的解 y=y(x),根据微分中值定 理,存在点 ξ ∈ ( x i , x i + 1 ) ,使得
0.96 0.8523 0.7003 0.5325 0.3750
0.9616 0.8549 0.7025 0.5327 0.3725
0.9615 0.8549 0.7022 0.5327 0.3730
0.9608 0.8521 0.6977 0.5273 0.3679
3.1、龙格-库塔法
考虑用函数f(x,y)在若干点上的函数值的线性组合 来构造近似公式,构造时要求近似公式在(xi,yi)处的 Taylor展开式与解y(x)在xi处的Taylor展开式的前面几项 重合,从而使近似公式达到所需要的阶数。既避免求偏 导,又提高了计算方法精度的阶数。或者说,在[xi,xi+1]这 一步内多预报几个点的斜率值,然后将其加权平均作为 平均斜率,则可构造出更高精度的计算格式,这就是龙 格—库塔(Runge-Kutta)法的基本思想。
20
1 二阶龙格—库塔法 在 [x , x ] 上取两点xi和 xi+ p = xi + ph,以该两点处
i i +1
的斜率值k1和k2的加权平均(或称为线性组合)来求取 平均斜率k*的近似值K,即
K = λ 1k 1 + λ 2k 2
式中:k1为xi点处的切线斜率值,k = f ( x , y ) = y ′ ( x )
数值分析常微分方程数值解法

第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
第八章常微分方程的数值解法

y( xn1 )
15
Euler法的收敛性
称初值问题(8.1.1)的数值解法是收敛的,如:
h0 ( n )
lim yn y ( x)
其中: x xn x0 nh , x [ x0 , b]
16
例考察以下初值问题Euler法的收敛性
dy y dx y (0)=y0 ( 0)
★
可得: h (k ) ( k 1) y y | f ( xn 1 , yn ) f ( x , y 1 n 1 n 1 ) | 2 hL ( k ) hL k 1 (1) ( k 1) (0) | yn 1 yn 1 | ( ) | yn 1 yn 1 | 2 2 hL k 1 ( k 1) 从而 : lim( ) 0 , 故有 lim yn 1 y n 1 。 k 2 k
★
由y0=y( x0 ), 假定yn=y( xn ), 往证:
y0 yn 1 y ( xn 1 ) xn 1; x0
14
证明
yn yn1 yn hf ( xn , yn ) yn h xn 1 1 yn (1 h ) y( xn )(1 h ) xn xn y0 y0 1 xn (1 h ) ( xn h) x0 xn x0 y0 xn 1 x0
8
局部截断误差
假设第n步在点xn的值计算没有误差,即yn y( xn ), 由单步法计算出yn1 , 则
Tn1 y( xn1 ) yn1 称为点xn1上的局部截断误差.
从初值y( x0 ) y0出发,由单步法显式或隐式 逐步计算,得xn 1的值yn 1 , 则
n1 y( xn1 ) yn1
常微分方程数值解法5262115页PPT文档

r 表示食饵独立生存时的增长率;
d 表示捕食者独立生存时的死亡率;
a 表示捕食者的存在对食饵增长的影响系数,反映捕
食者对食饵的捕获能力;
b 表示食饵的存在对捕食者增长的促进系数,反映食
饵对捕食者的喂养能力
150 100
令 y 1 y ,y 2 y ',y 3 y '', ,y n y ( n 1 )
可以将以上高阶微分方程化为如下一阶常微分方程组
y1 ' y2 y2 ' y3 yn ' an(x)y1
a1(x)yn f (x)
例:P120,1(a),Bessel方程
常微分方程的数值解
一般地,凡表示未知函数,未知函数的导 数与自变量之间的关系的方程叫做微分方 程.未知函数是一元函数的,叫常微分方 程;未知函数是多元函数的,叫做偏微分方 程.
如
y ' x y'x2y2 y''y'xy
Matlab实现 [t,x]=ode45(f,ts,x0,options,p1,p2,......)
50 0 0
30 20 10
0 0
10
20
50
30
20
10
0
30
0
10
8
6
4
2
100
0
50
100
150
50
100
高阶常微分方程的解法
高阶常微分方程
y ( n ) a 1 ( x ) y ( n 1 ) a ( n 1 ) ( x ) y ' a n ( x ) y f( x )
常微分方程的数值解法

常微分方程的数值解法1. 引言常微分方程是自变量只有一个的微分方程,广泛应用于自然科学、工程技术和社会科学等领域。
由于常微分方程的解析解不易得到或难以求得,数值解法成为解决常微分方程问题的重要手段之一。
本文将介绍几种常用的常微分方程的数值解法。
2. 欧拉方法欧拉方法是最简单的一种数值解法,其具体步骤如下:- 将自变量的区间等分为n个子区间;- 在每个子区间上假设解函数为线性函数,即通过给定的初始条件在每个子区间上构造切线;- 使用切线的斜率(即导数)逼近每个子区间上的解函数,并将其作为下一个子区间的初始条件;- 重复上述过程直至达到所需的精度。
3. 改进的欧拉方法改进的欧拉方法是对欧拉方法的一种改进,主要思想是利用两个切线的斜率的平均值来逼近每个子区间上的解函数。
具体步骤如下: - 将自变量的区间等分为n个子区间;- 在每个子区间上构造两个切线,分别通过给定的初始条件和通过欧拉方法得到的下一个初始条件;- 取两个切线的斜率的平均值,将其作为该子区间上解函数的斜率,并计算下一个子区间的初始条件;- 重复上述过程直至达到所需的精度。
4. 二阶龙格-库塔方法二阶龙格-库塔方法是一种更为精确的数值解法,其基本思想是通过近似计算解函数在每个子区间上的平均斜率。
具体步骤如下: - 将自变量的区间等分为n个子区间;- 在每个子区间上计算解函数的斜率,并以该斜率的平均值近似表示该子区间上解函数的斜率;- 利用该斜率近似值计算下一个子区间的初始条件,并进一步逼近解函数;- 重复上述过程直至达到所需的精度。
5. 龙格-库塔法(四阶)龙格-库塔法是目前常用的数值解法之一,其精度较高。
四阶龙格-库塔法是其中较为常用的一种,其具体步骤如下:- 将自变量的区间等分为n个子区间;- 在每个子区间上进行多次迭代计算,得到该子区间上解函数的近似值;- 利用近似值计算每个子区间上的斜率,并以其加权平均值逼近解函数的斜率;- 计算下一个子区间的初始条件,并进一步逼近解函数;- 重复上述过程直至达到所需的精度。
常微分方程数值解法

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

根据选择的步长,确定当 前时刻的数值解的近似值 。
重复上述步骤,直到达到 所需的时间积分区间终止 点。
龙格-库塔方法的误差分析
误差主要来源于时间步长 的离散化,步长越小,误 差越小。
龙格-库塔方法的收敛性 和稳定性取决于所选步长 和步数。
ABCD
机械工程
在机械工程中,机构的动力学行为可以用常微分方程来描 述,如机器人的运动轨迹、机械臂的姿态等,通过数值解 法可以模拟这些机构的运动。
在金融问题中的应用
股票价格模拟
股票价格的变化可以用常微分方程来描述,通过数值解法可以模 拟股票价格的走势,预测未来的股票价格。
期货价格模拟
期货价格的变化也可以用常微分方程来描述,通过数值解法可以 模拟期货价格的走势,预测未来的期货价格。
可以通过增加步数来减小 误差,但会增加计算量。
在实际应用中,需要根据 具体问题选择合适的步长 和步数,以达到精度和计 算效率的平衡。
05
数值解法的应用
在物理问题中的应用
计算物体运动轨迹
通过数值解法求解常微分方程,可以模拟物体的运动轨迹,如行星 运动轨迹、炮弹弹道等。
模拟振动系统
在物理中,许多系统可以用常微分方程来描述,如弹簧振荡器、电 磁振荡器等,通过数值解法可以模拟这些系统的振动行为。
终止条件
当达到预设的精度或迭代次数时,停止迭代并输出结果。
欧拉方法的误差分析
截断误差
由于欧拉方法使用离散化近似 ,因此存在截断误差。这种误 差的大小取决于步长$h$的选
择。
稳定性
欧拉方法对于某些微分方程可 能是不稳定的,这意味着随着 迭代的进行,解可能会发散或
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
通常取 xi+1 − xi = hi = h (常数),则Euler法的计算格式
⎧ ⎨ ⎩
yi+1 = yi + y0 = y(x0 )
hf
(
xi
,
yi
)
i=0,1,…,n
解的存在唯一性(“常微分方程”理论):只要 f (x, y)
在[a, b] × R1 上连续,且关于 y 满足 Lipschitz 条件,即存在与 x, y 无关的常数 L 使
| f (x, y1)− f (x, y2)| ≤ L| y1 − y2 |
对任意定义在 [a, b] 上的 y1(x) 和 y2(x) 都成立,则上述IVP存 在唯一解。
∵
y n +1
=
yn+Fra bibliotekh[ 2
f
(xn ,
yn ) +
f (x, y) = − y ∴
f (xn+1 , yn+1 )]
yn+1
=
yn
+
h 2
[−
yn
− yn+1]
整理成显式
y n +1
=
⎜⎛ ⎝
2 2
− +
h h
⎟⎞ ⎠
y
n
反复迭代,得到
y n+1
=
⎜⎛ ⎝
2 2
− +
h h
⎟⎞ ⎠
y
n
=
⎜⎛ 2 − h ⎟⎞ 2 ⎝2+h⎠
§8.2 欧拉(Euler)法
整体截断误差
记en+1 = y(xn+1) − yn+1.
因为计算 yn+1 时, 用到的y1, y2,",yn是 y(x1), y(x2 ),",
y(xn ) 的近似值,每步产生的误差会累积到计算y(xn+1)的误差
中,因此 en+1 与 y1, y2,",yn 都有关,称为整体截断误差.
≤| y(xn ) − yn | +hL | y(xn ) − yn | (李普希兹条件)
≤ (1+ hL) | en | .
(4)
12/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
记
T
=
max k
| Tk
|, 将(4)代入(3)得
| en+1 |≤ T + (1+ hL) | en |
公 式
Tn+1
=
y(xn+1) −
yn+1
=
−
h2 2
y′′(xn ) + O(h3)
16/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
若将这两种方法进行算术平均,即可消除误差 的主要部分/*leading term*/
而获得更高的精度,称为梯形法
郑州大学研究生课程 (2011-2012学年第一学期)
数值分析 Numerical Analysis
习题课 第八章 常微分方程数值解法
一、要点回顾
待求解的问题:一阶常微分方程的初值问题 /* Initial-Value Problem */:
⎪⎧ dy = f ( x, y) x ∈[a, b] ⎨ dx ⎪⎩ y(a) = y0
h2 2
y′′(ξn )
(1)
假定已知准确值 y(xn ),利用欧拉公式(8.2),定义
yn+1 y(xn ) + h f (xn , y(xn ))
(2)
8/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
局部截断误差
| en+1 |=| y(xn+1) − yn+1 |≤| y(xn+1) − yn+1 | + | yn+1 − yn+1 |
≤| Tn+1 | + | yn+1 − yn+1 | .
(3)
11/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
( 8.2 )
3/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
(1) 用差商近似导数
y′(xn) = f (xn, y(xn))
y′(xn) ≈
y(xn+1) − h
y( xn )
y(xn+1) − h
y( xn )
≈
f
梯形 公式
欧拉法小结
公式
局部截断误差
( ) h2 y(2)
2
xn
− h2 2
y(2)
( xn )
( ) h3 y(3)
3
xn
精显稳 度 隐 定 步数
性 1阶 显 差 单步
1阶 隐 好 单步
2阶 隐 好 单步
19/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
17/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
例8.2.3
对初值问题
⎧ ⎨ ⎩
y′ + y (0 )
y= =1
0
证明用梯形公式求得的近似解为
yn
=
⎜⎛ 2 − ⎝2+
h ⎟⎞ n h⎠
并证明当步长h→0时,yn收敛于精确解 e − x
证明: 解初值问题的梯形公式为
§8.3 改进欧拉(Euler)方法
先用欧拉公式(8.2)求出一个初步的近似值 y n +1 ,称为预测值, 它的精度不高, 再用梯形公式对它校正 一次,即迭代一次,求得yn+1,称为校正值, 这种预测-校 正方法称为改进的欧拉公式:
⎧ ⎨ ⎩
yn+1 y0 =
= yn + y(a)
hf
(
xn+1,
yn+1
)
向后Euler方法
5/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
∫ ∫ (2)用数值积分方法
xn+1 y′( x)dx = xn+1 f ( x, y( x))dx
−
y(
xn
)
≈
h 2
f (xn, y(xn))+
f (xn+1, y(xn+1))
[ ] ⎪⎧
⎨
yn+1
≈
yn
+
h 2
f (xn, yn ) + f (xn+1, yn+1)
⎪⎩ y0 = y(a)
梯形欧拉公式
7/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
( xn ,
y( xn ))
y(xn+1) ≈ y(xn) + hy′(xn) = y(xn) + hf (xn, y(xn))
⎧ ⎨ ⎩
yn+1 y0 =
= yn + y(a)
hf
(
xn
,
yn
)
差分方程初值问题 向前Euler方法
4/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
≤ T + (1+ hL)[T + (1+ hL) | en−1 |]
≤ T + (1+ hL)T + (1+ hL)2 | en−1 |≤ "
≤ T + (1+ hL)T + (1+ hL)2T +" + (1+ hL)nT
+ (1+ hL)n+1 | e0 |
≤ (1+ hL)n+1 −1T = (1+ hL)n+1 −1 O(h2 )
9/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法
欧拉方法的收敛性
定义 若给定方法的局部截断误差满足 | Tn+1 |= O(h p+1),
则称该方法是 P 阶的,或称为具有 P 阶精度。
10/29
郑州大学研究生2011-2012学年课程 数值分析 Numerical Analysis
§8.2 欧拉(Euler)法 向后欧拉公式
由于未知数 yn+1 同时出现在等式的两边,故称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公 式。隐式公式不能直接求解,一般需要用Euler显式公式 得到初值,然后用Euler隐式公式迭代求解。因此隐式公 式较显式公式计算复杂,但稳定性好(后面分析)。
欧拉方法的收敛性
对yn+1, yn+1应用欧拉公式(8.2)得