Recent Post

3/recentposts

Monday, June 26, 2017

Code for Gauss-siedal method in C programming

#include<stdio.h>
void main()
{
    float a[50][50],x[50],b[50],sum,e[50],y[50],err;
    int n,i,j,k,itr,c,r=0;
    printf("Enter order of matrix, no. of iteration and error : ");
    scanf("%d%d%f",&n,&itr,&err);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            printf("Enter a[%d][%d] = ",i,j);
            scanf("%f",&a[i][j]);
        }
    }
    for (i=1;i<=n;i++)
    {
        printf("Enter b[%d] = ",i);
        scanf("%f",&b[i]);
    }
    for (i=1;i<=n;i++)
    {
        printf("Enter x[%d] = ",i);
        scanf("%f",&x[i]);
        y[i]=x[i];
    }


        for(c=1;c<=itr;c++)
        {
            printf("\niteration %d",c);
            for(i=1;i<=n;i++)
            {

            sum=0;
            for(k=1;k<=n;k++)
            {
                if(k==i)
                    continue;
                    sum=sum+a[i][k]*x[k];

            }
            x[i]=(b[i]-sum)/a[i][i];
            printf("\tx%d=%f\t",i,x[i]);
            e[i]=fabs(y[i]-x[i]);
            //printf("\te%d=%f\t",i,e[i]);
            y[i]=x[i];
            }
            for(j=1;j<=n;j++)
            {
                if(e[j]<=err)
                {
                    r++;
                }
                if(r==n)
                break;
            }
            if(r==n)
                break;

        }
    if(r==n)
    {
        for(i=1;i<=n;i++)
        {
            printf("\n\nx%d=%f",i,x[i]);
        }
    }
    else
    {
        printf("\nSolution couldn't be converged !");
    }

         getch();
}

Share:

0 comments:

Post a Comment

Recent

Unordered List

Definition List

Pages

Theme Support