




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.在連續(xù)系統(tǒng)的仿真中,主要的計算工作是求解一階微分方程
y'=f(x,y)y(
x0)=
y0解析法只能用來求解一些特殊類型的方程,實際仿真問題中歸結(jié)出來的微分方程主要靠數(shù)值解法。.由于實際運算只能完成有限項或有限步運算,因此要將有些需用極限或無窮過程進(jìn)行的運算有限化,對無窮過程進(jìn)行截斷,這樣產(chǎn)生的誤差成為截斷誤差。根據(jù)實際情況建立的數(shù)學(xué)模型往往難以求解。通常需要通過近似替代,將所求解的數(shù)學(xué)模型簡化為易求解的數(shù)值計算問題后再進(jìn)行求解。數(shù)學(xué)模型的理論解與數(shù)值計算問題的精確解之間的誤差稱為截斷誤差。這是計算方法本身帶來的誤差,所以也成為方法誤差。9/30/2023.3得到高精度方法的一個直接想法是利用Taylor展開假設(shè)式y(tǒng)'=f(x,y)(a≤x≤b)
中的f(x,y)
充分光滑,將y(xi+1)在xi點作Taylor展開,若取右端不同的有限項作為y(xi+1)的近似值,就可得到計算y(xi+1)的各種不同截斷誤差的數(shù)值公式。例如:取前兩項可得到3.2龍格-庫塔方法9/30/2023.4其中P階泰勒方法若取前三項,可得到截斷誤差為O(h3)的公式類似地,若取前P+1項作為y(xi+1)的近似值,便得到9/30/2023.5顯然p=1時,
yi+1=yi+hf(xi,yi)它即為我們熟悉的Euler方法。當(dāng)p≥2時,要利用泰勒方法就需要計算f(x,y)的高階微商。這個計算量是很大的,尤其當(dāng)f(x,y)較復(fù)雜時,其高階導(dǎo)數(shù)會很復(fù)雜。因此,利用泰勒公式構(gòu)造高階公式是不實用的。但是泰勒級數(shù)展開法的基本思想是許多數(shù)值方法的基礎(chǔ)。R-K方法不是直接使用Taylor級數(shù),而是利用它的思想9/30/2023.6龍格-庫塔(R-K)法的基本思想Euler公式可改寫成
則yi+1的表達(dá)式與y(xi+1)的Taylor展開式的前兩項完全相同,即局部截斷誤差為O(h2)。Runge-Kutta
方法是一種高精度的單步法,簡稱R-K法9/30/2023.7同理,改進(jìn)Euler公式可改寫成
上述兩組公式在形式上共同點:都是用f(x,y)在某些點上值的線性組合得出y(xi+1)的近似值yi+1,
且增加計算的次數(shù)f(x,y)的次數(shù),可提高截斷誤差的階。如歐拉法:每步計算一次f(x,y)的值,為一階方法。改進(jìn)歐拉法需計算兩次f(x,y)的值,為二階方法。局部截斷誤差為O(h3)9/30/2023.8
于是可考慮用函數(shù)f(x,y)在若干點上的函數(shù)值的線性組合來構(gòu)造近似公式,構(gòu)造時要求近似公式在(xi,yi)處的Taylor展開式與解y(x)在xi處的Taylor展開式的前面幾項重合,從而使近似公式達(dá)到所需要的階數(shù)。既避免求高階導(dǎo)數(shù),又提高了計算方法精度的階數(shù)。或者說,在[xi,xi+1]這一步內(nèi)多計算幾個點的斜率值,然后將其進(jìn)行加權(quán)平均作為平均斜率,則可構(gòu)造出更高精度的計算格式,這就是龍格—庫塔(Runge-Kutta)法的基本思想。.一般龍格-庫塔方法的形式為2023/9/309其中ai,bij,ci為待定參數(shù),要求上式y(tǒng)i+1在點(xi,yi)處作Tailor展開,通過相同項的系數(shù)確定參數(shù)。稱為P階龍格-庫塔方法。9/30/2023.10Runge-Kutta方法的推導(dǎo)思想對于常微分方程的初值問題的解y=y(x),在區(qū)間[xi,xi+1]上使用微分中值定理,有即9/30/2023.11引入記號就可得到相應(yīng)的Runge-Kutta方法9/30/2023.12如下圖即則上式化為即Euler方法Euler方法也稱為一階Runge-Kutta方法9/30/2023.13二階龍格—庫塔法
在[xi,xi+1]上取兩點xi和xi+a2=xi+a2h,以該兩點處的斜率值K1和K2的加權(quán)平均(或稱為線性組合)來求取平均斜率k*的近似值K,即
式中:K1為xi點處的切線斜率值
K1=hf(xi,yi)=hy'(xi)
K2為xi+a2h點處的切線斜率值,比照改進(jìn)的歐拉法,將xi+a2視為xi+1,即可得
確定系數(shù)c1、c2、a2、b21
,可得到有2階精度的算法格式9/30/2023.14因此
將y(xi+1)在x=xi處進(jìn)行Taylor展開:
將在x=xi處進(jìn)行Taylor展開:
.2023/9/3015K1=hf(xi,yi)9/30/2023.16這里有4個未知數(shù),3個方程。存在無窮多個解。所有滿足上式的格式統(tǒng)稱為2階龍格-庫塔格式。令
對應(yīng)項的系數(shù)相等,得到
9/30/2023.17注意到,就是二階龍格-庫塔公式,也就是改進(jìn)的歐拉法。
因此,凡滿足條件式有一簇形如上式的計算格式,這些格式統(tǒng)稱為二階龍格—庫塔格式。因此改進(jìn)的歐拉格式是眾多的二階龍格—庫塔法中的一種特殊格式。9/30/2023.18若取,就是另一種形式的二階龍格-庫塔公式。此計算公式稱為變形的二階龍格—庫塔法。式中為區(qū)間的中點。也稱中點公式。
Q:為獲得更高的精度,應(yīng)該如何進(jìn)一步推廣?9/30/2023.19
二級R-K方法是顯式單步式,每前進(jìn)一步需要計算兩個函數(shù)值。由上面的討論可知,適當(dāng)選擇四個參數(shù)c1,c2,a2,
b21,可使每步計算兩次函數(shù)值的二階R-K方法達(dá)到二階精度。能否在計算函數(shù)值次數(shù)不變的情況下,通過選擇不同的參數(shù)值,使得二階R-K方法的精度再提高呢?
答案是否定的!無論四個參數(shù)怎樣選擇,都不能使公式的局部截斷誤差提高到三階。
這說明每一步計算兩個函數(shù)值的二階R-K方法最高階為二階。若要獲得更高階得數(shù)值方法,就必須增加計算函數(shù)值的次數(shù)。.三階龍格—庫塔法2023/9/3020為進(jìn)一步提高精度,在區(qū)間[xi,xi+1]上除兩點xi和xi+a2=xi+a2h,以外,再增加一點xi+a3=xi
+a3h,用這三點處的斜率值K1、K2和K3的加權(quán)平均得出平均斜率K*的近似值K,這時計算格式具有形式:
9/30/2023.21同理推導(dǎo)二階公式,將y(xi+1)和yi+1在x=xi處進(jìn)行Taylor展開,使局部截斷誤差達(dá)到O(h4),使對應(yīng)項的系數(shù)相等,得到系數(shù)方程組:9/30/2023.22參數(shù)的選擇不唯一,從而構(gòu)成一類不同的三階R-K公式,下面給出一種常用的三階R-K公式,形似simpson公式:9/30/2023.23四階(經(jīng)典)龍格—庫塔法
如果需要再提高精度,用類似上述的處理方法,只需在區(qū)間[xi,xi+1]上用四個點處的斜率加權(quán)平均作為平均斜率K*的近似值,構(gòu)成一系列四階龍格—庫塔公式。具有四階精度,即局部截斷誤差是O(h5)。推導(dǎo)過程與前面類似,由于過程復(fù)雜,這里從略,只介紹最常用的一種四階經(jīng)典龍格—庫塔公式。
9/30/2023.24
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ù)值,分別設(shè)其為設(shè)yi+1=yi+c1K1+c2K2+c3K3+c4K49/30/2023.25
類似于前面的討論,把K2、K3、K4分別在xi點展成h的冪級數(shù),代入線性組合式中,將得到的公式與y(xi+1)在xi點上的泰勒展開式比較,使其兩式右端直到h4的系數(shù)相等,經(jīng)過較復(fù)雜的解方程過程便可得到關(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/39/30/2023.26
四階(經(jīng)典)Runge-Kutta方法9/30/2023.27例1.使用高階R-K方法計算初值問題解:(1)使用三階R-K方法.28其余結(jié)果如下:(2)如果使用四階R-K方法
ixik1k2k3yi1.00000.10000.10000.11030.12561.11112.00000.20000.12350.13760.15951.24993.00000.30000.15620.17640.20921.42844.00000.40000.20400.23420.28661.66645.00000.50000.27770.32590.41631.99932023/9/30.29其余結(jié)果如下:
ixik1k2k3k4yi1.00000.10000.10000.11030.11130.12351.11112.00000.20000.12350.13760.13920.15631.25003.00000.30000.15620.17640.17910.20421.42864.00000.40000.20400.23420.23890.27811.66675.00000.50000.27770.32590.33480.40062.00002023/9/30.【例】已知一階系統(tǒng)的微分方程為:,初始條件,取仿真步長h=0.1,分別用歐拉法、梯形法和龍格—庫塔法計算該系統(tǒng)仿真第一步的值。解:原方程可變?yōu)?即數(shù)值積分公式應(yīng)用
.
(1)用歐拉法計算根據(jù)歐拉公式,將函數(shù)表達(dá)式及其初始值代入后,可得該系統(tǒng)仿真第一步的值:數(shù)值積分公式應(yīng)用
.(2)用梯形法計算:根據(jù)預(yù)報—校正公式,將函數(shù)表達(dá)式及其初始值代入后,可得仿真第一步的值。用預(yù)報公式求起始值:數(shù)值積分公式應(yīng)用
.再用校正公式得到系統(tǒng)仿真第一步的值:數(shù)值積分公式應(yīng)用
.二階龍格-庫塔公式.(3)用二階龍格—庫塔法計算根據(jù)公式先計算出兩個系數(shù),再計算仿真第一步的值:數(shù)值積分公式應(yīng)用
.則系統(tǒng)仿真第一步的值為:數(shù)值積分公式應(yīng)用
.四階龍格—庫塔(Runge—Kutta)法.(4)用四階龍格—庫塔公式計算根據(jù)公式先計算出4個系數(shù),再計算仿真第一步的值:數(shù)值積分公式應(yīng)用
.數(shù)值積分公式應(yīng)用
.則系統(tǒng)仿真第一步的值為:數(shù)值積分公式應(yīng)用
.從上述結(jié)果可以看出:
對于同一個系統(tǒng)進(jìn)行仿真計算時,其值的精度是隨著數(shù)值積分公式的變化而改變的,其中歐拉法計算精度最低,其次為梯形法和二階龍格—庫塔法,四階龍格—庫塔法計算精度最高。數(shù)值積分公式應(yīng)用
例2:用matlab演示.龍格-庫塔法的誤差估計
一個高精度的仿真方法必須將步長控制作為手段。實現(xiàn)步長控制涉及局部誤差估計和步長控制策略兩方面的問題。
.龍格-庫塔法的誤差估計RK方法的誤差估計通常是設(shè)法找一個低一階的RK公式,將兩個公式計算結(jié)果之差作為估計誤差。例如Runge-Kutta-Fehlberg法的計算公式是
RKF1-2公式用另一個一階公式來估計誤差.龍格-庫塔法的誤差估計RKM3-4公式:誤差估計式用3階,計算公式為4階。RKM3-4公式誤差估計公式.龍格-庫塔法的步長控制
龍格-庫塔法的誤差估計和步長控制策略的基本思想是:每積分一步都設(shè)法估計出本步的積分誤差en,然后判斷是否滿足允許誤差E,據(jù)此選擇相應(yīng)的步長控制策略。每一步的局部誤差通常取以下形式en=En/(|yn|+1)其中|yn|是利用誤差估計式計算出的本步的估計誤差。當(dāng)|yn|較大時,en是相對誤差,當(dāng)|yn|較小時,en是絕對誤差。這樣作的目的是避免當(dāng)y的值很小時,en變得過大。.仿真模型的運行速度與實際系統(tǒng)運行速度一致,稱為實時仿真。一般方法難以滿足實時仿真的需要:所得模型的執(zhí)行速度較慢;機(jī)理也不符合實時仿真的需要。假設(shè)對一般形式的系統(tǒng)進(jìn)行仿真:以RK-2為例進(jìn)行分析,其公式為
實時仿真.
假定在h/2的時間內(nèi)計算機(jī)剛好計算一次右端函數(shù)f,則計算分為兩步:
1在tk時刻利用當(dāng)前的un、yn計算K1;
2在tn+h/2時刻計算K2,此時un+1無法得到,但實時仿真除了要滿足執(zhí)行速度的要求外,還要求實時接收外部輸入,并實時得到輸出。?.
此種情況下,解決的方法有兩個:對un+1進(jìn)行預(yù)報(增大仿真誤差)或仿真延遲半個計算步距。后者的計算流程如下可見,后種方法的輸出也會延遲半個計算步距,為了克服這個缺陷,人們提出了如下形式的實時二階RK法圖RK-2的計算流程.
實時RK-2公式:
其計算流程:假定在h/2的時間內(nèi)計算機(jī)也剛好計算一次右端函數(shù)f,則計算也分為兩步:
1在tn時刻利用當(dāng)前的un、yn計算K1;
2在tn+h/2時刻計算K2,此時un+1/2可以得到,不會引入新的誤差,可實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技前沿下的生物質(zhì)能源產(chǎn)業(yè)變革研究
- 科技助力打造孩子健康飲食習(xí)慣
- 磚廠安全風(fēng)險評估與防范策略
- 電商平臺在辦公用品行業(yè)的市場定位
- 招標(biāo)租賃合同范本
- 醫(yī)院標(biāo)識合同范本
- 班級家訪活動的實施方案計劃
- 整形治療合同范本
- 未來保安工作發(fā)展的趨勢與挑戰(zhàn)計劃
- 教學(xué)活動的創(chuàng)新與設(shè)計計劃
- 部編版小學(xué)五年級下冊《道德與法治》全冊教案含教學(xué)計劃
- 運動會活動流程中的醫(yī)療安全保障措施
- 2025公司員工試用期合同(范本)
- 第十章皮膚軟組織擴(kuò)張術(shù)醫(yī)學(xué)美容教研室袁曉野講解
- 2025年冷鏈物流產(chǎn)品配送及倉儲管理承包合同3篇
- 2024年青島遠(yuǎn)洋船員職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 浙教版2023小學(xué)信息技術(shù)六年級上冊《人機(jī)對話的實現(xiàn)》說課稿及反思
- 2025年山東出版集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 【開題報告】中小學(xué)校鑄牢中華民族共同體意識教育研究
- 2022+ADA/EASD共識報告:2型糖尿病高血糖的管理
評論
0/150
提交評論