計算方法實驗報告_第1頁
計算方法實驗報告_第2頁
計算方法實驗報告_第3頁
計算方法實驗報告_第4頁
計算方法實驗報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算方法》實驗報告專業(yè)班級:學(xué)生姓名學(xué)生學(xué)號實驗名稱:實驗一:非線性方程求根迭代法實驗二:求解線性方程組(1)實驗三:求解線性方程組(2)實驗四:數(shù)值積分實驗五:數(shù)值微分實驗一:一、實驗名稱非線性方程求根迭代法二、實驗?zāi)康模?) 熟悉非線性方程求根簡單迭代法,牛頓迭代及牛頓下山法(2) 能編程實現(xiàn)簡單迭代法,牛頓迭代及牛頓下山法(3) 認識選擇迭代格式的重要性(4) 對迭代速度建立感性的認識;分析實驗結(jié)果體會初值對迭代的影響三、實驗內(nèi)容用牛頓下山法解方程X3-x-1=0(初值為0.6)輸入:初值,誤差限,迭代最大次數(shù),下山最大次數(shù)輸出:近似根各步下山因子四、基本原理(計算公式)求非線性方程組的解是科學(xué)計算常遇到的問題,有很多實際背景.各種算法層出不窮,其中迭代是主流算法。只有建立有效的迭代格式,迭代數(shù)列才可以收斂于所求的根。因此設(shè)計算法之前,對于一般迭代進行收斂性的判斷是至關(guān)重要的。牛頓法也叫切線法,是迭代算法中典型方法,只要初值選取適當,在單根附近,牛頓法收斂速度很快,初值對于牛頓迭代至關(guān)重要。當初值選取不當可以采用牛頓下山算法進行糾正。一般迭代:x (x)x(x)of(x)=ok+1 k牛頓公式:xk+1f(xk)牛頓公式:xk+1kf(x丿k牛頓下山公式:x=x牛頓下山公式:x=x一九k+1 kf(xk)kf,(x丿k下山因子九=下山因子九=1,,-222下山條件If(x)lvlf(x)1k+1 k五、算法設(shè)計與實現(xiàn)(流程圖)牛頓下山算法見流程圖:輔入備e,牛頓下山算法見流程圖:輔入備e,乳M輸出斗■垮出專異標恵:圖3.2牛頓下山算法流程圖這個問題的關(guān)鍵之處不是公式的復(fù)雜性,而是如何對算法的實現(xiàn)提供一個條理清晰且方法合理的if嵌套,這個算法中運用了許多判斷,如何進行其判斷結(jié)果的返回將是解決這個問題的重中之重。把這個問題弄清楚,再結(jié)合本身并不復(fù)雜的算法公式,這個問題就可解了。這個程序開始花費了我很長時間搞清楚如何進行判斷返回的運算來解決if語句嵌套。

七、輸入與輸出%%;?2■■401數(shù)熱.325購次次:1」0.大大為曰¥專根值合襁山崔初穢下方字刀值:0』精凰E1.00001迭武曇大次數(shù)=10Q下山巖大茨數(shù):100X0-O.6, xl=17.9X0--O.6,xl=9.25X0--O.6, xl=4.925X0--O.6,xl=2.7625X0-O.6,xl=1.68125方程根為=1-32472圖2八、結(jié)果討論和分析可見,該程序的輸出分為兩個情況,兩者的差別是初值選取的不同,所以說,牛頓法的收斂性依賴于初值x0的選取,如果x0偏離x的準確值較遠,則牛頓法將可能發(fā)散。所以要引入牛頓下山法來避免這一情況。所以,當圖2情況下,初值為0.6的時候,會進行牛頓下山法使結(jié)果可以進行再次迭代,解決了牛頓法初值選取問題。實驗二:一、實驗名稱求解線性方程組Qauss-Seidel迭代法)二、實驗?zāi)康氖煜で蠼饩€性方程組的有關(guān)理論和方法;能編程實現(xiàn)雅可比及高斯-塞德爾迭代法、列主元高斯消去法、約當消去,追趕法通過測試,進一步了解各種方法的優(yōu)缺點根據(jù)不同類型的方程組,選擇合適的數(shù)值方法三、實驗內(nèi)容10x—x—2x=7.2123用Gauss-Seidel迭代法求解方程組彳—x+10x—2x=8.3用Gauss-Seidel迭代法求解方程組彳1 2 3—x一x+5x=4.21 2 3輸入:系數(shù)矩陣A,最大迭代次數(shù)N初始向量,誤差限e輸出:解向量四、基本原理(計算公式)無論是三次樣條還是擬合問題最終都歸結(jié)為線性方程組,求解線性方程組在數(shù)值分析中非常重要,在工程計算中也不容忽視。線性方程組大致分迭代法和直接法。只有收斂條件滿足時,才可以進行迭代。雅可比及高斯-塞德爾是最基本的兩類迭代方法,最大區(qū)別是迭代過程中是否引用新值進行剩下的計算。消元是最簡單的直接法,并且也十分有效的,列主元高斯消去法對求解一般的線性方程組都適用,同時可以用來求矩陣對應(yīng)的行列式。約當消去實質(zhì)是經(jīng)過初等行變換將系數(shù)矩陣化為單位陣,主要用來求矩陣的逆。在使用直接法,要注意從空間、時間兩方面對算法進行優(yōu)化。高斯-塞德爾迭代:x(k+高斯-塞德爾迭代:x(k+1)iaii<i遲ax(k+i)—ijjj=1i=1,2,...,n五、算法設(shè)計與實現(xiàn)(流程圖,個人理解)圖4.1G-S迭代算法流程圖個人理解:該算法最考驗人的地方在于對運算公式的理解,這個公式相對于其他幾個實驗來說是最難的,其原因在于要用到多重嵌套循環(huán),而且其中對數(shù)組的運用對于很多同學(xué)來說也是比較困難的。只要將其中依次將數(shù)組的值的和對另一個數(shù)組賦值的原理搞清楚以后,這個問題將很容易解決,所以,這一點,也是這個程序最考驗人的地方。六、輸入與輸出嘉入矩陣行列瓦勰個數(shù)為1寫個數(shù)為訂個數(shù)為售個數(shù)為1筋個數(shù)為幕7個數(shù)為辭個數(shù)為韌個數(shù)為1幕10個數(shù)為1幕11個數(shù)為幕12個數(shù)為.2£01^1.R00000.|00000300000pessanykeytocontinue議入矩陣行列式F計弁數(shù)為卜個數(shù)為毎個數(shù)為鮎個數(shù)為4篤5個數(shù)為魯個數(shù)為爲個數(shù)為漸個數(shù)為伽個數(shù)為4竄価個數(shù)為備“個數(shù)為第空個數(shù)為聖代失敗Pressanykeytocontinue七、結(jié)果討論和分析對于求解行列式來說,一般的方法很難求出,只能通過之前步驟的結(jié)果一步步地將結(jié)果求得,在這些迭代中,選取一個好的迭代方式,既避免了可能存在的發(fā)散情況,又加快了收斂次數(shù)。上兩圖說明高斯賽德爾迭代對于某些迭代來說還是有缺陷的,并不能解出有效結(jié)果。實驗三:一、實驗名稱求解線性方程組(選主元高斯消去)二、實驗?zāi)康?)熟悉求解線性方程組的有關(guān)理論和方法;2)能編程實現(xiàn)雅可比及高斯-塞德爾迭代法、列主元高斯消去法、約當消去,追趕法3)通過測試,進一步了解各種方法的優(yōu)缺點4)根據(jù)不同類型的方程組,選擇合適的數(shù)值方法三、實驗內(nèi)容3 -2 14用選主元高斯消去求行列式值4-32 8四、基本原理(計算公式)提示:A.B.IA\=a11an1aA.B.IA\=a11an1a1nann=...=(-1)“b11...b\n??? ??:=(-1)mb11...b11nn

