C Program for Gauss-Jacobi Method

// Given system is:
// 20x+y-2z=17
// 3x+20y-z=-18
// 2x-3y+20z=25

#include <stdio.h>
#include <conio.h>
#include <math.h>

float f(float x,float y,float z)
{
  return ((17-y+2*z)/20);
//x=(17-y+2*z)/20
}

float s(float x,float y,float z)
{
  return ((-18+z-3*x)/20);
//y=(-18+z-3*x)/20
}

float t(float x,float y,float z)
{
  return ((25-2*x+3*y)/20);
//z=(25-2*x+3*y)/20
}

void main()
{
  float x0,y0,z0,x1=0,y1=0,z1=0,tempx,tempy,tempz,acc=0.0001;
  int iteration=0;
  printf("Enter initial guesses:\n");
  scanf("%f%f%f",&x0,&y0,&z0);
  do
  {
    tempx=x1;
    tempy=y1;
    tempz=z1;

    x1=f(x0,y0,z0);
    y1=s(x0,y0,z0);
    z1=t(x0,y0,z0);

    iteration++;

    x0=x1;
    y0=y1;
    z0=z1;
  }while(fabs(tempx-x1)>acc && fabs(tempy-y1)>acc && fabs(tempz-z1)>acc);

  printf("\n\nFinally,\n");
  printf("x=%f Ans\ny=%f Ans\nz=%f Ans\n",x1,y1,z1);
  printf("Iteration=%d",iteration);
  getch();
}


No comments:

Post a Comment