两个向量集被正交矩阵对齐的必要条件是什么?

What is the necessary condition for two vector set be aligned by an orthogonal matrix?

假设有两个向量集$A$和$B \in \mathbb{R}^{f \times 3}$

如果有一个正交矩阵 $R \in \mathbb{R}^{3 \times 3}$ 可以完美对齐两个向量集,例如$RA = B$

A和B满足的必要条件是什么?

我知道正交矩阵可以用正交procrustes算法求解,但那只是给出了解。我想知道 A 和 B 的条件,使它们与 $R$ 完全对齐。

谢谢。

充分必要条件是

A'*A = B'*B

很遗憾,我找不到这方面的参考资料。不过,这里是一个证明的概要。 我们对行数进行归纳处理。

如果这是 1 那么 A 和 B 都是列向量,条件为

A[i]*A[j] = B[i]*B[j] for all i,j

当 i=j 时,这意味着 |A[i]| = |B[我]|所以有 s[i] (每个 +-1)

B[i] = s[i]*A[i]

如果 A[i] 和 A[j] 都不为零(那么 B[i] 和 B[j] 也不为零)我们看到

s[i]*s[j] = 1, so s[i] = s[j]

由于当A[i](因此B[i])为零时我们可以任意选择s[i],因此我们可以选择所有的s[i]相同使得B = s *A,按要求

如果行数大于1,写

A = (a A1) 
B = (b B1) 

(其中 a 是 A 的第一列等)

备注

A'*A = ( a'*a   a'*A1)
       ( A1'*a  A1'*A1)

B 也是如此。 如果 a 为零,b 也为零,并且

U*a = U*b for any U.

因此我们可以假设 a != 0(因此 b != 0)。 如果 l 是 a(和 b)的长度,我们可以找到正交的 U 和 V,这样

U*a = l*e1
V*b = l*e1

(其中 e1 是 (1,0,..0)') 让

U*A = (l*e1 A2)
V*B = (l*e1 B2)

在这些方面我们有

A'*A = (U*A)'*(U*A) = (l*l      l*e1'*A2)
                      (l*A2'*e1 A2'*A2  )

B 也类似。请注意,e1'*A2 是 A2 的第一行,因此我们的条件意味着 A2 和 B2 的第一行相同。 如果我们写

A2 = ( x )
     ( A3)

(和 B2 类似)然后

A2'*A2 = x'*x + A3'*A3 = x'*x + B3'*B3 

所以,通过归纳,存在一个正交 Q

B3 = Q*A3

但这意味着

B2 = (1 0 ) * A2
     (0 Q )

并且,解开定义,有一个正交的 W

B = W*A