《龍格庫塔方法PPT課件》由會員分享,可在線閱讀,更多相關(guān)《龍格庫塔方法PPT課件(24頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、9.3 龍格龍格-庫塔方法庫塔方法 9.3.1 顯式龍格顯式龍格-庫塔法的普通方式庫塔法的普通方式 上節(jié)給出了顯式單步法的表達式),(1hyxhyynnnn其部分截斷誤差為),(),()()(11pnhOhyxhxyhxyT對歐拉法 ,即方法為 階.)(21hOTn1p).,(,(),(21nnnnnnnnyxhfyhxfyxfhyy3.1 假設(shè)用改良歐拉法,它可表示為 此時增量函數(shù)).,(,(),(21),(nnnnnnnnyxhfyhxfyxfhyx3.2與歐拉法的 相比,添加了計算一個右函數(shù) 的值,可望 .),(),(nnnnyxfhyxf2p 假設(shè)要使得到的公式階數(shù) 更大,就必需包含更
2、多的 值.pf,)(,()()(1d1nnxxnnxxyxfxyxy3.3 從方程 等價的積分方式2.4,即),(yxfy 假設(shè)要使公式階數(shù)提高,就必需使右端積分的數(shù)值求積公式精度提高,必然要添加求積節(jié)點.為此可將3.3的右端用求積公式表示為11nnxxriininihxyhxfchxxyxf.)(,()(,(d點數(shù) 越多,精度越高,r上式右端相當于增量函數(shù) ,),(hyx為得到便于計算的顯式方法,可類似于改良歐拉法,將公式表示為),(1hyxhyynnnn3.4其中,),(1riiinnKchyx),(1nnyxfK),(11ijjijniniKhyhxfK3.5,2ri這里 均為常數(shù).ij
3、iic,(3.4)和(3.5)稱為 級顯式龍格-庫塔Runge-Kutta法,r簡稱R-K方法.當 時,就是歐拉法,),(),(,1nnnnyxfhyxr此時方法的階為 .1p 當 時,改良歐拉法(3.1),(3.2)也是其中的一種.2r 下面將證明階 .2p 要使公式(3.4),(3.5)具有更高的階 ,就要添加點數(shù) .pr 下面就 推導(dǎo)R-K方法.2r,),(1riiinnKchyx),(1nnyxfK),(11ijjijniniKhyhxfK),(1hyxhyynnnn3.43.5,2ri 9.3.2 9.3.2 二階顯式二階顯式R-KR-K方法方法 對 的R-K方法,計算公式如下 2r
4、).,(),(),(12122122111hKyhxfKyxfKKcKchyynnnnnn3.6這里 均為待定常數(shù).21221,cc 希望適中選取這些系數(shù),使公式階數(shù) 盡量高.p 根據(jù)部分截斷誤差的定義,3.6的部分截斷誤差為)()(11nnnxyxyT3.7),(),(21221nnnnnhfyhxfcyxfch這里 .),(),(nnnnnyxffxyy 為得到 的階 ,要將上式各項在 處做泰勒展開,1nTp),(nnyx由于 是二元函數(shù),故要用到二元泰勒展開,),(yxf),(!32)(4321hOyhyhyhyxynnnnn 其中,),(nnnnfyxfy各項展開式為,),(),()(
5、,(nnnynnxnnnfyxfyxfxyxfxy dd),(),(2),(2nnyynnnxynnnxxnyxffyxffyxfy 3.8);,(),(),(nnynnnxnnyyxffyxfyxf),(212nnnfhyhxf將以上結(jié)果代入部分截斷誤差公式那么有)(),(),(),(),(232122121hOhfyxfhyxffcfchfyxfyxfhfhTnnnynnxnnnnnynnxnn).(),(),(2212hOfhyxfhyxffnnnynnxn).(),()21(),()21()1(3221222221hOhfyxfchyxfchfccnnnynnxn要使公式3.6具有 階
6、,必需使 2p,0121cc即.1,21,212121222cccc3.9的解是不獨一的.令 ,那么得 02 ac.21,12121aac這樣得到的公式稱為二階R-K方法,如取 ,那么2/1a.1,2/121221cc這就是改良歐拉法3.1.,02122c3.9,021212c假設(shè)取,1a那么 .2/1,1,021221cc,21hKyynn稱為中點公式,3.10也可表示為).,(2,2(1nnnnnnyxfhyhxfhyy得計算公式),(1nnyxfK 3.10).2,2(12KhyhxfKnn相當于數(shù)值積分的中矩形公式.的R-K公式(3.6)的部分誤差不能夠提高到 .2r)(4hO 把 多
7、展開一項,從3.8的 看到展開式中 的項是不能經(jīng)過選擇參數(shù)消掉的.2Kny ffffyxy 實踐上要使 的項為零,需添加3個方程,要確定4個參數(shù) ,這是不能夠的.3h21221,cc 故 的顯式R-K方法的階只能是 ,而不能得到三階公式.2r2p 9.3.3 9.3.3 三階與四階顯式三階與四階顯式R-KR-K方法方法 要得到三階顯式R-K方法,必需 .3r),(),(),(),(232131321212213322111hKhKyhxfKhKyhxfKyxfKKcKcKchyynnnnnnnn3.11其中 及 均為待定參數(shù).321,ccc32313212,.)()(33221111KcKcK
8、chxyxyTnnn此時3.4,3.5的公式表示為 公式3.11的部分截斷誤差為 只需將 按二元函數(shù)泰勒展開,使 ,32,KK)(41hOTn可得待定參數(shù)滿足方程.61,31,21,13223233222332232313212321cccccccc3.12這是8個未知數(shù)6個方程的方程組,解也不是獨一的.所以這是一簇公式.滿足條件3.12的公式3.11統(tǒng)稱為三階R-K公式.一個常見的公式為).2,(),2,2(),(),4(62131213211hKhKyhxfKKhyhxfKyxfKKKKhyynnnnnnnn此公式稱為庫塔三階方法.繼續(xù)上述過程,經(jīng)過較復(fù)雜的數(shù)學(xué)演算,可以導(dǎo)出各種四階龍格-
9、庫塔公式,以下經(jīng)典公式是其中常用的一個:可以證明其截斷誤差為 .)(5hO 四階龍格-庫塔方法的每一步需求計算4次函數(shù)值 ,f).,(),2,2(),2,2(),(),22(6342312143211hKyhxfKKhyhxfKKhyhxfKyxfKKKKKhyynnnnnnnnnn3.13 例3.1)0(),10(2yxyxyy 解設(shè)取步長 ,從 到 用四階龍格-2.0h0 x1x庫塔方法求解初值問題 這里 ,經(jīng)典的四階龍格-庫塔公式為yxyyxf2),(),22(643211KKKKhyynn,21nnnyxyK,222223KhyhxKhyKnnn,222112KhyhxKhyKnnn.
10、)(2334hKyhxhKyKnnn 表9-3列出了計算結(jié)果,同時列出了相應(yīng)的準確解.7321.17321.10.16125.16125.18.04832.14833.16.03416.13417.14.01832.11832.12.0)(nnnxyyx計算結(jié)果3表9 比較例3和例2的計算結(jié)果,顯然龍格-庫塔方法的精度高.但由于這里放大了步長 ,所以表9-3和表9-2所耗費的計算量幾乎一樣.)2.0(h 龍格-庫塔方法的推導(dǎo)基于泰勒展開方法,因此它要求所求的解具有較好的光滑性質(zhì).反之,假設(shè)解的光滑性差,那么,運用四階龍格-庫塔方法求得的數(shù)值解,其精度能夠反而不如改良的歐拉方法.四階龍格-庫塔方
11、法每一步要4次計算函數(shù) ,其計算量f比每一步只需2次計算函數(shù) 的二階龍格-庫塔方法-f改良的歐拉方法大一倍.9.3.4 9.3.4 變步長的龍格變步長的龍格-庫塔方法庫塔方法 單從每一步看,步長越小,截斷誤差就越小,但隨著步長的減少,在一定求解范圍內(nèi)所要完成的步數(shù)就添加了.步數(shù)的添加不但引起計算量的增大,而且能夠?qū)е律崛胝`差的嚴重積累.因此同積分的數(shù)值計算一樣,微分方程的數(shù)值解法也有個選擇步長的問題.在選擇步長時,需求思索兩個問題:1.怎樣衡量和檢驗計算結(jié)果的精度?2.如何根據(jù)所獲得的精度處置步長?調(diào)查經(jīng)典的四階龍格-庫塔公式:).,(),2,2(),2,2(),(),22(634231214
12、3211hKyhxfKKhyhxfKKhyhxfKyxfKKKKKhyynnnnnnnnnn3.13 從節(jié)點 出發(fā),先以 為步長求出一個近似值 ,nxh)(1hny,)(5)(11chyxyhnn3.14然后將步長折半,即取 為步長從 跨兩步到 ,2hnx1nx再求得一個近似值 ,每跨一步的截斷誤差是)2(1hny,52 hc.)()(521122hcyxyhnn3.15比較3.14式和3.15式我們看到,步長折半后,由于公式的部分截斷誤差為 ,故有)(5hO因此有 誤差大約減少到 .即有161.161)()()(11)2(11hnnhnnyxyyxy由此易得以下事后估計式.151)()(1)2(1)2(11hnhnhnnyyyxy這樣,可以經(jīng)過檢查步長、折半前后兩次計算結(jié)果的偏向)(1)2(1hnhnyy來斷定所選的步長能否適宜.詳細地說,將區(qū)分以下兩種情況處置:1.對于給定的精度 ,假設(shè) ,反復(fù)將步長折半進展計算,直至 為止.這時取最終得到的 作為結(jié)果;)2(1hny 2.假設(shè) ,反復(fù)將步長加倍,直到 為止,這種經(jīng)過加倍或折半處置步長的方法稱為變步長方法.這時再將步長折半一次,就得到所要的結(jié)果.外表上看,為了選擇步長,每一步的計算量添加了,但總體思索往往是合算的.