【文章內(nèi)容簡(jiǎn)介】
, , ) ( , )n n n nx y h f x y? ?2p? ?f ( , )y f x y? ?11( ) ( ) ( , ( ) )nnxnn xy x y x f x y x d x?? ?? ? 龍格-庫(kù)塔方法 要使公式的階數(shù)提高,就必須使右端積分的數(shù)值求積 公式精度提高,它必然要增加求積節(jié)點(diǎn),為此可將 (*) 的右端用求積公式表示為: 一般來(lái)說(shuō),點(diǎn)數(shù) 越多,精度越高,上式右端相當(dāng)于 增量函數(shù) ,為得到便于計(jì)算的顯式方法,可 它比歐拉法的 多計(jì)算了一個(gè)函數(shù) 值,可望 ,若要使得到的公式階數(shù)更大, 就必 須包含更多的 值,實(shí)際上從方程 等價(jià)的積 分形式,即 (*) ( , , ) ( , )n n n nx y h f x y? ?2p? ?f ( , )y f x y? ?11( ) ( ) ( , ( ) )nnxnn xy x y x f x y x d x?? ?? ?11( , ( ) ) ( , ( ) )nnrxi n i n ixif x y x d x h c f x h y x h????? ? ???r( , , )x y h?要使公式的階數(shù)提高,就必須使右端積分的數(shù)值求積 公式精度提高,它必然要增加求積節(jié)點(diǎn),為此可將 (*) 的右端用求積公式表示為: 一般來(lái)說(shuō),點(diǎn)數(shù) 越多,精度越高,上式右端相當(dāng)于 增量函數(shù) ,為得到便于計(jì)算的顯式方法,可 類似于改進(jìn)歐拉法,將公式表示為: 其中 這里 均為常數(shù),方法稱為 級(jí)顯式 RK方法 11( , ( ) ) ( , ( ) )nnrxi n i n ixif x y x d x h c f x h y x h????? ? ???r( , , )x y h?1 ( , , )n n n ny y h x y h?? ??11( , , ) , ( , ) ,rn n i i n nix y h c K K f x y?????11( , ) 2 , 3 , ,ii n i n i j jjK f x h y h K i r????? ? ? ??,i i ijc ?? r 當(dāng) 時(shí),就是歐拉法,此時(shí) 當(dāng) 時(shí),改進(jìn)歐拉法就是其中的一種,下面證明 ,要使公式有更高的階,就要增加點(diǎn)數(shù) 。下面 我們僅就 推導(dǎo) RK方法,并給出 時(shí)的常用公 式,其推導(dǎo)方法與 時(shí)類似,只是計(jì)算較為復(fù)雜。 增量函數(shù) ,為得到便于計(jì)算的顯式方法,可 類似于改進(jìn)歐拉法,將公式表示為: 其中 這里 均為常數(shù),方法稱為 級(jí)顯式 RK方法 ( , , )x y h?1 ( , , )n n n ny y h x y h?? ??11( , , ) , ( , ) ,rn n i i n nix y h c K K f x y?????11( , ) 2 , 3 , ,ii n i n i j jjK f x h y h K i r????? ? ? ??,i i ijc ?? r1 , ( , , ) ( , )n n n nr x y h f x y??? 1p?2r?2p? r2p? 3,4r ?2r? 當(dāng) 時(shí),就是歐拉法,此時(shí) 當(dāng) 時(shí),改進(jìn)歐拉法就是其中的一種,下面證明 ,要使公式有更高的階,就要增加點(diǎn)數(shù) 。下面 我們僅就 推導(dǎo) RK方法,并給出 時(shí)的常用公 式,其推導(dǎo)方法與 時(shí)類似,只是計(jì)算較為復(fù)雜。 ? 二階顯式 RK方法 對(duì)于 的 RK方法,可以得到如下的計(jì)算公式: 這里 均為待定常數(shù),我們希望適當(dāng)選取這些 系數(shù),使公式階數(shù) 盡量高。根據(jù)局部截?cái)嗾`差的定 義,上式的局部截?cái)嗾`差為: 1 , ( , , ) ( , )n n n nr x y h f x y??? 1p?2r?2p? r2p? 3,4r ?2r?2r?1 1 1 2 212 2 2 1 1()( , )( , )nnnnnny y h c K c KK f x yK f x h y h K??? ? ? ??? ??? ? ? ??1 2 2 21, , ,cc ??p 這里 為得到 的階 ,要將上式 各項(xiàng)在 處做泰勒展開,由于 是二元函數(shù), 故要用到二元泰勒展開,各項(xiàng)展開為: ? 二階顯式 RK方法 對(duì)于 的 RK方法,可以得到如下的計(jì)算公式: 這里 均為待定常數(shù),我們希望適當(dāng)選取這些 系數(shù),使公式階數(shù) 盡量高。根據(jù)局部截?cái)嗾`差的定 義,上式的局部截?cái)嗾`差為: 2r?1 1 1 2 212 2 2 1 1()( , )( , )nnnnnny y h c K c KK f x yK f x h y h K??? ? ? ??? ??? ? ? ??1 2 2 21, , ,cc ??p1 1 1 2 2 2 1( ) ( ) [ ( , ) ( , ) ]n n n n n n n nT y x y x h c f x y c f x h y h f????? ? ? ? ? ?( ) , ( , ) ,n n n n ny y x f f x y?? 1nT? p( , )nnxy ( , )f x y 這里 為得到 的階 ,要將上式 各項(xiàng)在 處做泰勒展開,由于 是二元函數(shù), 故要用到二元泰勒展開,各項(xiàng)展開為: 其中 1 1 1 2 2 2 1( ) ( ) [ ( , ) ( , ) ]n n n n n n n nT y x y x h c f x y c f x h y h f????? ? ? ? ? ?( ) , ( , ) ,n n n n ny y x f f x y?? 1nT? p( , )nnxy ( , )f x y2341( ) ( )2 3 !n n n n nhhy x y h y y y O h? ? ?? ???? ? ? ? ?2( , )( , ( ) ) ( , ) ( , )( , ) 2 ( , ) ( , )( , ) [ ( , ) ( , ) ]n n n nn n n x n n y n n nn x x n n n x y n n n y y n ny n n x n n n y n ny f x y fdy f x y x f x y f x y fdxy f x y f f x y f f x yf x y f x y f f x y? ????? ?? ? ?? ? ? ???? ??? ?? ?? ??? ? ??? ? ?????22 2 1 2 2 1( , ) ( , ) ( , ) ( )n n n n x n n y n n nf x h y h f f f x y h f x y h f O h? ? ? ???? ? ? ? ? ?將以上結(jié)果代入: 得到: 其中 2( , )( , ( ) ) ( , ) ( , )( , ) 2 ( , ) ( , )( , ) [ ( , ) ( , ) ]n n n nn n n x n n y n n nn x x n n n x y n n n y y n ny n n x n n n y n ny f x y fdy f x y x f x y f x y fdxy f x y f f x y f f x yf x y f x y f f x y? ????? ?? ? ?? ? ? ???? ??? ?? ?? ??? ? ??? ? ?????22 2 1 2 2 1( , ) ( , ) ( , ) ( )n n n n x n n y n n nf x h y h f f f x y h f x y h f O h? ? ? ???? ? ? ? ? ?1 1 1 2 2 2 1( ) ( ) [ ( , ) ( , ) ]n n n n n n n nT y x y x h c f x y c f x h y h f????? ? ? ? ? ?將以上結(jié)果代入: 得到: 要使公式成為 2階的,必須有: 1 1 1 2 2 2 1( ) ( ) [ ( , ) ( , ) ]n n n n n n n nT y x y x h c f x y c f x h y h f????? ? ? ? ? ?2131 2 2 2121 2 2 2232 21[ ( , ) ( , ) ]2[ ( ( , ) ( , ) ] ( )1( 1 ) ( ) ( , )21( ) ( , ) ( )2n n x n n y n n nn n x n n y n n nn x n ny n n nhT hf f x y f x y fh c f c f f x y h f x y f h O hc c f h c f x y hc f x y f h O h???????? ? ???? ? ? ? ??? ? ? ? ??? ? ?1 2 2 2 2 2 1111 0 , 0 , 022c c c c??? ? ? ? ? ? ?即: 上式的解不唯一,可以令 ,則得 這樣得到的公式稱為二階 RK方法,如取 ,則 ,這就是改進(jìn)的歐拉法。 若取 ,則 ,得到: 要使公式成為 2階的,必須有: 1 2 2 2 2 2 1111 0 , 0 , 022c c c c??? ? ? ? ? ? ?2 2 2 2 1 1 211, , 122c c c c??? ? ? ?2 0ca??1 2 112ca a??2= 1 , = =1/2a?1 2 2 2 11 / 2 , 1cc ??? ? ? ?1a? 1 2 2 2 10 , 1 , 1 / 2cc ??? ? ? ?12121( , )( / 2 , / 2 )nnnnnny y h KK f x yK f x h y h K? ???? ??? ? ? ??即: 上式的解不唯一,可以令 ,則得 這樣得到的公式稱為二階 RK方法,如取 ,則 ,這就是改進(jìn)的歐拉法。 若取 ,則 ,得到: 稱為中點(diǎn)公式,相當(dāng)于數(shù)值積分的中矩形公式,也即 2 2 2 2 1 1 211, , 122c c c c??? ? ? ?2 0ca??1 2 112ca a??2= 1 , = =1/2a?1 2 2 2 11 / 2 , 1cc ??? ? ? ?1a? 1 2 2 2 10 , 1 , 1 / 2cc ??? ? ? ?12121( , )( / 2 , / 2 )nnnnnny y h KK f x yK f x h y h K? ???? ??? ? ? ??1 ( , ( , ) )22n n n n n nhhy y h f x y f x y? ? ? ? ? 對(duì) 的 RK公式能否使局部誤差