请问python为无限解线性系统提供答案吗?

时间:2015-08-05 08:56:49

标签: python numpy linear-algebra

以下是给定的线性系统和我的代码来解决它。

a = np.array([[1,0,8,-5],[0,1,4,-9],[0,0,1,1]])
b = np.array([[6],[3],[2]])
np.linalg.solve(a,b)    #An error is raised saying that Last 2 dimensions of the array must be square

我很确定我的代码是正确的。因此,是否意味着python会为具有无限解的线性系统引发错误?感谢。

2 个答案:

答案 0 :(得分:2)

阅读文档。如果a是单数或非正方形,则linalg.solve(不是python)会引发错误。

答案 1 :(得分:2)

如果你使用numpy.linalg.solve,是的。

但还有另一种选择。 numpy.linalg.lstsq找到线性矩阵方程的最小二乘解。

In [7]: np.linalg.lstsq(a,b)
Out[7]:
(array([[-2.46764706],
        [ 2.53235294],
        [ 1.42058824],
        [ 0.57941176]]),
 array([], dtype=float64),
 3,
 array([ 13.08121719,   4.33312055,   0.32530484]))
相关问题