上海交通大學計算方法課件(宋寶瑞)CH.8
1第八章 常微分方程初值問題的數(shù)值解法(1)00(,),dyfxxb (1)的解:解析解 函數(shù) 00(),(,),()Nxdyyxfxxy 常微分方程課程中討論了(1)的解的存在性,唯一性條件例如 ,且 滿足對 的 Lipchitz 條件:0(,),;fCb(,)fy12120(,)(,),nfxyfLyx 則(1)的解存在,唯一以后我們總設(shè) (,)ip()Lfx解析解不易求得,或太復(fù)雜。實際問題中歸結(jié)出的方程主要用數(shù)值解,即求 在一系列離散點上的近似值,這些點是()y01011,.nnxhxh 諸 可以不同,為方便計算,設(shè)i ,1,2.ii 方法:據(jù)常微分方程理論,已知 ,則(1)在 上的解滿足 ()kyx,kxb2(,)kyfx提示我們從 出發(fā),一步一步向前跨,得到0 (),0,1.iiyxn 初值問題: Taylor 展式法(數(shù)值積分法) Euler 折線法 分點 00,12.k bxxhknh 給定(1) ,在 處將 展成 Taylor 展式k()yx2()(kyx一般 很小,略去 項,得:h210021(,)yfxy 一般地, 11(,)1,2.,kkyhfxykn 分段線性函() kkx x數(shù)(Euler 折線法名稱的由來)如果 (沒有誤差) 用 Euler 折線法求得()kky1ky則 局部截斷誤差 21 1():kkkhxT3221()kkhTyxo主 項Euler 折線法算法簡單,自開始,但精度差(P.281,表 9-1),幾乎不單獨用。向后的 Euler 公式:11(,)kkyhfxyTaylor 展開可得, , 主項21()khT2()khyx隱式, 可迭代求解,精度也不高。1ky梯形公式(向前、向后 Euler 法,取算術(shù)平均)1 1(,)(,)(2)2kkkhyfxyfy 平均斜率 消去截斷誤差中的 項。提高精度 1 2 2 31kTOh隱式,迭代方法 (0)1() ()1(,),(3)2kkn nkyhfxyfxy 迭代有限步,或迭代至收斂(收斂嗎?下證)(2)-(3) (1) ()11(,),n nkkkhyfxyfxyLipchitz 條件 ()()12nkL4當 充分小,即 時,方法收斂,缺點迭代次數(shù)無法控制。h12L如果只迭代一次,得到改進的 Euler 公式 211 31(,)()(,2kkkkyfxyTOhhfxy 預(yù)估校正法 (,)kkyfx1 31112(,)(),()kkkkkyhfxyTOhf預(yù) 估校 正 說明:231 31()2(,)(kkkkkkhyyOfx 31()kTOh優(yōu)點: 預(yù)估與校正精度相同;不需迭代,精度較高。問題: 已知 才可起步,要用其它方法做“表頭”01,yEuler 法的整體誤差5, 受第 1,2,第 n 步截斷誤差的影響()nneyx記 ,則1(,)nhfxy11111()(,)(,)(),(nnnn nnnneyTxhfyxhfxyyfLe 反復(fù)應(yīng)用上式,又由 得000 112,0()().()1max|2()1nnnkbknhLbxeThhLTyCe = 一般, 比 低一階neTRunge-Kutta 方法(RK 法)Taylor 展開法(構(gòu)造公式的基本方法,用于構(gòu)造任意階的公式)方法要點6例: 微分兩邊2yx222(4)222()4()3)6(358yxyxyxyx 在 這一點上,補充 可求得 的值。k()k()jkyx一般地 (,)(,)(,),xyxyyffffxy(3) 222xyf 算子 ()Dfxy. (D)()(1),jjyf 2()112(1)11()() ()!nnkkkkknxyxhxyxhofff 是以 代入(D) 式得到的值。()jkf,kxy令 ,可以構(gòu)造任意階的公式。(1)211!nkkfhffh7稱為 階精度的公式。111()()pkkyxOh精度高,但太繁瑣,常用于求“表頭”R-K 法為避免 Taylor 展開法的繁瑣計算,試圖不計算 ,而用多計算幾個()jkff(x,y)在不同點上的值來代替 12221333321,112(,), )(, .).kkkrkrkrrrKfxyhKf hfxyKK 其中 與 無關(guān)。,fh1kkyh選擇常數(shù),使 h 的 Taylor 展式與 順次有盡可能2.kff多的項重合。一般導致非線性方程組,有時不推最高可能階數(shù),而常要求系數(shù)對稱,簡明易記. (非常繁瑣,一次推得,一般情況通用)例 二階的 RK 方法推導用二元 Taylor 展式812221 2212(,)(,)(,)(,)(,)(, kkkxkykkxkyKfxyhKffhfxKhff O 1xy21212 (y=f)2 (f+)(,)(,(,)kkxkyKffxhf 只須二階,自由系數(shù)12/12210, 我們得到了二階 R-K 法 (也稱為變形 Euler 公式):Un二階的方法,用多算一次函數(shù)值來避免算 .y如果取 , 我們又一次得到改進1/212 的 Euler 公式,同時回答了前面改進的 Euler 公式是二階的問題。四階(標準)RK 法(常用)911223431124(,)(,)()6kkkkkKfxyKhfxyhy 變步長 RK 法要點:取一個 算: 11(),/2nybh 2 2()nyy?再 算 判 斷 線性多步法單步法只用 ,線性多步法用了若干個點上1,(,)kkkxyfxy的信息,限于線性組合,一般的1010.(.)(1)kkrkkhfff . 顯式, 隱式。11局部截斷誤差的計算:設(shè) ()kikiyx0,1.r, 是用(1)式算出的值。11:()kkkTyx方程等階于11()(,)nxnfydx10未知,但: (),()Fxfyx()(,)niniiniFxfyf以 作插值多項式, 代 積1.,kkkrff (rpx)F分,求出諸 和 得到 Adams 外推法,插值區(qū)間 不包含ii,kr,所以 得 4 階顯式公式:1(,)kx10123(5979)24kkkkhyfff以 作插值1 1(,),).,(,knrrxfxx 多項式 代 積分得 和 ,此時 ,有 4 階隱式公式iQ(Fii10111295)24kkkkhyfff一般利用 Taylor 展開方程例如: 1012101().(2)kkkkkyyhff Taylor 展開(),()iiiixfxnx 在 處kikiy.21()()().(3)kkkkhxyx 21()()().kkkkyyx代入(2)式得到:111012101212 331(4)121()()(496(602k kkkyyxyxhyxh (5)6() kyxOh據(jù) 的 Taylor 展式,上式中 的系數(shù)應(yīng)為 ,列出相應(yīng)的1ky ()jjkyxh1!j線性方程組,從中解出 ,局部截斷誤差 .考慮穩(wěn)定性和系數(shù)i, 6()O形式簡單,也可少解幾個方程,有自由未知數(shù)。 e.g. 令 ,代入可解得02Simpson 公式111(4)3kkkhyff局部截斷誤差 6)O當然也有另外的公式。 Harmming 做了多次檢驗,發(fā)現(xiàn)當 時穩(wěn)定10性好。得 Harmming 公式 512113(9)(2)()88kkkkhyyffOh 用數(shù)值積分法可推出的公式必可用 Taylor 法推出。反之不然 (如12Harmming)一般來說,隱式的公式穩(wěn)定性較好,解決隱式的方法: 迭代 1用其他公式預(yù)報。 2 1kyHarmming 預(yù)估校正系統(tǒng)隱式的四階 Harmming 公式12115()613(9)2)88(40kkkkkkkkhyyffTxxOhHarmming 公式是隱式的,需要一個顯式四階線性多步法公式求的初值。(2)1ky設(shè): 0123012()kkkkkyyhff可推六階顯式只推四階 ,得 Miline 公式0113125()6142)()(kkkkhyffxyxOh 不 夠 穩(wěn) 定Harmming 的預(yù)測- 校正系統(tǒng)(隱式,不迭代)表頭 n=1,2,31. 用 Miline 公式預(yù)報 13(0)13124(2)nnnnhypyff2. 改進 (1)1()nnnmpc3. 用 Harmming 公式校正(2)12113(9)(2)88nnnnhycymf4. 改進 (3)119()()nncnTpc第 2、4 兩步的依據(jù)如果只考慮局部截斷誤差的主項,我們有 5() 5()5()5() 1(5)1 ()412)403603636(22)49()(20nnnnpnccpyxhyxhyhyhccpTyhc 實際上第 2、4 兩步是從近似值中減去誤差主項,當然不能消除誤差,但可以提高近似的精確度。高階方程與一階方程組14初值問題() (1)00,.,nnyfxyxy引入中間函數(shù) (1)12,n ., 上述等價于: 1012321 (1)10()(,.)n nnyxyyfxyxy 一階方程組的初值問題:一般地 10(,.,)1,2.,)iiniiodfxyin 寫成向量形式 視為 的算子,向量值函數(shù)。,nA fnA12()().()Tnfxfx按算子的求導法 10,.,(,)Tndffdxxfyx 向 量 形 式15與前述初值問題有完全相同的形式。單步法的公式也有完全相同的形式。例:改進的 Euler 折線法 11 1(,)(,)(,)2k kkk khyhfxyyfxyfy 四階 RK 法1213243 234(,)(,),(,),)6kk kk kk hfxyfxyfxyhh