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