常数微分 计算方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求解数值解 重要手段。
5.常微分方程数值解法的特点 常微分方程数值解法的特点 常微分方程的数值解法常用来求近似解 根据提供的算法 通过计算机
数值解法得到的近似 解(含误差)是一个 含误差) 离散的函数表. 离散的函数表.
便捷地实现
6.基本知识 基本知识
本章主要讨论一阶常微方程的初值问题 各 种 数 值 解 法
y=e
x2
∫
x
0
e dt
t2
但要进一步计算指定点的函数值,还需要用数值积分方法。 但要进一步计算指定点的函数值,还需要用数值积分方法。 有些微分方程的解是隐函数, 有些微分方程的解是隐函数,例如 ye x y + x = 1 要求函数值还需要解超越方程。 要求函数值还需要解超越方程。应用中所处理的微分方程 往往很复杂且大都得不出一般解,所以一般用数值解法。 往往很复杂且大都得不出一般解,所以一般用数值解法。
我们更关心的是某些 特定的自变量在某一个 定义范围内的一系列离散点 一系列离散点上的近似值. 一系列离散点 寻找数值解的过程称为数值求解微分方程。 寻找数值解的过程称为数值求解微分方程。
在大量的实际方程中出现的函数起码的连续性都 无法保证,更何况要求阶的导数
很多微分方程 根本求不到 问题的解析解! 问题的解析解!
依此类推得到一折线
欧拉方法 就是用这条折线近似地代替曲线 y ( x) 也称欧拉折线法.
y
pn
pn +1
y = y ( x)
p ( x n +1 )
xn
xn +1
x
从上述几何意义上得知,由Euler法所得的 折线明显偏离了积分曲线,可见此方法 非常粗糙。 非常粗糙。
4.欧拉法的局部截断误差:
在假设第 i 步计算是精确的前提下,考虑 截断误差
欧 拉 方 法
y ′ = f ( x, y ) y ( x0 ) = y0
简单 方法
a≤ x≤b
(1.1) (1.2)
方 法的 方法的 .
欧拉方法的
2. 欧拉方法的导出 把区间[a,b] 分为n个小区间
N等分
步长为 hi = ( xi +1 - xi )
节点 xi = a + ihi ,一般取 hi = h ( = (b a ) / n )即等距
注:的确有局部截断误差 Ri = y( xi +1 ) yi +1 = O( h3 ) , 需要2个初值 需要 阶精度,比欧拉方法有了进步。 即梯形公式具有2 阶精度 0和 y1来启动递推 即梯形公式具有 个初值 y,比欧拉方法有了进步。 过程,这样的算法称为双步法 过程,这样的算法称为双步法 /* double-step 但注意到该公式是隐式公式,计算时不得不用到 但注意到该公式是隐式公式, 隐式公式 method */,而前面的三种算法都是单步法 而前面的三种算法都是单步法 迭代法,其迭代收敛性与欧拉公式相似。 迭代法,其迭代收敛性与欧拉公式相似。 /* single-step method */。 中点欧拉公式 /* midpoint formula */ y ( x 2 ) y ( x0 ) y′( x1 ) ≈ 中心差商近似导数
同时出现在等式的两边,不能直接得到, 由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故 欧拉公式,而前者称为显式 称为隐式 称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。 欧拉公式。 一般先用显式计算一个初值, 迭代求解 求解。 一般先用显式计算一个初值,再迭代求解。 隐式欧拉法的局部截断误差: 隐式欧拉法的局部截断误差: 欧拉法的局部截断误差
y(xn+1) 1.000 000 1.004 837 1.018 731 1.040 818 1.070 320 1.106 531 1.148 812 1.196 585 1.249 329 1.306 570 1.367 879
| y(xn+1) –yn+1| 0 0.004 837 0.008 731 0.011 818 0.014 220 0.016 041 0.017 371 0.018 288 0.018 862 0.019 150 0.019 201
2.本章要讨论的问题 2.本章要讨论的问题
在高等数学中讲到过如何解一些特殊的微分方 程,比如可分离方程、齐次方程、线性方程等。
本章专门 讨论
如何利用数值方法求解常微分方程的问题。 如何利用数值方法求解常微分方程的问题。
3.什么是微分方程 3.什么是微分方程 的解析解? 的解析解?
一个具有所要求阶连续导数的解析函数,将 它代入微分方程,恰使其所有条件都得到满 足的解称为解析解(或古典解),称为真解或解。 解析解(或古典解),称为真解或解。 解析解 ),称为真解或解 寻找解析解的过程称为求解微分方程组。 寻找解析解的过程称为求解微分方程组。
4.什么是微分方程的数值解? 4.什么是微分方程的数值解? 什么是微分方程的数值解
初值问题的数值解法,就是寻求y(x)在一系 初值问题的数值解法, 列离散节点xi处的近似值,即对x0<x1<…<xN, 处的近似值, 求出准确值y(x1),y(x2),…y(xn)的相应近似值 的相应近似值 y1 ,y2 ,…,yn 。称这些似值称为数值解。 称这些似值称为数值解。 似值称为数值解
y i +1 = y i + h f ( x i , y i ) ( i = 0, ... , n 1)
依上述公式逐次计算可得:
y1 = y 0 + hf ( x 0 , y 0 ) y 2 = y1 + hf ( x1 , y1 )
y n +1
亦称为欧拉折线法 亦称为欧拉折线法
/* Euler’s polygonal arc method*/
5. 欧拉公式的改进: 欧拉公式的改进: 隐式欧拉法 /* implicit Euler method */ 向后差商近似导数
y′( x1 ) ≈ y( x1 ) y( x0 ) h
y ( x1 ) ≈ y0 + h f ( x1 , y ( x1 ))
x0
x1
y i +1 = y i + h f ( x i +1 , y i +1 ) ( i = 0, ... , n 1)
0
0
xn = x0 + nh = nh ( n = 0,1,3, 4)
由Euler格式
yn +1 = yn + hf ( xn , yn ) = yn + 0.5e
2 xn
从y0=0出发计算的数值解如表 xn yn 0.5 0.500 000 1.0 1.142 013 1.5 2.501 154 2.0 7.245 022
第11章 常微分方程初 11章 值问题的数值解法
1.什么是微分方程 1.什么是微分方程 ? 现实世界中大多数事物 内部联系非常复杂
其状态随着 时间、地点、 时间、地点、条件 的不同而不同 找出其状态和状态变化规律之间的相互联系, 也即一个或一些函数与他们的导数之间的关系 此种关系的数学表达就为
微分方程
y′ = f ( x, y) y( x0 ) = y0
a≤ x≤b
(1.1) (1.2)
f (x,y) 初值
知
(1.2)
常微分方程的理论指出: 常微分方程的理论指出: 当 f (x,y) 定义在区域 G=(a≤x≤b,|y|<∞) (Lipschitz)条件 条件 若存在正的常数 L 使:
| f ( x, y1 ) f ( x, y2 ) |≤ L | y1 y2 |
要计算出解函数 y(x) 在一系列节点
a = x0 < x1 < < xn = b
处的近似值
yi = y ( xi )
y′ = f ( x, y ) y ( x0 ) = y0
a ≤ x≤b
(1 .1) (1 .2 )
对微分方程(1.1)两端从 x n 到 x n + 1 进行积分
∫
x n +1 xn
得
yn +1 yn = ( x
x ) f ( xn , y ( xn )) n +1 n = hf ( x , y ( x )) n n
或用向前差 商近似导数
y ( x n +1 ) y ( x n ) y ′( x n ) ≈ h
x0 x1
y ( xn +1 ) ≈ y ( xn ) + hy ′( xn ) = yn + h f ( xn , yn )
y ′d x = ∫
x n +1 xn
f ( x , y ( x )) d x
xn+1
y ( xn +1 ) y ( xn ) = ∫
xn
f ( x, y ( x))dx
令g ( x) = f ( x, y ( x))
右端积分用 左矩形数值 求积公式
∫
b a
g ′(ξ ) g ( x ) d x = (b a ) g ( a ) + (b a ) 2 2
(1.3)
使 得 对 任 意 的 x ∈ [ a , b ] 及 y1 , y 2 都 成 立
则称 f (x,y) 对y 满足李普希兹条件,L 称为 Lipschitz常数. 就可保证方程解的存在唯一性
我们以下的讨论,都在满足上述条件下进行.
1. 简单的欧拉 简单的欧拉(Euler)方法 方法
考虑模型:
Ri = y( x i +1 ) yi +1 = h2 y′′( xi ) + O(h3 )
2
阶精度。 即隐式欧拉公式具有 1 阶精度。
6.梯形公式 /* trapezoid formula */ — 显、隐式两种算法的平均 隐式两种算法的平均
h yi +1 = yi + [ f ( x i , yi ) + f ( x i +1 , yi +1 )] ( i = 0, ... , n 1) 2
例:利用Euler方法计算积分 ∫0 e 在点x=0.5, 1, 1.5, 2处的数值解.
解 令
y ( x) = ∫ e dt
t2 0 x
x
t2
dt
则有等价的问题 对此一阶常微分方程初值问题,取步长h=0.5, 设 f ( x, y ) = e x , x = 0, , = 0 y
2
dy x2 =e dx y (0) = 0
R
i
= y ( x i + 1 ) y i 称为局部截断误差
/* local truncation error */。
定义 在假设 yi = y(xi),即第 i 步计算是精确的前提下,考 虑的截断误差 Ri = y(xi+1) yi+1 称为局部截断误差 /* local truncation error */。 定义 若某算法的局部截断误差为O(hp+1),则称该算法有p 阶精度。 欧拉法的局部截断误差:
例如初值问题
y′ = 1 + e x y ( 0) = 2
y = ∫ (1 + e x )dx
可求出方程y′=1+ex的通解为 y=x+ex+c, 将初值条件 x=0, y=2 代入得 2=1+c, 故 c=1, 所以初值问题的解为
y=x+ex+1
又如初值问题 可求出它的解为
y′ = 1 2 xy y (0) = 0
xn 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
yn 1.000 000 1.000 000 1.010 000 1.029 000 1.056 100 1.090 490 1.131 441 1.178 297 1.230 467 1.287 420 1.348 678
y n +1 = y n + hf ( x n , y n )
每步计算
只用到
yn
故也称Euler为单步法。 公式右端只含有已知项 y 所以又称为显格式的单步法。
n
3.欧拉公式有明显的几何意义
过 点 ( x0 , y 0 ) 的 曲 线 是 解 y ( x )在 ( x0 , y 0 ) 作 y ( x ) 的 切 线 与 直 线 x = x1交 于 ( x1 , y 1 ) 再 作 切 线 交 于 ( x2 , y2 )
Ri = y( xi +1 ) yi +1 = [ y( xi ) + hy′( xi ) + h2 y′′( xi ) + O(h3 )] [ yi + hf ( xi , yi )]
2
Ri 的主项
/* leading ter′′( xi ) + O ( h 3 )
欧拉法具有 1 阶精度。
例:用Euler方法求解问题
dy = y + x +1 0 ≤ x ≤ 1 dx y (0) = 1
取h=0.1 解 设f(x,y)=-y+x+1,x0=0,y0=1,xn=x0+nh=0.1n (n=0,1,…,10) Euler格式为 yn+1 = yn + hf ( xn , yn ) = yn + 0.1( yn + xn + 1) 由y0=1出发,按上面公式的计算结果并与精确 解y(x)进行比较,如表所示