我正在尝试解决以下线性方程组:
#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
答案 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。