高斯算法(1)


日期:
2005-8-27 22:17:00
来源:
信息学奥林匹克
作者:
编辑
vivian
#include "stdio.h" 

#include "math.h" 

#include "stdlib.h" 

void max_ele(double af[][21],int n,int k)  /* 选主元 */ 

  {double max1,t; 

   int i,j; 

   max1=af[k][k]; i=k; 

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

     if(fabs(af[j][k])>fabs(max1)) i=j; 

   if(i>k) 

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

       {t=af[i][j],af[i][j]=af[k][j],af[k][j]=t;} 

  } 

int gauss(double a[][20],double f[],double x[],int n) 

/* Guass 消去法,引入af[20[21],x[]是为了不改变矩阵a[][],f[] 

   及简化程序  */ 

 {int i,j,k; 

  double af[20][21],del,t; 

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

    { for(j=1;j<=n;j++)  af[i][j]=a[i][j]; 

      af[i][n+1]=f[i]; 

    } 

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

    { max_ele(af,n,k); 

      del=af[k][k]; 

      if (fabs(del)<1e-7) 

       {printf("Single! press any key return...\n"); 

        getchar(); 

        return 0;} 

    &

此文共有5页 上一页 1 2 3 4 5 下一页

关闭窗口

   兆联特别申明
1)除本站特殊规定外,本站所有信息均不拥有版权,仅供学习参考!
2)站内大部分内容注明出处及详细信息,版权归作者所有!如果您觉得不妥请及时与我站联系,我们将立即删除。
3)本站提供的资料您只有阅读权,并不等于您得到文章的所有权,本站反对将我站提供的资料直接使用。