常微分方程初值问题的数值方法基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 数值积分法区间
将 方程y' f ( x, y)在 区间[ xn , xn1]上 积分
xn1 y'dx xn1 f ( x, y)dx (n 0,1,L )
xn
xn
用yn1 , yn代替y( xn1 ), y( xn ), 对右端积分采用 取左端点的矩形公式
则有
xn1 xn
工程数学
求解(10-1)最基本的方法是单步法
单步法:从初值 y0 开始,依次求出 y1, y2 , ,后一步的值 yn1 只依靠前一步的 yn ,是一种逐点求解的离散化方法。
典型的单步法是Euler(欧拉)方法,其计算格式是:
yn1 yn h f ( xn , yn ) (n 0,1, 2, ... )
工程数学 14
工程数学
3. 稳定性
例:考察初值问题
y( x) 30 y( x)在区间[0, 0.5]上的解。
y(0) 1
分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。
节点 xi 0.0 0.1
0.2 0.3 0.4
0.5
欧拉显式 欧拉隐式
1.0000
1.0000
2.0000 2.5000101
2 f ( x h, y hf ( x, y)) f ( x h, y hf ( x, y))
设L为f关于y的Lipschitz常数,则由上式可得
Q(x, y, h) Q(x, y, h) L(1 h/ 2) y y
限定h即可知Q满足Lipschitz条件,故而改进的Euler法收敛.
工程数学
第十章 常微分方程数值解
第一节 求解初值问题数值方法的基本原理 第二节 高精度的单步法 第三节 线性多步法 第四节 一阶微分方程组的解法 第五节 边值问题的打靶法和差分法
工程数学 1
工程数学
第一节 求解初值问题数值方法的基本原理
一、初值问题的数值解
考虑一阶常微分方程的初值问题 /* Initial-Value Problem */:
算法有p 阶精度。
欧拉法的局部截断误差,由Taylor展开:
En1
y(xn1)
yn1
[y(xn ) hy(xn )
h2 2
y(xn ) O(h3)][yn
hf
( xn ,
yn )]
h2 2
y(xn ) O(h3 )
欧拉法具有 1 阶精度。
类似可以证明改进的Euler方法具有2阶精度
yn
h( y p
2 xn1 ); yp
yn1
1 2
(
y
p
yc ).
计算结果略。
数值分析 10
工程数学
四、单步法的误差分析和稳定性
1. 整体截断误差和局部截断误差 整体截断误差:数值解 yn和精确解 y( xn ) 之差
en y( xn ) yn
整体截断误差除与 xn步计算有关外,还与 xn1, , x1的计算
我们称算法A 比算法B 稳定,就是指 A 的绝对稳定区域比 B 的大。
工程数学 16
工程数学
例:考察显式欧拉法 yn1 yn h yn (1 h)n1 y0
0 y0 y0
✓
关于整体截断误差与局部截断误差的关系,有如下定理
定理:对IVP(10.1)式的单步法 yn1 yn hQ( xn , yn , h) ,
若局部截断误差为O(hp1) ( p 1) ,且函数 Q( xn , yn , h) 对y
满足Lipschitz条件,即存在L>0,使得
Q(x, y, h) Q(x, y, h) L y y
)
f
xn1, yn hyfn(+x1n , yn )
(n 0, 1, 2L )
注:此法亦称为预测-校正法 /* predictor-corrector method */。一方面它有较高精度,同时可以看 到它是个单步递推格式,比隐式公式的迭代求 解过程简单。后面将看到,它的稳定性高于显 式欧拉法。
stable */。
常数,可以 是复数
一般分析时为简单起见,只考虑试验方程 /* test equation */
y y
当步长取为 h 时,将某算法应用于上式,并假设只在初值 产生误差 0 y0 y0 ,则若此误差以后逐步衰减,就称该
算法相对于 h h 绝对稳定,h 的全体构成绝对稳定区域。
4.0000 6.2500102
8.0000 1.5625102
1.6000101 3.9063103
3.2000101 9.7656104
改进欧拉法
1.0000 2.5000 6.2500 1.5626101 3.9063101 9.7656101
精确解 y e 30 x
例:求解常微分方程初值问题
y' y x 1 y(0) 1
取步长h 0.1,计算到x 0.5
wk.baidu.comx0
解 : f ( x, y) y x 1,由Euler公式
工程数学 3
工程数学
yn1 yn h( yn xn 1)
代入h 0.1, 有yn1 0.9 yn 0.1( xn 1), 依依次次算 计算得结果果如如下下:
f ( x, y)dx h f ( xn , yn )
yn1 yn h f ( xn , yn ) (n 0,1, 2, ... )
工程数学 6
工程数学
三、Euler法的改进及梯形公式
隐式欧拉法 /* implicit Euler method */
向后差商近似导数
y( x1 )
y( x1 ) h
y( x0 )
x0
x1
y( x1 ) y0 h f ( x1, y( x1 ))
yn1 yn h f ( xn1, yn1 ) (n 0,1, 2, ... )
由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故 称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。
2. 收敛性和整体截断误差
定义 若某算法对于任意固定的 x = x0 + n h,当 h0 ( 同 时 n ) 时有 yn y( xn ),则称该算法是收敛的。
工程数学 12
工程数学
例:就初值问题
y y
y(0)
y0
考察欧拉显式格式的收敛性。
解:该问题的精确解为 y( x) y0e x
有关 分析计算中的某一步,显式单步法的一般形式可写为:
yn1 yn hQ(xn , yn , h)
其中 Q(xn , yn , h) 称为增量函数。如对于Euler公式其增量函 数 Q(xn , yn , h) f (xn , yn ) y'(xn )
定义 局部截断误差:设 y(x)是初值问题(10.1)的解,用单步法计算到
第n步没有误差,即 yn y(xn ) ,则
工程数学 11
工程数学
En1 y( xn1) yn1 y( xn1) y( xn ) hQ( xn , y( xn ), h)
称为单步法在点 xn1 处的局部截断误差。
定义 若某算法的局部截断误差为En1 O(h p1),则称该
要计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b 处的近似值 yi y( xi ) (i 1, ... , n)
节点间距 hi xi1 xi (i 0, ... , n 1) 为步长,通常采用等距节点,
即取 hi = h (常数)。
工程数学 2
中心差商近似导数
y( x1 )
y( x2 ) y( x0 ) 2h
y( x2 ) y( x0 ) 2h f ( x1 , y( x1 ))
x0
x1
x2
yn1 yn1 2h f (xn , yn ) n 1, 2,L
改进欧拉法 /* modified Euler’s method */
对一切 y和y 成立,则该方法收敛,且有 en O(h p )
工程数学 13
工程数学
由该定理可知整体截断误差总比局部截断误差低一阶
对改进的Euler法, Q( x, y, h) 1 f ( x, y) f ( x h, y hf ( x, y))
2 于是有 Q( x, y, h) Q( x, y, h) 1 f ( x, y) f ( x, y)
dy f ( x, y) x [a, b] dx y(a) y0
(10-1)
只要 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存 在唯一解。
n0 1 2 3
4
5
xn 0 0.1 0.2 0.3 0.4
0.5
yn 1.0 1.0 1.01 1.029 1.0561 1.09049
直接解微分方程可得精确解 : y f ( x) x ex , 故x5 0.5, y(0.5) 1.106531
由此可见,Euler公式的近似值接近方程的精确值.
1.0000 4.9787102 2.4788103 1.2341104 6.1442106 3.0590107
工程数学 15
工程数学
定义 若某算法在计算过程中任一步产生的误差在以后的计
算 中 都 逐 步 衰 减 , 则 称 该 算 法 是 绝 对 稳 定 的 /*absolutely
工程数学 4
工程数学
二、构造初值问题数值方法的基本途径
以Euler法为例说明构造IVP问题数值方法的三种基本途径
1. 数值微分亦法称,为用欧差拉商折代线替法微商
向前差商近似导数
y( x0 )
y( x1 ) h
y( x0 )
y( x1 ) y( x0 ) hy( x0 ) y0 h f ( x0 , y0 ) 记为 y1 x0
x1
yn1 yn h f ( xn , yn ) (n 0,1, 2, ... )
2. Taylor展开法
将y( xn h)在点xn作Taylor展开
y( xn
h)
y( xn ) hy'( xn )
h2 2!
y''( )
工程数学 5
工程数学
忽略高阶项,取近似值可得到Euler公式 yn1 yn h f ( xn , yn ) (n 0,1, 2, ... )
欧拉公式为 yn1 yn h yn (1 h) yn
limy(n1 (1h)1/hh )n ey0
h0
对任意固定的 x = xn = nh ,有
yn y0 (1 h)xn / h y0[(1 h)1/ h ] xn
y0e xn y( xn )
一般先用显式计算一个初值,再迭代求解。
工程数学 7
工程数学
梯形公式 /* trapezoid formula */ — 显、隐式两种算法的平均
h yn1 yn 2 [f (xn , yn ) f (xn1, yn1 )] (n 0,1, 2 L )
中点欧拉公式 /* midpoint formula */
工程数学 9
例数: 值分用 析 尤拉公式和改进的尤拉公式解初值问题
y
'
y
2x y
(0 x 1);
y(0) 1.
解:取步长h 0.1,
尤拉公式为:
yn1
yn
h(
yn
2 xn yn
).
y
p
yn
h( yn
2 xn ); yn
改进的尤拉公式为: yc
Step 1: 先用显式欧拉公式作预测,算出 yn1 yn h f ( xn, yn)
Step 2: 再将 yn1 代入隐式梯形公式的右边作校正,得到
yn1
yn
h 2
[
f
(
xn,
yn)
f ( xn1 ,
yn1 )]
工程数学 8
工程数学
yn1
yn
h 2
f (xn , yn