Algoritmia - ayuda con un algoritmo de gauss jordan

 
Vista:

ayuda con un algoritmo de gauss jordan

Publicado por andrea pinedo  (3 intervenciones) el 13/04/2009 03:16:39
como puedo hacer un programa interactivo que presente paso a paso la solución de un sistema de nf ecuaciones con nc incógnitas. nf=nc utilizando el método de Gauss Jordán donde presente un menu con las opciones y los coeficientes y los términos independientes de las ecuaciones
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 interactivo para resolver sistemas de ecuaciones con Gauss-Jordan en Python

Publicado por Alejandro (307 intervenciones) el 13/03/2024 22:50:48
Para crear un programa interactivo que presente paso a paso la solución de un sistema de ecuaciones utilizando el método de Gauss-Jordan, puedes seguir estos pasos:

1. Crea una función para ingresar los coeficientes y los términos independientes del sistema de ecuaciones desde el usuario.

2. Implementa el algoritmo de Gauss-Jordan para resolver el sistema de ecuaciones. Este algoritmo implica la eliminación gaussiana seguida de la sustitución hacia atrás.

3. Muestra los pasos intermedios del algoritmo de Gauss-Jordan para que el usuario pueda ver cómo se resuelve el sistema paso a paso.

4. Proporciona un menú interactivo para que el usuario pueda elegir entre diferentes opciones, como ingresar un nuevo sistema de ecuaciones, resolver el sistema actual o salir del programa.

Aquí tienes un ejemplo básico en Python que puedes seguir para crear tu programa:

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
import numpy as np
 
def ingresar_ecuaciones():
    nf = int(input("Ingrese el número de ecuaciones (nf): "))
    nc = nf  # El número de incógnitas es igual al número de ecuaciones
    print("Ingrese los coeficientes de las ecuaciones y los términos independientes:")
    A = np.zeros((nf, nc + 1))
    for i in range(nf):
        print(f"Ecuación {i+1}:")
        for j in range(nc):
            A[i][j] = float(input(f"Coeficiente x{j+1}: "))
        A[i][nc] = float(input("Término independiente: "))
    return A
 
def gauss_jordan(A):
    nf, nc = A.shape
    for i in range(nf):
        # Dividir la fila i entre A[i][i]
        A[i] = A[i] / A[i][i]
        # Eliminación gaussiana hacia abajo
        for j in range(nf):
            if i != j:
                factor = A[j][i]
                A[j] = A[j] - factor * A[i]
    return A
 
def mostrar_pasos(A):
    print("Pasos intermedios:")
    nf, nc = A.shape
    for i in range(nf):
        print(f"Ecuación {i+1}: {A[i]}")
    print("")
 
def mostrar_solucion(A):
    nf, nc = A.shape
    print("Solución del sistema:")
    for i in range(nf):
        print(f"x{i+1} = {A[i][-1]}")
 
def menu():
    print("Seleccione una opción:")
    print("1. Ingresar un nuevo sistema de ecuaciones")
    print("2. Resolver el sistema actual")
    print("3. Salir")
    opcion = int(input("Opción: "))
    return opcion
 
def main():
    while True:
        opcion = menu()
        if opcion == 1:
            A = ingresar_ecuaciones()
            mostrar_pasos(A)
        elif opcion == 2:
            A = ingresar_ecuaciones()
            A = gauss_jordan(A)
            mostrar_solucion(A)
        elif opcion == 3:
            break
        else:
            print("Opción inválida. Por favor, seleccione una opción válida.")
 
if __name__ == "__main__":
    main()

Este programa permite al usuario ingresar un sistema de ecuaciones, resolverlo utilizando el método de Gauss-Jordan y ver los pasos intermedios o la solución final. El usuario puede elegir entre ingresar un nuevo sistema de ecuaciones, resolver el sistema actual o salir del programa.

Puedes mejorar este programa agregando más opciones o funcionalidades según tus necesidades. ¡Espero que esto te ayude a empezar con tu proyecto, Andrea!
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