西安石油大学现代数值计算方法第8章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题的解y(x)在区间[a,b]中的点列
xi xi1 h(i i 1,2, n)上的近似值 y.i以下设 hi
不变,记为h-步长 。
定理:如果f(x,y)满足李普希兹(Lipschitz)条件
f (x, y1) f (x, y2 ) L y1 y2
则上述微分方程有唯一解y(x)
假设解y(x)在区间[a,b]上是存在而且唯一的, 并且具有充分的光滑度,因此,要求f(x,y)也充
y(0) n1
yn
hf
(xn ,
yn )
y(k 1) n1
yn
h[ 2
f
(xn , yn)
f
( xn1 ,
y(k) n1
)](k
0,1,2,
;n
0,1,2,
)
使用上式时,先用第一式算出xn+1处yn+1的初始近
y(0) n 1
似
再用第二式反复迭代,得到数列 用 y(k1) n1 k 0
y (k1) n1
y(k) n1
来控制迭代次数,这里为允许误差。把满足误差要求的
y(k 1) n1
作为y(xn+1)的近似值yn+1.类似地可以得出yn+2,yn+3,…
可以证明,当f(x,y)满足Lipschitz条件,即:
f L, 且 h L 1
y
2
(L为Lipschitz常数)时,上述数列收敛。
从而得到Euler公式。
3、数值微分法
y y ( xn1)
( xn )
xn1 xn
y(xn )
f (xn , y(xn ))
4、几何方法
Fra Baidu bibliotek过点(xn,yn)作以f(xn ,yn)为斜率的直线方程:
y yn f (xn , yn )(x xn )
将x=xn+1处该直线上的函数值做为y(xn+1)的近似
定义2:对单步法,在 yn y(xn)的假设下,
R n
y(xn1)
yn1
称为在
xn处的局部截断误差。
(P232定义1)
Remark1: Euler法的局部截断误差为(由泰勒余项):
Rn
y( xn1)
yn1
h2 2
y(n )
n [xn , xn1]
Remark2: 梯形方法的局部截断误差为(由梯形积分)
k 1
f
(xn ,
yn )
y'(xn )
而
k2 f (xn h, yn hk1)
f (xn h, y(xn ) hk1)
f
(
xn
,
y
(
xn
))
h
x
f
(xn ,
y(xn )) hk1
k步的值。
(3)显式格式与隐式格式。
§8.1 欧拉法与梯形法
一、欧拉(Euler)法
设节点为 xn x0 nh(n 0,1,2,3 ),得欧拉方法计算公 式为: yn1 yn hf(xn,yn)(n 0,1,2,3, ) 下面通过几种常用的方法来推导该公式。
1、泰勒展开法
假设在 x附n 近把y(x)做Taylor展开,有:
分光滑。初值问题的解析解(理论解)用 y(x表n) 示, 数值解法的精确解用 y表n 示。
常微分方程数值解法一般分为:
(1)一步法:在计算yn1 时,只用到xn1 ,xn和 y,n 即前一步的值。
(2)多步法:计算 yn1 时,除用到 xn1,xn 和 yn 以外,还要用 xn p和 yn p ( p 1,2 k; k 0) ,即前
由
取h的线性部分,并用 y表n 示 y的(x近n ) 似值,得
2、数值积分法
从xn 到 xn +h对等式 y´(t )=f(t,y(t)) 进行积分得到
y(xn h) y(xn )
xn1 f (t, y(t))dt
xn
再利用左矩形公式,得
y(xn h) y(xn ) hf (xn, y(xn ))
第八章
常微分方程初值问题的数值解法
§8.0 概述 §8.1 欧拉法与梯形法
§8.2 泰勒展开法与龙格-库塔 (Runge–Kutta)方法
§8.3 线性多步法 §8.4 数值算例
§8.0 概述
本章着重讨论一阶常微分方程初值问题
dy dx
f(x,y)
a
xb
y(x0) y0
的数值解法。 常微分方程初值问题的数值解是求上述初值
yn1
yn
hf
(xn ,
yn )
yn1
yn
h[ 2
f
(xn , yn)
f
( xn 1 ,
yn 1 )]( n
0,1,2,
)
第一式称为预估公式,第二式称为校正公式。
四、方法的误差估计、收敛性和稳定性
定义1:n y(xn) yn 为 xn某一数值方法在xn处
的整体截断误差(不考虑舍入误差的影响)。
值,则有Euler公式。这实质上是在每个小区间上利 用折线来代替曲线的结果,故Euler法又称Euler折线 法。
二、梯形法
在式 y(xn1)
y(xn )
xn1 xn
f(中t,,y将(积t))分d用t 梯形公式来
代替,则有
y( xn1 )
y(xn )
h 2
[
f
(xn ,
y(xn ))
f
( xn1 ,
证明:由 yn1
yn
h[ 2
f
(xn ,
yn )
f
( xn1 ,
yn 1 )
]
和 y[k1] n1
yn
h[ 2
f
(xn , yn)
f
( xn1 ,
y(k) n1
)]
有:
y (k 1) n1
yn1
1h 2
f
( xn1 ,
y(k) n1
)
f (xn1, yn1)
1 2
h
f y
(
xn1
,
)(
y (k ) n 1
Rn
y( xn1)
yn1
h3 12
y(n )
n [xn , xn1]
用泰勒展开法推导Euler预估-校正 格式的局部截断误差
改写Euler预估-校正公式为:
yn1
yn
h 2
(k1
k2 )
k1 f (xn , yn )
k2 f (xn h, yn hk1)
在 yn y(xn ) 的假定下,
yn1 )
1 2
hL
y(k) n 1
yn1
(介于yn( k1) 与yn 1之间)
反复使用不等式有:
y (k 1) n1
yn1
1 2
hL
y(k) n 1
yn1
( 1 hL)k 1 2
y (0) n 1
yn1
0
三、Euler预估-校正格式
实用中,在h 取得较小时,用梯形公式计算,第二式 只迭代一次就结束,得到Euler预估-校正格式:
y( xn1 ))
h3 12
f ''(, y())
(xn , xn1)
从而得到梯形公式:
yn1
yn
h[f 2
(xn ,
yn )
f
(xn1, yn1)
n 0,1,2,
梯形方法关于yn+1是隐式的,而Euler方法是显式 的。一般情形下不容易从上式解出yn+1,因而可将上
式与Euler公式联合使用,即
xi xi1 h(i i 1,2, n)上的近似值 y.i以下设 hi
不变,记为h-步长 。
定理:如果f(x,y)满足李普希兹(Lipschitz)条件
f (x, y1) f (x, y2 ) L y1 y2
则上述微分方程有唯一解y(x)
假设解y(x)在区间[a,b]上是存在而且唯一的, 并且具有充分的光滑度,因此,要求f(x,y)也充
y(0) n1
yn
hf
(xn ,
yn )
y(k 1) n1
yn
h[ 2
f
(xn , yn)
f
( xn1 ,
y(k) n1
)](k
0,1,2,
;n
0,1,2,
)
使用上式时,先用第一式算出xn+1处yn+1的初始近
y(0) n 1
似
再用第二式反复迭代,得到数列 用 y(k1) n1 k 0
y (k1) n1
y(k) n1
来控制迭代次数,这里为允许误差。把满足误差要求的
y(k 1) n1
作为y(xn+1)的近似值yn+1.类似地可以得出yn+2,yn+3,…
可以证明,当f(x,y)满足Lipschitz条件,即:
f L, 且 h L 1
y
2
(L为Lipschitz常数)时,上述数列收敛。
从而得到Euler公式。
3、数值微分法
y y ( xn1)
( xn )
xn1 xn
y(xn )
f (xn , y(xn ))
4、几何方法
Fra Baidu bibliotek过点(xn,yn)作以f(xn ,yn)为斜率的直线方程:
y yn f (xn , yn )(x xn )
将x=xn+1处该直线上的函数值做为y(xn+1)的近似
定义2:对单步法,在 yn y(xn)的假设下,
R n
y(xn1)
yn1
称为在
xn处的局部截断误差。
(P232定义1)
Remark1: Euler法的局部截断误差为(由泰勒余项):
Rn
y( xn1)
yn1
h2 2
y(n )
n [xn , xn1]
Remark2: 梯形方法的局部截断误差为(由梯形积分)
k 1
f
(xn ,
yn )
y'(xn )
而
k2 f (xn h, yn hk1)
f (xn h, y(xn ) hk1)
f
(
xn
,
y
(
xn
))
h
x
f
(xn ,
y(xn )) hk1
k步的值。
(3)显式格式与隐式格式。
§8.1 欧拉法与梯形法
一、欧拉(Euler)法
设节点为 xn x0 nh(n 0,1,2,3 ),得欧拉方法计算公 式为: yn1 yn hf(xn,yn)(n 0,1,2,3, ) 下面通过几种常用的方法来推导该公式。
1、泰勒展开法
假设在 x附n 近把y(x)做Taylor展开,有:
分光滑。初值问题的解析解(理论解)用 y(x表n) 示, 数值解法的精确解用 y表n 示。
常微分方程数值解法一般分为:
(1)一步法:在计算yn1 时,只用到xn1 ,xn和 y,n 即前一步的值。
(2)多步法:计算 yn1 时,除用到 xn1,xn 和 yn 以外,还要用 xn p和 yn p ( p 1,2 k; k 0) ,即前
由
取h的线性部分,并用 y表n 示 y的(x近n ) 似值,得
2、数值积分法
从xn 到 xn +h对等式 y´(t )=f(t,y(t)) 进行积分得到
y(xn h) y(xn )
xn1 f (t, y(t))dt
xn
再利用左矩形公式,得
y(xn h) y(xn ) hf (xn, y(xn ))
第八章
常微分方程初值问题的数值解法
§8.0 概述 §8.1 欧拉法与梯形法
§8.2 泰勒展开法与龙格-库塔 (Runge–Kutta)方法
§8.3 线性多步法 §8.4 数值算例
§8.0 概述
本章着重讨论一阶常微分方程初值问题
dy dx
f(x,y)
a
xb
y(x0) y0
的数值解法。 常微分方程初值问题的数值解是求上述初值
yn1
yn
hf
(xn ,
yn )
yn1
yn
h[ 2
f
(xn , yn)
f
( xn 1 ,
yn 1 )]( n
0,1,2,
)
第一式称为预估公式,第二式称为校正公式。
四、方法的误差估计、收敛性和稳定性
定义1:n y(xn) yn 为 xn某一数值方法在xn处
的整体截断误差(不考虑舍入误差的影响)。
值,则有Euler公式。这实质上是在每个小区间上利 用折线来代替曲线的结果,故Euler法又称Euler折线 法。
二、梯形法
在式 y(xn1)
y(xn )
xn1 xn
f(中t,,y将(积t))分d用t 梯形公式来
代替,则有
y( xn1 )
y(xn )
h 2
[
f
(xn ,
y(xn ))
f
( xn1 ,
证明:由 yn1
yn
h[ 2
f
(xn ,
yn )
f
( xn1 ,
yn 1 )
]
和 y[k1] n1
yn
h[ 2
f
(xn , yn)
f
( xn1 ,
y(k) n1
)]
有:
y (k 1) n1
yn1
1h 2
f
( xn1 ,
y(k) n1
)
f (xn1, yn1)
1 2
h
f y
(
xn1
,
)(
y (k ) n 1
Rn
y( xn1)
yn1
h3 12
y(n )
n [xn , xn1]
用泰勒展开法推导Euler预估-校正 格式的局部截断误差
改写Euler预估-校正公式为:
yn1
yn
h 2
(k1
k2 )
k1 f (xn , yn )
k2 f (xn h, yn hk1)
在 yn y(xn ) 的假定下,
yn1 )
1 2
hL
y(k) n 1
yn1
(介于yn( k1) 与yn 1之间)
反复使用不等式有:
y (k 1) n1
yn1
1 2
hL
y(k) n 1
yn1
( 1 hL)k 1 2
y (0) n 1
yn1
0
三、Euler预估-校正格式
实用中,在h 取得较小时,用梯形公式计算,第二式 只迭代一次就结束,得到Euler预估-校正格式:
y( xn1 ))
h3 12
f ''(, y())
(xn , xn1)
从而得到梯形公式:
yn1
yn
h[f 2
(xn ,
yn )
f
(xn1, yn1)
n 0,1,2,
梯形方法关于yn+1是隐式的,而Euler方法是显式 的。一般情形下不容易从上式解出yn+1,因而可将上
式与Euler公式联合使用,即