第3章03龙格-库塔方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hy(xn )
1 2
h2 y(xn )
O(h3 )
比较,要使局部截断误差
y( xn1 ) yn1 O(h3 )
从而有构造二阶龙格-库塔方法所需条件为:
p 1
2
p 1/ 2 为不定方程,有无穷多个解,对应一族二阶龙格-库塔格式。
yn
1
yn h[(1 )k1
k1 f ( xn , yn )
提供 y(xn p ) 的预报值 yn p ,有 yn p yn phk1 ,因此 k2 f (xn p , yn p ) f (xn ph, yn phk1)
这样有计算公式:
yn1 yn h[(1 )k1 k2 )
k1 f (xn , yn ), k2 f (xn ph, yn phk1)
k2 ]
k2 f ( xn ph, yn ቤተ መጻሕፍቲ ባይዱphk1)
如:(1)取 p 1, 1 ,得
2
yn1
yn
h 2
(k1
k2 )
k1 f (xn , yn )
k2 f (xn h, yn hk1)
这就是改进的欧拉格式。
(2)取 p 1 , 1,得
2
yn1
yn
hk2
k1 f (xn , yn )
第三章 常微分方程的差分方法
3.1 欧拉方法 3.2 改进的欧拉方法 3.3 龙格-库塔方法 3.4 亚当姆斯方法 3.5 收敛性与稳定性 3.6 方程组和高阶方程的情形 3.7 边值问题
3.3 龙格-库塔(Runge-Kutta)方法 3.3.1 龙格-库塔方法的设计思想 3.3.2 二阶龙格-库塔方法 3.3.3 三阶龙格-库塔方法 3.3.4 四阶龙格-库塔方法 3.3.5 变步长的龙格-库塔方法
3.3.2 二阶龙格-库塔方法 考察[xn , xn1] 内一点 xn p xn ph ,其中 0 p 1
用 xn , xn p 点的斜率 k1, k2 加权平均,得平均斜率,即
yn1 yn h[(1 )k1 k2 ] 式中 为待定系数。取 k1 f (xn , yn ) ,k2 f (xn p , yn p ) ,先用欧拉法
(k1
k2 )
,而
xn1 处的斜率值
k2
则通过已知信息
yn
来预测。
龙格-库塔方法的设计思想
利用 f (x, y) 在某些点的函数值的线性组合构造公 式,得到 y(xn1) 的近似值 yn1 ,增加调用 f (x, y) 的次数, 可提高精度的阶数。
设法在[xn , xn1] 这一步内多预报几个点的斜率,然后 将其加权平均,作为平均斜率,则可构造出具有更高精 度的计算公式。
为 进 一 步 提 高 精 度 , 在 [xn , xn1] 内 除 点 xn p 外 再 增 加 一 点 xnq xn qh , 其 中 p q 1 , 用 三 个 点 xn , xn p , xnq 的 斜 率 k1, k2 , k3 加权平均,得平均斜率,即
yn1 yn h[(1 )k1 k2 k3 ] 式中 , 为待定系数。
k2
f
( xn
h 2 , yn
h 2 k1)
该公式称为变形的欧拉格式(或中点格式)。
(3)取 p 2 , 3 ,得
34
yn1
yn
1 4
h(k1
3k2 )
k1 f ( xn , yn )
k2
f (xn
2 3
h,
yn
2 3
hk1
)
这就是休恩(Heun)公式。
3.3.3 三阶龙格-库塔方法
p, q, , , ,使 yn1 yn h[(1 )k1 k2 k3 ] 具有三阶精
度,得到一族三阶龙格-库塔格式。
如当 p 1 , q 1, 4 , 1 , 2 时,其中的一种为:
取 k1 f (xn , yn ) , k2 f ( xn p , yn phk1 ) ,用 k1, k2 的加权平均 得出 [xn , xnq ] 上的平均斜率,从而得到 y(xnq ) 的预报值 ynq ,有 ynq yn qh[(1 )k1 k2 ]
再通过计算 f 得到 k3 f (xnq , ynq ) ,运用泰勒展开方法选择参数
调用 2 次函数。有 2 阶精度。
龙格-库塔方法的设计思想
将改进欧拉法(预报-校正公式)改写成平均化的形式
yn1
yn
h 2
(k1
k2 )
k1 f (xn , yn ), k2 f (xn1, yn hk1)
用 xn 与 xn1 两个点的斜率值 k1 与 k2 取算术平均作为平均斜率
k*
1 2
其中含有两个待定参数,选取合适的值,使公式有高的精度。
仍假定 yn y(xn ) ,则有: k1 f (xn , yn ) y(xn ) ,
并将 k2 在(xn,yn)处进行二元泰勒展开,有:
k2 f (xn ph, yn phk1) f (xn , yn ) ph[ fx (xn , yn ) f (xn , yn ) f y (xn , yn )] O(h2 ) y(xn ) phy(xn ) O(h2 )
这时,有
yn1 yn h[(1 )k1 k2 ] y( xn ) hy'( xn ) ph2 y"( xn ) O(h3 )
根据局部截断误差的定义:
由 yn1 y(xn ) hy(xn ) ph2 y(xn ) O(h3)
和 y(xn1) 的泰勒展开式
y( xn1 )
y(xn )
龙格-库塔方法的设计思想
对一阶常微分方程初值问题
y f (x, y)
y
(
x0
)
y0
改进欧拉法,预报-校正公式
y
n+1
yn
h
f
(xn ,
yn )
h
yn1 yn 2 [ f (xn , yn ) f (xn1, yn+1)]
写成
yn1
yn
h 2
(k1
k2 )
k1 f (xn , yn ), k2 f (xn h, yn hk1)
3.3 龙格-库塔(Runge-Kutta)法
3.3.1 龙格-库塔方法的设计思想
对一阶常微分方程初值问题
y y
(
x0
f )
(x, y y0
)
,
欧拉公式 yn1 yn hf (xn , yn ) ,
写成
yn1 k1
f
yn hk1 (xn , yn )
,
调用 1 次函数。有 1 阶精度。