曾 光,陳朝敏,雷 莉,許 曦
(東華理工大學(xué) 理學(xué)院,江西 南昌 330013)
眾所周知,許多科學(xué)與工程計算問題最終可歸結(jié)為求解帶初值問題的常微分方程,而Runge-Kutta方法是求解這類方程的重要方法之一。1895年,德國數(shù)學(xué)家C.D.T Runge發(fā)表了關(guān)于微分方程數(shù)值解法的經(jīng)典論文,成為常微分方程初值問題Runge-Kutta方法的開山之作。最早的求解帶初值問題的常微分方程的隱式Runge-Kutta方法是1824年由Chuchy給出的隱式Euler方法,1964年Butcher和Kuntzmann給出了對所有的正整數(shù)s都存在2s階的隱式Runge-Kutta方法。此后有很多學(xué)者加入到這類問題的研究,在精度、計算效率、穩(wěn)定性等方面Runge-Kutta方法都不斷被改進(jìn)(Ramos et a., 2007),Goeken 等(1999)考慮了自治方程,在計算級值時加入導(dǎo)數(shù)信息,在不增加函數(shù)計算次數(shù)的前提下提高了計算精度,得到了一類級階Runge-Kutta方法。
在Kutta提出Runge-Kutta方法的一般格式中,系數(shù)的求解是通過Taylor展開式求得,其思想簡單,易理解,不過其不足點是計算復(fù)雜度較高。在本文中,先通過第二類切比雪夫正交多項式構(gòu)造了未知函數(shù)的級數(shù)展開式,然后運用高斯-洛巴托數(shù)值積分公式得到一種滿足上述階條件的改進(jìn)Runge-Kutta法,并通過數(shù)值算例驗證了改進(jìn)Runge-Kutta方法是有效的算法,具有4階精度。
首先對階條件進(jìn)行討論,為得到一般格式的Runge-Kutta方法的階條件,奚梅成(2003)利用Taylor展開式比較同階系數(shù)的方法,其思想易理解,不過計算比較繁瑣。在本文中根據(jù)Butcher (2003)中給出的Butcher有根樹理論,導(dǎo)出了Runge-Kutta方法的階條件。
定義1 樹t的階ρ(t)和稠密度r(t)滿足:
(1)ρ(τ)=γ(τ)=1;
n2ρ(t2)+…+nsρ(ts);
定義2 在Runge-Kutta的一般格式中,樹集T上的函數(shù)Φi(x)定義如下:
式中,i=1,…,s,向量Φ(t)=(Φ1(t),Φ2(t),…,Φs(t))T稱為樹t的基本權(quán)。
下面給出一般Runge-Kutta階條件:
定理1 一個Runge-Kutta方法是ρ階的當(dāng)且僅當(dāng)下式
對于階ρ(t)≤p的所有樹t成立。
式中,b=(b1,…,bs)T,Φ(t)=(Φ1(t),Φ2(t),…,Φs(t))T.
(1)
則通過
可知,第二類Chebyshev多項式滿足正交性,同時可得遞推格式如下
U0(x)=1,U1(x)=2x,
Un+1(x)=2xUn(x)-Un-1(x).
第二類Chebyshev正交多項式還具有:奇偶性、有界性、完備性。
定理2若f(x)滿足
(1)f(x)在區(qū)間(-1,1)為分段光滑的實值函數(shù),
則函數(shù)f(x)在連續(xù)點x處可展成正交多項式的級數(shù),即
=a0U0(x)+a1U1(x)+…,
(2)
考慮常微分初值問題
(3)
k=1,2,…,n.
則可把區(qū)間轉(zhuǎn)移至[-1,1]中討論,同時y(x)可用g(t)表示,將g(t)展成第二類Chebyshev多項式的級數(shù)形式,即
a2U2(t)+a3U3(t)+a4U4(t).
為計算級數(shù)展開式中的系數(shù)ai(x),結(jié)合高斯-洛巴托數(shù)值積分公式并化簡可得
(5)
(6)
式中,F(xiàn)=(f(xk-1+c1h,g1),f(xk-1+c2h,g2),f(xk-1+c3h,g3),f(xk-1+c4h,g4))T,
則有
hF=Qg0+DG
(7)
由于|D|≠0,則
G=hD-1F-D-1Qy(xk-1)
(8)
則由式(8)可構(gòu)造出改進(jìn)Runge-Kutta方法,它是四級隱式格式。即
(9)
最后給出改進(jìn)Runge-Kutta算法步驟(寧德圣等,2016):
Step 1. 利用第二類Chebyshev多項式將未知函數(shù)展成正交多項式級數(shù)形式,得到式(2);
Step 2. 作區(qū)間變量代換,同時結(jié)合高斯-洛巴托數(shù)值積分公式可對展開式中系數(shù)進(jìn)行數(shù)值求積,化簡得到式(5);
Step 3. 由前兩步可將原問題進(jìn)行數(shù)值求解,整理可得到式(6)。由于初值g0=y(xk-1)已知,可將求解公式轉(zhuǎn)化為式(8);
Step 4. 由此得到改進(jìn)Runge-Kutta方法,具體格式為式(9)。
這一部分主要對改進(jìn)Runge-Kutta算法進(jìn)行相容性、收斂性及精度分析,從理論上推導(dǎo)所構(gòu)造的改進(jìn)Runge-Kutta算法是可行、有效的算法。
定理3 改進(jìn)的Runge-Kutta方法是相容算法。
證明 根據(jù)改進(jìn)Runge-Kutta算法可制出對應(yīng)的Butcher(圖1)。
cAb0.268 60.324 9-0.190 70.150 8-0.016 40.50.436 70.022 20.061 1-0.020 00.806 30.417 00.207 60.212 9-0.031 210.444 50.111 00.444 500.444 50.111 00.444 50
則根據(jù)圖1可知ci滿足
則本文建立的改進(jìn)Runge-Kutta方法滿足相容性。
由式(9)得到差分格式:
gk=gk-1+hφ(h,xk-1,gk-1),k=1,2,3,4
(10)
根據(jù)已得出的相容性分析,可以給出式(10)收斂性的充分性結(jié)論。
定理4 改進(jìn)Runge-Kutta方法產(chǎn)生的差分格式(10)中,gk為常微分方程數(shù)值解,若φ(h,x,g)在Ω={(h,x,g)|a≤x≤b,g∈R}上關(guān)于g滿足Lipschitz條件
|φ(h,x,g1)-φ(h,x,g2)|≤L|g1-g2|,
其中L>0為Lipschitz常數(shù),則改進(jìn)Runge-Kutta方法的數(shù)值解是收斂的(王澤文,2016)。
改進(jìn)Runge-Kutta方法的隱式方法,由于各級格式的復(fù)雜性,無法利用Taylor展開。結(jié)合有根樹理論及Runge-Kutta方法的階條件來判定方法的精度階。
定理5 改進(jìn)的Runge-Kutta方法的精度是4階。
證明 由定義1可知,對于四階樹,可計算出各階樹的稠密度γ(t)及相對應(yīng)的基本權(quán)Φ(t):
對于一階樹,若γ(t)=1,Φ(t)=b1+b2+b3+b4=1;
結(jié)合定理1,即對于的ρ(t)≤4的所有樹滿足
所以改進(jìn)的Runge-Kutta方法精度為4階。
考慮如下初值問題:
圖2 精確解與改進(jìn)Runge-Kutta方法的數(shù)值解Fig.2 Exact solution and numerical solution of improved Runge-Kutta method
通過圖2可以看出,利用本文改進(jìn)的方法在常微分?jǐn)?shù)值解的精度方面可達(dá)到不錯的效果,計算得到的數(shù)值解與精確解逼近效果很好。且與理論分析相一致,說明本文提供的改進(jìn)算法應(yīng)用于求解常微分初值問題的正確性和可行性。
研究了帶初值問題的常微分方程數(shù)值解法,首先通過Butcher有根樹理論得到一般Runge-Kutta方法的階條件,利用廣義傅里葉級數(shù)理論、第二類切比雪夫正交多項式及高斯-洛巴托求積公式構(gòu)造了一種改進(jìn)的Runge-Kutta方法,通過理論分析證明了所得方法滿足相容性和收斂性,通過數(shù)值算例進(jìn)一步驗證了改進(jìn)Runge-Kutta方法是有效的算法。