試驗一直接法解線性方程組_第1頁
試驗一直接法解線性方程組_第2頁
試驗一直接法解線性方程組_第3頁
試驗一直接法解線性方程組_第4頁
試驗一直接法解線性方程組_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實用文檔忒倨科拉大母Wuhan University of Science & Technology數值計算基礎實驗報告專 業計算機科學與技術班 級:2013級1303班學 號:201313137085姓 名:胡恒德指導老師:王薇標準實用文檔實驗名稱直接法解線性方程組實驗日期2015.05.22報告規范 (10 分)程序一(35 分)程序二(35 分)實驗小結(20 分)總分【實驗目的】掌握Guass列選主元消去法、三角分解法解線性方程組。【實驗內容】分別寫出Guass列選主元消去法、三角分解法的算法,編寫程序上機調試出結果,要求所編程序適 用于任何線性方程組問題,即能解決這一類問題,而不是某

2、一個問題。實驗中以下列數據驗證程序的正確性。1、Guass列選主元消去法 TOC o 1-5 h z HYPERLINK l bookmark8 o Current Document 2.52.35.1x13.7 HYPERLINK l bookmark10 o Current Document 5.39.61.5x23.8 HYPERLINK l bookmark12 o Current Document 8.11.74.3x35.52、Doolittle三角分解法 HYPERLINK l bookmark14 o Current Document 100341213 HYPERLINK l

3、 bookmark18 o Current Document 23414913【實驗小結】Gauss列注消元在計算過程中,需要先選擇主元,否則如果在計算過程中出現了數量級相對于分子小的除數的話,在計算機有限字長下會出現較大誤差,直接三角分解法,當矩陣A的順序主子式全部為零,A可以分解為下一個三角形矩陣L和一個單位上三角形U的乘積A=LU且分解是唯一的。在編程過程中應當注意下標的變化,否則實驗結果就會與正確結果有較大出入。Guass列選主元消去法一、問題對于b的處理有多種方法,如果把 b加到A的最后一列,會方便許多,但是如果單獨這樣算,就麻 煩一些。二、源代碼標準實用文檔#include#inc

4、lude#include#define eps 1e-6#define M 10float AMM刈M1,xM1;int main()int i,j,k,row,n,flag=1;float m,max,temp,sum=0;printf(請輸入矩陣A的行數(行列數相等):); scanf(%d,&n);printf(請輸入矩陣A : n);for(i=1;i=n;i+)for(j=1;j=n;j+) scanf(%f,&Aij);printf(請輸入矩陣b: n); for(i=1;i=n;i+)scanf(%f,&bi1);for(j=1;jn;j+) max=fabs(A皿);/ 選主元

5、row=j;for(i=j+1;imax) max=fabs(Aij); row=i;if(fabs(Arowrow)eps) flag=0;for(k=j;k=n;k+) 換行 temp=Ajk; Ajk=Arowk; Arowk=temp; temp=bj1;標準實用文檔bj1=brow1;brow1=temp;for(i=j+1;i=n;i+)/消元(m=Aij/A皿;for(k=j;k=1;i-)(sum=bi1;for(j=i+1;j=n;j+)sum-=Aij*xj1;xi1=sum/Aii;if(flag)(printf(Gauss 列主消去后 A 為:n); for(i=1;i

6、=n;i+)(for(j=1;j=n;j+)(if(fabs(Aij)eps)Aij=0;printf(%.3ft,Aij); printf(n);printf(n);printf(Gauss 列主消去后 b 為:n);for(i=1;i=n;i+)printf(%.2fn,bi1);printf(n);printf(Ax=b 的解 X 為:n);for(i=1;i=n;i+)printf(%.2fn,xi1);標準實用文檔printf(n);)elseprintf(矩舊車A奇異,無解! n);return 0;)三、運行結果6、 rC : DocusentsandSett零tratoiA桌面

7、、計算機繳值方法賣普、實驗一直一請施入矩陣的行數(行列數相等:口 請轉入矩陣必2.5 2,3 -5_1S.2 9.6 1.GB .1 1-7 -4_3請輸入矩陣力:3.73.85.SUhuwe到主消去后白為;R.1001.700-4.3000.00Q9.404.3143.0800.300-4.676GaussJ71主消去后h為:5.509.201.96由K=b的解封為:0,410.24-0-42Press 在ny key to cointiiiixeDoolittle三角分解法一、問題直接分解法,在計算 LU的過程中,先計算 U的第一列和L的第一行,在余下計算過程中,計算一 行U就要計算一列L

8、,過程是在一個循環里的,如果分開計算的話,就會出錯,我第一次把L和U的計算分開了,結果就二、源代碼#include標準實用文檔#include#include#define M 10float AMM,LMM,UMM;float USUM(int i,int j) int k=1;float sum=0;for(k=1;k=i-1;k+)sum+=Lik*Ukj;return sum;float LSUM(int i,int j)int k=1;float sum=0;for(k=1;k=i-1;k+)sum+=Ljk*Uki;return sum;int main() int i,j,n;p

9、rintf(請輸入需分解的矩陣的行數(行列數相等):);scanf(%d,&n);for(i=1;i=n;i+)for(j=1;j=n;j+) Lij=0;Uij=0;L皿i=1;scanf(%f,&Aij);for(i=1;i=n;i+)U1i=A1i;if(in)Li+11=Ai+11/U11;標準實用文檔)計算LUfor(i=2;i=n;i+)(for(j=i;j=n;j+)(Uij=Aij-USUM(i,j);)for(j=i+1;j=n;j+)(if(in)Lji=(Aji-LSUM(i,j)/Uii;)printf(矩陣 A 為:nn);for(i=1;i=n;i+)(for(j=1;j=n;j+)printf(%.2ft,Aij);printf(n);)printf(n);printf(將 A 分解的 L 為:n);for(i=1;i=n;i+)(for(j=1;j=i;j+)printf(%.2ft,Lij);printf(n);)printf(n);printf(將 A 分解的 U 為:n);for(i=1;i=n;i+)(for(j=1;j=n;j+)(if(ji)printf(t);elseprintf(%.2ft

溫馨提示

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

評論

0/150

提交評論