⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列主元素法.txt

📁 数值计算方法所用的上机实验C++源程序,个人所编.
💻 TXT
字号:
void ColGauss(float a[N][N],float b[N])
{  float t,max_fab;
   int i,j,k,l;
   for(i=0;i<N-1;i++)
   {  l=i;
      max_fab=fabs(a[i][i]);
      for(j=i+1;j<N;j++)  /* 找主元素 */
	     if(fabs(a[j][i]>max_fab)) 
        {  l=j;  max_fab=fabs(a[j][i]);   }
      if(i<l)  /* 交换i、l两行 */
      {  t=b[i];
         b[i]=b[l];
         b[l]=t;
         for(j=i;j<N;j++)
         {  t=a[i][j]; a[i][j]=a[l][j]; a[l][j]=t; }
      }
      for(j=i+1;j<N;j++) /* 消元过程开始 */
      {  t=-a[j][i]/a[i][i];
         b[j]=b[j]+t*b[i];
         for(k=i;k<N;k++)
	        a[j][k]=a[j][k]+t*a[i][k];  }   }
}
void zg_matric(float a[N][N],float b[N]) /* 输出增广矩阵 */
{  int i,j;
   for(i=0;i<N;i++)
   {  for(j=0;j<N;j++)
	      printf("%10f",a[i][j]);
      printf("%10f",b[i]);
      printf("\n");
   }
   printf("\n");
} 
#include <math.h>
#define N 4  /* N为方程组系数矩阵的阶数 */
main()
{  float a[N][N]={{1.003,0.333,1.504,-0.333},{-2.011,1.455,0.506,2.956},
                  {4.329,-1.952,0.006,2.087},{5.113,-4.004,3.332,-1.112}};
   float b[N]={3.005,5.407,0.136,3.772};
   float x[N]={0,0,0,0};
   int i,j;
   zg_matric(a,b);
   ColGauss(a,b); 
   x[N-1]=b[N-1]/a[N-1][N-1]; /* 回代过程开始 */
   for(i=N-2;i>=0;i--)
   {  x[i]=b[i];
      for(j=i+1;j<N;j++)
	     x[i]=x[i]-a[i][j]*x[j];
      x[i]=x[i]/a[i][i];
   }
   for(i=0;i<N;i++) /* 输出方程组的解 */
     printf("  x%d=%11.7f\n",i+1,x[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -