資源描述:
《數(shù)組分析實驗——高斯消去法的實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、南昌大學實驗報告二學生代號:信念學號:5215201314專業(yè)班級:網(wǎng)絡(luò)間諜088班實驗類型:□驗證□綜合■設(shè)計□創(chuàng)新實驗日期:2010-12-5實驗成績:一、實驗目的用C語言或C++語言編程實現(xiàn)高斯消去法。二、實驗基本原理和內(nèi)容基本思想:用高斯消去法求解線性方程組的基本思想是設(shè)法消去方程組的系數(shù)矩陣A的主對角線下的元素,而將Ax=b化為等價的上三角形方程組,然后再通過回代過程便可以獲得方程組的解。這種解線性方程組的方法,常稱為高斯消去法。高斯消去法算法的構(gòu)造:記方程組AX=b為A(1)X=b(1),其中,A(1)和b(1)的元素分別記為Step1:第一次消元設(shè),將增廣矩陣的第i行減去倍,
2、(i=2,…,n),目的是將增廣矩陣的第一列內(nèi)除每一個元素不變外,其余全部消為零,得到A(2)X=b(2),即-8-其中Step2:第k次消元()設(shè)第k-1次消元已完成,且,得到A(k)X=b(k),即計算因子,如此反復,經(jīng)過n-1次消元之后得到一個與原方程組等價的上三角形方程組.-8-Step3:回代只要就可以回代求解高斯消去法的算法Step1消元:對k=1,2,…,n-1若則停止計算對i=k+1,k+2,…,n計算因子;對j=k+1,k+2,…,n計算;Step2回代:對i=n,n-1,…,1-8-(高斯消去法的條件)若A的所有順序主子式均不為0,則高斯消元無需換行即可進行到底,且得到
3、唯一解.若消元過程中允許對增廣矩陣進行行交換,則方程組Ax=b可用消去法求解的充要條件是A可逆.一、主要儀器設(shè)備及耗材PC機一臺PC微機Windows操作系統(tǒng)MicrosoftVisualStudio6.0集成開發(fā)環(huán)境二、實驗程序及運行結(jié)果高斯消元法實驗程序代碼如下:#include#include#defineN10//矩陣大小范圍/**使用已經(jīng)求出的x,向前計算x(供getx()調(diào)用)*floata[][]系數(shù)矩陣*floatx[]方程組解*inti解的序號*intn矩陣大小*return公式中需要的和*/floatgetm(floata[N][N
4、],floatx[N],inti,intn){floatm=0;intr;for(r=i+1;r5、算其他x值(對于公式中的求和部分,需要調(diào)用getm()函數(shù))result=float((b[i]-getm(a,x,i,n))/a[i][i]);returnresult;}voidmain(){//floata[N][N]={{2,1,1},{1,3,2},{1,2,2}};//floatb[N]={4,6,5};floata[N][N];//系數(shù)矩陣floatb[N];//右端項floatx[N];//方程組解inti,j,k;intn=N;//矩陣大小/*用戶手工輸入矩陣*/printf("請輸入系數(shù)矩陣的大?。?);scanf("%d",&n);printf("請連續(xù)輸入矩陣值:"
6、);for(i=0;i7、t%f",b[i]);}printf("");/*進行高斯消去*/for(j=0;j8、t)(a[i][j]/a[j][j]);for(k=j;k9、t%f",b[i]);}/*回代方式解方程組*/for(i=