计算方法列主元高斯消去法求解方程组 第2页

 if(det!=0)

 {

    for(i=1;i<=n;i++)

           printf("[%d]=%f\n",i,x[i]);

    printf("\n");

 }

}

 int solve(a,x)

 double a[n+1][n+2],x[n+1];

 {

  int i,j,k,r;

  double c;

  for(k=1;k<=n;k++)

  {

   r=k;

   for(i=k;i<=n;i++)

          if(fabs(a[i][k])>fabs(a[r][k]))

                 r=i;

          if(fabs(a[r][k])+1.0==1.0)

          {

                 printf("\ndet=0 fail!");

                 return 0;

          }

   if(r!=k)

          for(j=k;j<=n+1;j++)

          {

           c=a[k][j]; a[k][j]=a[r][j]; a[r][j]=c;

          }

   for(i=k+1;i<=n;i++)

   {

    c=a[i][k]/a[k][k];

       for(j=k+1;j<=n+1;j++)

              a[i][j]=a[i][j]-c*a[k][j];

   }

  }

  if(fabs(a[n][n])+1.0==1.0)

  {

   printf("\n det=0. fail!");

   return (0);

  }

  for(k=n;k>=1;k--)

  {

         x[k]=a[k][n+1];

         for(j=k+1;j<=n;j++)

                x[k]=x[k]-a[k][j]*x[j];

         x[k]=x[k]/a[k][k];

  }

  return (1);

 }

上一页  [1] [2] [3] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有