#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
int n,i,j,k,maxit;
float
a[10][10],e,big,sum,temp,x[10],relerr,prod=1,prod1=1;
//clrscr();
printf("enter the
allowable error :");
scanf("%f",&e);
printf("\nenter the
maximum number of iteration :");
scanf("%d",&maxit);
printf("\nenter the
number of equations :");
scanf("%d",&n);
printf("\nenter the
co-efficients of equations :\n");
for(i=1;i<=n;i++)
for(j=1;j<=(n+1);j++)
scanf("%f",&a[i][j]);
printf("\nentered
co-efficient matrix is\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=(n+1);j++)
printf("%.2f\t",a[i][j]);
printf("\n");
}
for(i=1,j=n;i<=n;i++,j--)
{
prod=prod*a[i][i];
prod1=prod1*a[i][j];
}
if(fabs(prod) <
fabs(prod1))
{
printf("diagonal dominancy");
getch();
return(0);
}
else
for(i=1;i<+n;i++)
x[i]=0;
//printline();
for(i=1;i<=n;i++)
printf("X%d\t",i);
printf("\n");
//printline();
for(k=1;k<=maxit;k++)
{
big=0;
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
if(i!=j)
sum=sum+a[i][j]*x[j];
}//end for j
temp=(a[i][n+1]-sum)/a[i][i];
relerr=fabs((x[i]-temp)/temp);
if(relerr>big)
big=relerr;
x[i]=temp;
printf("%.2f\t",x[i]);
}//end for i
printf("\n");
if(big<=e)
{
printf("\nconverges to a solution in
%dth iteration",k);
printf("\nsolution vector
is:\n");
for(i=1;i<=n;i++)
printf("x[%d]=%.2f\n",i,x[i]);
getch();
return(0);
}
}//end for k
printf("dose not converge in %d
iterations",maxit);
getch();
}
No comments:
Write comments