gauss-seidel.c

来自「Using Jacobi method and Gauss-Seidel ite」· C语言 代码 · 共 27 行

C
27
字号
#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},s[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];}
       x[i]=(b[i]-sum)/a[i][i];
       sum=0;
       printf("%f ",x[i]);
       for(j=0;j<6;j++)
       if(fabs(x[j]-s[j])>max) max=fabs(x[j]-s[j]);
     }printf("\n");
     for(j=0;j<6;j++) s[j]=x[j];
     if(max<=e) break;
     max=0;
    }printf("times=%d",k);
    getchar();
}

⌨️ 快捷键说明

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