版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)值分析 設(shè)計報告書</p><p> 題 目 松弛迭代法中松弛因子 </p><p> 院 系 數(shù)理系 </p><p> 專 業(yè) 信息與計算科學(xué) </p><p> 班 級
2、 </p><p> 學(xué) 號 </p><p> 姓 名 </p><p> 時 間 2013-12-10~2013-12-23 </p><p> 指導(dǎo)教
3、師 </p><p><b> 題目:</b></p><p> 選用Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法求解下面的方程組(考慮等于150)</p><p><b> =</b></p><p> 考慮初值的變化和松弛因子
4、的變化收斂效果的影響;對上述方程組還可以采用哪些方法求解?選擇其中一些方法編程上機(jī)求解上述方程組,說明最適合的是什么方法;將計算結(jié)果進(jìn)行比較分析,談?wù)勀銓@些方法的看法。</p><p><b> 一、摘要</b></p><p> 本課程設(shè)計用matlab就線性方程組數(shù)值方法,Jacobi迭代法,Gauss-Seidel迭代法,超松弛法對所設(shè)計的問題進(jìn)行求解,并
5、編寫程序在Matlab中實現(xiàn),在文章中對各種迭代法進(jìn)行了收斂性分析。接著用幾種不同方法對線性方程組進(jìn)行求解及結(jié)果分析,最后對此次課程設(shè)計進(jìn)行了總結(jié)。</p><p> 關(guān)鍵詞:線性方程組,迭代,Matlab,結(jié)果分析</p><p><b> 二、設(shè)計目的</b></p><p> 用熟悉的計算機(jī)語言編程上機(jī)求解線性方程組。</p&
6、gt;<p><b> 三、理論基礎(chǔ)</b></p><p> 對方程組 </p><p> 做等價變換 </p><p><
7、b> 如:令 ,則</b></p><p> 則,我們可以構(gòu)造序列 </p><p><b> 若 </b></p><p><b> 同時:</b></p><p> 所以,序列收斂,與初值的選取無關(guān)<
8、;/p><p><b> 則轉(zhuǎn)化為矩陣形式</b></p><p><b> (1)</b></p><p><b> 令</b></p><p><b> 或者 </b></p><p> 故迭代過程(1)化為 </p
9、><p> (2) </p><p><b> 等價線性方程組為 </b></p><p> 稱(2)式為解線性方程組(1)的Jacobi迭代法(J法)</p><p> 迭代矩陣 考慮迭代式(2)</p><p><
10、;b> 即 </b></p><p> 將上式改為 (3)</p><p><b> (4)</b></p><p><b> 超松弛迭代</b></p><p><b> 記 &l
11、t;/b></p><p><b> 則 </b></p><p> 可以看作在前一步上加一個修正量。若在修正量前乘以一個因子</p><p><b> 有 </b></p><p> 對Gauss-Seidel迭代格式 </p><p><b>
12、; 迭代矩陣</b></p><p><b> 程序代碼及運算結(jié)果</b></p><p> 1.利用Jacobi迭代法求解:</p><p> 編制名為majacobifun.m的文件,內(nèi)容如下:</p><p> function [x,n]=jacobifun(A,b,x0,eps)</
13、p><p> %jacobifun為編寫在雅可比迭代函數(shù)</p><p> %A為線性方程組的系數(shù)矩陣</p><p> %b為線性方程組的常數(shù)向量</p><p> %x0為迭代初始向量</p><p><b> %eps為解的精度</b></p><p> %x
14、為線性方程組的解</p><p> %n為求出所需精度的解實際的迭代步數(shù)</p><p> D=diag(diag(A));</p><p> B=D\(D-A);</p><p><b> f=D\b;</b></p><p><b> x=B*x0+f;</b>
15、</p><p><b> n=0;</b></p><p> if max(abs(eig(B)))>=1</p><p> disp('Warning:不收斂!');</p><p><b> return;</b></p><p><
16、b> end</b></p><p> while norm(x-x0)>=eps</p><p><b> x0=x;</b></p><p><b> x=B*x0+f;</b></p><p><b> n=n+1;</b></p&
17、gt;<p><b> end</b></p><p> 2.利用Gauss-Seidel迭代法求解:</p><p> 編制名為G_Seidelifun.m的文件,內(nèi)容如下:</p><p> nction [x,n]=G_Seidelifun(A,b,x0,eps)</p><p> %G_S
18、eidelifun為編寫在高斯-賽德爾迭代函數(shù)</p><p> %A為線性方程組的系數(shù)矩陣</p><p> %b為線性方程組的常數(shù)向量</p><p> %x0為迭代初始向量</p><p><b> %eps為解的精度</b></p><p> %x為線性方程組的解</p&g
19、t;<p> %n為求出所需精度的解實際的迭代步數(shù)</p><p> D=diag(diag(A));</p><p> L=-tril(A,-1);</p><p> U=-triu(A,1);</p><p> G=(D-L)\U;</p><p> f=(D-L)\b;</p>
20、;<p><b> x=G*x0+f;</b></p><p><b> n=0;</b></p><p> if max(abs(eig(G)))>=1</p><p> disp('Warning:不收斂!');</p><p><b>
21、return;</b></p><p><b> end</b></p><p> while norm(x-x0)>=eps</p><p><b> x0=x;</b></p><p><b> x=G*x0+f;</b></p>&
22、lt;p><b> n=n+1;</b></p><p><b> end</b></p><p> 3.利用SOR迭代法求解:</p><p> 編制名為SORfun.m的文件,內(nèi)容如下:</p><p> function [x,n]=SORfun(A,b,x0,w,eps)&l
23、t;/p><p> %SORfun為編寫在松弛迭代函數(shù)</p><p> %A為線性方程組的系數(shù)矩陣</p><p> %b為線性方程組的常數(shù)向量</p><p> %x0為迭代初始向量</p><p><b> %w為松弛因子</b></p><p><b&g
24、t; %eps為解的精度</b></p><p> %x為線性方程組的解</p><p> %n為求出所需精度的解實際的迭代步數(shù)</p><p> if(w<=0 ||w>=2)</p><p><b> error</b></p><p><b>
25、return;</b></p><p><b> end</b></p><p> D=diag(diag(A));</p><p> L=-tril(A,-1);</p><p> U=-triu(A,1);</p><p> S=(D-w*L)\((1-w)*D+w*U)
26、;</p><p> f=w*((D-w*L)\b);</p><p><b> x=S*x0+f;</b></p><p><b> n=0;</b></p><p> if max(abs(eig(S)))>=1</p><p> disp('Wa
27、rning:不收斂!');</p><p><b> return;</b></p><p><b> end</b></p><p> while norm(x-x0)>=eps</p><p><b> x0=x;</b></p><
28、;p><b> x=S*x0+f;</b></p><p><b> n=n+1;</b></p><p><b> end</b></p><p> 在Matlab命令窗口輸入:</p><p><b> >> clear</b&g
29、t;</p><p><b> w=1.5;</b></p><p><b> eps=1e-6;</b></p><p><b> n=150;</b></p><p> A=diag(8*ones(1,n-1),-1)+diag(6*ones(1,n))+diag(
30、ones(1,n-1),1);</p><p> b(1)=10.5;</p><p><b> b(n)=21;</b></p><p> for i=2:n-1</p><p> b(i)=22.5;</p><p><b> end</b></p>
31、<p><b> b=b';</b></p><p> x0=zeros(n,1);</p><p> [x1,n]=jacobifun(A,b,x0,eps);</p><p> [x2,n]=G_Seidelifun(A,b,x0,eps);</p><p> [x3,n]=SORfu
32、n(A,b,x0,w,eps);</p><p> plot(x1);hold on</p><p> plot(x2,'r');hold on</p><p> plot(x3,'g*')</p><p> 表1 Jacobi、Guass_seidel、SOR迭代結(jié)果表</p>&
33、lt;p> 以下為方程組的解的圖:</p><p> 圖1 初值x0=[0;..;0] 松弛因子=1.5時圖</p><p> 圖2 初值x0=[1;..;1] 松弛因子=1.5時圖</p><p> 圖3 初值x0=[1;..;1] 松弛因子=1.1時圖</p><p><b> 五、結(jié)果分析</
34、b></p><p> 通過以上數(shù)據(jù)測試可以分析出以下幾點:</p><p> 1. 系數(shù)矩陣為150階時,經(jīng)判斷Jacobi迭代是發(fā)散的、Gauss-Seidel、SOR兩種迭代是收斂的,當(dāng)初值一定時,Gauss-Seidel、SOR對應(yīng)的迭代次數(shù)是逐漸減少的,也就是說SOR迭代比Gauss-Seidel迭代收斂更快。</p><p> 2. 當(dāng)初值變
35、大時,Gauss-Seidel、SOR對應(yīng)的迭代次數(shù)是逐漸減少的,當(dāng)初值相同,松弛因子 變小時,SOR對應(yīng)的迭代次數(shù)是逐漸減少的,</p><p> 3. 三種迭代法計算得到的解與嚴(yán)格計算方程組后的精確解在結(jié)果所示精度下是相同的,說明三種迭代法的求解精度是不低的。</p><p><b> 六、設(shè)計心得</b></p><p> 通過這次
36、數(shù)值分析課程設(shè)計,分別利用Jacobi迭代、Gauss-Seidel迭代和超松弛迭代法求解指定方程組,并考慮了初值變化和松弛因子的變化對收斂效果胡影響?;仡檾?shù)值分析的相關(guān)知識,完成了這次課程設(shè)計,進(jìn)一步加深了解線性方程組的方法。</p><p><b> 七、參考文獻(xiàn)</b></p><p> [1]薛定宇,陳陽泉。高等應(yīng)用數(shù)學(xué)問題的MATLAB求解[M]。北京:
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)值分析課程設(shè)計--newton_迭代法
- 高斯—賽德爾迭代法課程設(shè)計
- 高斯—賽德爾迭代法課程設(shè)計
- 高斯—賽德爾迭代法課程設(shè)計.doc
- 高斯-賽德爾迭代法的算法及程序設(shè)計課程設(shè)計
- 牛頓迭代法
- jacobi 迭代法與gauss-seidel迭代法算法比較
- 數(shù)值分析線性方程組迭代法實驗
- 牛頓迭代法分法
- 分法牛頓迭代法
- 廣義交替二級迭代法和GAOR迭代法的收斂性分析.pdf
- 預(yù)條件迭代法和并行交替二級迭代法的收斂性分析.pdf
- 松弛管理
- 電磁場中的自適應(yīng)超松弛迭代技術(shù)研究.pdf
- 125趙連云-雅可比迭代法和高斯—塞德爾迭代法比較
- 預(yù)算管理中預(yù)算松弛問題
- 重力迭代法計算 最新.xls
- 重力迭代法計算 最新.xls
- 特殊矩陣分析和鞍點問題迭代法.pdf
- 牛頓迭代法在圖像增強(qiáng)中的應(yīng)用
評論
0/150
提交評論