C PROGRAM TO IMPLEMENT GAUSS SEIDEL METHOD

//Program to implement Gauss Seidel method
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
 float a[20][20],x[20],e,big,temp,relerror,sum=0;
   //e=relative error
 int n,i,j,maxit,itr;
 printf("Enter the size of the equation\n");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  printf("Enter the coefficent of equation of %d and RHS\n",i);
  for(j=0;j<=n;j++)
  scanf("%f",&a[i][j]);
 }
 printf("Enter relative error and number of iteration:\n");
 scanf("%f%d",&e,&maxit);
     // GIVE  e =0.001 or 0.0001 for more accuracy 

for(i=0;i<n;i++)
 {
  printf("Enter initial approx value of x[%d]=\n",i);
  scanf("%f",&x[i]);
  x[i]=0;
 }
 for(itr=1;itr<=maxit;itr++)
 {
  printf("\n Iteration [%d]",itr);
  big=0;
  for(i=0;i<n;i++)
  {
   sum=0;
   for(j=0;j<n;j++)
   {
    if(i!=j)
    sum=sum+a[i][j]*x[j];
   }
   temp=(a[i][n]-sum)/a[i][i];
   printf("   x[%d]=%f",i,temp);
   relerror=fabs(x[i]-temp);
   if(relerror>big)
    big=relerror;
    x[i]=temp;
  }
   if(big<=e)
   {
   printf("Converges to a solution in %d iteration\n",itr);
   for(i=0;i<n;i++)
   printf("\n %4f\t",x[i]);
   getch();
   exit(1);
 }
 }
 printf("Doesn't converge in %d iteration \n",maxit);
 getch();
}

Comments