假设存在两个矩阵 A 和 B 都是 m * n,是否有一种方法或算法可用于获得满足方程 A * C = B' 的 n * n 矩阵 C(B' 可以通过在 B 上执行几个行交换步骤来获得),其中 C 满足最小平方和误差。 或 A * C = D * B,其中 D(m*m) 是行交换变换矩阵。
谢谢。
如果我没看错你的问题,你有两个矩阵A
和B
,你正在寻找C
,这样A * C = B + epsilon
你想最小化epsilon
的平方和。
你的问题似乎表明你对C
有一些限制,但不清楚那是什么。但正如你在答案中指出的,线性求解器会找到一个最小化epsilon
平方和的C
。求解器并不关心B
行的顺序是什么:它会将行交换运算符(如您提到的D
)组合到它找到的C
中。
有许多不同的线性求解器,像solve
这样的简单函数必须选择使用哪个 - 如果您知道自己需要,可以随时明确选择特定的求解器。一个昂贵但非常有用的求解器是摩尔-彭罗斯伪逆:C = pinv(A) * B
,C
保证最小化epsilon
的平方和,但也最小化C
的平方和。维基百科解释了solve
何时可能通过伪逆返回与最小范数解决方案不同的内容。