資源描述:
《常微分方程的數(shù)值解法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應用文檔-天天文庫。
1、第九章常微分方程的數(shù)值解法在自然科學的許多領(lǐng)域中,都會遇到常微分方程的求解問題。然而,我們知道,只有少數(shù)十分簡單的微分方程能夠用初等方法求得它們的解,多數(shù)情形只能利用近似方法求解。在常微分方程課中已經(jīng)講過的級數(shù)解法,逐步逼近法等就是近似解法。這些方法可以給出解的近似表達式,通常稱為近似解析方法。還有一類近似方法稱為數(shù)值方法,它可以給出解在一些離散點上的近似值。利用計算機解微分方程主要使用數(shù)值方法。我們考慮一階常微分方程初值問題在區(qū)間[a,b]上的解,其中f(x,y)為x,y的已知函數(shù),y0為給定的初始值,將上述問題的精確解記為y(x)。數(shù)值方法的基本思想是:在解的存在區(qū)間上取n+1個節(jié)點這里
2、差,i=0,1,…,n稱為由xi到xi+1的步長。這些hi可以不相等,但一般取成相等的,這時。在這些節(jié)點上采用離散化方法,(通常用數(shù)值積分、微分。泰勒展開等)將上述初值問題化成關(guān)于離散變量的相應問題。把這個相應問題的解yn作為y(xn)的近似值。這樣求得的yn就是上述初值問題在節(jié)點xn上的數(shù)值解。一般說來,不同的離散化導致不同的方法?!?歐拉法與改進歐拉法1.歐拉法1.對常微分方程初始問題用數(shù)值方法求解時,我們總是認為(9.1)、(9.2)的解存在且唯一。歐拉法是解初值問題的最簡單的數(shù)值方法。從(9.2)式由于y(x0)=y0已給定,因而可以算出設(shè)x1=h充分小,則近似地有:(9.3)記從而
3、我們可以取作為y(x1)的近似值。利用y1及f(x1,y1)又可以算出y(x2)的近似值:一般地,在任意點xn+1=(n+1)h處y(x)的近似值由下式給出(9.4)這就是歐拉法的計算公式,h稱為步長。不難看出,近似解的誤差首先是由差商近似代替微商(見(9.3))引起的,這種近似代替所產(chǎn)生的誤差稱為截斷誤差。還有一種誤差稱為舍入誤差,這種誤差是由于利用(9.4)進行計算時數(shù)值舍入引起的。例9.1用歐拉法求初值問題當h=0.02時在區(qū)間[0,0.10]上的數(shù)值解。解把代入歐拉法計算公式。就得具體計算結(jié)果如下表:nxnyny(xn)en=y(xn)-yn001.00001.0000010.020
4、.98200.98250.000520.040.96500.96600.000530.060.94890.95030.001440.080.93360.93540.001850.100.91920.9230.0021在上表中y(xn)列,乃是初值問題(9.5)、(9.6)的真解在xn上的值。為近似值yn的誤差。從表中可以看出,隨著n的增大,誤差也在增大,所以說,歐拉法計算簡便,對一些問題有較大的使用價值,但是,它的誤差較大,所得的數(shù)值解精確度不高。2.改進歐拉法為了構(gòu)造比較精確的數(shù)值方法,我們從另一角度重新分析一下初值問題。一般說來,一階方程的初值問題與積分方程(9.7)是等價的,當x=x1
5、時,(9.8)要得到y(tǒng)(x1)的值,就必須計算出(9.8)式右端的積分。但積分式中含有未知函數(shù),無法直接計算,只好借助于數(shù)值積分。假如用矩形法進行數(shù)值積分則因此有可見,用矩形法計算右端的積分與用歐拉法計出的結(jié)果完全相同。因此也可以說歐拉法的精度之所以很低是由于采用矩形法計算右端積分的結(jié)果??梢韵胂?,用梯形公式計算(9.8)式右端的積分,可期望得到較高的精度。這時將這個結(jié)果代入(9.3)并將其中的y(x1)用y1近似代替,則得這里得到了一個含有y1的方程式,如果能從中解出y1,用它作為y(x1)的近似值,可以認為比用歐拉法得出的結(jié)果要好些。仿照求y1的方法,可以逐個地求出y2,y3,…。一般地
6、當求出yn以后,要求yn+1,則可歸結(jié)為解方程:這個方法稱為梯形法則。用梯形法則求解,需要解含有yn+1的方程式,這常常很不容易。為此,在實際計算時,可將歐拉法與梯形法則相結(jié)合,計算公式為(9.9)這就是先用歐拉法由(xn,yn)得出y(xn+1)的初始近似值,然后用(9.9)中第二式進行迭代,反復改進這個近似值,直到(e為所允許的誤差)為止,并把取作y(xn+1)的近似值yn+1。這個方法就叫改進歐拉方法。顯然,應用改進歐拉法,如果序列收斂,它的極限便滿足方程即序列的極限可取作yn+1??梢宰C明,如果有界,則只要h取得適當小,上述序列必定收斂。這樣當h取得充分小,就可保證上述迭代過程收斂到
7、一個解。當步長h取得適當時,歐拉方法算出的值已是較好的近似,因此改進歐拉法收斂很快,通常只需二、三次迭代即可。如果迭代很多步仍不收斂,這表明表長h選的過大,應縮小步長后再計算。通常把(9.9)叫做預報校正公式,其中第一式叫預報公式,第二式叫校正公式。這個公式還可寫為(9.9)’3.公式的截斷誤差現(xiàn)在來考察兩個公式的截斷誤差:有多大?這里假定前一步得的結(jié)果yn=y(xn)是準確的。寫出y(xn+1)的泰勒展開式