第九章常微分方程数值解
/* Numerical Methods for Ordinary Differential Equations */
考虑一阶常微分方程的初值问题/* Initial-Value Problem */:
只要 f (x, y) 在[a, b] R1 上连续,且关于 y 满足 Lipschitz 条件,即存在与 x, y 无关的常数 L 使
对任意定义在[a, b] 上的y 和y*都成立,则上述IVP存在唯一解。
要计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
处的近似值
节点间距为步长,通常采用等距节点,即取 hi = h (常数)。
单步法:计算xi 处的近似值 yi 时只用到了前面一个点xi-1处的信息 yi-1,称此类方法为单步法;若计算yi时用到了前面多个点处的信息,则称为多步法.
如果计算公式右端也含有yi+1,则此公式不能直接计算出yi+1, 而需要每步解一个方程. 这样的方法称为隐式方法;如果计算公式右端不含有yi+1, 则此公式可以直接计算出yi+1, 称此类方法为显式方法. 一般讲显式方法计算量小, 但隐式方法稳定性好.
若是不高于r次多项式的集合,微分方程数值解法的计算公式均能准确成立,但至少有一个 r +1次多项式使计算公式不能准确成立,则称计算公式是r阶的.
记为准确值, yi+1为以准确值
计算的近似值, 称
当公式是 r 阶时,有
称 C 为渐近误差常数.
为近似值yi+1的局部截断误差.
§ 欧拉方法/* Euler’s Method */
欧拉公式:
x0
x1
向前差商近似导数
记为
定义
在假设 yi = y(xi),即第 i 步计算是精确的前提下,考虑的截断误差 Ri = y(xi+1) yi+1 称为局部截断误差/* local truncation error */。
欧拉法的局部截断误差:
欧拉法具有 1 阶精度。
Ti 的主项
/* leading term */
亦称为欧拉折线法
/* Euler’s polygonal arc method*/
§1 Euler’s Method
欧拉公式的改进:
隐式欧拉法/* implicit Euler method */
向后差商近似导数
x0
x1
))
(
,
(
)
(
1
1
0
1
x
y
x
f
h
y
x
y
+
)
1
,
...
,
0
(
)
,
(
1
1
1
-
=
+
=
+
+
+
n
i
y
x
f
h
y
y
i
i
i
i
由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故称为隐式/* implicit */ 欧拉公式,而前者称为显式/* explicit */ 欧拉公式。
一般先用显式计算一个初值,再迭代求解。
隐式欧拉法的局部截断误差:
即隐式欧拉公式具有 1 阶精度。
Hey! Isn’t the leading term of the local
truncation error of Euler’s method ?
Seems that we can make a good
use of it …
§1 Euler’s Method
梯形公式/* trapezoid formula */
—显、隐式两种算法的平均
注:的确有局部截断误差,
即梯形公式具有2 阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。
中点欧拉公式/* midpoint formula */
中心差商近似导数
x0
x2
x1
假设,则可以导出
即中点公式具有 2 阶精度。
需要2个初值 y0和 y1来启动递推
过程,这样的算法称为双步法/* double-step
method */,而前面的三种算法都是单步法
/* single-step method */。
方法
§1 Euler’s Method
显式欧拉
隐式欧拉
梯形公式
中点公式
简单
精度低
稳定性最好
精度低, 计算量大
精度提高
计算量大
精度提高, 显式
多一个初值,
可能影响精度
Can’t you give me a formula
with all the advantages yet without any
of the disadvantages?
Do you think i
第九章 常微分方程数值 来自淘豆网m.daumloan.com转载请标明出处.