b

nn消元結(jié)果直接存儲在系數(shù)矩陣中C.當消元過程發(fā)生兩行對調(diào)的情況為偶數(shù)次時,行列式值為對角線乘積,否則為對角線乘積的相反數(shù)[A1[A11In【IIA-1_1-11_■-2-16A=113和A=4 0 52一32一6一11提示:五、算法設(shè)計與實現(xiàn)(流程圖)裔入黑Jx11丨|<千丨庶臺元裔入黑Jx11丨|<千丨庶臺元I述3=蹲?嚴妤3■娜-九雌jssk+1,..Tfn;i=1-k-1.k+1,..n~4Kk襯圖4.3列主元的高斯消去流程圖六、個人理解:我感覺選主元高斯消去編程稍微有一些困難,難在對公式的理解,還有對數(shù)組的處理??赡芪覐囊婚_始就理解有誤,只是把握住了其中心思想,但是對其函數(shù)的具體實現(xiàn)還是存在一些偏差,導(dǎo)致輸出結(jié)果并不是很理想。七、輸入與輸出

八、結(jié)果討論和分析感覺我這個程序運行還是有些問題,無法實現(xiàn)某些功能,僅僅能夠解決行列式的最終求值問題。實驗四:一、實驗名稱數(shù)值積分二、實驗?zāi)康氖煜?fù)化梯形方法、復(fù)化Simpson方法、梯形遞推算法、龍貝格算法;能編程實現(xiàn)復(fù)化梯形方法、復(fù)化Simpson方法、梯形遞推算法、龍貝格算法;理解并掌握自適應(yīng)算法和收斂加速算法的基本思想;分析實驗結(jié)果體會各種方法的精確度,建立計算機求解定積分問題的感性認識三、實驗內(nèi)容sinx(1)用龍貝格算法計算J1 dx0x輸入:積分區(qū)間,誤差限輸出:序列Tn,Sn,Cn,Rn及積分結(jié)果四、基本原理(計算公式)在許多實際問題中,常常需要計算定積分Jbf(x)dx的值。根據(jù)微積分學(xué)基本定理,若a被積函數(shù)f(x)在區(qū)間[a,b]上連續(xù),只要能找到f(x)的一個原函數(shù)F(x),便可利用牛頓-萊布尼茲公式Af(x)二F(b)-F(a)求得積分值。a但是在實際使用中,往往遇到如下困難,而不能使用牛頓-萊布尼茲公式。找不到用初等函數(shù)表示的原函數(shù)雖然找到了原函數(shù),但因表達式過于復(fù)雜而不便計算(3) f(x)是由測量或計算得到的表格函數(shù)由于以上種種困難,有必要研究積分的數(shù)值計算問題。利用插值多項式pn由于以上種種困難,有必要研究積分的數(shù)值計算問題。利用插值多項式pnx)”f(x)則積分Jbf(x)dx轉(zhuǎn)化為fbp(x)dx,顯然易算。fbp(x治稱為插值型求積公式。最簡單的插值型求積公式是梯形公式和Simpson公式,。an當求積結(jié)點提供較多,可以分段使用少結(jié)點的梯形公式和Simpson公式,并稱為復(fù)化梯形公式、復(fù)化Simpson公式。如步長未知,可以通過誤差限的控制用區(qū)間逐次分半的策略自動選取步長的方法稱自適應(yīng)算法。梯形遞推公式給出了區(qū)間分半前后的遞推關(guān)系。由梯形遞推公式求得梯形序列,相鄰序列值作線性組合得Simpson序列,Simpson序列作線性組合得柯特

斯序列,柯特斯序列作線性組合的龍貝格序列。右冬込1<£,則輸出R2;否則…依此類推。如此加工數(shù)據(jù)的過程叫龍貝格算法,如下圖所示:ARomberg算法GGq⑥⑨03)\\\③⑤⑧(12)\\\\①②④⑦M6J24001"1234復(fù)化梯形公式GGq⑥⑨03)\\\③⑤⑧(12)\\\\①②④⑦M6J24001"1234復(fù)化梯形公式Tn=2h[f(xo)+25—1f(x)+f(xnk=1復(fù)化Simpson公式S :兀)+f(X)+4藝f(xn6 0 k nk=1kMk=0 k+2梯形遞推公式T2n=Tn+2£1/(〔丿k=0加權(quán)平均公式:與21=加權(quán)平均公式:與21=S4-1 "42S -S=Cnn=C42—1 n43C-C=Rnn=r43一1 n龍貝格算法大大加快了誤差收斂的速度,由梯形序列O(h2)提高到龍貝格序列的O(h8)五、算法設(shè)計與實現(xiàn)(流程圖)(1)龍貝格算法見流程圖圖2.2梯形遞推算法流程圖圖圖2.2梯形遞推算法流程圖圖2.3龍貝格算法流程圖六、個人理解龍貝格算法其實是在梯形遞推的基礎(chǔ)之上生成的一種精度高,而且收斂速度也較快的一種算法。對于梯形算法來說,程序比較容易編寫,而龍貝格算法,程序中需要注意用龍貝格算法加速收斂的時候如何處理判斷以后生成的返回值才能使程序正常運行。而且,對于本題的特殊性,對于積分的函數(shù)中存在分母為x的情況,在此情況下,就必須要討論X為0溢出的情況,剛開始編好的程序總是出現(xiàn)莫名其妙的輸出,后來才發(fā)現(xiàn)是出現(xiàn)了分母為0的情況。所以,在編程中,要注意細節(jié),往往一個很好的程序,某一個不起眼的細節(jié)很可能影響整個程序的正常運行。還有最后編寫防止溢出的操作函數(shù)的時候,==不小心寫為=,也找了很久的錯誤。這些都是非常低級的錯誤,但是因為粗心,仍然出現(xiàn)了。所以,以后編程要認真。七、輸入與輸出諭入積分下限輸入積分上限備入精度幟分f直為946074?ressanpkeytocontinue八、結(jié)果討論和分析龍貝格算法可以達到預(yù)期目的,求得所需要的結(jié)果。但無法分析出是否節(jié)約了時間和效率但絕對是個可行的辦法。

實驗五:一、實驗名稱微分方程的差分方法二、實驗?zāi)康模?)熟悉數(shù)值微分中Euler法,改進Euler法,Rung-Kutta方法;2) 能編程實現(xiàn)Euler法,改進Euler法,Rung-Kutta方法;3) 通過實驗結(jié)果分析各個算法的優(yōu)缺點;(4)明確步長對算法的影響并理解變步長的Rung-Kutta方法三、實驗內(nèi)容(I)/(I)/C-yG)=10<x<1取h=0.1時用Euler法,改進Euler法,Rung-Kutta方法求其數(shù)值解并與精確解進行比較。輸入:求解區(qū)間,初值,數(shù)值解個數(shù)輸出:數(shù)值解四、基本原理(計算公式)在許多科學(xué)技術(shù)問題中,建立的模型常常以常微分方程的形式表示。然而,除了少數(shù)特殊類型的常微分方程能用解析方法求其精確解外,要給出一般方程解析解的表達式是困難的。所以只能用近似方法求其數(shù)值解,在實際工作中常用計算機求常微分方程的數(shù)值解。所x<x〈…〈x=b處的未知函數(shù)y(x)近似值y,y,…丫,即找到一系列離散點(x,y)(x,y)謂常微分方程的數(shù)值解即對于常微分方程初值問題/y'=謂常微分方程的數(shù)值解即對于常微分方程初值問題/y'=f(x,y)b(%)=兒計算出在系列節(jié)點a=01n01n0011(x,y)???(x,y)近似滿足常微分方程。數(shù)值解法的基本思想用差商代替導(dǎo)數(shù),實現(xiàn)連續(xù)22nn問題離散化,選取不同的差商代替導(dǎo)數(shù)可以得到不同公式。改進歐拉公式是常用方法之一,包括預(yù)測和校正兩步。先用歐拉公式進行預(yù)報,再將預(yù)報值代入梯形公式進行校正,從而達到二階精度。通過龍格-庫塔法我們可以獲得更高精度。經(jīng)典龍格-庫塔法即在區(qū)間[x,x]取四點,并對這四點的斜率進行加權(quán)平均作為平均斜nn+1率,通過泰勒公式尋找使局部截斷誤差為0(h?(即4階精度)的參數(shù)滿足條件。h改進的歐拉公式: 預(yù)測y=y+(f(x,y)+f(x,y))n+1 n2 nn n+1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論