Nociones de algebra lineal y polinomial con Numpy.
Numpy incluye muchas funciones de álgebra lineal que te pueden ser bastante útiles si te dedicas a estos menesteres.
Por ejemplo, Numpy puede calcular productos de matrices y vectores de manera eficiente (dot, vdot), calcular los valores y vectores propios de una matriz (linalg.eig, linalg.eigvals), resolver sistemas lineales (linalg.solve) o realizar la inversión de una matriz (linalg.inv) entre otras cosas.
Para ver un ejemplo vamos a resolver un sistema de ecuaciones lineales.
Tenemos tres ecuaciones:
3X + 2Y + Z = 1
5x + 3Y + 4Z = 2
X + Y - Z = 1
Podemos expresarlas como una expresión matricial del siguiente tipo A * x = b, en donde A sería la matriz de los coeficientes de las incógnitas, "x" serían las incógnitas y "b" la matriz de los términos independientes.
Podemos expresar este sistema como arrays de Numpy de las siguiente forma:
A = np.array([[3, 2, 1],
[5, 3, 4],
[1, 1,-1]])
b = np.array([1, 2, 1])
Entonces, si usamos la función np.linalg.solve podemos encontrar los valores de las incógnitas.
x = np.linalg.solve(A, b)
print(x)
[-4. 6. 1.]
También se puede resolver un problema que tenga más ecuaciones que incógnitas con la función np.linalg.lstsq(A,b) la cual nos dirá si el sistema es compatible determinado o indeterminado.
Si te interesa, puedes encontrar el más información en el siguiente enlace.
Próximo Post. Arrays Temporales.
No hay comentarios:
Publicar un comentario