Tuesday, 21 April 2015

Gauss_Seidel

Gauss-Seidel Method

Code : 
 #include<stdio.h>  
 #include<conio.h>  
 #include<math.h>  
 void main()  
 {  
      int accu,i,j,xt1,yt1,zt1,xt2,yt2,zt2;  
      float a[3][3],b[3],x=0,y=0,z=0,xt,yt,zt;  
      clrscr();  
      printf("Enter matrix of co-efficient:");  
      for(i=0;i<3;i++)  
      {  
           for(j=0;j<3;j++)  
           {  
                printf("Enter A[%d][%d]:",i,j);  
                scanf("%f",&a[i][j]);  
           }  
      }  
      printf("\nEnter constants:");  
      for(i=0;i<3;i++)  
      {  
           printf("\nEnter B[%d]:",i);  
           scanf("%f",&b[i]);  
      }  
      printf("\nEnter req. accuracy:");  
      scanf("%d",&accu);  
      do  
      {  
           xt=x;  
           yt=y;  
           zt=z;  
           x=(b[0]-a[0][1]*yt-a[0][2]*zt)/a[0][0];  
           y=(b[1]-a[1][0]*x-a[1][2]*zt)/a[1][1];  
           z=(b[2]-a[2][0]*x-a[2][1]*y)/a[2][2];  
           xt1=xt*pow(10,accu);  
           yt1=yt*pow(10,accu);  
           zt1=zt*pow(10,accu);  
           xt2=x*pow(10,accu);  
           yt2=y*pow(10,accu);  
           zt2=z*pow(10,accu);  
      }while((xt1-xt2)!=0 && (yt1-yt2)!=0 && (zt1-zt2)!=0);  
      x=xt1*pow(10,-accu);  
      y=yt1*pow(10,-accu);  
      z=zt1*pow(10,-accu);  
      printf("\nFinal solution is x=%g \t y=%g \t z=%g",x,y,z);  
      getch();  
 }  

No comments:

Post a Comment