高斯消去法C語言程序_第1頁
高斯消去法C語言程序_第2頁
高斯消去法C語言程序_第3頁
高斯消去法C語言程序_第4頁
高斯消去法C語言程序_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、高斯消去法C語言程序 XYYZ 2006年4月9日#include <stdio.h>#include <math.h>#define N 4void main()int k,i,j,ii=0,jj=0,zN,tt;double aNN,bN,sum,xN,yN,sp,t;printf("請輸入原始增廣矩陣(按行輸入):n");for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%lf",&aij); scanf("%lf",&bi); printf(&qu

2、ot;你輸入的原始增廣矩陣為:n");for(i=0;i<N;i+)zi=i; for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%f ",aij); printf("%fn",bi);printf("n");for(k=0;k<N-1;k+) ii=k;jj=k; for(i=k;i<N;i+) for(j=k;j<N;j+) if(fabs(aiijj)<fabs(aij)ii=i;jj=j; if(aiijj=0)break; if(ii!=k)

3、for(j=k;j<N;j+) t=0;t=aiij;aiij=akj;akj=t; t=0;t=bii;bii=bk;bk=t;if(jj!=k) for(i=0;i<N;i+) t=0;t=aijj;aijj=aik;aik=t; tt=0;tt=zjj;zjj=zk;zk=tt; for(i=k+1;i<N;i+) /*消元過程*/ sp=aik/akk; for(j=k;j<N;j+) aij=aij-akj*sp; bi=bi-bk*sp; printf("第%d次消元后的結(jié)果n",k+1); for(i=0;i<N;i+) for(

4、j=0;j<N;j+)printf("%f ",aij); printf("%fn",bi); printf("n"); yN-1=bN-1/aN-1N-1; /*回代過程*/for(k=N-2;k>=0;k-) sum=0; for(j=k+1;j<N;j+)sum=sum+akj*yj; yk=(bk-sum)/akk;for(i=0;i<N;i+)printf("z%d=%d ",i,zi); printf("n");for(i=0;i<N;i+)xzi=yi

5、;for(i=0;i<N;i+)printf("y%d=%f ",i,yi); printf("n");for(i=0;i<N;i+)printf("x%d=%f ",i,xi); printf("n");#include<stdio.h>#include <math.h>#define N 20int main() int n,i,j,k; int mi,tmp,mx; float aNN,bN,xN; printf("nInput n:"); scanf(

6、"%d",&n); if(n>N) printf("The input n should in(0,N)!n"); getch(); return 1; if(n<=0) printf("The input n should in(0,N)!n"); getch(); return 1; printf("Now input a(i,j),i,j=0.%d:n",n-1); for(i=0;i<n;i+) for(j=0;j<n;j+) scanf("%f",&am

7、p;aij); printf("Now input b(i),i,j=0.%d:n",n-1); for(i=0;i<n;i+) scanf("%f",&bi); for(i=0;i<n-2;i+) for(j=i+1,mi=i,mx=fabs(aij);j<n-1;j+) if(fabs(aji)>mx) mi=j; mx=fabs(aji); if(i<mi) tmp=bi;bi=bmi;bmi=tmp; for(j=i;j<n;j+) tmp=aij; aij=amij; amij=tmp; for(j=

8、i+1;j<n;j+) tmp=-aji/aii; bj+=bi*tmp; for(k=i;k<n;k+) ajk+=aik*tmp; xn-1=bn-1/an-1n-1; for(i=n-2;i>=0;i-) xi=bi; for(j=i+1;j<n;j+) xi-=aij*xj; xi/=aii; for(i=0;i<n;i+) printf("Answer:n x%d=%fn",i,xi); getch(); return 0; #include<math.h>#include<stdio.h>#define NU

9、MBER 20#define Esc 0x1b#define Enter 0x0d float ANUMBERNUMBER+1 ,ark;int flag,n;exchange(int r,int k);float max(int k);message();main() float xNUMBER; int r,k,i,j; char celect; clrscr(); printf("nnUse Gauss."); printf("nn1.Jie please press Enter."); printf("nn2.Exit press Es

10、c."); celect=getch(); if(celect=Esc) exit(0); printf("nn input n="); scanf("%d",&n); printf(" nnInput matrix A and B:"); for(i=1;i<=n;i+) printf("nnInput a%d1-a%d%d and b%d:",i,i,n,i); for(j=1;j<=n+1;j+) scanf("%f",&Aij); for(k=1;k

11、<=n-1;k+) ark=max(k); if(ark=0) printf("nnIt's wrong!");message(); else if(flag!=k) exchange(flag,k); for(i=k+1;i<=n;i+) for(j=k+1;j<=n+1;j+) Aij=Aij-Akj*Aik/Akk; xn=Ann+1/Ann; for( k=n-1;k>=1;k-) float me=0; for(j=k+1;j<=n;j+) me=me+Akj*xj; xk=(Akn+1-me)/Akk; for(i=1;i&

12、lt;=n;i+) printf(" nnx%d=%f",i,xi); message(); exchange(int r,int k) int i; for(i=1;i<=n+1;i+) A0i=Ari; for(i=1;i<=n+1;i+) Ari=Aki; for(i=1;i<=n+1;i+) Aki=A0i; float max(int k) int i; float temp=0; for(i=k;i<=n;i+) if(fabs(Aik)>temp) temp=fabs(Aik); flag=i; return temp; float me=0; for(j=k+1;j<=n;j+) me=me+Akj*xj; xk=(Akn+1-me)/Akk; for(i=1;i<=n;i+) printf(" nnx%d=%f",i,xi); message(); exchange(int r,int k) int i; for(i=1;i&l

溫馨提示

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

評論

0/150

提交評論