/********************************/
/* Eliminacion de GAUSS */
/********************************/
#include
#include
int Lee_Datos(void);
void Elimi_Adelante (float a[10][10], int n);
void Elimi_Atras (float a[10][10], int n);
void Imprime_Matriz (float a[10][10], int n);
int main(void)
{
float A[10][10]= { { 4, -2, -1, 39 },
{ 1, -6, 2, -28},
{ 1, -3, 12, -86} };
int N;
clrscr();
N=Lee_Datos();
Imprime_Matriz(A,N);
Elimi_Adelante(A,N);
Elimi_Atras(A,N);
getch();
return 0;
}
int Lee_Datos(void)
{
int n;
printf("\n");
printf("\n METODO DE ELIMINACION GAUSSINA SIMPLE");
printf("\n");
printf("\n Numero de Ecuaciones =");
scanf("%d",&n);
return n;
}
void Imprime_Matriz(float a[10][10], int n)
{
int j,k;
printf("\n");
for (k=0; k < n; k++)
{
for (j=0; j < n+1; j++)
{
if (j == n)
printf(" = %10.4f",a[k][j]);
else
printf("%10.4f X%d",a[k][j],j+1);
}
printf("\n");
}
printf("\n");
}
void Elimi_Adelante(float a[10][10], int n)
{
int i,j,k;
float Piv;
printf("\n-------------ELIMINACION HACIA ADELANTE --------------");
printf("\n Ecuacion Triangula Superior:");
printf("\n");
for (k=0; k < n-1; k++)
{
for (i=k+1; i < n; i++)
{
Piv=a[i][k]/a[k][k];
for (j=k+1; j < n+1; j++)
{
a[i][j] = a[i][j] - Piv*a[k][j];
}
}
for (i= k+1; i < n; i++)
{
a[i][k] =0;
}
Imprime_Matriz(a,n);
}
}
void Elimi_Atras(float a[10][10], int n)
{
int i,j,k;
float Sum;
float x[10];
printf("\n------------------------------------------------------");
printf("\n------------------ELIMINACION HACIA ATRAS------------");
printf("\n-------------------Solucion del sistema--------------");
for (i = 0; i < n; i++)
{
Sum = 0;
k = (n-1) - i;
for (j=k; j < n; j++)
{
Sum += a[k][j] * x[j];
}
x[k] = ( a[k][n] - Sum ) / a[k][k];
printf("\nLa X(%d) es igua a =>%10.4f",k+1,x[k]);
}
}
               (
geocities.com/siliconvalley/pines/7894)                   (
geocities.com/siliconvalley/pines)                   (
geocities.com/siliconvalley)