Угол между двумя подпространствами
theta = subspace(A,B)
theta = subspace(A,B)
находит угол между двумя подпространствами заданным столбцами A
и B
. Если A
и B
являются вектор-столбцами единичной длины, это совпадает с acos(abs(A'*B))
.
Рассмотрите два подпространства матрицы Адамара, столбцы которой являются ортогональными.
H = hadamard(8); A = H(:,2:4); B = H(:,5:8);
Обратите внимание на то, что матрицы, A
и B
являются различными размерами — A
, имеют три столбца и B
четыре. Не необходимо, чтобы два подпространства были одного размера в порядке найти угол между ними. Геометрически, это - угол между двумя гиперплоскостями, встроенными в более высокое мерное пространство.
theta = subspace(A,B) theta = 1.5708
Тот A
и B
являются ортогональными, показан тем, что theta
равен π/2.
theta - pi/2 ans = 0
Если угол между этими двумя подпространствами является маленьким, эти два пробела почти линейно зависят. В физическом эксперименте, описанном некоторыми наблюдениями A
и вторая реализация эксперимента, описанного B
, subspace(A,B)
дает меру суммы новой информации, предоставленной вторым экспериментом, не сопоставленным со статистическими ошибками колебаний.