【问题标题】:Inverse of numpy.dotnumpy.dot 的逆
【发布时间】:2014-02-19 19:57:58
【问题描述】:

我可以很容易地计算出类似的东西:

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

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

我想要一些不同的东西。固定 R、M 和 k 后,我需要获得 m0。 有没有办法通过函数 numpy.dot() 的逆来计算? 还是只能通过重新排列矩阵来实现?

【问题讨论】:

    标签: python numpy inverse


    【解决方案1】:
    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)
    

    请注意 k 和 m0 都是确定的,给定 M 和 R(假设 len(M) >= 2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-24
      • 2017-07-19
      • 2019-06-12
      • 2020-08-02
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 2015-07-08
      相关资源
      最近更新 更多