直接法解線性方程組_第1頁
直接法解線性方程組_第2頁
直接法解線性方程組_第3頁
直接法解線性方程組_第4頁
直接法解線性方程組_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)學與計算科學學院實 驗 報 告實驗項目名稱 直接法解線性方程組 所屬課程名稱 數(shù)值方法A 實 驗 類 型 驗證型 實 驗 日 期 2014.11.28 班 級 信計12- 學 號 201253100 姓 名 成 績 一、實驗概述:【實驗目的】1.掌握用C語言編程實現(xiàn)追趕法求解三對角線性方程組;2.掌握運用高斯列主元消去法解線性方程組;3.加深對解線性方程組的直接法高斯列主消元法和LU分解法的構造過程的理解;4.熟悉并掌握各種方法的適用對象及優(yōu)缺點,學會針對不同問題選擇不同方法;5.培養(yǎng)使用電子計算機進行科學計算和解決問題的能力。【實驗原理】1.追趕法原理2.高斯列主元消去法【實驗環(huán)境】1.硬

2、件環(huán)境2.軟件環(huán)境(1)(2)VC+ 6.0二、實驗內(nèi)容:【實驗過程】(實驗步驟)1.實驗步驟 1)深入了解解題過程并依次寫出解題算法; 2)依照算法用C語言編寫解題程序; 3)上機時將寫好的程序輸入到VC+中并調(diào)試運行得出方程的解; 4)比較幾種方法之間的聯(lián)系與區(qū)別。2.1追趕法根據(jù)以上的實驗原理,在VC+編輯框中輸入源程序: 由原理可知:b1=2,c1=-1,f1=1 a2=-1,b2=2,c2=-1,f2=0a3=-1,b3=2,c3=-1,f3=0a4=-1,b4=2,c4=-1,f4=0a5=-1,b5=2 ,f5=0 將上述系數(shù)逐個輸入運行框, 并經(jīng)過多次調(diào)試運行,最終運行出結果如

3、下:2.1 Gauss消元法1)數(shù)據(jù)輸入main(void)float A44=0.4096,0.1234,0.3678,0.2943,0.2246,0.3872,0.4015,0.1129,0.3645,0.1920,0.3781,0.0643,0.1784,0.4002,0.2786,0.3927;float b4=0.4043,0.1550,0.4240,-0.2557;float x4=0;float Aik,S;int i,j,k;int size=4;printf("An");for(i=0;i<size;i+)for(j=0;j<size;j+)p

4、rintf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn");2)消去過程/消去過程for(k=0;k<size-1;k+)if(!Akk)return -1;for(i=k+1;i<size;i+)Aik=Aik/Akk;for(j=k;j<size;j+)Aij=Aij-Aik*Akj;bi=bi-Aik*bk;/消去的結果printf("A

5、n");for(i=0;i<size;i+)for(j=0;j<size;j+)printf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn");3)回代過程 /回代過程xsize-1=bsize-1/Asize-1size-1;for(k=size-2;k>=0;k-)S=bk;for(j=k+1;j<size;j+)S=S-Akj*xj;

6、xk=S/Akk;4)結果輸出/solutionprintf("The solution x=n");for(i=0;i<size;i+)printf("%f ",xi);return 0;得如下結果: 即2.2 列主元消去法1)數(shù)據(jù)輸入int main(void)float A44=0.4096,0.1234,0.3678,0.2943,0.2246,0.3872,0.4015,0.1129,0.3645,0.1920,0.3781,0.0643,0.1784,0.4002,0.2786,0.3927;float b4=0.4043,0.1550

7、,0.4240,-0.2557;float x4=0;float Aik,S,temp;int i,j,k;float max;/列主元的絕對值int col;/列主元所在的行int size=4;printf("An");for(i=0;i<size;i+)for(j=0;j<size;j+)printf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn

8、");2)消去過程/-消去過程-for(k=0;k<size-1;k+)max=fabs(Akk);col=k;/查找最大元素所在的行for(i=k;i<size;i+)if(max<fabs(Aik)max=fabs(Aik);col=i;printf("col:%dn",col);for(j=k;j<size;j+)temp=Acolj;Acolj=Akj;Akj=temp;temp=bcol;bcol=bk;bk=temp;if(!Akk)return -1;for(i=k+1;i<size;i+)Aik=Aik/Akk;for

9、(j=k;j<size;j+)Aij=Aij-Aik*Akj;bi=bi-Aik*bk;/消去的結果printf("An");for(i=0;i<size;i+)for(j=0;j<size;j+)printf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn");3)回代過程/回代過程xsize-1=bsize-1/Asize-1size

