#include <iostream.h>
#define DIM 200
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifndef EPSILON
#define EPSILON 0.000000001
#endif
int gelim( int process, double A[DIM][DIM], double xx[DIM] )
{
int k,i,j;
if( process == 1 ) printf("The process of elimination\n");
/* elimination step */
for(k=0;k<DIM;k++)
{
if( fabs(A[k][k]) < EPSILON ) return(1);
for(i=k+1;i<DIM;i++)
{
A[i][k]=A[i][k]/A[k][k];
for(j=k+1;j<DIM;j++) A[i][j]=A[i][j]-A[i][k]*A[k][j];
xx[i]=xx[i]-A[i][k]*xx[k];
}
if(process == 1 )
{
for(i=0;i<DIM;i++)
{
for(j=0;j<DIM;j++) printf("%10.6f",A[i][j]);
printf(" | %10.6f\n",xx[i]);
}
printf("\n");
}
}
/* backward step */
xx[DIM-1]=xx[DIM-1]/A[DIM-1][DIM-1];
for(i=DIM-2;i>=0;i--)
{
for(j=i+1;j<DIM;j++) xx[i]=xx[i]-A[i][j]*xx[j];
xx[i]=xx[i]/A[i][i];
}
return(0);
}
int main()
{
float a[4][3]={0,2,1,3,1,0,1,3,2,1,5,0};
float b[4]={40,100,100,80};
gelim(0,a,b);
for(i=0;i<4;i++)
cout<<b[i]<<endl;
}
正文
test2005-09-24 12:18:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/elva6401/5205.html
阅读(2354) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论