《計算方法龍格庫塔方法概要》由會員分享,可在線閱讀,更多相關(guān)《計算方法龍格庫塔方法概要(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、會計學1計算方法龍格庫塔方法概要計算方法龍格庫塔方法概要2024/4/82其中P階泰勒方法若取前三項,可得到截斷誤差為若取前三項,可得到截斷誤差為O(h3)的公式的公式 類似地,若取前類似地,若取前P+1項作為項作為y(xi+1)的近似值,便得到的近似值,便得到第1頁/共32頁2024/4/83顯然p=1時,y i+1=y i+hf(xi,y i)它即為我們熟悉的Euler方法。當p2時,要利用泰勒方法就需要計算f(x,y)的高階微商。這個計算量是很大的,尤其當f(x,y)較復雜時,其高階導數(shù)會很復雜。因此,利用泰勒公式構(gòu)造高階公式是不實用的。但是泰勒級數(shù)展開法的基本思想是許多數(shù)值方法的基礎(chǔ)。
2、R-K方法不是直接使用Taylor級數(shù),而是利用它的思想第2頁/共32頁2024/4/849.4.1 9.4.1 龍格龍格-庫塔庫塔(R-K)法的基本思想法的基本思想Euler公式可改寫成 則yi+1的表達式與y(xi+1)的Taylor展開式的前兩項完全相同,即局部截斷誤差局部截斷誤差為O(h2)。Runge-Kutta 方法是一種高精度的單步法方法是一種高精度的單步法,簡稱簡稱R-K法法第3頁/共32頁2024/4/85同理,改進Euler公式可改寫成 上述兩組公式在形式上共同點:都是用f(x,y)在某些點上值的線性組合得出y(xi+1)的近似值yi+1,且增加計算的次數(shù)f(x,y)的次數(shù)
3、,可提高截斷誤差的階。如歐拉法:每步計算一次f(x,y)的值,為一階方法。改進歐拉法需計算兩次f(x,y)的值,為二階方法。局部截斷誤差局部截斷誤差為O(h3)第4頁/共32頁2024/4/86 于是可考慮用函數(shù)f(x,y)在若干點上的函數(shù)值的線性組合來構(gòu)造近似公式,構(gòu)造時要求近似公式在(xi,yi)處的Taylor展開式與解y(x)在xi處的Taylor展開式的前面幾項重合,從而使近似公式達到所需要的階數(shù)。既避免求高階導數(shù),又提高了計算方法精度的階數(shù)?;蛘哒f,在xi,xi+1這一步內(nèi)多計算幾個點的斜率值,然后將其進行加權(quán)平均作為平均斜率,則可構(gòu)造出更高精度的計算格式,這就是龍格龍格庫塔庫塔(
4、Runge-Kutta)法的基本思想法的基本思想。第5頁/共32頁一般龍格庫塔方法的形式為2024/4/87其中ai,bij,ci為待定參數(shù),要求上式y(tǒng)i+1在點(xi,yi)處作Tailor展開,通過相同項的系數(shù)確定參數(shù)。稱為P階龍格庫塔方法。第6頁/共32頁8Runge-Kutta方法的推導思想對于常微分方程的初值問題的解y=y(x),在區(qū)間xi,xi+1上使用微分中值定理,有即2024/4/8第7頁/共32頁9引入記號就可得到相應的Runge-Kutta方法2024/4/8第8頁/共32頁10如下圖即則上式化為即Euler方法Euler方法也稱為一階一階Runge-Kutta方法方法20
5、24/4/8第9頁/共32頁9.4.2 9.4.2 二階龍格二階龍格庫塔法庫塔法 在xi,xi+1上取兩點xi和xi+a2=xi+a2h,以該兩點處的斜率值K1和K2的加權(quán)平均(或稱為線性組合)來求取平均斜率k*的近似值K,即 式中:K1 1為xi點處的切線斜率值 K1=hf(xi,yi)=hy(xi)K2 2為xi+a2h點處的切線斜率值,比照改進的歐拉法,將xi+a2視為xi+1,即可得 2024/4/811確定系數(shù) c1、c2、a2、b21,可得到有2階精度的算法格式第10頁/共32頁2024/4/812因此 將y(xi+1)在x=xi處進行Taylor展開:將 在x=xi處進行Tayl
6、or展開:第11頁/共32頁2024/4/813K1=hf(xi,yi)第12頁/共32頁2024/4/814這里有這里有 4 個未知個未知數(shù),數(shù),3 個方程。個方程。存在無窮多個解無窮多個解。所有滿足上式的格式統(tǒng)稱為2階階龍格龍格 -庫塔格式庫塔格式。令 對應項的系數(shù)相等,得到 第13頁/共32頁2024/4/815注意到,注意到,就是二階就是二階龍格龍格 -庫塔庫塔公式,也就是公式,也就是改進的歐拉法。改進的歐拉法。因此,凡滿足條件式有一簇形如上式的計算格式,這些格式統(tǒng)稱為二階龍格庫塔格式。因此改進的歐拉格式是眾多的二階龍格庫塔法中的一種特殊格式。第14頁/共32頁若取若取 ,就是另一種形
7、式的二,就是另一種形式的二階階龍格龍格 -庫塔公式庫塔公式。2024/4/816此計算公式稱為變形的二階龍格庫塔法。式中 為區(qū)間 的中點。也稱中點公式也稱中點公式。Q:為獲得更高的精度,應該如何進一步推廣?為獲得更高的精度,應該如何進一步推廣?第15頁/共32頁2024/4/817 二級R-K方法是顯式單步式,每前進一步需要計算兩個函數(shù)值。由上面的討論可知,適當選擇四個參數(shù)c1,c2,a2,b21,可使每步計算兩次函數(shù)值的二階R-K方法達到二階精度。能否在計算函數(shù)值次數(shù)不變的情況下,通過選擇不同的參數(shù)值,使得二階R-K方法的精度再提高呢?答案是否定的!無論四個參數(shù)怎樣選擇,都不能使公式的局部截
8、斷誤差提高到三階。這說明每一步計算兩個函數(shù)值的二階R-K方法最高階為二階。若若要要獲獲得得更更高高階階得得數(shù)數(shù)值值方方法法,就就必必須須增增加加計計算算函數(shù)值的次數(shù)。函數(shù)值的次數(shù)。第16頁/共32頁9.4.3 三階龍格三階龍格庫塔法庫塔法2024/4/818 為進一步提高精度,在區(qū)間xi,xi+1上除兩點xi和xi+a2=xi+a2h,以外,再增加一點xi+a3=xi+a3h,用這三點處的斜率值K1、K2和K3的加權(quán)平均得出平均斜率K*的近似值K,這時計算格式具有形式:第17頁/共32頁2024/4/819 同理推導二階公式,將y(xi+1)和yi+1在x=xi處進行Taylor展開,使局部截
9、斷誤差達到O(h4),使對應項的系數(shù)相等,得到系數(shù)方程組:第18頁/共32頁參數(shù)的選擇不唯一,從而構(gòu)成一類不同的三階R-K公式,下面給出一種常用的三階R-K公式,形似simpson公式:2024/4/820第19頁/共32頁2024/4/8219.4.4 四階四階(經(jīng)典經(jīng)典)龍格龍格庫塔法庫塔法 如果需要再提高精度,用類似上述的處理方法,只需在區(qū)間xi,xi+1上用四個點處的斜率加權(quán)平均作為平均斜率K*的近似值,構(gòu)成一系列四階龍格庫塔公式。具有四階精度,即局部截斷誤差是O(h5)。推導過程與前面類似,由于過程復雜,這里從略,只介紹最常用的一種四階經(jīng)典龍格四階經(jīng)典龍格庫塔公式庫塔公式。第20頁/
10、共32頁2024/4/822 K1=hf(xi,yi)K2=hf(xi+a2h,yi+b21K1)K3=hf(xi+a3h,yi+b31K1+b32K2)K4=hf(xi+a4h,yi+b41K1+b42K2+b43K3)其中c1、c2、c3、c4、a2、a3、a4、b21、b31、b32、b41、b42、b43均為待定系數(shù)。這里K1、K2、K3、K4為四個不同點上的函數(shù)值,分別設其為 設yi+1=yi+c1K1+c2K2+c3K3+c4K4第21頁/共32頁2024/4/823 類似于前面的討論,把K2、K3、K4分別在xi點展成h的冪級數(shù),代入線性組合式中,將得到的公式與y(xi+1)在x
11、i點上的泰勒展開式比較,使其兩式右端直到h4的系數(shù)相等,經(jīng)過較復雜的解方程過程便可得到關(guān)于ci,ai,bij的一組特解 a2=a3=b21=b32=1/2 b31=b41=b42=0 a4=b43=1 c1=c4=1/6 c2=c3=1/3 第22頁/共32頁24 四階(經(jīng)典)Runge-Kutta方法2024/4/8第23頁/共32頁25例1.使用高階R-K方法計算初值問題解:(1)使用三階R-K方法2024/4/8第24頁/共32頁26其余結(jié)果如下:(2)如果使用四階R-K方法 i xi k1 k2 k3 yi 1.0000 0.1000 0.1000 0.1103 0.1256 1.11
12、11 2.0000 0.2000 0.1235 0.1376 0.1595 1.2499 3.0000 0.3000 0.1562 0.1764 0.2092 1.4284 4.0000 0.4000 0.2040 0.2342 0.2866 1.6664 5.0000 0.5000 0.2777 0.3259 0.4163 1.99932024/4/8第25頁/共32頁27其余結(jié)果如下:i xi k1 k2 k3 k4 yi 1.0000 0.1000 0.1000 0.1103 0.1113 0.1235 1.1111 2.0000 0.2000 0.1235 0.1376 0.1392
13、0.1563 1.2500 3.0000 0.3000 0.1562 0.1764 0.1791 0.2042 1.4286 4.0000 0.4000 0.2040 0.2342 0.2389 0.2781 1.6667 5.0000 0.5000 0.2777 0.3259 0.3348 0.4006 2.00002024/4/8第26頁/共32頁2024/4/828由上節(jié)分析常微分方程數(shù)值解法穩(wěn)定性問題的方法,可得到各階Runge-Kutta公式的穩(wěn)定性條件:二階二階與歐拉預估校正公式一致三階三階四階四階9.4.5 龍格庫塔方法的穩(wěn)定性條件龍格庫塔方法的穩(wěn)定性條件第27頁/共32頁202
14、4/4/829 龍格庫塔方法的推導基于Taylor展開方法,因而它要求所求的解具有較好的光滑性。如果解的光滑性差,那么,使用四階龍格庫塔方法求得的數(shù)值解,其精度可能反而不如改進的歐拉方法。在實際計算時,應當針對問題的具體特點選擇合適的算法。對于光滑性不太好的解,最好采用對于光滑性不太好的解,最好采用低階算法低階算法而將步長而將步長h 取小取小。第28頁/共32頁2024/4/830 前面已經(jīng)看到,二階、四階R-K方法可分別達到最高階數(shù)2 2階、4 4階,但是N階R-K方法的最高階卻不一定是N階。R-K方法的級數(shù)表示公式中計算函數(shù)值f 的次數(shù)。Butcher于1965年給出了R-K方法計算函數(shù)值
15、f 的次數(shù)與可達到的最高精度階數(shù)之間的關(guān)系表,如下:由表可見,四級以下R-K的方法其最高階數(shù)與計算f 的次數(shù)一致,對m階R-K公式,當m4,雖然計算f 的次數(shù)增加,但是方法階數(shù)不一定增加。因此四階R-K公式是應用最為廣泛的公式。753可達到的最高精度可達到的最高精度642每步須算每步須算Ki 的個數(shù)的個數(shù)第29頁/共32頁2024/4/831 順便指出,當常微分方程中的f(t,u)與u無關(guān)時,常微分方程初值問題便簡化為計算定積分的問題。這時,第一節(jié)介紹的Euler方法就是求定積分的矩形公式,改進的Euler方法就是求定積分的梯形公式,而三階Runge-Kutta公式就是計算定積分的Simpson公式,它們的精度也是一致的。第30頁/共32頁2024/4/832本節(jié)作業(yè)P214 (3)第31頁/共32頁