Угол между двумя подпространствами
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) дает меру количества новой информации, предоставленной вторым экспериментом, не связанной со статистическими ошибками флуктуаций.