jacobi.c

来自「这是数值方法中各种插值算法」· C语言 代码 · 共 86 行

C
86
字号
 #include <stdio.h>
 #include <math.h>
 #define N 3
 void main()
    {
      int n1=3;
      double x1[N]={0,0,0};
      double a1[N][N]={1,2,-2,1,1,1,2,2,1};
      double b1[N]={1,3,5};
      void Jacobi(int n,double xx[N],double a[N][N],double b[N]);
      Jacobi(n1,x1,a1,b1);
      getchar();

    }


      void Jacobi(int n,double xx[N],double a[N][N],double b[N])
          {
            int i,j,k;
            double sum;
            double x[N],bj[N][N],fj[N];
            for(i=0;i<N;i++)
               {
                 x[i]=xx[i];
                 fj[i]=b[i]/a[i][i];

               for(j=0;j<N;j++)
                  {

                   if(i==j)
                     {
                       bj[i][j]=0;

                      }

                    else
                      {
                        bj[i][j]=-a[i][j]/a[i][i];

                       }



                   }
                }


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

          {
             for(i=0;i<N;i++)
                {
                  sum=0.0;

                for(j=0;j<N;j++)
                   {

                     sum=sum+x[j]*bj[i][j];


                    }

                  xx[i]=sum+fj[i];


                }
              for(i=0;i<N;i++)
                 {
                   x[i]=xx[i];

                 }

             }

            printf("The result of X is :\n");

               for(i=0;i<N;i++)

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

                 }


       }

⌨️ 快捷键说明

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