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

📄 seidel.c

📁 数值分析塞德尔迭代法,是用C编写的,希望大家互相参考!!1
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define MAX_n 100
#define PRECISION 0.000001
#define MAX_Number 1000

void VectorInput(float x[],int n)
{
  int i;
  for(i=1;i<=n;i++)
   {
     printf("x[%d]=",i);
     scanf("%f",&x[i]);
   }
}

void MatrixInput(float A[][MAX_n],int m,int n)
{ int i,j;
    printf("\nBegin input Matrix elements\n");
    
    for(i=1;i<=m;++i)
    {
        printf("Input_Line %d:",i);
        for(j=1;j<=n;++j)
        scanf("%f",&A[i][j]);
     }
}


void VectorOutput(float x[],int n)
{ int i;
  for(i=1;i<=n;++i)
  printf("\nx[%d]=%f",i,x[i]);
}


int IsSatisfyPrecision(float x1[],float x2[],int n)
{ int i;
  for(i=1;i<=n;++i)
  if(fabs(x1[i]-x2[i])>PRECISION)
  return 1;
  return 0;
  
}

int Jacobi_(float A[][MAX_n],float x[],int n)
{
    float x_former[MAX_n];
    int i,j,k;
    printf("\nInput vector x0:\n");
    VectorInput(x,n);
    k=0;
    do{
        for(i=1;i<=n;++i)
        {
            printf("\nx[%d]=%f",i,x[i]);
            x_former[i]=x[i];
            }
            printf("\n");
            for(i=1;i<=n;++i)
            { x[i]=A[i][n+1];
            for(j=1;j<=n;++j)

            if(j!=i)x[i]-=A[i][j]*x[j];
            if(fabs(A[i][i])>PRECISION)
              x[i]/=A[i][i];
            else return 1;
           }
           ++k;
       }while(IsSatisfyPrecision(x,x_former,n)&&k<MAX_Number);
       if(k>=MAX_Number)
          return 1;
       else
       {  printf("\nG-S %d times!",k);
       return 0;
   }
}

int main()
{ int n;
  float A[MAX_n][MAX_n],x[MAX_n];
  printf("\nInput n=");
  scanf("%d",&n);
  if(n>=MAX_n-1)
  {
      printf("\n\007 n must<%d!",MAX_n);
      exit(0);
      }
MatrixInput(A,n,n+1);
if(Jacobi_(A,x,n))
printf("\nG-S Failed!");
else
{  
    printf("\nOutput Solution:");
    VectorOutput(x,n);
    }
    printf("\n\nPress any key to quit! \n");
    getch();
      }                           
      

⌨️ 快捷键说明

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