1. Почему ортогональные базисы стоит строить
Главная идея
В произвольном базисе для нахождения координат вектора нужно решать систему линейных уравнений. В ортогональном базисе каждую координату можно просто вычислить с помощью скалярного произведения — без приведения к ступенчатому виду.
Координаты сложным способом (произвольный базис)
Допустим, у вас есть базис $\{\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_n\}$ подпространства $W$, и вы хотите представить вектор $\mathbf{x} \in W$ в виде:
$$\mathbf{x} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n$$Вам нужно решить систему из $n$ уравнений с $n$ неизвестными — составить расширенную матрицу $[\mathbf{v}_1 \;|\; \mathbf{v}_2 \;|\; \cdots \;|\; \mathbf{v}_n \;|\; \mathbf{x}]$ и привести её к ступенчатому виду. Это требует $O(n^3)$ операций.
Координаты простым способом (ортогональный базис)
Если же $\{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_n\}$ — ортогональный базис (то есть $\mathbf{u}_i \cdot \mathbf{u}_j = 0$ при $i \neq j$), то коэффициент разложения по каждому базисному вектору равен просто:
Почему это работает? Возьмём $\mathbf{x} = c_1\mathbf{u}_1 + c_2\mathbf{u}_2 + \cdots + c_n\mathbf{u}_n$ и вычислим скалярное произведение обеих частей с $\mathbf{u}_i$: