数值分析第五章常微分方程数值解法讲解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义 在假设 yn = y(xn),即第 n 步计算是精确的前提下,考 虑公式或方法本身带来的误差: Rn = y(xn+1) ? yn+1 , 称为局部 截断误差 /* local truncation error */ 。
说明
§1 Euler's Method
截断误差: 实际上,y(xn) ? yn, yn 也有误差,它对yn+1的误差 也有影响,见下图。但这里不考虑此误差的影响,仅考虑方 法或公式本身带来的误差,因此称为方法误差或截断误差。
? y(xn ) ? yn y(xn?1) ? yn?1 ? yn ? h f (xn?1, yn?1)
隐式或后退欧拉公式
§1 Euler's Method
由于未知数 yn+1 同时出现在等式的两边,故称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公
式。隐式公式不能直接求解,一般需要用 Euler 显式公式
得到初值,然后用Euler 隐式公式迭代求解。因此隐式公
式较显式公式计算复杂,但稳定性好(后面分析)。
? ? ?
yn0? y (k ?1)
n?1
1? ?
yn ? h yn ? h
f
f (xn, yn )
(
xn?1,
y(k n?
) 1
)
收敛性
y ( k ? 1) n?1
?
yn?1
?h
f
( xn?1 ,
y
( n
k ?
) 1
)
?
f (xn?1, yn?1)
? hL
y (k) n?1
?
yn?1
?
? ? ?
hL
k ?1
y (0) n?1
?
yn?1
hL ? 1, ?
y ? ( k ? 1) n?1
yn?1(k ?
?)
在迭代公式中取极限,有
yn?1 ? yn ? h f (xn?1, yn?1)
? dx ?? y (a ) ? y0
解的存在唯一性(“常微分方程”理论):只要 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 存
局部截断误差的分析:由于假设yn = y(xn) ,即yn准确,因此 分析局部截断误差时将y(xn+1) 和 yn+1都用点xn上的信息来表 示,工具:Taylor 展开。
? 欧拉法的局部截断误差:
Rn?1
?
y(xn?1) ?
yn?1
?
Leabharlann Baidu
[
y(xn) ?
hy?(xn) ?
h2 2
y?(?xn) ?
O(h3)]
Rn+1 的主项
/* leading term */
? [ yn ? hf (xn, yn)]
?
h2 2
y?(?xn ) ?
O(h3)
§1 Euler's Method
定义 若某算法的局部截断误差为 O(hp+1),则称该算法有 p
阶精度。
? 欧拉法具有 1 阶精度。
在第二章讨论牛顿插值公式时 介绍了差商的概念和性质, 各阶差商可以近似各阶导数,具有不同的精度, 且可以用函数值来表示。 上一章中数值微分的方法之一
§1 欧拉方法 /* Euler's Method */
y( xn?1) ? y(xn ) ? hy?( xn ) ? y(xn ) ? yn
y( xn?1) ? yn?1 ? yn ? h f ( xn , yn )
§1 Euler's Method
Taylor 展开法
yn?1 ? yn ? h f (xn , yn ) n ? 0, 1,...
因此
y
( n
k ?
)1的极限就是隐式方程的解
几何意义
y
设已知曲线上一点 Pn (xn , yn ),过该 点作弦线,斜率为(xn+1 , yn +1 ) 点的 方向场f(x,y)方向,若步长h充分小,
可用弦线和垂线x=xn+1的交点近似 曲线与垂线的交点。
§1 Euler's Method
就是用差商近似导数
在xn点用一阶向前差 商近似一阶导数
y ?( xn ) ?
y(xn?1) ? h
y(xn )
y(xn?1) ? y(xn ) ? hy?(xn )
Euler's method
? y(xn ) ? yn y(xn?1) ? yn?1 ? yn ? h f (xn , yn )
? 欧拉公式的改进 :
节点间距 hi ? xi?1 ? xi (i ? 0, ...,n ? 1) 为步长,通常采用等距节点, 即取 hi = h (常数)。
步进式:根据已知的或已求出的节点上的函数值计算 当前节点上的函数值,一步一步向前推进。因此只需 建立由已知的或已求出的节点上的函数值求当前节点 函数值的递推公式即可。
?隐式欧拉法或后退欧拉法 /* implicit Euler
method or backward Euler method*/
§1 Euler's Method
x n +1点向后差商近似导数
y?(xn?1) ?
y(xn?1) ? h
y(xn )
y(xn?1) ? y(xn ) ? hy?(xn?1)
第五章 常微分方程数值解
/* Numerical Methods for Ordinary Differential Equations */
? 待求解的问题:一阶常微分方程的初值问题 /* Initial-Value
Problem */ :
[ ?? dy ? f ( x , y ) x ? a , b ]
在唯一解。
如何求解
解析解法:(常微分方程理论)
只能求解极少一类常微分方程;实际中给定的问题不一 定是解析表达式,而是函数表,无法用解析解法。
数值解法: 求解所有的常微分方程
计算解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
处的近似值
yi ? y( x i ) (i ? 1, ... , n )
--------Euler's Method
几何意义
几何直观是帮助我们寻 找解决一个问题的思路
的好办法哦 亦称为欧拉折线法
/* Euler's polygonal arc method*/
显然,这种近似有一定误差, 而且步长越大,误差越大, 如何估计这种误差y(xn+1) ? yn+1 ?
§1 Euler's Method