Algoritmia - algoritmo de gauss

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Programa en C para resolver un sistema de ecuaciones por el método de Gauss

Publicado por Alejandro (307 intervenciones) el 01/03/2024 21:12:47
Edwin, aquí tienes un ejemplo simple de un programa en C que resuelve un sistema de ecuaciones mediante el método de eliminación de Gauss. Este código supone un sistema de ecuaciones lineales y utiliza eliminación de Gauss para triangular la matriz aumentada y luego sustitución hacia atrás para obtener las soluciones.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#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;
}

Este programa te pedirá que ingreses el número de ecuaciones y el número de incógnitas, luego ingresarás los coeficientes de la matriz aumentada. Después, aplicará eliminación de Gauss y sustitución hacia atrás para obtener las soluciones del sistema de ecuaciones.

Recuerda que este código es bastante básico y puede no manejar todos los casos, pero puede servir como punto de partida para sistemas pequeños y simples.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar