numpy.dot的逆运算

9
我可以轻松计算以下内容:
R = numpy.column_stack([A,np.ones(len(A))]) 
M = numpy.dot(R,[k,m0])

其中A是一个简单数组,k和m0是已知值。

我想要不同的东西。在固定R、M和k的情况下,我需要得到m0。 是否可以通过numpy.dot()函数的逆来计算这个值? 还是只能通过重新排列矩阵来实现?

1个回答

11
M = numpy.dot(R,[k,m0])

正在执行矩阵乘法。M = R * x

因此,要计算逆矩阵,您可以使用np.linalg.lstsq(R, M)

import numpy as np
A = np.random.random(5)
R = np.column_stack([A,np.ones(len(A))]) 
k = np.random.random()
m0 = np.random.random()
M = R.dot([k,m0])

(k_inferred, m0_inferred), residuals, rank, s = np.linalg.lstsq(R, M)

assert np.allclose(m0, m0_inferred)
assert np.allclose(k, k_inferred)

请注意,在假设M的长度大于等于2的情况下km0均已确定,给定了MR


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接