求解 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

有人可以指出我做错了什么吗?正如我检查的那样,该数组具有正确的条目。我在这里遵循示例

在我看来,矩阵的最后一行似乎有一个错误 - 我数 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 个方程,因此您的系统未确定。

最新更新