常微分方程初值问题数值解法
~yi
1
yi
h (xiexi
yi )
yi1
yi
h 2
[(
xi
e
xi
yi ) (xi1exi1
~yi 1 )]
(i 0,1, ,9)
计算结果见表6-2(书125页)
6.2 计算公式的误差分析
定义6.1 若 yi+1 是 yi=y(xi) 从计算得到的近似解,则称 y(xi+1) - yi+1为所用公式的局部截断误差,简称为截断误差。
yi1
yi y(x0 )
hf
( xi y0
,
yi
)
利用泰劳展开式:
y(x)
y(xi )
y '(xi )(x
xi )
y(xi ) (x 2!
xi )2
L
则精确解y ( xi 1 )
y ( xi
h)
y(xi )
y '(xi )h
y(xi ) 2!
h
b
x0 N
, 然后逐个求解出节点上的函数值
y ( x1 ),
y(x2 ),
,
y(xN )的近似值
6.1 欧拉方法
6.1.1 欧拉公式与改进欧拉公式
1)算法:
已知
y f (x, y)
y(
x0
)
y0
(1) (2)
求y(x)在点x1, x2 ,L xn处的近似值。
设y(xi )表示y(x)在xi处的精确值,yi表示y(x)在xi处的 近似值。
yi1 y(xi ) h f (xi , y(xi )) y(xi ) hy(xi )
故
y(xi1)
yi1
h2 2
y(xi ) O(h3 )
O(h2)
因此,欧拉公式的局部截断误差为 O (h2)
(6 8)
(2)对后退欧拉公式,有
yi1 y(xi ) h f (xi1, y(xi1))
故
y(xi1)
yi1
h2 2
y(xi ) O(h3) O(h2 )
因此,后退欧拉公式的局部截断误差为 O (h2)
(6 9)
(3)对梯形公式,注意到其公式可改写为
yi1
1 2
[
yi
hf
( xi
,
yi
)][ yi
h
f
( xi 1 ,
yi1)]
故由式(6-9)和(6-9)得
而 y(xi1) y(xi ) hy(xi ) (h2 / 2) y(xi ) O(h3 )
y(xi )
hy(xi )
h2[1 2
f x
1 2
y
f ]y ( xi , y( xi ))
O(h3 )
根据格式为二阶精度,即 y(xi+1) -yi+1 = O(h3) 比较两式系数得
第六章 常微分方程初值问题的数 值解法
6.1 欧拉方法 6.2 计算公式的误差分析
6.3 龙格-库塔方法 6.4 向一阶方程组与高阶方程的推广
一、欧拉法:
1.问题的提出:
求解
y y(
x0
f )
(x, y) y0
x [x0,b]
(5 1)
只要f(x,y)满足一定条件,则此问题的解是存在的, 且是唯一的。
在求解的过程中,我们已掌握了一些典型方程的 解法。但是仍有不少方程是无法求出其解析解的,因 此我们要讨论其数值解。即在微分方程解存在的前提 下,构造一种算法,计算出微分方程的解y(x)在存在 区间上点 x1, x2,L , xn 上的值的近似值,即不求其准确 解y=y(x)的解析表达式,而求出一个函数表格
y(xi1 )
yi1
1 2
y(xi1 ) [ yi h f (xi , yi )]
y(xi1 ) [ yi h f (xi1, yi1 )]
1 h2
2
[
2
y
(
xi
)
O(h
3
)
]
[
h2 2
y
(
xi
)
O(h
3
)]
O(h3 )
xi
xi1 f (x, y(x))dx
xi
从而把微分方程问题转化为积分方程问题
y(xi1) y(xi )
xi1 xi
f (x, y(x))dx
(6 4)
由
xi1 xi
f
(x,
y( x))dx
h[ 2
f
(xi ,
y(xi ))
f (xi1, y(xi1))]
得
y ( xi 1 )
h2
L
而
yi1 yi hf (xi , yi ) yi hy '(xi )
y(xi1) yi1
y(xi ) h2 L 2!
O(h2 )
欧拉公式的截断误差为O(h2 ).
例6.1 以 h=0.1为步长,用欧拉法求常微分方程初值问题
y xex y
得到初值问题(1)(2)的各种数值解法。
若
xi1 xi
f (x, y)dx
hf
(xi , yi )
则得到
yi1
yi y(x0 )
hf
( xi y0
,
yi
)
——欧拉公式
若
xi1 xi
f (x, y)dx
hf (xi1, yi1)
则得到
yi
1
yi hf (xi1, y(x0 ) y0
定理6.1 若单步法 yi+1 = yi+h (xi , yi , h) 的局部截断 误差为 O (h p+1) ,且增量函数 (x , y , h) 关于 y 满足李普希 兹条件,即存在常数 L>0,使对 y, ~y 成立不等式
| (x, y, h) (x, ~y, h) | L | y ~y |
yi 1 )
——后退欧拉公式
这样由(x0 , y0 ) (x1, y1) (x2, y2 )L (xn , yn ).
误差
误差是由两部分构成,每一步计算所产生的误差与误
差的积累。我们仅讨论前一种误差,即在计算 yi1 时认为前 一步是精确的,即 y(xi ) yi ,我们估计 y(xi1) y i1 ——截断误差(局部)
x x0 x1 x2 xn y y0 y1 y2 yn 列表函数
在这里我们考虑等距节点,即xi xi1 h, h为常数,则 xk x0 kh , xk为节点。
上述问题与插值问题正好相反,一个是将离散问题 连续化,一个是将连续问题离散化。
2.数值求解方法:
对区间[x0,b]作等距分割,生成节点xi x0 ih (i 0,1, , n),
(6 10)
因此,梯形公式的局部截断误差为 O ( h3 )
(4)对改进欧拉公式,有
~yi1 y(xi ) h y(xi )
yi1
h[ f 2
(xi ,
yi )
f (xi1, ~yi1)]
而由 y f (x, y) 得 y fx(x, y) yf y(x, y) ,故有
~yi
1
yi1
yi yi
h f (xi , yi )
h 2
[
f
(
xi
,
yi
)
f
( xi 1 ,
~yi1
)
(i ]
0,1,
,N
1)
这称为改进欧拉公式
例6.2 仍取步长h = 0.1,采用改进欧拉法重新计算例 6.1 的 常微分方程初值问题。
解 这时改进欧拉公式为
则其整体截断误差 y(xi)- yi=O(hp)
截断误差的估计(基本假设: yi = y( xi ) )
设 y(x)C 3 [x0 , b] , 则
y(xi1) y(xi h) y(xi ) hy(xi )
h2 2
y(xi ) O(h3)
(6 7)
(1)对欧拉公式,有
h2 2
y(xi ) O(h3)
与式(6-7)比较得 y(xi+1) -yi+1 = O ( h3 ) 因此,改进欧拉公式的局部截断误差为 O ( h3 )
定义6.2 若一种求解常微分方程初值问题的数值计算方 法的局部截断误差为 O ( hp+1 ) ,则称该方法为 p阶精度,或 称该方法为 p阶方法。
y(xi )
h[ 2
f
(xi ,
y(xi ))
f
( xi 1 ,
y( xi 1 ))]
从而导出梯形公式
yi
1
yi
h[ 2
f
(xi ,
yi )
f
( xi 1 ,
yi 1 )]
y0 y(x0 )
(6 5)
欧拉公式是显示格式,而梯形公式也是隐式公式,在求 yi1 是 要解一个函数方程(不方便)。因此我们利用将梯形公式与欧 拉公式联合使用,先用欧拉公式求得一个初步近似值 ²yi1 ,称 为预报值,然后代入梯形公式右边,得到 yi1 ——校正值。