我有一个 4 x 3 系统要使用 numpy linalg.solve 来解决,但 numpy 一直抛出 LinAlgError: 1-dimensional array given. Array must be at least two-dimensional
。
可用的教程和问题都是针对方阵的,我不确定如何进行。
这是我的代码和矩阵:
import numpy as np
A = np.array([[[[1/15, 1/15, 2/19],
1/15, 2/15, 4,19],
2/15, 2/15, 4/19],
2/15, 2/15, 4/19])
B = np.array([0.1144807411, 0.1262803853, 0.1234210927, 0.130977131])
C = np.linalg.solve(A, B)
print(C)
哪里出错了?
原文由 Natasha Ting 发布,翻译遵循 CC BY-SA 4.0 许可协议
就像 hpaulj 已经说过的,你的
A
是错误的。但是,即使您将以正确的语法编写它,您也只能在矩阵 A 是方阵(表示形状 (n,n))并且具有满秩的情况下使用 np.linalg.solve 。因为您的矩阵 A 的形状为 (4,3)np.linalg.solve
将引发LinAlgError
,所以您需要改用np.linalg.lstsq