怎么求解一个全局仿射矩阵,使得点集 A 经过仿射变换后和对应点集 B 的距离最小

如何求解一个全局仿射矩阵,使得点集 A 经过仿射变换后和对应点集 B 的距离最小
如何求解一个全局仿射矩阵,使得点集 A 经过仿射变换后和对应点集 B 的距离最小

2D点集提供矩阵 A 与2D点集提供矩阵 B 各由 n 个点向量组成,
点集 A 的 n 个向量通过同一个仿射变换提供矩阵 M 经变换后,与点集 B 的 n 个向量一一对应。
如何求解一个全局仿射矩阵 M,M = {{m11, m21, 0},{m12, m22, 0},{m13, m23, 1}},
使得Norm[A * M - B, 1]取得最小值,Norm[X, p]表示X的矩阵元 p-范数

当n = 3时,可以直接求解仿射变换提供矩阵 M

若n > 3时,怎么得到一个全局最优的解 M 呢?

------解决方案--------------------
最小二乘吧, 比较简单.
AM = B
A'AM = A'B

M=(inv(A'A))A'B
------解决方案--------------------
3楼的那个直接求解就可以了.
对A'A做svd分解即可.

4楼的那个, 定义f(m11,m12,m13) = c1*m11^2 + c2*m12^2 + c3*m13^2 + c4*m11*m12 + c5*m11*m13 + c6*m12*m13 + c7*m11 + c8*m12 + c9*m13 + c10

求f的极小值的话,
必要条件是f对m11, m12, m13的偏导数均为0.
即求解这3个即可.
另外也可以借助Hessian矩阵求解. 原理是一样的.