2011-07-22 73 views

回答

54

是的,非常流行的NumPy包裝有a function to do this。他們的例子:

求解方程3 * x0 + x1 = 9x0 + 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

可否使用np.linalg.solve(A,B)的功能來解決的系統方程modulo 2(在伽羅瓦域上)?或者,如果你知道另一個可以解決這個問題的軟件包,那麼這真的很有用:) – giliev

+0

numpy的「求解」不會用比變量(我的用例)更多的方程來求解方程組。爲此,請使用sympy。 – Tiago

7

您可以使用最小二乘法在Python解方程 的系統,例如用於解決方程3x + 4y = 75x + 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]))