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