求解python中的线性方程误差

时间:2018-04-19 15:24:34

标签: python

我正在尝试解决以下线性方程组:

#x0 + 1/10 * (x1 + x2 + x3 + x4) = 10
#x1 + 1/15 * (x1 + x2 + x3 + x4 + x5) = 20
#x2 + 1/21 * (x1 + x2 + x3 + x4 + x5 + x6) = 30

这样做我正在做:

a = np.array([[1,1/10,1/10,1/10,1/10,0,0],[0,1+1/15,1/15,1/15,1/15,1/15,0],[0,1/21,1+1/21,1/21,1/21,1/21]]) b=np.array([10,20,30]) x = np.linalg.solve(a, b)

我得到以下错误:

LinAlgError: 1-dimensional array given. Array must be at least two-dimensional

有人可以指出我做错了什么吗?我检查时,数组有正确的条目。我正在关注示例here

1 个答案:

答案 0 :(得分:0)

在我看来,好像矩阵的最后一行有一个错误 - 我用5个逗号而不是6个。

您的版本a.shape(3,)

a = np.array([[1,1/10,1/10,1/10,1/10,0,0],[0,1+1/15,1/15,1/15,1/15,1/15,0],[0,1/21,1+1/21,1/21,1/21,1/21,1/21]])

如上所示缺少元素,a.shape似乎是(3,7)

同样如评论中所述,您有7个未知数且只有3个等式,因此您有underdetermined system