algoritmo de gauss
Publicado por edwin (1 intervención) el 24/10/2004 23:32:43
necesito urgentemente un programa en c que resuelva un sistema de ecuaciones por el metodo de gauss
Valora esta pregunta


0
#include <stdio.h>
void imprimirMatriz(float matriz[10][11], int filas, int columnas) {
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
printf("%.2f\t", matriz[i][j]);
}
printf("\n");
}
printf("\n");
}
void eliminacionGaussiana(float matriz[10][11], int filas, int columnas) {
for (int i = 0; i < filas; i++) {
for (int j = 0; j < filas; j++) {
if (i != j) {
float factor = matriz[j][i] / matriz[i][i];
for (int k = 0; k <= columnas; k++) {
matriz[j][k] -= factor * matriz[i][k];
}
}
}
}
}
void sustitucionHaciaAtras(float matriz[10][11], int filas, int columnas) {
for (int i = 0; i < filas; i++) {
float divisor = matriz[i][i];
for (int j = 0; j <= columnas; j++) {
matriz[i][j] /= divisor;
}
}
}
int main() {
int filas, columnas;
printf("Ingrese el número de ecuaciones: ");
scanf("%d", &filas);
printf("Ingrese el número de incógnitas (incluyendo el termino independiente): ");
scanf("%d", &columnas);
float matriz[10][11];
// Ingresar la matriz aumentada
printf("Ingrese los elementos de la matriz aumentada:\n");
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
printf("Matriz[%d][%d]: ", i + 1, j + 1);
scanf("%f", &matriz[i][j]);
}
}
// Aplicar eliminacion Gaussiana
eliminacionGaussiana(matriz, filas, columnas);
// Imprimir la matriz triangular
printf("Matriz triangular resultante:\n");
imprimirMatriz(matriz, filas, columnas);
// Aplicar sustitucion hacia atras
sustitucionHaciaAtras(matriz, filas, columnas);
// Imprimir soluciones
printf("Soluciones del sistema de ecuaciones:\n");
for (int i = 0; i < filas; i++) {
printf("x%d = %.2f\n", i + 1, matriz[i][columnas - 1]);
}
return 0;
}