当前位置:
文档之家› 08第二版 第八章 常微分方程数值解法
08第二版 第八章 常微分方程数值解法
5 1.0 2.9766 3.4366 0.4600
(2)由隐式欧拉公式(8.6),得
yi yi1 0.2(xi yi ), i 1, 2, ,5
整理,得
yi (0.2xi yi1) / 0.8, i 1, 2, ,5
计算结果见下表 (表8-2):
i xi yi y( xi ) y(xi) yi
,
yi1
)
f (xi, yi )],
i
1, 2,
, n (8.7)
上式称为常微分方程初值问题(8.1)~(8.2)的梯形公式.
另外,将微分程(8.1)两端从 xi1 到 xi 积分,得
xi y(x)dx xi f (x, y(x))dx
xi1
xi1
上式右端积分用梯形公式近似,即
xi xi1
y(x) 在自变量 x的一系列离散节点
a x0 x1 x2 xn1 xn b
上的近似值
y0, y1, y2, , yn1, yn
这些近似值称为初值问题(8.1)~(8.2)的数值解.
相邻两节点的间距 hi xi xi1 (i 1, 2, , n) 称为步长 ,通常在计算上采用相等的步长hi h (i 1, 2, , n) , 这时等 距节点 xi x0 ih, (i 1,2, ,n) .求解过程是顺着节点排列的顺序
8.1.3 微分方程单步法的局部截断误差与阶
前面几节介绍了求解初值问题(8.1)~(8.2)数值解的几种方
法.显然,各种数值方法得到的数值解 yi 与解析解 y(xi )之间
的差异各不相同.称
ei y(xi ) yi 为某方法在 xi 处的整体截断误差.显然,该误差依赖于前面
xi1, xi2 , , x0
由梯形公式(8.7),得
yi yi1 0.1[(xi1 yi1) (xi yi )] i 1, 2, ,5
整理,得
yi [0.1(xi1 xi ) 1.1yi1] / 0.9 i 1, 2, ,5
计算结果如下:
i
0
xi yi y( xi ) y(xi) yi
0 1.0000 1.0000
y(x) 2ex x 1 相比较.
解 根据已知条件,有
n 5, h 0.2
x0 0, y0 1 xi ih, i 1, 2, , n
又
f (x, y) x y
(1)由显式欧拉公式(8.5),得
yi yi1 0.2(xi1 yi1), i 1, 2, , 5
整理,得
yi 0.2xi1 1.2yi1,i 1, 2, ,5
y(x) x y, 0 x 1
y(0)
1
取 h 0.2 ,试用改进欧拉公式求其数值解,并与精确解
y(x) 2ex x 1 相比较.
解 根据已知条件,有
n 5, h 0.2
x0 0, y0 1
xi ih, i 1, 2, , n
又
f (x, y) x y
根据改进的欧拉公式(8.8),有
一步一步的向前推进,初值问题的数值解法主要建立这种递推 公式.
求解常微分方程初值问题的数值解法可分为两类:单步法和多 步法.单步法在计算 yi 时只用到前面一步 yi1 处的信息,如
欧拉(Euler)法、龙格—库塔(Runge-Kutta)法.多步法在计算 yi 时用到前面多步 yi1, yi2 , 处的信息,常用的主要是线性多
,又可得
yi yi1 hf (xi1, yi1), i 1, 2, , n
(8.5)
及
yi yi1 hf (xi , yi ), i 1, 2, , n (8.6)
(8.5)、(8.6)式称为欧拉公式.其中(8.5)式称为显式欧拉公式, (8.6)式称为隐式欧拉公式.利用欧拉公式求解初值问题(8.1)~ (8.2)数值解的方法称为欧拉法.
第八章常微分方程数值解法
• 8.1 欧拉法 • 8.2 龙格-库塔法 • 8.3 线性多步法 • 8.4 一阶微分方程组与高阶微分方程的数值解法
在科学研究和工程技术中,常会遇到常微分方程或常微分 方程组的求解问题.我们知道,除了几种简单类型的常微分方 程外,要找出解的解析表达式是极其困难的,甚至是不可能 的.因此,研究各种类型常微分方程的数值解法是很有必要 的.本章主要考虑一阶常微分方程初值问题
步法.
单步法与多步法都有显式格式与隐式格式之分.
§8.1欧拉法
8.1.1 欧拉公式
设初值问题(8.1)~(8.2)的精确解为y(x)在区间[a,b] 上取一
系列等距节点
a x0 x1 x2 xn b
根据导数定义,可以用
y(xi ) y(xi1) h
近似代替
y(xi1)
或
y(xi () 图8-1),其中 h
f (x, y1) f (x, y2) L y1 y2 .
对任何 y1, y2 均成立,则上述初值问题(7.1)~(7.2)的解存在、 惟一,且连续依赖于初值 y0.
由于李普希茨条件较难验证,因此在实际应用中,常用函
数 f (x, y) 在所考虑区域 G 上对 y 存在连续偏导数条件代替.事
实上,若 f (x, y) 在有解闭区域 G 上对 y 存在连续偏导数,则 f
计算结果见下表 (表8-1):
i xi yi y(xi ) y(xi ) yi
0 0 1.0000 1.0000 0.0000
表8-1
1
2
3
0.2
0.4
0.6
1.2000 1.4800 1.8560
1.2428 1.5836 2.0442
0.04.6511 0.3039
此当函数 f (x, y) 比较复杂时从(8.7)式中解出yi 还是十分困难.
能否找到一种公式,既能提高精度,又可避免从代数方程
中求解 yi 这一繁琐过程呢?改进的欧拉公式正好满足这些要
求.
在实际应用中,首先利用显式欧拉公式(8.5)计算 yi 的 一个初值 yi (称为预测值),再用梯形公式对yi 进行校正
b a .于是, n
根据微分方程(8.1)可得
y(xi ) y(xi1) h
f
(xi1, yi1),
(8.3)
i 1, 2, , n
或
y(xi ) y(xi1) h
f (xi , yi ),
i 1, 2, , n
(8.4)
设 yi ,yi1 分别为精确解 y(xi1), y(xi ) 的近似值,则由(8.3)、(8.4)式
y(i1) h2 ,
2!
i1 在 xi1 与 xi 之间
将 y(x) 在 xi 点处展开,有
y(x)
y(xi )
y(xi )(x
xi )
y( ) (x
2!
xi )2 ,
在x与 xi 之间
令 x xi1 ,得
y( xi 1 )
y(xi )
y(xi )h
y(i )
2!
h2
y(xi )
f
(xi , y(xi ))h
dy
dx
f (x, y), a
xb
y(a) y0
(8.1) (8.2)
在区间[a, b]上的解. 为了保证初值问题(8.1)~(8.2)解的存在和惟 一性,给出如下定理(证明略).
定理8.1 若 f (x, y) 连续,且关于 y 满足李普希兹(Lipschitz)条
件,即存在常数 L 0 ,使
各步的计算.为了简化分析,我们仅讨论向前推进一步所产 生的误差,因此有如下定义.
定义8.1 利用数值方法求解微分方程的近似解时,假定 yi1 的 计算没有误差,即 yi1 y(xi1) ,则称 y(xi ) yi 为局部截断误
差.
定义8.2 如果对某种数值方法,存在正整数p,使其局部截断误
8.1.2 改进欧拉公式
根据(8.3),(8.4)式,令
y(xi ) y(xi1) f (xi1, yi1) f (xi , yi )
h
2
整理,得
yi
yi1
h[ 2
f
(xi1,
yi1)
f
( xi ,
yi )]
所以,通过取显示欧拉公式和隐式欧拉公式的算术平均值,
得
yi
yi1
h 2
[
f
(
xi1
y(i ) h2 ,
2!
在 xi1 与 xi 之间
当h xi xi1 充分小时,忽略二阶导数项,并以近似值 yi1, yi 代替精确值 y(xi1), y(xi ),同样可得欧拉公式(8.5)、(8.6).
例8.1 设有初值问题
y(x) x y, 0 x 1
y(0)
1
取 h 0.2 ,试用梯形公式求其数值解,并与精确解
0
1 0.2 1.2444 1.2428 -0.0016
2 0.4 1.5877 1.5836 -0.0041
3 0.6 2.0516 2.0442 -0.0074
4 0.8 2.6630 2.6511 -0.0119
5 1.0 3.4548 3.4366 -0.0182
将例8.2与例8.1 (1)、(2)对比,可以看出梯形公式比欧拉公 式的精度明显提高.但由于梯形公式(8.7)仍然是隐式公式,因
,就可得到所谓改进的欧拉公式
yi
yi1
hf
( xi 1 ,
yi 1 )
,i 1, 2,
h
yi
yi1
[ 2
f
( xi 1 ,
yi1)
f
(xi ,
yi )]
, n (8.8)
(8.8)式中的第一式称为预测算式,用来得到精度较低的预测值 ;第二式称为校正算式,用来得到较高精度的校正值.