资源描述:
《ch6-3Runge-Kutta方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Runge-Kutta方法Runge-Kutta方法(单步法)(高精度、适合于变步长、多步法起步)4-1RK方法思想:对于y'=f(x,y)y(a)=g0x∈[a,b](1)由Lagrange中值公式有y(xk+1)-y(xk)=hy’(ξk)y(xk+1)=y(xk)+hf(ξ,y(ξ))(4-1)令K=f(ξ,y(ξ)),为了获得高精度的方法,必须选择准确的K。做法:用[xk,xk+1]上若干个点的斜率ki的线性组合逼近K,于是有k1=f(xk,yk)k2=f(xk+c2h,yk+a2,1hk1)k3
2、=f(xk+c3h,yk+a3,1hk1+a3,2hk2)…ks=f(xk+csh,yk+as,1hk1+…+as,s-1hks-1)把它们作线性组合K=b1k1+b2k2…+bsks(4-2)作为yk到yk+1的“增量”形成一类显式单步法,称为RK方法。(4-3)4-2参数选取原则(4-3)式中参数ci,ai,j,bi的选取原则将(4-3)式右端项ki在(xk,yk)处作二元函数的Taylor展开,按h的幂次重新整理,使得与微分方程(1)的解y=y(x)在x=xk处的Taylor展开式比较h的系数,希望
3、有尽可能多的重合项,即要求r1=fk,r2=fk’,r3=fk’’,r4=fk’’’,…这样得到(4-3)式叫做S级递推公式。如果rj=fk(j-1),j=1,…,p而rp+1≠fk(p),则递推公式(4-3)具有p阶精度。(4-4)(4-5)4-3RK方法推演通常使用较多的是S=2,3,4情况。当s=2时,二级RK算法k1=f(xk,yk)k2=f(xk+c2h,yk+a2,1hk1)yk+1=yk+b1hk1+b2hk2将k2在(xk,yk)作二元函数Taylor展开将k1,k2代入(3-6),注意到
4、k1=f,得右乘上hb2(3-6)欲使Tk+1的阶数尽可能高,应该选取b1,b2xk,c2,a2,1使h1,h2的系数为零,即再将y(xk+1)在xk作一元函数Taylor展开c2自由取值,得到不会等于零由局部误差看,无论怎样选取c2都不会使h3系数为零,可见S=2的RK方法的精度阶数不会超过2阶。常用的是:取c2=1/2,得到中点法取c2=1/3,得到Heun法取c2=1,得到改进的Newton法4-4四阶RK方法S=4时,可达到4阶精度,有经典4阶KR方法书上例题[6,7]改进牛顿方法.4阶龙格库塔方
5、法,并且给出两种方法的比较。一句话,解决好一个实际课题不容易,实践性非常强,教科书不会全部都写出来的!例题[6-8],[6-9]用改进的Euler法和经典四阶R-K方法求解PP298-2994-5局部误差Tk+1=arhrr+1+o(hr+2)实际上Tk+1、ar都依赖于f(x,y)。例如二级2阶方法4-6稳定性单步法稳定多项式是一次的,只有一个根。只讨论绝对稳定区间。该方法用于检验方程y’=λy,y(a)=g0x∈[a,b]时,当λ>0时y(x)=g0eλ(x-a)→∞,(x→∞)当yk=g0eλkh→
6、∞,(k→+∞)时,发散;当λ<0时y(x)=g0eλ(x-a)→0,(x→∞)可见当yk→0,(k→+∞)时,方法对于确定的λh是绝对收敛的。例如[6-9]二级2阶法用于检验方程y’=λyk1=f(xk,yk)=λykk2=f(xk+c2h,yk+a2,1hk1)=λ(yk+a2,1hλyk)yk+1=yk+b1hk1+b2hk2=yk+b1hλyk+b2hλ(yk+a2,1hλyk)=(1+b1hλ+b2hλ+b2hλa2,1hλ)yk=(1+hλ+hλhλ/2)yk=…==(1+hλ+hλhλ/2)
7、k+1y0可见
8、1+hλ+hλhλ/2
9、<1,稳定。S=2时可见
10、1+hλ+hλhλ/2
11、<1,稳定。-1<1+hλ+hλhλ/2<1-20hλ>-2hλ>01+hλ/2<0hλ<-2不可能故绝对稳定区间是(-2,0)对于一般的r阶KR方法yk=y(x)时,y(xk+1)-yk+1=O(hr+1)所以S级r价KR方法应用于实验方程有yk+1=Rs,r(λh)yk其中称为RK方法的传递函数。其中系数vk依赖于特殊方法中的系数。若s=r则RK方法的绝对稳定区间的
12、条件为
13、Rs,r(λh)
14、<1于是对于所有s=r的r阶方法,他们的绝对稳定区间是相同的,例如,r=s=3时绝对稳定区间为(-2.51,0)例如,r=s=4时绝对稳定区间为(-2.78,0)4,46预估-校正法隐格式线性多步法yk+1=a0yk+a1yk-1+…+apyk-p+h(b-1y’k+1+b0y’k+b1y’k-1+…+bpy’k-p)(2)I起步时,yi,i=0,1,…,p要用单步法计算[启动];II之后,每一步都要