支越
(中國傳媒大學信息科學與技術(shù)學部,北京 100024)
基于上述假設(shè),根據(jù)常微分方程的理論,可知初值問題在區(qū)間[t0,T]上有唯一的連續(xù)可微的解u(t)。
解析解(準確解):u=-e-t+t2-t+1。
歐拉法公式:un+1=un+hf(tn,un)。
其中Wi,αi,βij均為待定系數(shù),實際計算時,用un代替u(tn),上述公式稱為s級RK方法。
Adams方法是一種線性多步法。
Adams四階預(yù)測—校正格式(PECE),這是一個四步方法,計算un+4時要用到un+3,un+2,un+1,un,因此它不是自開始的,一般需要四階RK法為其提供出發(fā)值:u1,u2,u3。(p為階數(shù),p=4)
Efn+4=f(tn+4,un+4)
利用VC++6.0,運行各類數(shù)值解的C語言程序,求解本文中的實例,求解區(qū)間[0,1],步長h=0.1,結(jié)果如表1所示。
表1 數(shù)值解法
圖1 歐拉法 圖2 歐拉法與改進歐拉法
圖3 四階經(jīng)典RK法 圖4 Adams四階預(yù)測-校正格式
從以上圖1-4可以觀察出,歐拉法的數(shù)值解與解析解相差較大,用梯形法和改進歐拉法求得的數(shù)值解優(yōu)于歐拉法,但弱于四階經(jīng)典RK法和Adams四階預(yù)測—校正法,RK法和Adams法的數(shù)值解非常接近解析解。
歐拉法用均差代替導數(shù)進行計算,微分方程的解u=u(t)稱作它的積分曲線。從幾何上來解釋歐拉法,歐拉法做出的折線PnPn+1是落在積分曲線u=u(t)上的頂點Pn的切線,頂點Pn+1明顯的偏離了積分曲線u=u(t),可見歐拉法是粗糙的,用歐拉法求出的數(shù)值解與解析解相比較,誤差較大。
梯形法用迭代法求解,歐拉法為其提供迭代初值,但是迭代反復(fù),計算量大。改進歐拉法簡化了算法,明顯改善了精度。
四階經(jīng)典RK法是RK法中常用的數(shù)值解法。關(guān)于Adams四階預(yù)測—校正格式,一般需要四階經(jīng)典RK法為其提供初值,編程代碼相較于前面的方法,計算量明顯增多,但精度更高,數(shù)值解很接近解析解。