資源描述:
《龍格庫(kù)塔方法ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、Runge-Kuttua方法和matlab原理1龍格-庫(kù)塔法(Runge-Kutta)數(shù)值分析中,龍格-庫(kù)塔法(Runge-Kutta)是用于模擬常微分方程的解的重要的一類隱式或顯式迭代法。這些技術(shù)由數(shù)學(xué)家卡爾·龍格和馬丁·威爾海姆·庫(kù)塔于1900年左右發(fā)明。經(jīng)典四階龍格庫(kù)塔法龍格庫(kù)塔法的家族中的一個(gè)成員如此常用,以至于經(jīng)常被稱為“RK4”或者就是“龍格庫(kù)塔法”。2四階Runge-Kutta方法34這樣,下一個(gè)值(yn+1)由現(xiàn)在的值(yn)加上時(shí)間間隔(h)和一個(gè)估算的斜率的乘積決定。該斜率是以下斜率的加權(quán)平均:k1是時(shí)間段開始時(shí)的斜率;k2是時(shí)間段中點(diǎn)的斜率,通過(guò)歐拉法采用斜率k1
2、來(lái)決定y在點(diǎn)tn+h/2的值;k3也是中點(diǎn)的斜率,但是這次采用斜率k2決定y值;k4是時(shí)間段終點(diǎn)的斜率,其y值用k3決定。當(dāng)四個(gè)斜率取平均時(shí),中點(diǎn)的斜率有更大的權(quán)值:5誤差分析:注意上述公式對(duì)于標(biāo)量或者向量函數(shù)(y可以是向量)都適用。四階R-K方法的每一步需要計(jì)算四次函數(shù)值f,可以證明其局部截?cái)嗾`差為O(h5).6R-K(高階)方法不唯一,選擇不同的參數(shù)能得到不同的R-K公式注意的問(wèn)題R-K方法的推導(dǎo)是基于Taylor展開法,因而要求解具有較好的光滑性,如果光滑性較差精度可能不如改進(jìn)Euler方法,最好采用低階算法而將步長(zhǎng)h取小。Runge-Kutta法的主要運(yùn)算在于計(jì)算Ki的值,即計(jì)
3、算f的值。計(jì)算量與可達(dá)到的最高精度階數(shù)的關(guān)系:753可達(dá)到的最高精度642每步須算Ki的個(gè)數(shù)7四階Runge-Kutta方法的MATLAB實(shí)現(xiàn)原理:8四階R-K方法實(shí)現(xiàn)開始輸出x1,y1結(jié)束YN9functionff=rk(yy,x0,y0,h,a,b)%yy為y的導(dǎo)函數(shù),x0,y0,為初值,h為步長(zhǎng),a,b為區(qū)間c=(b-a)/h+1;i1=1;%c為迭代步數(shù);i1為迭代步數(shù)累加值y=y0;z=zeros(c,6);%z生成c行,6列的零矩陣存放結(jié)果;%每行存放c次迭代結(jié)果,每列分別存放k1~k4及y的結(jié)果10不斷迭代運(yùn)算:forx=a:h:bifi1<=ck1=feval(yy,x
4、,y);k2=feval(yy,x+h/2,y+(h*k1)/2);k3=feval(yy,x+h/2,y+(h*k2)/2);k4=feval(yy,x+h,y+h*k3);y=y+(h/6)*(k1+2*k2+2*k3+k4);z(i1,1)=x;z(i1,2)=k1;z(i1,3)=k2;z(i1,4)=k3;z(i1,5)=k4;z(i1,6)=y;i1=i1+1;endend11例4解例題412xnYn
5、yn-y(xn)
6、R-K3誤差y(xn)0.11.09590.00051.095440.45e-41.09540.21.18410.00091.183220.17e-41.1
7、8320.31.26620.00131.264910.15e-41.26490.41.34340.00181.341650.48e-41.34160.51.41640.00221.414220.25e-41.41420.61.48600.00281.483260.55e-41.48320.71.55250.00331.549210.14e-41.54920.81.61650.00401.6124780.21e-41.61250.91.67820.00491.673350.54e-41.67331.01.73790.00581.732090.06e-41.732113改進(jìn)Euler法一步
8、需要計(jì)算兩個(gè)函數(shù)值(h=0.1)四階Runge-Kutta方法一步需要計(jì)算四個(gè)函數(shù)值(h=0.2)總計(jì)算量大致相當(dāng),但四階Runge-Kutta方法精度更高14五、變步長(zhǎng)Runge-Kutta方法從每一步看,步長(zhǎng)越小,截?cái)嗾`差越?。坏S著步長(zhǎng)的縮小,在一定求解范圍內(nèi)所要完成的步數(shù)就會(huì)增加,步數(shù)的增加不但引起計(jì)算量的增大,而且可能導(dǎo)致舍入誤差的嚴(yán)重積累,因此需要選擇步長(zhǎng)如何衡量和檢驗(yàn)計(jì)算結(jié)果的精度如何依據(jù)所判定的精度來(lái)處理步長(zhǎng)15實(shí)施方案以經(jīng)典四階Runge-Kutta方法為例1617可以通過(guò)檢查步長(zhǎng)折半前后兩次計(jì)算結(jié)果的偏差來(lái)判斷所選取的步長(zhǎng)是否合適變步長(zhǎng)方法18Thanks!19