cómo resolver ecuaciones lineales con Python
Quizás se han preguntado cómo puedo resolver una ecuación utilizando Python. Primero es convertir nuestro sistema de ecuaciones a matrices y vectores es decir utilizar Álgebra lineal.
Entonces primer paso nuestra ecuación de ejemplo es:
3x + 2y -5z =8
2x-5y+3z =5
8y+9z =6
Esto convertido a Algebra Lineal se ve así:
[3,2,-5
2,-5,3
0,8,9]
Vector de resultados de la ecuación
[8,5,6]
En el álgebra lineal tenemos varios métodos que podemos utilizar para resolver este tipo de ecuaciones ,estos métodos son :
- Regla de Cramer
- Gauss Jordan
- Eliminación Gaussiana
En este post vamos hablar de la regla de Cramer la cual consiste en ir remplazando una columna por el vector de resultados y obtener la determinante de la matriz inicial y la matriz con el ventor .
Ahora vamos a transformar estas reglas a un programa
Primero vamos a hacerlo de manera manual en el programa simulando los pasos
import numpy as np
#Cramer rules
matrix_l = np.array([[3,2,-5],
[2,-5,3],
[0,8,9]])
vector_b = np.array([8,5,6])
d0 = np.linalg.det(matrix_l)
print(d0)
matrix_2 =np.array([[8,2,-5],
[5,-5,3],
[6,8,9]])
d1 = np.linalg.det(matrix_2)
print(d1)
matrix_3 =np.array([[3,8,-5],
[2,5,3],
[0,6,9]])
d2 = np.linalg.det(matrix_3)
print(d2)
matrix_4 =np.array([[3,2,8],
[2,-5,5],
[0,8,6]])
d3 = np.linalg.det(matrix_4)
print(d3)
x1=d1/d0
x2=d2/d0
x3=d3/d0
print("result x1",x1)
print("result x2",x2)
print("result x3",x3)
Ahora validemos el resultado
Cómo podemos ver la solución del programa ,resuelve nuestro sistema de ecuaciones.
Ahora vamos hacer nuestro programa un poco más automático
def crammer(mat,vect):
d = np.linalg.det(mat)
mat1= np.array([vect,mat[:,1],mat[:,2]])
mat2= np.array([mat[:,0],vect,mat[:,2]])
mat3= np.array([mat[:,0],mat[:,1],vect])
d1 = np.linalg.det(mat1)
d2 = np.linalg.det(mat2)
d3 = np.linalg.det(mat3)
x1 =d1/d
x2 =d2/d
x3= d3/d
print(x1,x2,x3)
(matrix_l,vector_b)
Les comparto la liga al video en nuestro canal de YouTube para ver la ejecución del programa
Espero les sea de utilidad y nos compartan.
#programacionparatodos
#programarcobpython
Comentarios
Publicar un comentario