變步長(zhǎng)的龍格庫(kù)塔法學(xué)習(xí)教案
會(huì)計(jì)學(xué)1變步長(zhǎng)的龍格庫(kù)塔法變步長(zhǎng)的龍格庫(kù)塔法第一頁(yè),共16頁(yè)。11111R K(,)(,)(2 , 3,)(,)()pnniiinniininijjjnnnyyhc KKfxyKfxa hyhb KipxyT a ylo ryxxT a ylo r一 般 地 ,方 法 設(shè) 近 似 公 式 為確 定 原 則 是 使 近 似 公 式 在處 的展 開(kāi) 式 與在處 的展 開(kāi) 式 的 前 面 項(xiàng) 盡 可 能 多 地 重 合 。111112121(,)11()22(,)(,)nnnnnnnnnnyyh KE u le rKfxyyyhKKE u le rKfxyKfxhyh K公 式 改 進(jìn)公 式第1頁(yè)/共16頁(yè)第二頁(yè),共16頁(yè)。第2頁(yè)/共16頁(yè)第三頁(yè),共16頁(yè)。7.4.6 變步長(zhǎng)的龍格變步長(zhǎng)的龍格-庫(kù)塔法庫(kù)塔法 在微分方程的數(shù)值解中,選擇適當(dāng)?shù)牟介L(zhǎng)在微分方程的數(shù)值解中,選擇適當(dāng)?shù)牟介L(zhǎng)是非常重要的。單從每一步看,步長(zhǎng)越小,是非常重要的。單從每一步看,步長(zhǎng)越小,截?cái)嗾`差就越小;但隨著步長(zhǎng)的縮小,在一截?cái)嗾`差就越??;但隨著步長(zhǎng)的縮小,在一定的求解區(qū)間內(nèi)所要完成的步數(shù)就增加了。定的求解區(qū)間內(nèi)所要完成的步數(shù)就增加了。這樣會(huì)引起計(jì)算量的增大,并且會(huì)引起舍入這樣會(huì)引起計(jì)算量的增大,并且會(huì)引起舍入誤差的大量積累與傳播誤差的大量積累與傳播(chunb)。因此微分。因此微分方程數(shù)值解法也有選擇步長(zhǎng)的問(wèn)題。方程數(shù)值解法也有選擇步長(zhǎng)的問(wèn)題。 以經(jīng)典的四階龍格以經(jīng)典的四階龍格-庫(kù)塔法庫(kù)塔法(7.20)為例。從節(jié)為例。從節(jié)點(diǎn)點(diǎn)xi出發(fā),先以出發(fā),先以h為步長(zhǎng)求出一個(gè)近似值,記為步長(zhǎng)求出一個(gè)近似值,記為為 ,由于局部截?cái)嗾`差為,由于局部截?cái)嗾`差為 ,故有,故有 )(1hiy)(5hO5)(11)(chyxyhii當(dāng)h值不大時(shí),式中的系數(shù)(xsh)c可近似地看作為常數(shù)。第3頁(yè)/共16頁(yè)第四頁(yè),共16頁(yè)。然后將步長(zhǎng)折半然后將步長(zhǎng)折半(zhbn),(zhbn),即以為即以為 步長(zhǎng)步長(zhǎng), ,從節(jié)點(diǎn)從節(jié)點(diǎn)xixi出出發(fā)發(fā), ,跨兩步到節(jié)點(diǎn)跨兩步到節(jié)點(diǎn)xi+1,xi+1,再求得一個(gè)近似值再求得一個(gè)近似值 , ,每跨一每跨一步的截?cái)嗾`差是步的截?cái)嗾`差是 , ,因此有因此有2h)2(1hiy52 hc5)2(1122)()(hcxyxyhii這樣這樣(zh(zhyngyng) ) 161)()()(11)2(11hiihiiyxyyxy)(151)()(1)2(1)2(11hihihiiyyyxy由此可得由此可得 這表明以這表明以 作為作為 的近似值,其誤差的近似值,其誤差(wch)(wch)可用步長(zhǎng)折半前后兩次計(jì)算結(jié)果的偏差可用步長(zhǎng)折半前后兩次計(jì)算結(jié)果的偏差 )2(1hiy)(1ixy)(1)2(1hihiyy來(lái)判斷所選步長(zhǎng)是否適當(dāng)來(lái)判斷所選步長(zhǎng)是否適當(dāng)?shù)?頁(yè)/共16頁(yè)第五頁(yè),共16頁(yè)。當(dāng)要求的數(shù)值當(dāng)要求的數(shù)值(shz)(shz)精度為精度為時(shí):時(shí): (1 1)如果)如果,反復(fù)將步長(zhǎng)折半進(jìn)行計(jì)算,直至,反復(fù)將步長(zhǎng)折半進(jìn)行計(jì)算,直至為止為止, ,并取其最后一次步長(zhǎng)的計(jì)算結(jié)果并取其最后一次步長(zhǎng)的計(jì)算結(jié)果(ji gu)(ji gu)作作為為 (2 2)如果)如果為止為止,并以上一次步長(zhǎng)的計(jì)算結(jié)果,并以上一次步長(zhǎng)的計(jì)算結(jié)果(ji gu)(ji gu)作為作為 。 這種通過(guò)步長(zhǎng)加倍或折半來(lái)處理步長(zhǎng)的方法稱為變步這種通過(guò)步長(zhǎng)加倍或折半來(lái)處理步長(zhǎng)的方法稱為變步長(zhǎng)法。表面上看,為了選擇步長(zhǎng),每一步都要反復(fù)判斷長(zhǎng)法。表面上看,為了選擇步長(zhǎng),每一步都要反復(fù)判斷,增加了計(jì)算工作量,但在方程的解,增加了計(jì)算工作量,但在方程的解y(x)y(x)變化劇烈的變化劇烈的情況下,總的計(jì)算工作量得到減少,結(jié)果情況下,總的計(jì)算工作量得到減少,結(jié)果(ji gu)(ji gu)還是還是合算的。合算的。1iy1iy第5頁(yè)/共16頁(yè)第六頁(yè),共16頁(yè)。第6頁(yè)/共16頁(yè)第七頁(yè),共16頁(yè)。其中其中i ( i = 1, , m ),i ( i = 2, , m ) 和和 ij ( i = 2, , m; j = 1, , i1 ) 均為待定系數(shù)均為待定系數(shù)(xsh),確定這些系數(shù),確定這些系數(shù)(xsh)的步驟與前面相似。的步驟與前面相似。 2 Runge-Kutta Method).,(.),(),(),(.1122112321313312122122111 mm mmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyyb bb bb ba ab bb ba ab ba al ll ll l 高階高階RungeKutta Method第7頁(yè)/共16頁(yè)第八頁(yè),共16頁(yè)。第8頁(yè)/共16頁(yè)第九頁(yè),共16頁(yè)。 Gill公式:公式:4階經(jīng)典龍格階經(jīng)典龍格-庫(kù)塔公式的一種庫(kù)塔公式的一種(y zhn)改進(jìn)改進(jìn)112346121222 1231222222423222222( ,)(,)(,1)(,1)hiiiihhiihiiiiyyKKKKKf xyKf xyKKf xyhKhKKf xh yhKhK2 Runge-Kutta Method 最常用最常用(chn yn)為四級(jí)為四級(jí)4階經(jīng)典龍格階經(jīng)典龍格-庫(kù)塔法庫(kù)塔法 /* Classical Runge-Kutta Method */ :),(),(),(),()22(34222312221432161hKyhxfKKyxfKKyxfKyxfKKKKKyyiihihihihiiihii 第9頁(yè)/共16頁(yè)第十頁(yè),共16頁(yè)。2 Runge-Kutta Method注:注: 龍格龍格-庫(kù)塔法庫(kù)塔法的主要運(yùn)算在于計(jì)算的主要運(yùn)算在于計(jì)算 Ki 的值,即計(jì)算的值,即計(jì)算 f 的的值。值。Butcher 于于1965年給出了計(jì)算量與可達(dá)到的最高年給出了計(jì)算量與可達(dá)到的最高精度階數(shù)的關(guān)系:精度階數(shù)的關(guān)系:753可達(dá)到的最高精度可達(dá)到的最高精度642每步須算每步須算Ki 的個(gè)數(shù)的個(gè)數(shù))(2hO)(3hO)(4hO)(5hO)(6hO)(4hO)(2nhO8n 由于龍格由于龍格-庫(kù)塔法的導(dǎo)出基于泰勒展開(kāi),庫(kù)塔法的導(dǎo)出基于泰勒展開(kāi),故精度主要受解函數(shù)的光滑性影響。對(duì)故精度主要受解函數(shù)的光滑性影響。對(duì)于于(duy)光滑性不太好的解,最好采光滑性不太好的解,最好采用低階算法而將步長(zhǎng)用低階算法而將步長(zhǎng)h 取小。取小。第10頁(yè)/共16頁(yè)第十一頁(yè),共16頁(yè)。第11頁(yè)/共16頁(yè)第十二頁(yè),共16頁(yè)。第12頁(yè)/共16頁(yè)第十三頁(yè),共16頁(yè)。2 Runge-Kutta Method 變步長(zhǎng)的變步長(zhǎng)的RungeKutta Method1(1)1ppnnRchyxQ: 由局部截?cái)嗾`差可以看出,步長(zhǎng)由局部截?cái)嗾`差可以看出,步長(zhǎng) h 越小,局部截?cái)嗾`差越越小,局部截?cái)嗾`差越小;但步長(zhǎng)減小,在一定求解范圍(區(qū)間)內(nèi)要完成的步數(shù)就??;但步長(zhǎng)減小,在一定求解范圍(區(qū)間)內(nèi)要完成的步數(shù)就增加了,步數(shù)增加會(huì)引起增加了,步數(shù)增加會(huì)引起(ynq)計(jì)算量增大,導(dǎo)致舍入誤差積計(jì)算量增大,導(dǎo)致舍入誤差積累。因此要選取適當(dāng)?shù)牟介L(zhǎng)。累。因此要選取適當(dāng)?shù)牟介L(zhǎng)。選擇步長(zhǎng)時(shí)要考慮兩個(gè)問(wèn)題:選擇步長(zhǎng)時(shí)要考慮兩個(gè)問(wèn)題: 1.如何衡量和檢驗(yàn)計(jì)算結(jié)果的精度?如何衡量和檢驗(yàn)計(jì)算結(jié)果的精度? 2.如何根據(jù)所獲得如何根據(jù)所獲得(hud)的精度處理步的精度處理步長(zhǎng)?長(zhǎng)?第13頁(yè)/共16頁(yè)第十四頁(yè),共16頁(yè)。第14頁(yè)/共16頁(yè)第十五頁(yè),共16頁(yè)。HW: p.201 #6-8第15頁(yè)/共16頁(yè)第十六頁(yè),共16頁(yè)。