版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、常微分方程數(shù)值解常微分方程數(shù)值解楊瑞琰0、導言 在許多實際問題中,例如物理中的速率問題,人口的增長問題,放射性衰變問題,經(jīng)濟學中的邊際問題等,常常涉及到兩個變量之間的變化規(guī)律。微分方程是研究上述問題的一種機理分析方法,它在科技、工程、生態(tài)、環(huán)境、人口以及經(jīng)濟管理等領域中有著十分廣泛的應用。在應用微分方程解決實際問題時,必須經(jīng)過兩個階段。一是微分方程的建立,建立一個微分方程的實質就是構建函數(shù)、自變量以及函數(shù)對自變量的導數(shù)之間的一種平衡關系。而正確地構建這種平衡關系,需要對實際問題的深入淺出的刻畫,根據(jù)物理的和非物理的原理、定律或定理,作出合理的假設和簡化并將它升華成數(shù)學問題。另一個是方程的求解和
2、結果分析。對一些常系數(shù)的或特殊函數(shù)形式的微分方程,往往能得到解析解,這對實際問題的分析和應用都是有利的,但是大多數(shù)變系數(shù)的、非線性函數(shù)形式的微分方程都是求不出解析解的,此時就需要應用求解微分方程的另一個重要方法數(shù)值解法。本章簡要介紹有關微分方程模型的概念,微分方程的數(shù)值解法和圖解法,主要介紹若干建模實例,通過它們展示微分方程模型的建模步驟及解決實際問題的全過程。1、實例及其數(shù)學模型、實例及其數(shù)學模型 例例1 海上緝私海上緝私 問題問題 海防某部緝私艇上的雷達發(fā)現(xiàn)正東方向c海里處有一艘走私船正以速度a向正北方向行駛,緝私艇立即以最大速度b前往攔截。用雷達進行跟蹤時,可保持緝私艇的速度方向始終指向
3、走私船。建立任意時刻緝私艇的位置和緝私艇航線的數(shù)學模型,討論緝私艇能夠追上走私船的條件,求出追上的時間。建立直角坐標系如圖,設在t=0時刻緝私艇發(fā)現(xiàn)走私船,此時緝私艇的位置在(0, 0),走私船的位置在(c, 0)。走私船以速度a平行于y軸正向行駛,緝私艇以速度b按指向走私船的方向行駛。在任意時刻t緝私艇位于P(x, y)點,而走私船到達Q(c, at)點,直線PQ與緝私艇航線(圖中曲線)相切,切線與x軸正向夾角為。Q(c,at)P(x,y)R(c,y )0yxc緝私艇在x, y方向的速度分別為 ,由直角三角形PQR寫出sin 和cos 的表達式,得到微分方程: (1) 初始條件為 (2) 這
4、就是緝私艇位置(x(t), y(t)的數(shù)學模型。但是由方程(1)無法得到x(t), y(t)的解析解,需要用數(shù)值算法求解。我們將在后面繼續(xù)討論這個問題。 sin,cosbdtdybdtdx2222)()()()()()(yatxcyatbdtdyyatxcxcbdtdx0)0(, 0)0(yx例例2 弱肉強食弱肉強食問題問題 自然界中在同一環(huán)境下的兩個種群之間存在著幾種不同的生存方式,比如相互競爭,即爭奪同樣的食物資源,造成一個種群趨于滅絕,而另一個趨向環(huán)境資源容許的最大容量;或者相互依存,即彼此提供部分食物資源,二者和平共處,趨于一種平衡狀態(tài);再有一種關系可稱之為弱肉強食,即某個種群甲靠豐富
5、的自然資源生存,而另一種群乙靠捕食種群甲為生,種群甲稱為食餌(Prey),種群乙為捕食者(Predator),二者組成食餌-捕食者系統(tǒng)。海洋中的食用魚和軟骨魚(鯊魚等)、美洲兔和山貓、落葉松和蚜蟲等都是這種生存方式的典型。這樣兩個種群的數(shù)量是如何演變的呢?近百年來許多數(shù)學家和生態(tài)學家對這一系統(tǒng)進行了深入的研究,建立了一系列數(shù)學模型,本節(jié)介紹的是最初的、最簡單的一個模型,它是意大利數(shù)學家Volterra在上個世紀20年代建立的。模型模型 用x(t)表示時刻t食餌(如食用魚)的密度,即一定區(qū)域內的數(shù)量,y(t)表示捕食者(如鯊魚)的密度。假設食餌獨立生存時的(相對)增長率為常數(shù)r0,即 ,而捕食者
6、的存在使食餌的增長率減小,設減小量與捕食者密度成正比,比例系數(shù)為a0,則 。 捕食者離開食餌無法生存,設它獨自存在時死亡率為常數(shù)d0,即 ,而食餌的存在為捕食者提供了食物,使捕食者的死亡率減小,設減小量與食餌密度成正比,比例系數(shù)為b0,則 ,實際上,當bxd時捕食者密度將增長。 給定食餌和捕食者密度的初始值x0, y0,由上可知x(t), y(t)滿足以下方程: (3)(3)的解x(t), y(t)描述了食餌和捕食者密度隨時間的演變過程。但是我們同樣得不到x(t), y(t)的解析解,需要用數(shù)值算法求解。我們將在3繼續(xù)討論這個問題 00)0(,)0()()(yyxxbxydyybxdyaxyr
7、xxayrxrxx/ ayrxx/dyy/)(/bxdyy2 歐拉方法和龍格歐拉方法和龍格庫塔方法庫塔方法一階常微分方程初值問題的一般形式為 y=(x,y) ,axb(4)y(a)=其中(x,y)是已知函數(shù),為給定的初值. 如果函數(shù)(x,y)在區(qū)域axb,-y0為LipschitzLipschitz常數(shù)常數(shù),則初值問題(4)有唯一解.yxyyLyxfyxf,),(),( 所謂數(shù)值解法,就是設法將常微分方程離散化,建立差分方程,給出解在一些離散點上的近似值. a=x0 x1x2xnxN=b其中剖分節(jié)點xn=a+nh,n=0,1,N, h稱為剖分步長.數(shù)值解法就是求精確解y(x)在剖分節(jié)點xn上的
8、近似值yny(xn), n=1,2,n. 假設初值問題(4)的解y=y(x)唯一存在且足夠光滑.對求解區(qū)域a,b做剖分 我們采用數(shù)值積分方法來建立差分公式. 2.12.1 構造數(shù)值解法的基本思想構造數(shù)值解法的基本思想 在區(qū)間xn,xn+1上對方程(4)做積分,則有對右邊的積分應用左矩形公式,則有)5()(,()()(11nnxxnndxxyxfxyxy梯形公式oxyab左矩形公式y(tǒng)=(x)babfafabdxxf)()(2)(baafabdxxf)()()(右矩形公式babfabdxxf)()()(中矩形公式babafabdxxf)2()()(對右邊的積分應用左矩形公式,則有)6()(,()(
9、)(11nnxxnndxxyxfxyxy因此,建立節(jié)點處近似值yn滿足的差分公式稱之為EulerEuler公式公式. 稱為梯形公式梯形公式. )(,()()(1nnnnxyxhfxyxy),(1nnnnyxhfyy1,2 , 1 , 0,0Nny 若對(6)式右邊的積分應用梯形求積公式,則可導出差分公式1,2 , 1 , 0,0Nny),(),(2111nnnnnnyxfyxfhyy 利用Euler方法求初值問題 解解 此時的Euler公式為稱為EulerEuler中點公式中點公式或稱雙步雙步EulerEuler公式公式. . 若在區(qū)間xn-1,xn+1上對方程(4)做積分,則有11)(,()
10、()(11nnxxnndxxyxfxyxy對右邊的積分應用中矩形求積公式,則得差分公式),(211nnnnyxhfyy1,2 , 1 , 0,0Nny例例320 ,21122xyxy 0)0(y的數(shù)值解.此問題的精確解是y(x)=x/(1+x2).分別取步長h=0.2 ,0.1 ,0.05,計算結果如下)211(221nnnnyxhyy2 , 1 , 0,00nyhxnyny(xn)y(xn)-ynh=0.20.000.400.801.201.602.000.000000.376310.542280.527090.466320.406820.000000.344830.487800.49180
11、0.449440.400000.00000-0.03148-0.05448-0.03529-0.01689-0.00682h=0.10.000.400.801.201.602.000.000000.360850.513710.509610.458720.404190.000000.344830.487800.491800.449440.400000.00000-0.01603-0.02590-0.01781-0.00928-0.00419h=0.050.000.400.801.201.602.000.000000.352870.500490.500730.454250.402270.00000
12、0.344830.487800.491800.449440.400000.00000-0.00804-0.01268-0.00892-0.00481-0.00227Euler中點公式則不然, 計算yn+1時需用到前兩步的值yn , yn-1 ,稱其為兩步方法兩步方法,兩步以上的方法統(tǒng)稱為多步法多步法. 在Euler公式和梯形公式中,為求得yn+1,只需用到前一步的值yn,這種差分方法稱為單步法單步法,這是一種自開始方法. 隱式公式中,每次計算yn+1都需解方程,要比顯式公式需要更多的計算量,但其計算穩(wěn)定性較好. 在Euler公式和Euler中點公式中,需要計算的yn+1已被顯式表示出來,稱這類
13、差分公式為顯式公式顯式公式, ,而梯形公式中,需要計算的yn+1隱含在等式兩側,稱其為隱式公式隱式公式. 從數(shù)值積分的角度來看,梯形公式計算數(shù)值解的精度要比Euler公式好,但它屬于隱式公式,不便于計算. 實際上,常將Euler公式與梯形公式結合使用: 2.2 改進的改進的Euler方法方法),(),(2111nnnnnnyxfyxfhyy1,2 , 1 , 0,0Nny),(01nnnnyxhfyy),(),(21111knnnnnknyxfyxfhyy1,2 , 1 , 0,0Nny 由迭代法收斂的角度看,當 (是給定的精度要求)時, 取 就可以保證迭代公式收斂, 而當h很小時, 收斂是很
14、快的. 而且, 只要|111knknyy.111knnyy, 12Lyfh),(1nnnnyxhfyy),(),(2111nnnnnnyxfyxfhyy1,2 , 1 , 0,0Nny 通常采用只迭代一次的算法:稱之為改進的改進的Euler方法方法. 這是一種單步顯式方法. 改進的Euler方法也可以寫成)(2211KKhyynn),(1nnyxfK 1,2 , 1 , 0,0Nny y=y-2x/y , 0 x1的數(shù)值解, 取步長h=0.1 . 精確解為y(x)=(1+2x)1/2.),(12hKyhxfKnn例例4 求初值問題 y(0)=1 解解 (1) 利用Euler方法nnnnyxyy
15、/2 . 01 . 119 ,2 , 1 , 0,10ny)(05. 0211KKyynnnnnyxyK/219 ,2 , 1 , 0,10ny計算結果如下:1121 . 0) 1 . 0(21 . 0KyxKyKnnn (2) 利用改進Euler方法nxnEuler方法yn改進Euler法yn精確解y(xn)01234567891000.10.20.30.40.50.60.70.80.9111.11.1918181.2774381.3582131.4351331.5089661.5803381.6497831.7177791.78477011.0959091.1840961.2662011.
16、3433601.4164021.4859561.5525151.6164761.6781681.73786911.0954451.1832161.2649911.3416411.4142141.4832401.5491931.6124521.6733201.732051 在節(jié)點xn+1的誤差y(xn+1)-yn+1 ,不僅與yn+1這一步計算有關,而且與前n步計算值yn,yn-1,y1都有關. 為了簡化誤差的分析,著重研究進行一步計算時產(chǎn)生的誤差.即假設yn=y(xn),求誤差y(xn+1)-yn+1,這時的誤差稱為局部截斷誤差局部截斷誤差,它可以反映出差分公式的精度.2.3 差分公式的誤差分
17、析差分公式的誤差分析 如果單步差分公式的局部截斷誤差為O(hp+1),則稱該公式為p p階方法階方法.這里p為非負整數(shù).顯然,階數(shù)越高,方法的精度越高. 研究差分公式階的重要手段是Taylor展開式,一元函數(shù)和二元函數(shù)的Taylor展開式為:另外,在yn=y(xn)的條件下,考慮到y(tǒng)(x)=(x,y(x),則有 321! 3)(! 2)()()()()(hxyhxyhxyxyhxyxynnnnnn2222222),(),(),(! 21),(),(),(),(kyyxfhkyxyxfhxyxfkyyxfhxyxfyxfkyhxfnnnnnnnnnnnnnn y(xn)=(xn,y(xn)=(x
18、n,yn)=n y(xn)=(xn,y(xn)=x(xn,yn)+y(xn,yn)(xn,yn)nnnfyfxfnnnnnnnnnnfyfyfxffyffyxfxfxy2222222)(2)( yn+1=yn+h(xn,yn) 對Euler方法,有 21! 2)()()()()(hxyhxyxyhxyxynnnnn =yn+(xn,yn)h+O(h2)從而有: y(xn+1)-yn+1=O(h2)所以Euler方法是一階方法.再看改進Euler方法, 因為),(12hKyhxfKnn1hKyfhxffnnn)(21321222122222hOKhyfKhyxfhxfnnn可得所以, 改進的Eu
19、ler方法是二階方法.而nnnnnnfyxfhhfyy221)(44222223hOfyffyxfxfhnnnnn)(! 3)(2)()()()(4321hOhxyhxyhxyxyxynnnnn nnnnnfyfxfhhfy22nnnnnnnnnfyfyfxffyffyxfxfh22222223)(26從而有: y(xn+1)-yn+1=O(h3)2.4 Taylor展開方法展開方法 設y(x)是初值問題(4)的精確解, 利用Taylor展開式可得稱之為p階Taylor展開方法. 1)1()(21)!1()(!)(! 2)()()()( pppnpnnnnhpyhPxyhxyhxyxyxy)(
20、)(,(!)(,(! 2)(,()(1)1()1(2pnnppnnnnnhOxyxfPhxyxfhxyxhfxy因此,可建立節(jié)點處近似值yn滿足的差分公式),(!),(! 2),()1()1(21nnppnnnnnnyxfPhyxfhyxhfyy1,2 , 1 , 0,0Nny),(),(),(),()1(yxfyyxfxyxfyxffyfyfxffyffyxfxfyxf2222222)2()(2),(其中所以,此差分公式是p階方法. 由于Taylor展開方法涉及很多復合函數(shù)(x,y(x)的導數(shù)的計算,比較繁瑣,因而很少直接使用,經(jīng)常用它為多步方法提供初始值.然而, Taylor展開方法給出了
21、一種構造單步顯式高階方法的途徑. Euler方法可寫為 可見,公式的局部截斷誤差為: y(xn+1)-yn+1=O(hp+1).2.5 Runge-Kutta方法方法hKyynn1),(nnyxfK 構造差分公式 改進的Euler方法可寫為)(2211KKhyynn),(1nnyxfK ),(12hKyhxfKnn)(22111ppnnKKKhyy),(1nnyxfK ),(12122KhyhxfKnn),(11piipinPnPKhyhxfK其中i,i,ij為待定參數(shù). 若此公式的局部截斷誤差為由于 yn+1=yn+h1n+h2(n+hxn+hn yn)+O(h3)O(h3),稱此公式為p
22、p階階Runge-kuttaRunge-kutta方法方法,簡稱p p階階R-KR-K方法方法. 對于p=2的情形, 應有)(22111KKhyynn),(1nnyxfK ),()7(12hKyhxfKnn =yn+h(1+2)n+h22(xn+n yn)+O(h3)(2)(321hOfffhhfyxyynnxnnnn所以,只要令 1+2=1, 2=1/2, 2=1/2 (8) 一般地, 參數(shù)由(8)確定的一族差分公式(7)統(tǒng)稱為二二階階R-KR-K方法方法. .稱之為中點公式中點公式,或可寫為若取=1,則得1=2=1/2,=1,此時公式(7)就是改進的Euler公式; 若取1=0,則得2=1
23、,=1/2,公式(7)為21hKyynn),(1nnyxfK ),(121212hKyhxfKnn),(,(21211nnnnnnyxhfyhxhfyy 高階R-K公式可類似推導. 下面列出常用的三階、四階R-K公式. 四階標準四階標準R-KR-K公式公式 三階三階R-KR-K公式公式)4(63211KKKhyynn),(1nnyxfK )2,(213hKhKyhxfKnn)22(643211KKKKhyynn),(1nnyxfK ),(121212hKyhxfKnn),(34hkyhxfKnn),(121212hKyhxfKnn),(221213hKyhxfKnn 解解 四階標準R-K公式為
24、)22(4321611KKKKhyynnnnnyxyK/21例例3 用四階標準R-K方法求初值問題 y=y-2x/y , 0 x1 y(0)=1的數(shù)值解, 取步長h=0.2 .)/()2(2212213hKyhxhKyKnnn)/()2(1211212hKyhxhKyKnnn)/()(2334hKyhxhKyKnnn計算結果如下:nxnyny(xn)nxnyny(xn)0120.00.20.41.001.18321.34171.001.18321.34163450.60.81.01.48331.61251.73211.48321.61251.7321 也可以構造隱式R-K方法,其一般形式為pr
25、rrnnKhyy11prKhyhxfKpiirinrnr, 2 , 1,),(1稱之為p p級隱式級隱式R-KR-K方法方法,同顯式R-K方法一樣確定參數(shù).如)(21211KKhyynn),(1nnyxfK ),(2211212hKhKyhxfKnn是二級二階隱式R-K方法,也就是梯形公式.但是p級隱式R-K方法的階可以大于p,例如,一級隱式中點公式為11hKyynn),(121211hKyhxfKnn或寫為)(,(121211nnnnnyyhxhfyy它是二階方法.2.6 變步長變步長Runge-Kutta方法方法 以p階R-K方法為例討論.設從xn以步長h計算y(xn+1)的近似值為)(1
26、hny ,局部截斷誤差為1)(11)(phnnChyxy其中,C是與h無關的常數(shù). 如果將步長減半,取h/2為步長, 從xn經(jīng)兩步計算得到y(tǒng)(xn+1)的近似值記為 ,其局部截斷誤差為于是有從而,得到事后誤差估計)(12hny11)(1121)2(2)(2pppnnChhCyxyh可見,當phnnnnyxyyxyh21)()()(11)(112)(121)()(1)(1)(1122hnnpnnyyyxyhh|)(1)(12hnnyyh 成立時,可取)(112)(hnnyxy .否則,應將步長再次減半進行計算. 求解初值問題的單步顯式方法可一統(tǒng)一寫為如下形式 yn+1=yn+h(xn,yn,h)
27、 (9) 對于Euler方法,有2.7 單步方法的收斂性單步方法的收斂性 y=(x,y) ,axb y(a)= 其中(x,y,h)稱為增量函數(shù)增量函數(shù). (x,y,h)=(x,y)對于改進的Euler方法,有 (x,y,h)=1/2(x,y)+(x+h,y+h(x,y) 設y(x)是初值問題(4)的解 ,yn是單步法 (9)產(chǎn)生的近似解.如果對任意固定的點xn,均有y(xn),則稱單步法(9)是收斂的. 可見,若方法(9)是收斂的,則當h0時,整體截斷誤差en=y(xn)-yn將趨于零. 定理定理 設單步方法(9)是p1階方法, 增量函數(shù)(x,y,h)在區(qū)域axb,-yn)的變化均不超過 ,則
28、稱此差分方法是絕對穩(wěn)定絕對穩(wěn)定的. 討論數(shù)值方法的穩(wěn)定性,通常僅限于典型的試驗方程 y=y 其中是復數(shù)且Re()0. 在復平面上,當方法穩(wěn)定時要求變量h的取值范圍稱為方法的絕對穩(wěn)定域絕對穩(wěn)定域,它與實軸的交集稱為絕對穩(wěn)定區(qū)間絕對穩(wěn)定區(qū)間. . 將Euler方法應用于方程y=y, 得到 設在計算yn時產(chǎn)生誤差n,計算值yn=yn+n,則n將對以后各節(jié)點值計算產(chǎn)生影響.記ym=ym+m ,mn,由上式可知誤差m滿足方程 m=(1+h)m-1=(1+h)m-nn , mn 對隱式單步方法也可類似討論.如將梯形公式用于方程y=y,則有 yn+1=yn+h/2 (yn+yn+1) yn+1=(1+h)y
29、n 可見,若要|m|n|,必須且只須|1+h|1 ,因此Euler法的絕對穩(wěn)定域為|1+h|1,絕對穩(wěn)定區(qū)間是-2Re()h0.解出yn+1得 nnyhhy2121111類似前面分析,可知絕對穩(wěn)定區(qū)域為1112121hh由于Re()0,所以此不等式對任意步長h恒成立,這是隱式公式的優(yōu)點. 一些常用方法的絕對穩(wěn)定區(qū)間為方 法方法的階數(shù)穩(wěn) 定 區(qū) 間Euler方法梯形方法改進Euler方法二階R-K方法三階R-K方法四階R-K方法122234(-2 , 0)(- , 0)(-2 , 0)(-2 , 0)(-2.51 , 0)(-2.78 , 0) 解解 因y0=1,計算得y10=1024,而y(1
30、)=9.35762310-14.例例4 考慮初值問題 y=-30y , 0 x1 y(0)=1取步長h=0.1 ,利用Euler方法計算y10y(1). y(x)=e-30 x 這是因為h=-3不屬于Euler方法的絕對穩(wěn)定區(qū)間. 若取h=0.01,計算得y100=3.23447710-16. 若取h=0.001,計算得y1000=5.91199810-14. 若取h=0.0001,計算得y10000=8.94505710-14. 若取h=0.00001,計算得y100000=9.315610-14. 單步顯式方法的穩(wěn)定性與步長密切相關, 在一種步長下是穩(wěn)定的差分公式,取大一點步長就可能是不穩(wěn)
31、定的. 收斂性是反映差分公式本身的截斷誤差對數(shù)值解的影響;穩(wěn)定性是反映計算過程中舍入誤差對數(shù)值解的影響.只有即收斂又穩(wěn)定的差分公式才有實用價值.2.9 線性多步方法線性多步方法 由于在計算yn+1時 ,已經(jīng)知道yn ,yn-1 ,及(xn,yn), (xn-1,yn-1),利用這些值構造出精度高、計算量小的差分公式就是線性多步法.2.9.1 利用待定參數(shù)法構造線性多步方法利用待定參數(shù)法構造線性多步方法 r+1步線性多步方法的一般形式為當-10時,公式為隱式公式,反之為顯式公式.參數(shù)i,i的選擇原則是使方法的局部截斷誤差為 y(xn+1)-yn+1=O(h)r+2 選取參數(shù),0,1,2,使三步方
32、法 yn+1=yn+h(0n+1n-1+2n-2) 這里,局部截斷誤差是指 ,在yn-i=y(xn-i),i=0,1,r的前提下,誤差y(xn+1)-yn+1.為三階方法. ririiniininfhyy011例例5 解解 設yn=y(xn),yn-1=y(xn-1),yn-2=y(xn-2),則有 n=(xn,y(xn)=y(xn) y(xn+1)=y(xn)+hy(xn)+1/2h2y(xn)+1/6h3y(xn) 于是有若使: y(xn+1)-yn+1=O(h4) ,只要,0,1,2滿足: n-1=(xn-1,y(xn-1)=y(xn-1)=y(xn-h) =y(xn)-hy(xn)+1
33、/2h2y(xn)-1/6h3y(4)(xn)+O(h4) n-2=y(xn)-2hy(xn)+2h2y(xn)-4/3h3y(4)(xn)+O(h4) yn+1=y(xn)+h(0+1+2)y(xn)-h2(1+22)y(xn) +h3(1/21+22)y(xn)-h4/6(1+82)y(4)(xn)+O(h5) +1/24h4y(4)(xn)+O(h5) =1, 0+1+2=1, 1+22=-1/2 , 1+42=1/3于是有三步三階顯式差分公式設pr(x)是函數(shù)(x,y(x)的某個r次插值多項式,則有解之得: yn+1=yn+h/12(23n-16n-1+5n-2) 因為 125,34,
34、1223, 12102.9.2 利用數(shù)值積分構造線性多步方法利用數(shù)值積分構造線性多步方法 1)(,()()(1nnxxnndxxyxfxyxy1)()()(1nnxxnrnnRdxxpxyxy其中 選取不同的插值多項式pr(x),就可導出不同的差分公式.下面介紹常用的AdamsAdams公式公式. . 設已求得精確解y(x)在步長為h的等距節(jié)點xn-r,xn上的近似值yn-r ,yn , 記k=(xk,yk) ,利用r+1個數(shù)據(jù)(xn-r,n-r),(xn,n)構造r次Lagrange插值多項式由此,可建立差分公式 1.Adams 1.Adams顯式公式顯式公式 1)(1nnxxrnndxxp
35、yy1)()(,(nnxxrndxxpxyxfR其中 rjjnjnrfxlxp0)()(由此,可建立差分公式 由于 rjxxxxxlrjkkknjnknjn, 1 , 0)()()(0 hrj jnxxjnrjnnfdxxlyynn1)(01)()()()(110thxxdxxxxxdxxlnxxrjkkknjnknxxjnnnnn令100, 1 , 0,)()!( !) 1(rjkkjrjdtktjrjh則有 rjjnrjnnfhyy01稱之為r+1r+1步步AdamsAdams顯式公式顯式公式. . 下面列出幾個帶有局部截斷誤差主項的Adams顯式公式 r=0 yn+1= =yn+hn+(
36、1/2)h2y(xn) 2.Adams 2.Adams隱式公式隱式公式 r=1 yn+1= =yn+(h/2)(3n-n-1)+(5/12)h3y(xn) r=2 yn+1= =yn+(h/12)(23n-16n-1+5n-2) +(3/8)h4y(4)(xn) r=3 yn+1= =yn+(h/24)(55n-59n-1+37n-2-9n-3) +(251/720)h5y(5)(xn) 如果利用r+1個數(shù)據(jù)(xn-r+1,n-r+1),(xn+1,n+1)構造r次Lagrange插值多項式pr(x),則可導出數(shù)值穩(wěn)定性好的隱式公式,稱為AdamsAdams隱式公式隱式公式,其一般形式為其中系
37、數(shù)為 010*, 1 , 0,)()!( !) 1(rjkkjrjrjdtktjrjrjjnrjnnfhyy01*1下面列出幾個帶有局部截斷誤差主項的Adams隱式公式 r=0 yn+1= =yn+hn+1-(1/2)h2y(xn) r=1 yn+1= =yn+(h/2)(n+n+1)-(1/12)h3y(xn) r=2 yn+1= =yn+(h/12)(5n+1+8n-n-1) -(1/24)h4y(4)(xn) r=3 yn+1= =yn+(h/24)(9n+1+19n-5n-1+n-2) -(19/720)h5y(5)(xn) 3.Adams 3.Adams預估預估- -校正公式校正公式
38、 由顯式公式提供一個預估值,再用隱式公式校正一次,求得數(shù)值解,稱為預估校正方法預估校正方法。 校正 yn+1= =yn+(h/24)(9n+1+19n-5n-1+n-2) 一般預估公式和校正公式都采用同階公式。例如: 預估 yn+1= =yn+(h/24)(55n-59n-1+37n-2-9n-3) n+1=(xn+1,yn+1) , n=3,4,稱為四階Adams預估校正公式.實際計算時通常用四階單步方法(如四階R-K公式)為它提供起始值y1,y2,y3 . 例例6 用四階Adams預估校正公式求解初值問題 y=y-2x/y , 0 x1 y(0)=1取步長h=0.1. 解 用四階R-K公式
39、提供起始值,計算結果如下xnR-k法yn預估值yn校正值yn精確值y(xn)00.10.20.30.40.50.60.70.80.9111.0954461.1832171.2649121.3415511.4140451.4830171.5489171.6121141.6729141.7315661.3416411.4142131.4832391.5491921.6124501.6733181.73204811.0954451.1832161.2649911.3416411.4142141.4832401.5491931.6124521.6733201.7320513 RK方法的方法的MATLA
40、B實現(xiàn)實現(xiàn)對于微分方程(組)的初值問題 龍格庫塔方法可用如下MATLAB命令實現(xiàn)其計算:t,x=ode23(f,ts,x0,options)t,x=ode45(f,ts,x0,options)其中ode23用的是3級2階龍格庫塔公式,ode45用的是以Runge-Kutta-Fehberg命名的 5級4階公式。TnTnTnxxxxtxfffxxxxtftx),(,)(),(,),(),()(00100011命令的輸入f是待解方程寫成的函數(shù)m文件:function dx=f(t,x)dx=f1;f2;fn;若ts=t0,t1,t2, ,tf,則輸出在指定時刻t0,t1,t2, ,tf的函數(shù)值;等
41、分點時用ts=t0:k:tf,輸出在t0,tf內等分點處的函數(shù)值。x0為函數(shù)初值(n維向量)。options可用于設定誤差限(options缺省時設定相對誤差10-3,絕對誤差10-6),命令為: options=odeset(reltol,rt,abstol,at)其中rt,at分別為設定的相對誤差和絕對誤差。命令的輸出t為指定的ts,x為相應的函數(shù)值(n維向量)。注意,計算步長是根據(jù)誤差限自動調整的,并不是輸入中指定的ts的分點。下面用MATLAB軟件解決1提出的兩個問題例例1 海上緝私(續(xù))海上緝私(續(xù))模型的數(shù)值解模型的數(shù)值解 1. 設a=20 (海里/小時),b=40 (海里/小時)
42、,c=15 (海里),由模型(1),(2)求任意時刻緝私艇的位置及緝私艇航線。 對于給出的a, b, c用MATLAB求數(shù)值解時,記x(1)=x, x(2)=y, x=(x(1), x(2)T。編寫如下m文件:function dx=jisi(t,x) % 建立名為jisi的函數(shù)m文件a=20; b=40; c=15;s=sqrt(c-x(1)2+(a*t-x(2)2); dx=b*(c-x(1)/s;b*(a*t-x(2)/s; % 以向量形式表示方程(1)然后運行以下程序:ts=0:0.05:0.5; % 設定t的起終點及中間的等分點,終點可先作試探,再按照x(t)c=15調整到0.5x0
43、=0,0; % 輸入x,y的初始值(2)t,x=ode45(jisi,ts,x0); % 調用ode45計算t,x % 輸出t, x(t), y(t)plot(t,x), grid, % 按照數(shù)值輸出作x(t), y(t)的圖形gtext(x(t), gtext(y(t), pauseplot(x(:,1),x(:,2), grid, % 作y( x) 的圖形gtext(x), gtext(y)得到的數(shù)值結果x(t), y(t)為緝私艇的位置,列入表1。走私船的位置記作x1(t), y1(t),顯然x1(t)= c=15,y1(t)=at=20t,將y1(t)列入表1最后一列??芍攖=0.5
44、(小時),x, y與x1, y1幾乎一致,認為緝私艇追上走私船。x(t), y(t)及y(x)的圖形見圖2,y(x)為緝私艇的航線。tx(t)y(t)y1(t)00000.051.99840.06981.00.103.98540.29242.00.155.94450.69063.00.207.85151.28994.00.259.67052.11785.00.3011.34963.20056.00.3512.81704.55527.00.4013.98066.17738.00.4514.74518.02739.00.5015.00469.997910.0a=20, b=40,c=15的數(shù)值解x
45、(t), y(t)和y1(t) 00.10.20.30.40.505101520 x(t)y(t)051015200246810 xya=20,b=40,c=15 時x(t), y(t) 和y( x)的圖形 2. 設b,c不變,而a變大為30,35,接近40 (海里/小時),觀察解的變化 修改a的輸入,并相應地延長t的終點。設a=35,t的終點經(jīng)試探,調整為1.6合適。表2是計算結果,其中x(t), y(t)有兩列數(shù)字,左邊的是用“缺省”精度(即相對誤差10-3,絕對誤差10-6)計算的,中間的y1(t) =at=35t是走私船到達的位置。可知t=1.3, 1.4, 1.5時緝私艇的位置x15, 但y與y1(t)相差甚遠,t=1.6時x, y與x1, y1也有差距,這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品生產(chǎn)車間主任聘用合同
- 停車場智能停車設備協(xié)議
- 女性職場權益保障規(guī)章公平競爭
- 居民小區(qū)消防工程改造包工合同
- 旅游景點墻體廣告合作協(xié)議
- 2024年04月北京友利銀行總行社會招考筆試歷年參考題庫附帶答案詳解
- 廣州廣東廣州市黃埔區(qū)人民政府黃埔街道辦事處政府聘員招聘筆試歷年典型考點(頻考版試卷)附帶答案詳解版
- 2025年網(wǎng)紅經(jīng)濟合伙開店運營合同3篇
- 2025版跨境貿易貨款結算合同范本模板3篇
- 2025版漁業(yè)養(yǎng)殖科研基地建設合同3篇
- 北大青鳥消防主機操作培訓
- 外科學 手術 基礎
- 音樂鑒賞(西安交通大學)智慧樹知到期末考試答案2024年
- 2024年03月烏魯木齊海關所屬事業(yè)單位2024年面向社會公開招考14名工作人員筆試參考題庫附帶答案詳解
- 創(chuàng)新者的窘境讀書課件
- 看不見的殺手-病毒性傳染病智慧樹知到期末考試答案2024年
- 2024年福建省閩投人才服務有限公司招聘筆試參考題庫附帶答案詳解
- 《福建省整體裝配式衛(wèi)浴間標準設計圖集》
- 疾控中心慢病科工作總結
- 錨索張拉伸長量計算
- 部編版語文九年級上冊單元復習課教案
評論
0/150
提交評論