2011-07-22 87 views

Respuesta

54

Sí, el muy popular paquete NumPy tiene a function to do this. Su ejemplo:

resolver el sistema de ecuaciones 3 * x0 + x1 = 9 y x0 + 2 * x1 = 8:

>>> import numpy as np 
>>> a = np.array([[3,1], [1,2]]) 
>>> b = np.array([9,8]) 
>>> x = np.linalg.solve(a, b) 
>>> x 
array([ 2., 3.]) 

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.linalg.solve.html

+2

¿Puedo utilizar el np.linalg.solve (a, b) la función del sistema de resolver ecuaciones módulo 2 (sobre el campo de Galois)? O si conoce otro paquete que resolvería ese problema, sería realmente útil :) – giliev

+0

El "resolver" de numpy no resolverá los sistemas de ecuaciones con más ecuaciones que las variables (mi caso de uso). Para eso, usa sympy en su lugar. – Tiago

7

Puede utilizar el método de mínimos cuadrados en Python para el sistema de ecuaciones resolver, por ejemplo, para resolver ecuaciones 3x + 4y = 7 y 5x + 6y = 8

>>> import numpy 
>>> a=[[3,4],[5,6]] 
>>> b=[7,8] 
>>> numpy.linalg.lstsq(a,b) 
(array([-5. , 5.5]), array([], dtype=float64), 2, array([ 9.27110906, 0.21572392])) 
Cuestiones relacionadas