/********************************/ /* 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]); } }