Ортогонализация Грама-Шмидта (ru)

math

В большинстве практических задач нам требуется проекция вектора на подпространство. Если подпространство задано ортогональным или ортонормированным базисом, это можно сделать легко. Для ортогонализации векторов используется метод Грама-Шмидта.

Имеем исходные векторы $v_1, v_2, \dots, v_n$, и нам нужно получить ортогональные векторы $u_1, u_2, \dots, u_n$. Общая схема метода: 0. Удаляем все нулевые векторы.

  1. Берём первый вектор без изменений: $u_1 = v_1$.
  2. Следующий вектор находим из $v_2$ и проекций на предыдущие векторы: $u_2 = v_2 - \text{Proj}_{u_1}{v_2}$.
  3. Повторяем: $u_3 = v_3 - \text{Proj}_{u_1}{v_3} - \text{Proj}_{u_2}{v_3}$.
  4. Продолжаем до вектора $u_n$: $u_n = v_n - \sum_{i=1}^{n-1}\text{Proj}_{u_i}{v_n}$. Напомним формулу проекции: $\text{Proj}_{u}{v} = \frac{\langle u, v\rangle}{||u||^2}u$. Для получения ортонормированного базиса нормируем векторы: $e_i = \frac{u_i}{||u_i||}$.

Рассмотрим пример: $v_1 = \begin{pmatrix}1 \\ 1\end{pmatrix}, \ v_2 = \begin{pmatrix}1 \\ 0\end{pmatrix}$. Сначала задаём $u_1 = v_1$, затем: $u_2 = v_2 - \text{Proj}_{u_1}{v_2} = \begin{pmatrix}1 \\ 0\end{pmatrix} - \begin{pmatrix}0.5 \\ 0.5\end{pmatrix} = \begin{pmatrix}0.5 \\ -0.5\end{pmatrix}$. В итоге получаем ортогональные векторы: $u_1 = \begin{pmatrix}1 \\ 0\end{pmatrix}$, $u_2 = \begin{pmatrix}0.5 \\ -0.5\end{pmatrix}$.

Thanks for reading!

I'd love to hear your comments on the email.