日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

四阶显式Adams法求方程组C语言,第五讲第4章线性多步法(续

發布時間:2024/9/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 四阶显式Adams法求方程组C语言,第五讲第4章线性多步法(续 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《第五講第4章線性多步法(續》由會員分享,可在線閱讀,更多相關《第五講第4章線性多步法(續(15頁珍藏版)》請在人人文庫網上搜索。

1、第4章 線性多步法4.1 線性多步法的一般公式前面給出了求解初值問題(1.2.1)的單步法,其特點是計算 時只用到 的值,此時 的值均已算出.如果在計算 時除用 的值外,還用到 的值,這就是多步法.若記,h為步長,則線性多步法可表示為(4.1.1)其中為常數,若(即不同時為零),稱(4.1.1)為線性k步法.計算時用到前面已算出的k個值.當時,(4.1.1)為顯式多步方法,當則稱(4.1.1)為隱式多步法.隱式方法與梯形方法一樣,計算時要用迭代法求.多步法(4.1.1)的局部截斷誤差定義也與單步法類似.舉例來說,對于初值問題,步數k=2時,線性多步法表示為當時,格式為顯示的:,而時,格式為隱式。

2、的:。定義4.1設y(x)是初值問題(1.2.1)的精確解,線性多步法(4.1.1)在處的局部截斷誤差定義為(4.1.2)若,則稱線性多步法(4.1.1)是p階的.如果我們希望得到的多步法是p階的,則可利用Taylor公式展開,將在處展開到階,它可表示為(4.1.3)注意,(4.1.2)式按Taylor展開可得經整理比較系數可得(4.1.4)若線性多步法(4.1.1)為p階,則可令于是得局部截斷誤差(4.1.5)右端第一項稱為局部截斷誤差主項.稱為誤差常數.要使多步法(4.1.1)逼近初值問題(1.2.1),方法的階p1,當p=1時,則,由(4.1.4)得(4.1.6)稱為相容性條件.公式(4。

3、.1.1)當k=1時即為單步法,若,由(4.1.6)則得式(4.1.1)就是,即為Euler法.此時,方法為p=1階.若,由得,為確定及,必須令,由(4.1.4)得及此時(4.1.1)就是即為梯形法.由故p=2,方法是二階的,與3.1節中給出的結果相同.實際上,當k給定后,則可利用(4.1.4)求出公式(4.1.1)中的系數及,并求得的表達式(4.1.5).4.2 Adams顯式與隱式方法形如(4.2.1)的k步法稱為 Adams 方法,當 時為 Adams 顯式方法,當時,稱為Adams隱式方法.對初值問題(1.2.1)的方程兩端從到積分得顯然只要對右端的積分用插值求積公式,求積節點取為即可。

4、推出形如(4.2.1)的多步法,但這里我們仍采用Taylor展開的方法直接確定(4.2.1)的系數.對比(4.1.1)可知,此時,只要確定即可.現在若k=4且,即為4步的Adams顯式方法其中為待定參數,若直接用(4.1.4),可知此時自然成立,再令可得解此方程組得 ,.由此得到于是得到四階Adams顯式方法及其余項為(4.2.2)(4.2.3)若,則可得到p=4的Adams隱式公式,則k=3并令,由(4.1.4)可得解得,而,于是得到四階Adams隱式方法及余項為(4.2.4)(4.2.5)一般情形,k步Adams顯式方法是k階的,k=1即為Euler法,k=2為k=3時,.k步隱式方法是(。

5、k+1)階公式,k=1為梯形法,k=2為三階隱式Adams公式k步的Adams方法計算時必須先用其他方法求出前面k個初值才能按給定公式算出后面各點的值,它每步只需計算一個新的f值,計算量少,但改變步長時前面的也要跟著重算,不如單步法簡便.例4.1 用四階顯式Adams方法及四階隱式Adams方法解初值問題,步長h=0.1用到的初始值由精確解計算得到.解 本題直接由公式(4.2.2)及(4.2.4)計算得到.對于顯式方法,將直接代入式(4.2.2)得到其中.對于隱式方法,由式(4.2.4)可得到直接求出,而不用迭代,得到計算結果如表所示.表4-1 Adams方法和Adams隱式方法的數值解與精確。

6、解比較4.3 Adams預測-校正方法上述給出的Adams顯式方法計算簡單,但精度比隱式方法差,而隱式方法由于每步要做迭代,計算不方便.為了避免迭代,通常可將同階的顯式Adams方法與隱式Adams方法結合,組成預測-校正方法.以四階方法為例,可用顯式方法(4.2.2)計算初始近似,這個步驟稱為預測(Predictor),以P表示,接著計算f值(Evaluation),,這個步驟用E表示,然后用隱式公式(4.2.4)計算,稱為校正(Corrector),以C表示,最后再計算,為下一步計算做準備.整個算法如下:(4.3.1)公式(4.3.1)稱為四階Adams預測-校正方法(PECE). 其ma。

7、tlab程序如下function y = DEYCJZ_adms(f, h,a,b,y0,varvec,type)format long;N = (b-a)/h;y = zeros(N+1,1);x = a:h:b;y(1) = y0;y(2) = y0+h*Funval(f,varvec,x(1) y(1);y(3) = y(2)+h*Funval(f,varvec,x(2) y(2);y(4) = y(3)+h*Funval(f,varvec,x(3) y(3);for i=5:N+1 v1 = Funval(f,varvec,x(i-4) y(i-4);v2 = Funval(f,var。

8、vec,x(i-3) y(i-3);v3 = Funval(f,varvec,x(i-2) y(i-2);v4 = Funval(f,varvec,x(i-1) y(i-1);t = y(i-1) + h*(55*v4 - 59*v3 + 37*v2 - 9*v1)/24;ft = Funval(f,varvec,x(i) t);y(i) = y(i-1)+h*(9*ft+19*v4-5*v3+v2)/24;endformat short;問題1 (4.3.1)中的第四步在程序中那一行實現了?利用(4.2.2)和(4.2.4)的局部截斷誤差(4.2.3)和(4.2.5)可對預測-校正方法(4.。

9、3.1)進行修改,在(4.3.1)中的步驟P有720問題2 這個約等式是怎么得來的?什么方法?對于步驟C有兩式相減可得于是有若用代替上式,并令顯然比更好,但注意到的表達式中是未知的,因此改為下面給出修正的預測-校正格式(PMECME).(4.3.2)經過修正后的PMECME格式比原來PECE格式提高一階. 問題3 試著編出該程序!4.4 Milne方法與 Hamming方法 與Adams顯式方法不同的另一類四階顯式方法的計算公式形如(4.4.1)這里為待定常數,此公式也是k=4步方法,即計算時要用到4個值.為了確定,當然可以利用公式(4.2.1)直接算出,但下面我們直接利用Taylor展開式確。

10、定,使它的階盡量高.方法(4.4.1)的局部截斷誤差為將它在點展成Taylor級數,得要使公式的階盡量高,要令前3項系數為0.即解得,代入公式,的系數為0,故(4.4.2)于是得四階方法(4.4.3)稱為Milne公式,它的局部截斷誤差為(4.4.2).與(4.4.3)配對的隱式方法為k=3的多步法,它的一般形式可表示為要求公式的階p=4,可直接用(4.2.1),并令,可得(4.4.4)若令,可解出,于是得到下列四階方法(4.4.5)稱為Simpson公式,它的局部截斷誤差為(4.4.6)用Simpson公式與Milne公式(4.4.3)相匹配,用(4.4.3)做預測,(4.4.5)做校正,由。

11、于(4.4.5)的穩定性較差,因此通常較少使用.為了改善穩定性,可重新選擇四階的隱式公式,Hamming通過試驗,發現在(4.4.4)中若令,得到的公式穩定性較好,此時(4.4.4)的解為,于是得四階多步法(4.4.7)稱為Hamming公式,它的局部截斷誤差為(4.4.8)用Milne公式(4.4.3)與Hamming公式(4.4.7)相匹配,并利用截斷誤差公式(4.4.2)與(4.4.8)改進計算結果.(4.4.7)該算法稱為Hamming預測-校正法。類似Adams預測-校正格式(4.3.2),可得以下的修正的milne-Hamming預測-校正格式:(4.4.9)附 hamming程序。

12、function y = DEYCJZ_hm(f, h,a,b,y0,varvec,type)format long;N = (b-a)/h;y = zeros(N+1,1);x = a:h:b;y(1) = y0;y(2) = y0+h*Funval(f,varvec,x(1) y(1);y(3) = y(2)+h*Funval(f,varvec,x(2) y(2);y(4) = y(3)+h*Funval(f,varvec,x(3) y(3);if type = 1 %hamming預測校正法for i=5:N+1v1 = Funval(f,varvec,x(i-3) y(i-3);v2 。

13、= Funval(f,varvec,x(i-2) y(i-2);v3 = Funval(f,varvec,x(i-1) y(i-1);t = y(i-4) + 4*h*(2*v3 - v2 + 2*v1)/3;ft = Funval(f,varvec,x(i) t);y(i) = (9*y(i-1) -y(i-3) +3*h*(2*v3 + ft-v2)/8;endelse %修正的hamming預測校正法p0 = 0;c = 0; for i = 5:N+1 v1 = Funval(f,varvec,x(i-3) y(i-3);v2 = Funval(f,varvec,x(i-2) y(i-。

14、2);v3 = Funval(f,varvec,x(i-1) y(i-1); p = y(i-4)+4*h*(2*v3 - v2 + 2*v1)/3;M = p - 112*(p0 - c)/121;F = Funval(f , varvec, x(i) ,M);c = (9*y(i-1) -y(i-3) +3*h*(2*v3 + F-v2)/8;y(i) = c + 9*( p - c)/121;p0 = p;endendformat short;例4.2 用四步四階顯式Milne公式及三步四階隱式Hamming公式解初值問題,步長h=0.1初值仍由精確解給出,要求計算到為止,給出計算結果及。

15、誤差,并與例4.1結果比較.解 直接用公式(4.4.3)及(4.4.7)計算.用Milne法計算公式為其中誤差用Hamming方法(4.4.7)計算公式為可解得,n=2,3,4誤差從所得結果可見Milne方法誤差比顯式Adams方法誤差略小,而Hamming方法與隱式Adams方法誤差相當.例4.3 將例4.2的初值問題用修正的Milne-Hamming預測-校正公式計算及,初值,仍用已算出的精確解,即,給出計算結果及誤差.解根據修正的Milne-Hamming預測-校正公式(4.4.9)得從結果看,此方法誤差比四階Adams隱式法和四階Hamming方法小,這與理論分析一致.講解:線性多步法。

16、(4.1.1)的局部截斷誤差定義為與單步法相似,可表示為(4.1.2),即只要直接將右端各項在處展成Taylor公式,根據公式階數為階,即按的冪整理,令各項系數為0,則可求得相應的線性多步法及其局部截斷誤差,這里只用到一元函數的Taylor展開.因此不必記系數滿足的公式(7.5.4),只要直接展開即可,它不但可以求出Adams顯式與隱式公式以及Milne公式,Hamming公式等,還可以求出任何需要的多步法公式,下面再給出兩個例題,說明如何直接用Taylor展開的方法.例4.4 解初值問題用顯式二步法,其中.試確定參數使方法除數盡可提高.并求局部截斷誤差.解 本題仍根據截斷誤差定義,用Tayl。

17、or展開確定參數滿足的方程,由于為求參數使就地介數盡量高,可令及得方程組解得此時公式為三階,而且即為所求局部截斷誤差.而所得二步法為 例4.5 證明線性多步法存在的一個值,使方法是四階的.證明只要證明局部截斷誤差,則方法為四階.仍用Taylor展開,由于當時,故方法是四階的.4.5 練習題1. 自編matlab程序得到例4.1中初值問題的四階Adams顯示多步法和四階隱式多步法的數值結果,列出表4-1,并畫出解曲線對比圖。2. 應用Adams顯示方法、Adams隱式方法和Adams預測校正方法求解下列初值問題的數值解,并分別畫出與精確解對比圖(附圖例如下)。3.用四階Adams預測-校正方法(PECE)以及修正的Adams預測-校正格式(PMECME)編程實現下列方程的兩數值解與精確解的比較。4. 用四步四階顯式Milne公式、三步四階隱式Hamming公式以及Hamming預測-校正法求解初值問題,步長h=0.1要求列出計算數值解精確解以及誤差表格(類似表4-1),并畫出解的對比圖。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的四阶显式Adams法求方程组C语言,第五讲第4章线性多步法(续的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。