我正在尝试解决像A.B = C
这样的矩阵方程。 A是未知矩阵,我必须找到它。
我有B(n*1)
和C(n*1)
,因此A
必须是n*n
。
我使用了BT* A.T =C.T
方法(numpy.linalg.solve(B.T, C.T)
)。
但它会产生错误:
LinAlgError:数组的最后2个维度必须是正方形。
所以问题是B不是正方形。
答案 0 :(得分:0)
以下是您的一个小例子:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
x = np.linalg.solve(a, b)
print "A={0}".format(a)
print "B={0}".format(b)
print "x={0}".format(x)
有关详情,请参阅docs
答案 1 :(得分:0)
如果你正在为矩阵求解,那么有无数个解(假设B
非零)。这是可能的解决方案之一:
选择B
,Bi
的非零元素。现在构造一个矩阵A
,使i
列为C / Bi
,其他列为零。
应该很容易验证将此矩阵乘以B
得出C
。