用B(n * 1)和C(n * 1)求解矩阵方程A B = C.

时间:2016-09-01 21:30:06

标签: python matrix equation-solving

我正在尝试解决像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不是正方形。

2 个答案:

答案 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非零)。这是可能的解决方案之一:

选择BBi的非零元素。现在构造一个矩阵A,使i列为C / Bi,其他列为零。

应该很容易验证将此矩阵乘以B得出C