luizaspan icon

Escalonamento (Eliminação Gaussiana) + solução do sistema

luizaspan | PRO | 09/09/15 08:23:23 PM UTC | 0 ⭐ | 827 👁️ | Never ⏰ | []
C |

1.05 KB

|

None

|

0 👍

/

0 👎

#include <stdio.h>
#include <math.h> 
 
#define N 4
 
int main(void)
{
    double A[N][N]={{2,1,4,1},{3,4,-1,-1},{1,-4,1,5},{2,-2,1,3}}, b[N]={-4,3,9,7}, x[N]={0};
    int i,j,k;
 
    printf("Antes do escalonamento: \n");
    for (i=0;i<N;i++)
    {
        for (j=0;j<N;j++)
        {
            printf("%8.3lf",A[i][j]);
 
            if (j==(N-1))
                printf("\n");
            else 
                printf(" ");
        }
    }
 
    for (i=0;i<N;i++)
    {
        for (j=i+1;j<N;j++)
        {
            double c=A[j][i]/A[i][i];
 
            for (k=i;k<N;k++)
            {
                A[j][k]=A[j][k] - c*A[i][k];
            }
 
            b[j]=b[j]-c*b[i];
        }
    }
 
    printf("Após o escalonamento: \n");
    for (i=0;i<N;i++)
    {
        for (j=0;j<N;j++)
        {
            printf("%8.3lf",A[i][j]);
 
            if (j==(N-1))
                printf("\n");
            else 
                printf(" ");
        }
    }
 
 
    for (i=N-1;i>=0;i--)
    {
        double soma = b[i];
 
        for (j=i+1;j<N;j++)
        {
            soma=soma-A[i][j]*x[j];
        }
 
        x[i]=soma/A[i][i];
    }
 
    printf("Solução: \n");
    for (i=0;i<N;i++)
    {
        printf("%8.3lf",x[i]);
 
        if (i==(N-1))
            printf("\n");
        else 
            printf(" ");    
    }
 
 
    return 0;
}

Comments