高斯消去法C语言程序_第1页
高斯消去法C语言程序_第2页
高斯消去法C语言程序_第3页
高斯消去法C语言程序_第4页
高斯消去法C语言程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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次消元后的结果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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论