以下是给定的线性系统和我的代码来解决它。
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会对具有无限解的线性系统抛出错误?谢谢。
如果您使用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]))
阅读文档。linalg。如果a是单数或非平方,Solve(不是python)将引发错误。