10、-1;for(k=size-2;k>=0;k-)S=bk;for(j=k+1;j<size;j+)S=S-Akj*xj;xk=S/Akk;4)結果輸出/solutionprintf("The solution x=n");for(i=0;i<size;i+)printf("%f ",xi);return 0; 將上述各部分程序組合到一起并調(diào)試運行得出結果如下: 即。【實驗結論】(結果)1.追趕法結果2.高斯消去法和列主元消去法1)高斯消去法結果截圖:2)列主元消去法結果截圖:【實驗小結】(收獲體會) 通過運用追趕法來求解三對角方程組的問

11、題.追趕法是用來求解三對角方程組的專用方法,對于三對角方程組,追趕法比Gauss消去法的計算量要小的多。本次實驗讓我了解到了C語言功能的強大,也讓我意識到了算法對于程序編寫的重要程度,只有學好邏輯,學好算法,才能使用編程使計算精度進一步提高。三、指導教師評語及成績:評 語評語等級優(yōu)良中及格不及格1.實驗報告按時完成,字跡清楚,文字敘述流暢,邏輯性強2.實驗方案設計合理3.實驗過程(實驗步驟詳細,記錄完整,數(shù)據(jù)合理,分析透徹)4實驗結論正確. 成 績: 指導教師簽名: 批閱日期:附錄:源 程 序程序1:#include<stdio.h>#include<conio.h>#

12、include<math.h>#define MAX_n 100#define PRECISION O.000001void SulutionOutput(float x,int n)int i;for(i=1;i<=n;+i)printf("nx%d=%f",i,xi);void TriDiagonalMatrixInput(float a,float b,float c,float f,int n)int i;printf("請輸入b1,c1,f1:");scanf("%f%f%f",&b1,&c

13、1,&f1);for(i=2;i<n;+i)printf("請輸入a%d,b%d,c%d,f%d:",i,i,i,i);scanf("%f%f%f%f",&ai,&bi,&ci,&fi);printf("請輸入a%d,b%d,f%d:",n,n,n);scanf("%f%f%f",&an,&bn,&fn);void Z_G_method(float a,float b,float c,float f,int n) int i;c1/=b1;for

14、(i=2;i<n;+i)ci/=(bi-ai*ci-1); f1/=b1; for(i=2;i<=n;+i) fi=(fi-ai*fi-1/bi-ai*ci-1); for(i=n-1;i>0;-i) fi-=ci*fi+1;void main()int n;float aMAX_n,bMAX_n,cMAX_n;float fMAX_n;printf("n請輸入 n=");scanf("%d",&n);TriDiagonalMatrixInput(a,b,c,f,n);Z_G_method(a,b,c,f,n);Sulution

15、Output(f,n);程序2:1)高斯消去法程序:#include<stdio.h>main(void)float A44=0.4096,0.1234,0.3678,0.2943,0.2246,0.3872,0.4015,0.1129,0.3645,0.1920,0.3781,0.0643,0.1784,0.4002,0.2786,0.3927;float b4=0.4043,0.1550,0.4240,-0.2557;float x4=0;float Aik,S;int i,j,k;int size=4;printf("An");for(i=0;i<s

16、ize;i+)for(j=0;j<size;j+)printf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn");/消去過程for(k=0;k<size-1;k+)if(!Akk)return -1;for(i=k+1;i<size;i+)Aik=Aik/Akk;for(j=k;j<size;j+)Aij=Aij-Aik*Akj;bi=bi-Aik*

17、bk;/消去的結果printf("An");for(i=0;i<size;i+)for(j=0;j<size;j+)printf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn");/回代過程xsize-1=bsize-1/Asize-1size-1;for(k=size-2;k>=0;k-)S=bk;for(j=k+1;j<siz

18、e;j+)S=S-Akj*xj;xk=S/Akk;/solutionprintf("The solution x=n");for(i=0;i<size;i+)printf("%f ",xi);return 0;2)列主元消去法程序:#include<stdio.h>#include<math.h>int main(void)float A44=0.4096,0.1234,0.3678,0.2943,0.2246,0.3872,0.4015,0.1129,0.3645,0.1920,0.3781,0.0643,0.1784,0

19、.4002,0.2786,0.3927;float b4=0.4043,0.1550,0.4240,-0.2557;float x4=0;float Aik,S,temp;int i,j,k;float max;/列主元的絕對值int col;/列主元所在的行int size=4;printf("An");for(i=0;i<size;i+)for(j=0;j<size;j+)printf("%f ",Aij);printf("n");printf("bn");for(i=0;i<size;i+)printf("%f ",bi);printf("nn");/-消去過程-for(k=0;k<size-1;k+)max=fabs(Akk);col=k;/查找最大元素所在的行for(i=k;i<size;i+)if(max<fabs(Aik)max=fabs

溫馨提示

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

評論

0/150

提交評論