当前位置:
文档之家› 常微分方程初值问题(end)(1)
常微分方程初值问题(end)(1)
对照标准形式 y n+1=y n+hф (xn,y n,h) 。若取 ф (x,y,h)=y'(x)+(h/2!)y''(x)+......+(hp-1/p!)y(p)(x)
并以y n代替y(xn),则得到一个p阶近似公式
y n+1=y n+hф (xn ,y n ,h) (n=0,1,2,......) (*)
将 y(x n+1)及ф (xn ,y(xn),h)在 xn 作 Taylor 展开:
ф (xn,y(xn);h)=(c1+c2)y'(xn)+c2(a2hfx+b2 2) hf f)+O(h 因 为 y(xn+1) 在 xn 处 的 Taylor 1 y 展开为 y(xn+1)=y(xn)+hy'(xn)+(h2/2!)y''(xn)+O(h3) 由显式单步法在 xn+1的局部截断误差定义有: Tn+1=y(xn+1 )-y(xn )-hф (xn ,y(xn ),h) =h(1-c1-c2)y'(xn )+h2[(1/2-a2c2)fx+(1/2c2b21)fyf]+O(h3) 显然,若要求Tn+1=O(h3),则应有 c1+c2=1 c2a2=1/2 c2b21=1/2
ф (x,y,h)=c1f(x,y)+c2f(x+a2h,y+b21hf(x,y))
若要求式(**)达到二阶精度, 则只要局部截断误 差 Tn+1=O(h3)。 f(xn,y(xn))=y'(xn) f(xn+a2h,y(xn)+b21hK1) =f(xn,y(xn)+a2hfx+b21hf· fy+O(h2)) 其中 fx=fx(xn,y(x n)), fy=fy(xn,y(xn)), f=f(xn,y(xn)) 由此得:
科学与工程计算方法
北京科技大学应用学院数力系 卫鸿儒 Weihr168@
课程性质和计划(续)
概论
泛函分析中若干概念 线性方程组的解法 计算方法 方程组及非 线性方程的 数值解法
非线性方程的求根方法
矩阵特征值与特征向量的计算 数值逼近方法 插值法 最佳平方逼近
数值积分与数值微分 常微分方程初值问题的数值解法
m
使用不同的方法确定 参数 cr,ar,brs 可使上式成 为不同阶的 R-K 方法。在 m 级 R-K 方法中,最著名的 是经典 R-K 方法:
h y n 1 y n K 1 2 K 2 2 K 3 K 6 K 1 f xn , yn 1 1 K 2 f xn h, yn hK 1 2 2 1 1 K 3 f xn h, yn hK 2 2 2 K f x h, y hK n n 3 4
(3) m级显式Runge-Kutta 方法
仿照二级 R-K 方法,在 [xn , xn+1 ] 上 , 取 f 在 m 个 点的函数值做线性组合,即得到m级R-K方法:
y n 1 y n h c r K r r 1 K 1 f xn , yn r 1 K f x ha , y h b rs K s r n r n s 1 r 2 , 3, , m
上方程组含有 3 个方程, 4 个未知数, 其 解是不唯一的。若取 c2=α 为自由参数,则得 它的一组解为: c1=1-α , c2=α , a2=b21=1/(2α ) (***) 满足条件( ***) 的 (**) 式称为二级二阶 R-K 方法。特别当α =1/2 时,公式(**)即是 前面介绍的改进的 Euler 方法。
当α =1时,c1=0,c2=1,得 yn+1= yn+hK2 n=0,1,….N-1 K1=f(xn,yn) K2=f(xn+h/2,yn+hK1/2) 这就是变形的欧拉方法或中点方法。
二级 R-K 方法是显式单步式,每前进一步 需要计算两个函数值。由上面的讨论可知, 适当选择四个参数 c1,c2,a2,b21, 可使每步计 算两次函数值的二阶 R-K 方法达到二阶精度。 能否在计算函数值次数不变的情况下 , 通过 选择四个参数 ,使得二阶R-K 方法的精度再提 高呢? 答案是否定的。无论四个参数怎样选择, 都不能使公式(**)提高到三阶。 这说明每一步计算两个函数值的二阶 R-K 方法最高阶为二阶。若要获得更高阶得数值 方法,就必须增加计算函数值的次数。
(2)二级二阶R-K方法
在[xn , xn+1 ]上,取f(x,y)在两个点的 函数值作线性组合,即得到二级R-K方法: y n+1=y n+h(c1K1+c2K2) K1=f(xn,y n) ( * * ) K2=f(xn+a2h,y n+b21hK1) 其中 c1,c2,a2,b21 为待定参数。对照式 (*) 有:
3、Runge-Kutta 方法
(1)基本思想
Runge-Kutta 方法是一种高精度的单步 法,简称R-K法。得到高精度方法的一个 直接想法是利用Taylor展开。 假设式 y' =f(x,y) (a≤x≤b) 中的 f(x,y) 充分光滑,将y(xቤተ መጻሕፍቲ ባይዱ+1)在x n点作 Taylor展开:
y(xn+1)=y(xn)+hy'(xn)+(h2/2!)y''(xn)+.. ....+(hp/p!)y(p)( xn)+ ..... 其中 y'(x)=f(x,y(x)) y ''(x)=[f(x,y(x))] 'x= fx+f· fy ............................... y(p)(x)=[f(x,y(x))](p)x
显然 p=1 时,式(*)就是 y n+1=y n+hf(xn,y n) 它即为我们熟悉的 Euler 方法。 当 p≥2 时,要利用公式(*)就需要计 算 f(x,y)的高阶微商。 这个计算量是很 大的。因此,利用式(*)构造高阶公式 是不实用的。
R-K 方法不是直接使用 Taylor 级数 , 而是利用它的思想 ,即计算 f(x,y) 在不 同结点的函数值 ,然后作这些函数值的 线性组合 , 构造近似公式 , 式中有一些 可供选择的参数。将近似公式与 Taylor 展开式相比较 , 使前面的若干项 密合,从而使近似公式达到一定的精度。 下面以二级二阶R-K方法为例说明 这一方法的基本思想。