正文

test2005-09-24 12:18:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/5205.html

分享到:

#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;
}

阅读(2234) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册