![數值方法實驗報告_第1頁](http://file4.renrendoc.com/view/08b41d335afadda10f963fd0ecb030c1/08b41d335afadda10f963fd0ecb030c11.gif)
![數值方法實驗報告_第2頁](http://file4.renrendoc.com/view/08b41d335afadda10f963fd0ecb030c1/08b41d335afadda10f963fd0ecb030c12.gif)
![數值方法實驗報告_第3頁](http://file4.renrendoc.com/view/08b41d335afadda10f963fd0ecb030c1/08b41d335afadda10f963fd0ecb030c13.gif)
![數值方法實驗報告_第4頁](http://file4.renrendoc.com/view/08b41d335afadda10f963fd0ecb030c1/08b41d335afadda10f963fd0ecb030c14.gif)
![數值方法實驗報告_第5頁](http://file4.renrendoc.com/view/08b41d335afadda10f963fd0ecb030c1/08b41d335afadda10f963fd0ecb030c15.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE1數學與計算科學學院實驗報告實驗項目名稱迭代法解線性方程組所屬課程名稱數值方法A實驗類型驗證型實驗日期2014年11月28日姓名學號班級成績一、實驗概述:【實驗目的】熟練運用運用所學計算機語言編寫程序,實現解線性方程組的迭代法,包括Gauss-Seidel迭代方法和松弛迭代法,分析迭代格式的收斂性,以及初值對迭代格式收斂的影響。用熟悉的計算機語言編程上機完成:用Gauss-Seidel迭代法求解下列方程組,當滿足時,結束迭代。2.用松弛迭代法(取=1.25)求解下列方程組,當滿足時結束迭代,說明迭代的收斂性,并討論初值的變化對收斂的影響?!緦嶒炘怼?.Gauss—Seidel迭代法原理:Gauss-seidel迭代法是對Jacobi迭代法的改進,在Jacobi迭代的分量形式中,為了在每一次迭代計算不同的分量時,可以利用前面已經計算出來的分量,就將Jacobi迭代的分量形式修改為這樣,每一個計算出來的分量馬上就可以用于計算下一個分量,這種方法比Jacobi迭代法收斂得快。2.松弛迭代法原理為了提高精度,可以考慮運用松弛技術,將高斯-塞德爾(Gauss-Seidel)迭代得到的值進一步加工成某種松弛值,迭代公式如下
逐次超松弛迭代法是顯然Gauss-Seidel方法的一種加速方法,當時,SOR方法就是Gauss-Seidel迭代方法。【實驗環(huán)境】Visualc++6.0二、實驗內容:【實驗方案】1.Gauss—Seidel迭代法步1讀入數據,初始向量n,增廣矩陣,k=1;步2步3判斷步4,,轉入步2;步5,輸出結果。2.SOR方法解方程組Ax=b的算法,其中A為對稱正定矩陣,數組x作為一組工作單元,開始存放初始向量,然后存放近似值解,最后存放結果,用控制迭代終止,k表示迭代次數,可以不用。步1;步2;步3;步4步5對于有(1)(2)如果,則,(3);步6輸出;步7如果,則轉步3;步8輸出結果x,k?!緦嶒炦^程】(實驗步驟、記錄、數據、分析)調試報錯如下:在頭文件下加上如下程序doubleCompare(doublea[N],doubleb[N]){ doublec=0; inti; for(i=0;i<=N-1;i++) c+=fabs(a[i]-b[i]); returnc;}在主函數中加如下語句:Gauss_seidel(A,x,b,1e-4);【實驗結果】1.Gauss-Seidel迭代法求解方程組的實驗結果如下:2.松弛法求方程組實驗結果如下:初值的變化對收斂沒有影響,SQR方法收斂的充要條件是稀疏矩陣對稱正定,且?!緦嶒炐〗Y】(收獲體會)在這次數值分析試驗中,我明白了高斯-賽德爾迭代法和松弛迭代法的異同,更深的理解了用迭代法解線性方程組的方法,并且懂得了編寫一段代碼,我們不僅要考慮它的可行性,更應該考慮它的算法復雜度,運行效率。由此,我們可以看出做一件事要精益求精,多加斟酌
,并且在數值分析理論課方面更應該多下功夫,扎實基礎才是最重要的。三、指導教師評語及成績:評語評語等級優(yōu)良中及格不及格1.實驗報告按時完成,字跡清楚,文字敘述流暢,邏輯性強2.實驗方案設計合理3.實驗過程(實驗步驟詳細,記錄完整,數據合理,分析透徹)4實驗結論正確.成績:指導教師簽名:批閱日期:附錄:源程序程序1:#include<stdio.h>#include<math.h>#include<iostream.h>#defineN3doubleCompare(doublea[N],doubleb[N]){ doublec=0; inti; for(i=0;i<=N-1;i++) c+=fabs(a[i]-b[i]); returnc;}voidGauss_seidel(doubleA[N][N],doublex[N],doubleb[N],doubleprecesion){ inti,j,k; doublex2[N],x3[N],sum; for(i=0;i<=N-1;i++) { x2[i]=x[i]; x3[i]=x[i]; } k=1;//k為迭代次數 while(1) { for(i=0;i<=N-1;i++) { sum=0; for(j=0;j<=N-1;j++) { if(j!=i) sum+=A[i][j]*x2[j]; } x[i]=(b[i]-sum)/A[i][i]; x2[i]=x[i]; } //輸出每一次迭代的結果 printf("第%d次迭代:\n",k); printf("x3="); for(i=0;i<=N-1;i++) printf("%lf",x3[i]); printf("\n"); printf("x="); for(i=0;i<=N-1;i++) printf("%lf",x[i]); printf("\n"); //判斷是否達到迭代精度 if(Compare(x3,x)<=precesion) { printf("達到迭代精度的方程組的解為:\n"); printf("x="); for(i=0;i<=N-1;i++) printf("%lf",x[i]); printf("\n"); break; } else { for(i=0;i<=N-1;i++) x3[i]=x[i]; k++; continue; } }}voidmain(){ doubleA[N][N]={{5,2,1},{-1,4,2},{2,-3,10}},x[N]={0},b[N]={-12,20,3}; Gauss_seidel(A,x,b,1e-4);程序2:#defineN3//線性方程組的階數#include<iostream.h>#include<math.h>voidmain(){ doublea[N][N]={2,2,-2,2,5,-4,-2,-4,5},//系數矩陣 b[N]={1,2,0};//右端常數向量 doublex0[N]={0,0,0},x[N];//迭代初始向量和迭代向量 doublee=1e-5;//精度要求 intM=500;//最大迭代次數 inti,j,c_M=0; doublesum,current_e; do { current_e=0; for(i=0;i<N;i++) { sum=0; for(j=0;j<N;j++) { if(j!=i) { sum=sum+a[i][j]*x0[j]; } } x[i]=(b[i]-sum)/a[i][i]; }//更新迭代向量 c_M++;//迭代次數加1 for(i=0;i<N;i++) { if(fabs(x[i]-x0[i])>current_e) current_e=fabs(x[i]-x0[i]); } //計算當前誤差 for(i=0;i<N;i++) x0[i]=x[i];//更新初始向量 }while(current_e<=e&&c_M<M);//判斷是否仍未達到精度要求且未達到最大迭代次數 for(i=0;i<N;i++) cout<<x[i]<<endl;//輸出結果 cout<<c_M<<endl;//輸出迭代次數} 附錄2:實驗報告填寫說明1.實驗項目名稱:要求與實驗教學大綱一致.2.實驗目的:目的要明確,要抓住重點,符合實驗教學大綱要求.3.實驗原理:簡要說明本實驗項目所涉及的理論知識.4.實驗環(huán)境:實驗用的軟、硬件環(huán)境.5.實驗方案(思路、步驟和方法等):這是實驗報告極其重要的內容.概括整個實驗過程.對于驗證性實驗,要寫明依據何種原理、操作方法進行實驗,要寫明需要經過哪幾個步驟來實現其操作.對于設計性和綜合性實驗,在上述內容基礎上還應該畫出流程圖、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代收美金合同范本
- 2025年度新型環(huán)?;炷敛牧腺忎N合同范本集錦
- 勞動生產合同范例
- 喬木修剪合同范本
- 公司投資電影合同范例
- 個人外貿合同范例
- 2014家裝合同范例
- 信息資產安全合同范本
- 借用合同范例 英文
- 旅游業(yè)個性化旅游定制服務方案
- 酒店春節(jié)營銷方案
- 營銷管理方案中的定價策略與盈利模式
- 2024年西寧城市職業(yè)技術學院高職單招(英語/數學/語文)筆試歷年參考題庫含答案解析
- 2024年臨沂市高三一模(學業(yè)水平等級考試模擬試題)物理試卷
- 廣州獵德大橋三維曲面塔清水混凝土施工技術
- 我國糖尿病視網膜病變臨床診療指南2022解讀
- 高級茶藝師技能鑒定(協(xié)會版)備考題庫-下(多選、判斷題匯總)
- 特種設備作業(yè)人員體檢表(叉車)
- c30混凝土路面施工方案
- 加強師德師風建設學校師德師風警示教育講座培訓課件
- 豬飼料購銷合同書
評論
0/150
提交評論