4、步公式的導(dǎo)出二、常用的線性多步公式利用數(shù)值積分方法求線性多步公式一階常微分方程組與高階方程我們已介紹了一階常微分方程初值問題的各種數(shù)值解法,對于一階常微分方程組,可類似得到各種解法,而高階常微分方程可轉(zhuǎn)化為一階常微分方程組來求解。一階常微分方程組對于一階常微分方程組的初值問題(5.1)可以把單個方程中的f和y看作向量來處理,這樣就可把前面介紹的各種差分算法推廣到求一階方程組初值問題中來。設(shè)為節(jié)點上的近似解,則有改進的Euler格式為預(yù)報:校正:(7.32)又,相應(yīng)的四階龍格—庫塔格式(經(jīng)典格式)為(7.33)式中(7.34)把節(jié)點xi上的yi和zi值代入式(7.3
5、4),依次算出,然后把它們代入式(7.33),算出節(jié)點xi+1上的yi+1和zi+1值。對于具有三個或三個以上方程的方程組的初值問題,也可用類似方法處理,只是更復(fù)雜一些而已。此外,多步方法也同樣可以應(yīng)用于求解方程組初值問題。例用改進的Euler法求解初值問題取步長h=0.1,保留六位小數(shù)。解:改進的Euler法公式為預(yù)報:校正:將及h=0.1代入上式,得由初值,計算得高階方程組高階微分方程(或方程組)的初值問題,原則上都可以歸結(jié)為一階方程組來求解。例如,有二階微分方程的初值問題在引入新的變量后,即化為一階方程組初值問題:式(7.36)為一個一階方程組的初值問題,對
6、此可用7.7.1中介紹的方法來求解。例如應(yīng)用四階龍格-庫塔公式得消去,上式簡化為:上述方法同樣可以用來處理三階或更高階的微分方程(或方程組)的初值問題例求解下列二階微分方程的初值問題取步長h=0.1解:先作變換:令,代入上式,得一階方程組用四階龍格-庫塔方法求解,按式(7.37)及(7.38)進行計算:取步長,,,時然后計算時的y2和z2;依此類推,直到i=9時的y10和z10,即可得到其數(shù)值解。本章小結(jié)本章介紹了常微分方程初值問題的基本數(shù)值解法。包括單步法和多步法。單步法主要有歐拉法、改進歐拉法和龍格—庫塔方法。多步法是亞當(dāng)姆斯法。它們都是基于把一個連續(xù)的定解問
7、題離散化為一個差分方程來求解,是一種步進式的方法。用多步法求常微分方程的數(shù)值解可獲得較高的精度。實際應(yīng)用時,選擇合適的算法有一定的難度,既要考慮算法的簡易性和計算量,又要考慮截斷誤差和收斂性、穩(wěn)定性。龍格-庫塔法較為常用,適用于多步方法中作初值計算和函數(shù)f(x,y)較為簡單的場合。四階標(biāo)準(zhǔn)龍格—庫塔法精度高,程序簡單,易于改變步長,比較穩(wěn)定,也是一個常用的方法,但計算量較大。當(dāng)函數(shù)f(x,y)較為復(fù)雜,可用顯式亞當(dāng)姆斯方法或亞當(dāng)姆斯預(yù)測—校正方法,不僅計算量較小,穩(wěn)定性也比較好,但不易改變步長。一般采用龍格—庫塔法提供初值y1,y2,y3,然后用亞當(dāng)姆斯外推公式求
8、得預(yù)測值,