Необходимое и достаточное условие состоит в том, что
A'*A = B'*B
К сожалению, я не смог найти ссылку на это. Вот, однако, набросок доказательства. Работаем по индукции над количеством строк.
Если это 1, то каждый из A и B является вектор-столбцом, и условие читается
A[i]*A[j] = B[i]*B[j] for all i,j
Когда i=j, это означает, что |A[i]| = |В[я]| и поэтому есть 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]
Поскольку мы можем выбрать s[i] произвольно, когда A[i] (следовательно, B[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
person
dmuir
schedule
26.04.2020