jacobi.c

来自「2. Using Gaussian elimination method and」· C语言 代码 · 共 26 行

C
26
字号
#include "stdio.h"
#include "math.h"
#define N 25
#define e 0.00001
main()
{   double a[6][6]={{4,-1,0,-1,0,0},{-1,4,-1,0,-1,0},{0,-1,4,-1,0,-1},{-1,0,0,4,-1,0},{0,-1,0,-1,4,-1},{0,0,-1,0,-1,4}};
    double x[6]={2,2,2,2,2,2},y[6],b[6]={0,5,0,6,-2,6};
    double sum,max;
    int    i=0,j=0,k=0;
    sum=0;max=0;
    for(k=0;k<N;k++)
    {for(i=0;i<6;i++)
     {for(j=0;j<6;j++)
      {if(j!=i) sum=sum+a[i][j]*x[j];}
       y[i]=(b[i]-sum)/a[i][i];
       sum=0;
       printf("%f ",y[i]);
       if(fabs(y[i]-x[i])>max) max=fabs(y[i]-x[i]);
     }printf("\n");
     for(j=0;j<6;j++) x[j]=y[j];
     if(max<=e) break;
     max=0;
    }printf("times=%d",k);
    getchar();
}

⌨️ 快捷键说明

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