第7章_常微分方程初值问题的数值解法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

由于f ( x0 , y0 ) 及( x0 , y0 ) 已知,必有切线方程。
由点斜式写出切线方程: y y 0 ( x x0 ) dy dx
( x0 , y 0 )
y 0 ( x x0 ) f ( x0 , y 0 )
等步长为 h,则 x x0 h,可由切线算出 y1
' _
这里 y ( xi h ) f ( xi h , y ( xi h )) k 可以看作 y x 在 xi , xi 1 上的平均斜率,有微分 中值定理知
'
(7 - 9)式是精确表达式,但 是一般无法求得 y ( xi h ) ,因此,平均斜率 k 采用不同近似方法,就 可以得到 不同的计算公式。
数值解 法的 基本思想 :在初值问题 (7 -1)(7 - 2)解 的区间 a x b上插入一系列节点 a x0 x1 x2 xn b 在节点上用离散化方法将连续型微分方程 转化成离散型代数方程即 差分方 程 来求解。
具体作法 :利用 y ( x0 )求出 y ( x1 )的近似值 y1,再由 y1求出 y 2, ,直到求出 y n为止。该 算法称为 步进 式 或 递推 式算法。
' '
y ( xi ) phy ( xi ) ( h ) 代入( 7 - 10)得
' '' 2
yi 1 y ( xi ) h(1 2 ) y ' ( xi ) 2 ph 2 y '' ( xi ) ( h 3 )
又 y x 在 xi 2的二阶泰勒展开式为 y '' ( x i ) y ''' ( ) 2 y ( x ) y ( xi ) y ( xi )( x xi ) ( x xi ) ( x xi ) 3 2! 3 ! 介于 x与 xi 之间
选取适当的
(7-10)
1,, 2,p使其截断误差为 oh .
3
选取过程
假定对 k1 , k 2 做泰勒展开 k1 f ( x i , y i ) y ' k 2 f ( xi p , y i phk 1 ) f ( xi ph , y i phk 1 )
f ( xi , y i ) phf x ( xi , y i ) phk 1 f y ( xi , y i ) ( h 2 )
y ( xn 1 ) y ( xn )
xn1 xn
f (t , y (t )) dt (7 3)
积分用梯形公式,且令:yn 1 y ( xn 1 ), yn y ( xn ) 则得:yn 1 yn h 2 ( f ( xn , yn ) f ( xn 1 , yn 1 ))
y ( xn 1 ) y ( xn )
f (t , y (t )) dt (7 3)
对右端积分采用取左端点的矩形公式,则有:

xn1
xn
f (t , y (t )dt h f ( xn , y ( xn ))
2
h2
2 ( n 0,1, ), xn n xn 1
x , y为连续函数,且对任意的 y满足李普 希兹 ( Lipschitz )条件,即存在常数 L,使得 f ( x , y1 ) f ( x , y 2 ) L y1 y 2 由常微分方程理论知,初值问题 (7 -1)(7 - 2)的 解必存在且唯一。
数值方法的任务 :寻求唯一存在的解在离散节点 上的近似值 yi(i 0,1, 2, )。
预测 校正 y n 1 y n hf ( xn , y n ) y n 1 y n [ f ( xn , y n ) f ( xn 1 , y n 1 )] 2 h
也可表示为 yn 1 yn [ f ( xn , y n ) f ( xn h, y n hf ( xn , y n ))] 2
'

y '' ( xi ) ( h 3 ) ( ) 2! 比较( )和( )的系数即可发现,要 使公式具有 y ( xi 1 ) y ( xi ) hy ' ( xi ) 二阶精度只要下列条件 成立
7.2 尤拉方法
1. Euler 公式
初值问题: y f ( x, y ) a x b y ( x0 ) y 0 (7 1) (7 2)

xn 1 xn
y (t ) dt

xn 1 xn
f (t , y (t )) dt
xn 1 xn
或者表示为下列平均化形式 y p y n hf ( xn , y n ) yc y n hf ( xn 1 , y p ) y (y y )/ 2 p c n 1 (7 8)
h
例1 :用尤拉公式和改进的尤拉公式解初值问题 2x y y y y (0) 1 (0 x 1)
7.3 龙格-库塔(R-K)法
尤拉法
k1 f x i , y i
y i 1 y i hk1
局部截断误差O(h2)
考察改进的尤拉法,可以将其改写为:
y i 1 K1 K2 1 1 yi h K 1 K 2 2 2 f ( xi , yi ) f ( x i h, y i hK 1 )
y ( xn 1 ) y ( xn h ) y ( xn ) hf ( xn , y ( xn )) y ( ) 2 ( xn xn 1 ) h2
yn1 yn hf ( xn , yn )
Rn 1 y ( xn 1 ) yn 1 h2 2 y ( ) O ( h 2 )
解:取步长 h 0.1, 尤拉公式为: y n 1 y n h ( y n 2 xn yn )
2 xn y p yn h ( yn y ) n 2 x n 1 改进的尤拉公式为: y c y n h ( y p ) yp 1 y n 1 ( y p y c ) 2
y1 y0 hf ( x0 , y0 )
逐步计算出 y ( x)在 xn 1点的值: y y n 1 y n hf ( xn , y n ) n 0,, , 1 2
用分段的折线逼近函数,此为“折线法”而非“切线 法”,除第一个点是曲线上的切线,其它都不是。
(2)梯形公式
h 2 y(i ),则:
y(n )
当h充分小,舍去误差项R1
y ( xn 1 ) y ( xn ) h f ( xn , y ( xn ))
用 y n 1 , y n 代替 y ( xn 1 ), y ( xn ), 得出初值问题(7 -1)(7 - 2) 的离散化形式:
_
启示
如果在区间内多取几个点的斜率值,然后把它们的线性组合作为平均斜率 的近似值,则有可能构造出更高精度的计算公式,这就是龙格-库塔法的基 本思想
二阶龙格-库塔公式
yi1 yi h(1k1 2 k 2 )
k1 f ( xi , yi )
k 2 f ( xi ph, yi phk1 )
y0 y ( x0 ) ( 7 4) yn 1 yn h ( f ( xn , yn ) ( n 0 ,1, 2 ,)
(1) 几何意义 由 (x0 , y0 ) 出发取曲线 y y ( x)的切线(存在),则斜率 dy dx
( x0 , y0 )
f ( x0 , y0 )
局部截断误差O(h3)
增加计算f(x,y)在不同点的 值,能否提高局部截断误差的阶?
有微分中值定理,存在 0,1)使得 ( y ( xi 1 ) y ( xi ) ' y ( xi h ) f ( xi h, y ( xi h )) h 所以
y ( xi1 ) y ( xi ) hf ( xi h, y ( xi h)) (7 - 9)
微分方程离散化常用方法
(1 )数值积分 用数值积分方法离散 化 : dy dx

xn 1 xn
dx

xn 1 xn
f ( x , y )dx
( n 0, 1, )
用yn 1 , yn 代替y ( xn 1 ), y ( xn ), 对右端积分采用 取左端点的矩形公式

则有
xn1
xn
f ( x, y )dx h f ( xn , yn )
yn 1 yn hf ( xn , yn ) ( n 0,1,)
(2)数值微分 dy dx
( xn , yn )

y ( xn 1 ) y ( xn ) xn 1 xn
f ( xn , y ( xn ))
2
y ( xn ) hf ( xn , y ( xn ))
Biblioteka Baidu
2
y ( xn )
取 h 的线性部分,且 y n y ( xn ) 得 y ( xn )的近似值: y n 1 y n hf ( xn y ( xn ) 估计截断误差。 n 0,1, 2, Taylor 展开法不仅可得到求数值解的公式,且容易
第7章 常微分方程初值问题的数值解法
7.1 7.2 7.3 7.4 引言 尤拉方法 龙格—库塔法 收敛性和稳定性
7.1 引 言
ODE的求解: 分离变量法、齐次方程的求解、可降阶高阶微分方程 求解——特殊类型的微分方程。 微分方程的近似解法: (1) 近似解析法:逐次逼近法、级数解法 (2) 数值解法:求离散点上的近似值。
2. Euler方法的截断误差
(1)局部截断误差
R 在一步中产生的误差而非累积误差: n 1 y ( xn 1 ) yn 1
其中, y n 1是当 y n y ( xn )(精确解 )时由 Euler法求出 的值,即 y n 无误差。
将 y ( xn 1 )在 xn点 Taylor 展开:
定义 : 数值方法的局部截断误差为: Rn 1 O ( h p 1 ) 称该方法具有 p阶精度 或 p阶方法 。显然,尤拉 公式
具有 一阶精度 ,梯形公式具有二阶精度。
3. 改进的尤拉方法 梯形公式虽然提高了精度,但算法复杂。而在实际计 算中只迭代一次,这样建立的预测—校正系统称作改 进的尤拉公式。
h
3
Rn 1 y ( xn 1 ) y n 1
12
y ( )
xn xn 1
与 Euler法结合,形成迭代算法,对 n 0,2 1,,
(0) y n 1 y n hf ( xn , y n ) (7 5) ( k 1) h (k ) y n 1 y n ( f ( xn , y n ) f ( xn 1 , y n 1 ) k 0 ,1, 2 , 2
定解问题:微分方程+定解条件(初值条件、边界条件) 分别称为初值问题和边值问题。
一阶常微分方程的初值问题: y f ( x, y ) a x b y ( x0 ) y 0 (7 1) (7 2)
函数 f ( x , y )在带形区域
( x, y ) a x b, y
用 h xn 1 xn , yn y ( xn ), yn 1 y ( xn 1 ) 代替, 则: yn 1 yn h f ( xn , yn )
yn 1 yn hf ( xn , yn ) n 0, 1, 2,
(3)在 xn附近 y ( x )的 Taylo r 展开: y ( xn h ) y ( xn ) h y ( xn ) h2 2 y ( xn ) h
相关文档
最新文档