Gauss Jacobi Method
Code :
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float x[50], y[50], z[50], xans, yans, zans;
int i,j,ac, xt, yt, zt, xt1, yt1, zt1;
float a[3][3],b[3];
clrscr();
printf("\nEnter Matrix for Gauss Jacobi Method : \n");
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 column vactor of constant : \n");
for(i=0;i<3;i++)
{
printf("Enter B[%d] : ",i);
scanf("%f",&b[i]);
}
x[0]=0;
y[0]=0;
z[0]=0;
printf("\nEnter accuracy : ");
scanf("%d",&ac);
printf("\nNo.\tX\t\tY\t\tZ");
for(i=0;i<50;i++)
{
x[i+1] = (1/a[0][0]) * (b[0] - (a[1][0]*y[i]) - (a[2][0]*z[i]) );
y[i+1] = (1/a[1][1]) * (b[1] - (a[0][1]*x[i]) - (a[2][1]*z[i]) );
z[i+1] = (1/a[2][2]) * (b[2] - (a[0][2]*x[i]) - (a[1][2]*y[i]) );
xt = x[i] * pow(10,ac);
yt = y[i] * pow(10,ac);
zt = z[i] * pow(10,ac);
xt1 = x[i+1] * pow(10,ac);
yt1 = y[i+1] * pow(10,ac);
zt1 = z[i+1] * pow(10,ac);
printf("\n%d.\t%f\t%f\t%f",i,x[i],y[i],z[i]);
if(abs(xt-xt1)==0 && abs(yt-yt1)==0 && abs(zt-zt1)==0)
{
break;
}
}
xans = xt * pow(10,-ac);
yans = yt * pow(10,-ac);
zans = zt * pow(10,-ac);
printf("\n\nRequired %d Decimal accurate answer is : \n==>\tX = %f\tY = %f\tZ = %f", ac, xans, yans, zans);
getch();
}
Output :
No comments:
Post a Comment