資源描述:
《列主元高斯消元法的C語(yǔ)言編程.doc》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、列主元高斯消元法基本思想:用高斯消元法求解線(xiàn)性方程組時(shí),為避免小的主元,在進(jìn)行第步消元前,應(yīng)該在第列元素中找出第一個(gè)出現(xiàn)的絕對(duì)值最大者,例如,再把第個(gè)方程與第個(gè)方程進(jìn)行交換,使成為主元。我們稱(chēng)這個(gè)過(guò)程為選主元。由于只在第列元素中選主元,通常也稱(chēng)為按列選主元。列主元高斯消元法的C語(yǔ)言編程列主元高斯消元法的C語(yǔ)言程序代碼如下:#include#include#include#defineN4voidGause_pivot(intn,doubleA[N][N+1],doublex[]){//高斯消元inti,j,
2、k;for(k=1;k<=n-1;k++){//選主元intii,jj,kk,row;doublemax,temp;ii=1;kk=k;max=A[ii-1+(kk-1)][kk-1];for(jj=ii+1;jj<=n;jj++){if(fabs(A[jj-1+(kk-1)][kk-1])>fabs(max)){max=A[jj-1+(kk-1)][kk-1];row=jj+(kk-1);}}for(ii=1;ii<=n+1;ii++){temp=A[kk-1][ii-1];A[kk-1][ii-1]=A[row-1][ii-1];A[row-1][ii-1]=
3、temp;}for(i=k+1;i<=n;i++)for(j=k+1;j<=n+1;j++)A[i-1][j-1]-=A[k-1][j-1]*A[i-1][k-1]/A[k-1][k-1];}//回代求解x[n-1]=A[n-1][n]/A[n-1][n-1];for(k=n-1;k>=1;k--){x[k-1]=0.0;for(j=k+1;j<=n;j++)x[k-1]+=A[k-1][j-1]*x[j-1];x[k-1]=(A[k-1][n]-x[k-1])/A[k-1][k-1];}//在屏幕上輸出結(jié)果for(i=0;i<=n-1;i++)printf("%
4、f",x[i]);}voidmain(){doubleA[N][N+1]={{0,2,-0.1,7,76.2},{6,0,3,-5,15},{3,1,2,5,86},{2,4,1,0,48}};doublex[N]={0};Gause_pivot(N,A,x);}