趙 學(xué) 杰
(德州學(xué)院 數(shù)學(xué)科學(xué)學(xué)院,山東 德州 253023)
數(shù)值方法中Runge-Kutta方法改進(jìn)的探討
趙 學(xué) 杰
(德州學(xué)院 數(shù)學(xué)科學(xué)學(xué)院,山東 德州 253023)
根據(jù)一階常微分方程數(shù)值解的收斂性與穩(wěn)定性,從固步長的Runge-Kutta法出發(fā),考慮變步長的Runge-Kutta法,討論了3種改進(jìn)算法,即折半步長Runge-Kutta法、Runge-Kutta-Fehlberg法和Zadunaisky方法.并且分別討論了3種變步長的Runge-Kutta法的精度及效率.
數(shù)值解;Runge-Kutta法;變步長的Runge-Kutta法;自適應(yīng)
這是固定步長的Runge-Kutta法在不考慮步長變化下常用的一種方法,如果考慮步長h的變化呢?
考慮到計(jì)算的簡(jiǎn)便與精度,一般不考慮步長h的變化,如經(jīng)典4階 Runge-Kutta法,因?yàn)橐龅胶侠磉x擇步長h的大小是一種比較復(fù)雜的問題,它與問題本身及所選用的數(shù)值方法都有關(guān)系,單從每一步看,步長越小,截?cái)嗾`差就越?。坏S著步長的縮小,在一定求解范圍內(nèi)所要完成的步數(shù)就增加了. 步數(shù)的增加不但引起計(jì)算量的增大[1],而且可能導(dǎo)致舍入誤差的嚴(yán)重積累.采取固定步長只是計(jì)算上的簡(jiǎn)便,在計(jì)算精度與效率上有較大的缺陷,在選擇步長時(shí),怎樣衡量和檢驗(yàn)計(jì)算結(jié)果的精度?如何依據(jù)所獲得的精度處理步長[2]?
考慮到如下兩個(gè)問題:1) 步長h取的太小,便增加了許多不必要的計(jì)算量.2) 步長h取得太大,其計(jì)算度很難得以保證.因此,考慮給定一個(gè)數(shù)值解與精確解的誤差容限,由這個(gè)誤差容限缺點(diǎn)數(shù)值計(jì)算中步長的選擇,在實(shí)際應(yīng)用中,精確解是未知的,可以考慮從另一角度入手,即每走一步進(jìn)程中,采取兩個(gè)不同的方式,通過比較結(jié)果決定選取步長h.
自適應(yīng)(即變步長h)的 Runge-Kutta方法有很多種,這里只討論 3種:折半步長 Runge-Kutta法、Runge-Kutta-Fehlberg法和Zadunaisky方法.
1.1 折半步長Runge-Kutta法:
由(1)式與(2)式有:
因此,我們得到變步長的Runge-Kutta方法的終止準(zhǔn)則:
1.2 R-K-F(Range-Kutta-Fehlberg法)
Fehlberg于1970年提出用5階Runge-Kutta法:
去估計(jì)4階Runge-Kutta法:
其中:
稱之為R-K-F法.
(3)式的局部截?cái)嗾`差為 o(h6),即:.
(4)式的局部截?cái)嗾`差為 o(h5),即:.
un+1的誤差階數(shù)比yn+1誤差階數(shù)高,因此,有可計(jì)算的誤差估計(jì):
于是,據(jù)(5)式及(6)式有:
利用 (8) 估計(jì)式選取合適的步長h,在 (7) 式中以qh代替h,其中q為正數(shù),但不能太接近與0,再由(8)式有.假設(shè)誤差容限TOL為給定的,則可選取q,使有:, 即:.實(shí)際使用時(shí),常取
由于假定un=yn,(3)減去(4)得:
1.3 Zadunaisky方法
這種方法為Zadunaisky于1976年給出的一個(gè)技巧,它可以附屬于任何一種p階時(shí)間步進(jìn)方法:
這種方法采取了另一種比較方式,即采用了p次插值多項(xiàng)式與4階Runge-Kutta的結(jié)合,現(xiàn)在我們用數(shù)值求解常微分方程
假定已知p+1個(gè)值 yn-p,yn-p+1,… yn,它們不必為等距點(diǎn)上的值,構(gòu)造一個(gè) p次插值多項(xiàng)式 p(ti)滿足p(ti)=yi(i = n - p,n - p + 1,… n),并考慮常微分方程組
以下指出兩個(gè)很重要事實(shí):
1) 常微分方程組(11)只是原始方程組的一個(gè)小擾動(dòng),由于數(shù)值方法中為p階, p(ti)為p+1個(gè)點(diǎn)的插值多項(xiàng)式,因此有 p(t) = y(t) + o(hp+1),所以只要f充分光滑,則:
2) 常微分方程組(12)的是精確解為z=p,通過代換即得證.
利用相應(yīng)的數(shù)值方法去逼近常微分方程組的解在zn+1的值,用的恰好是在計(jì)算yn+1使用到的條件:相同的初始值,相同的解非線性方程組的方法,相同的終止條件,結(jié)果為:
其中 g(t,z) = f(t,z) + [p'(t) - f(t,p(t)],由于g≈f,可以假設(shè)zn+1的誤差類似于yn+1的誤差,得到估計(jì)式.
考慮p=4時(shí)的情況:開始時(shí),只有一個(gè)初始條件,因此可考慮先用4階Runge-Kutta法算出前4個(gè)點(diǎn),再考慮使用Zadunaisky法.
存在常數(shù)k,使 τn+1= kh4, 即
假定誤差容限TOL確定,則可由q來確定步長h的選擇:
則可取q=1, y(tn+1)≈ yn+1,且下一步仍用這個(gè)h; 若
若不取yn+1,而是將步長縮小,為了確定步長縮小到不至于無限循環(huán)下去,我們給出了一個(gè)步長的下限,如hmin,若 h<hmin,則終止計(jì)算,并給出終止的信號(hào),當(dāng)過小時(shí),比TOL小到一定的程度時(shí),則增大步長h.
通過對(duì)上述問題的研究探討,引入了3種變步長的Runge-Kutta法的計(jì)算方法,同時(shí)給出了精度及效率,作為妥協(xié),如果能在計(jì)算過程中實(shí)時(shí)控制步長的大小,就可以在獲得較高的計(jì)算速度的同時(shí),保證較高的精度.
[1] 關(guān)治,陸金甫.數(shù)值分析基礎(chǔ)[M].北京:高等教育出版社,1998:428-445.
[2] 李慶揚(yáng),王能超,易大義.數(shù)值分析[M]. 4版.武漢:華中科技大學(xué)出版社,2006:112-120.
[3] 諸梅芳,屈興華,鄧乃惠,等.計(jì)算方法[M].北京:北京工業(yè)大學(xué)出版,1988:215-219.
[4] 袁慰平,孫志忠,吳宏偉,等.計(jì)算方法與實(shí)習(xí)[M]. 4版.北京:清華大學(xué)出版社,2005:167-173.
[5] GERALD C F, WHEATLEY P O.應(yīng)用數(shù)值分析[M].北京:機(jī)械工業(yè)出版社,2006:277-283.
(責(zé)任編校:李建明英文校對(duì):李玉玲)
Discussion on Improving Runge-Kutta Methods in Numerical Analysis
ZHAO Xue-jie
(School of Mathematical Sciences, Dezhou University, Dezhou, Shandong 253023, China)
Based on the convergence and stability of the numerical solution of a differential equation, from a solid step Runge-Kutta method, it has considered variable step Runge-Kutta method. Three modified algorithm are discussed. They are step reduced by half Runge-Kutta method, Runge-Kutta-Fehlberg method and Zadunaisky method. At the same time, the accuracy and efficiency of variable step Runge-Kutta method are discussed.
numerical solution; Runge-Kutta Method; variable step Runge-Kutta method; self-adaption
O241.8
A
1673-2065(2014)04-0023-04
10.3969/j.issn.1673-2065.2014.04.006
2014-04-25
山東省自然科學(xué)基金項(xiàng)目(ZR2010Al019);山東省優(yōu)秀中青年科學(xué)家科研獎(jiǎng)勵(lì)基金項(xiàng)目(BS2013HZ026)
趙學(xué)杰(1978-),男,河北棗強(qiáng)人,德州學(xué)院數(shù)學(xué)科學(xué)學(xué)院講師,理學(xué)碩士.