两个向量集被正交矩阵对齐的必要条件是什么?
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
假设有两个向量集$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