#include <stdio.h>
#include <math.h>
#define N 4
double print(int n, double y[n][n])
{
int i,j,k;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf("%8.3lf",y[i][j]);
if (j==(n-1))
printf("\n");
else
printf(" ");
}
}
}
double printvec(int n, double x[n])
{
int i;
for (i=0;i<N;i++)
{
printf("%8.3lf",x[i]);
if (i==(n-1))
printf("\n");
else
printf(" ");
}
}
/*4V1 -V2 -V3 -V4 = V
3V3 -V1 -V4 = V
3V2 -V1 -V4 = 0
4V4 -V2 -V1 -V3 = 0
4 -1 -1 -1 = V
-1 0 3 -1 = V
-1 3 0 -1 = 0
-1 -1 -1 4 = 0*/
int main(void)
{
double A[N][N]={{4,-1,-1,-1},{-1,0,3,-1},{-1,3,0,-1},{-1,-1,-1,4}}, b[N]={5,5,0,0}, x[N]={0};
int i,j,k;
printf("Antes do escalonamento: \n");
print(N,A); // o nome da matriz é A, A[N][N] é um número
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");
print(N,A);
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");
printvec(N,x);
return 0;
}
Comments