【问题标题】:an algorithm to find a transform matrix between two matrix.一种在两个矩阵之间找到变换矩阵的算法。
【发布时间】:2016-06-21 14:50:53
【问题描述】:

假设存在两个m * n的矩阵A和B,有没有一种方法或算法可以得到一个满足方程A * C = B'的n * n矩阵C(B'可以是通过在 B) 上执行几个行交换步骤获得,其中 C 满足最小平方误差和。 或者 A * C = D * B,其中 D(m*m) 是一个行交换变换矩阵。

谢谢。

【问题讨论】:

  • 请更具体地说明“最小平方和”错误;你能举个例子吗?换行应该不会太难; B 的维度应该是 n*n,我想。
  • 例如:A,B是10 * 2的矩阵,由于10的维数大于2,我可以用线性代数求解得到一个C矩阵(2 * 2),见(@ 987654321@)。问题是我怎样才能找到正确的 B 顺序来获得最好的 C。

标签: algorithm matrix linear-algebra


【解决方案1】:

如果我正确阅读了您的问题,您有两个矩阵AB,并且您正在寻找C,这样A * C = B + epsilon 您想要最小化epsilon 的平方和。

您的问题似乎表明您对C 有一些限制,但不清楚那是什么。但正如您在回答中指出的那样,线性求解器会找到一个C,它可以最小化epsilon 的平方和。求解器并不关心B 的行的顺序是什么:它将行交换运算符(如您提到的D)组合到它找到的C 中。

有许多不同的线性求解器,像solve 这样的简单函数必须选择使用哪个——如果您知道自己需要一个特定的求解器,您始终可以明确选择它。一个昂贵但非常有用的求解器是 Moore-Penrose 伪逆:使用C = pinv(A) * BC 保证最小化epsilon 的平方和,但最小化C 的和正方形。 Wikipedia 解释了 solve 何时可能通过伪逆返回与此最小范数解决方案不同的东西。

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 2020-05-19
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    相关资源
    最近更新 更多