資源描述:
《列主元消去法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、實驗二列主元消去法一.實驗?zāi)康模?.了解列主元消去法的算法2.可以正確地從給出的矩陣中選取列主元3.會使用列主元消去法求線性代數(shù)方程組二.算法介紹:列主元素消去法是為控制舍入誤差而提出來的一種算法,在Gauss消去法的消元過程中,若出現(xiàn)=0,則消元無法進行,即使其不為0,但很小,把它作為除數(shù),就會導(dǎo)致其他元素量級的巨大增長和舍入誤差的擴散,最后使計算結(jié)果不可靠.使用列主元素消去法計算,基本上能控制舍入誤差的影響,并且選主元素比較方便.1.輸入系數(shù)矩陣A,右端項b,階n.2.對k=1,2,…n-1,循環(huán).a.
2、按列選主元a:=︳︴,保留主元所在行的指標(biāo)。b.若a=0,則系數(shù)矩陣奇異,計算停止;否則,順序進行。c.若=k,則轉(zhuǎn)向(d),否則執(zhí)行與互換,與互換。d.計算算子=/e.消元:i,j=k+1,……,n3.回代:,i=n.n-1,……1三.程序代碼:#include#include#includeusingnamespacestd;doublea[100][100];//存儲矩陣的二維數(shù)組intn;//階數(shù)全局變量doubleresult[100];//存放
3、解的數(shù)組doubleb[100];//存放常數(shù)的數(shù)組doublesum;voidtip()//選擇操作函數(shù){cout<<"1、輸入矩陣"<>n;cout<<"請輸入增廣矩陣:"<>a[i][j];}}}doubleoutput(intk){in
4、ti,j,r;intf;doublemax,t;doubleresult[50];max=a[n][k];for(i=n;i>=k;i--){if(fabs(max)<=fabs(a[i][k]))//選擇列主元{r=i;max=a[r][k];}}cout<<"主元為"<5、[k][k]){for(j=k;j<=n+1;j++){t=a[k][j];a[k][j]=a[r][j];a[r][j]=t;}}}doublem=0;for(i=k+1;i<=n;i++){m=a[i][k]/a[k][k];//每一次兩個方程間變量的值for(j=k+1;j<=n+1;j++){a[i][j]=a[i][j]-m*a[k][j];}}for(j=1;j<=k;j++){for(i=k+1;i<=n;i++){a[i][j]=0;}}for(i=1;i<=n;i++){for(j=1;j
6、<=n+1;j++){cout<=1;i--){sum=0;for(j=i+1;j<=n;j++){sum=a[i][j]*result[j]+sum;}result[i]=(a[i][n+1]-sum)/a[i][i]
7、;}}doubleroot(intn){inti;cout<<"該方程組的解為"<>t&&(t==1)){input();//調(diào)用輸入函數(shù)inti;for(i=1;i8、<>t&&(t==1)){input();//調(diào)用輸入函數(shù)for(i=1;i