Метод ортогонализации: различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Frolov (обсуждение | вклад) мНет описания правки |
Frolov (обсуждение | вклад) |
||
| Строка 5: | Строка 5: | ||
[[Классический метод ортогонализации QR-разложения квадратной матрицы (вещественный вариант)|Классический метод ортогонализации]] довольно прост, однако из-за неустойчивости, проявляющейся в неортогональности получаемых систем, редко применяется на практике. | [[Классический метод ортогонализации QR-разложения квадратной матрицы (вещественный вариант)|Классический метод ортогонализации]] довольно прост, однако из-за неустойчивости, проявляющейся в неортогональности получаемых систем, редко применяется на практике. | ||
Пусть имеются линейно независимые векторы <math>\mathbf{a}_1,\;\ldots,\;\mathbf{a}_N</math>. | |||
Пусть оператор проекции вектора <math>\mathbf{a}</math> на вектор <math>\mathbf{b}</math> определён следующим образом: <math>\mathbf{proj}_{\mathbf{b}}\,\mathbf{a} = {\langle \mathbf{a}, \mathbf{b} \rangle \over \langle \mathbf{b}, \mathbf{b}\rangle} \mathbf{b} ,</math> | |||
где <math>\langle \mathbf{a}, \mathbf{b} \rangle</math> — скалярное произведение векторов <math>\mathbf{a}</math> и <math>\mathbf{b}</math>. | |||
Скалярное произведение для двух векторов <math>\mathbf{ a= [a_1, a_2, ...,a_k]}</math> и <math>\mathbf{ b= [b_1, b_2, ..., b_k]}</math> в '''''k'''''-мерном действительном пространстве определяется как: | |||
:<math>\langle \mathbf{a}, \mathbf{b} \rangle=\sum_{i=1}^k a_ib_i=a_1b_1+a_2b_2+\cdots+ a_kb_k</math>. | |||
Этот оператор проецирует вектор <math>\mathbf{a}</math> коллинеарно вектору <math>\mathbf{b}</math>. | |||
Ортогональность векторов <math>\mathbf{a}</math> и <math>\mathbf{b}</math> достигается на шаге (2). | |||
Классический процесс Грама — Шмидта выполняется следующим образом: | |||
: <math> | |||
{\begin{array}{lclr} | |||
{\mathbf {b}}_{1}&=&{\mathbf {a}}_{1}&(1)\\ | |||
{\mathbf {b}}_{2}&=&{\mathbf {a}}_{2}-{\mathbf {proj}}_{{{\mathbf {b}}_{1}}}\,{\mathbf {a}}_{2}&(2)\\ | |||
{\mathbf {b}}_{3}&=&{\mathbf {a}}_{3}-{\mathbf {proj}}_{{{\mathbf {b}}_{1}}}\,{\mathbf {a}}_{3}-{\mathbf {proj}}_{{{\mathbf {b}}_{2}}}\,{\mathbf {a}}_{3}&(3)\\ | |||
{\mathbf {b}}_{4}&=&{\mathbf {a}}_{4}-{\mathbf {proj}}_{{{\mathbf {b}}_{1}}}\,{\mathbf {a}}_{4}-{\mathbf {proj}}_{{{\mathbf {b}}_{2}}}\,{\mathbf {a}}_{4}-{\mathbf {proj}}_{{{\mathbf {b}}_{3}}}\,{\mathbf {a}}_{4}&(4)\\ | |||
&\vdots &&\\{\mathbf {b}}_{N}&=&{\mathbf {a}}_{N}-\displaystyle \sum _{{j=1}}^{{N-1}}{\mathbf {proj}}_{{{\mathbf {b}}_{j}}}\,{\mathbf {a}}_{N}&(N) | |||
\end{array}} | |||
</math> | |||
На основе каждого вектора <math>\mathbf{b}_j \;(j = 1 \ldots N)</math> может быть получен нормированный вектор: <math>\mathbf{e}_j = {\mathbf{b}_j\over \| \mathbf{b}_j \|}</math> (у нормированного вектора направление будет таким же, как у исходного, а длина — единичной). Причем берется норма согласованная со скалярным произведением <math>\| x \| = \sqrt{\langle x, x \rangle}</math> | |||
Результаты процесса Грама — Шмидта: | |||
<math>\mathbf{b}_1,\;\ldots,\;\mathbf{b}_N</math> — система ортогональных векторов либо | |||
<math>\mathbf{e}_1,\;\ldots,\;\mathbf{e}_N</math> — система ортонормированных векторов. | |||
Вычисление <math>\mathbf{b}_1,\;\ldots,\;\mathbf{b}_N</math> носит название ортогонализации Грама — Шмидта, а <math>\mathbf{e}_1,\;\ldots,\;\mathbf{e}_N</math> — ортонормализации Грама — Шмидта. | |||
Наиболее распространённой формой метода является [[Метод ортогонализации QR-разложения квадратной матрицы с переортогонализацией (вещественный вариант)|Вариант метода ортогонализации с переортогонализацией]]. | Наиболее распространённой формой метода является [[Метод ортогонализации QR-разложения квадратной матрицы с переортогонализацией (вещественный вариант)|Вариант метода ортогонализации с переортогонализацией]]. | ||
Версия от 11:18, 4 мая 2017
Ортогонализация Грама-Шмидта — это один из методов, в которых на основе множества линейно независимых векторов [math]\displaystyle{ {\displaystyle \mathbf {a} _{1},\;\ldots ,\;\mathbf {a} _{N}} }[/math] строится множество ортогональных векторов [math]\displaystyle{ {\displaystyle \mathbf {b}_{1},\;\ldots ,\;\mathbf {b} _{N}} }[/math] или ортонормированных векторов [math]\displaystyle{ {\displaystyle \mathbf {e} _{1},\;\ldots ,\;\mathbf {e}_{N}} }[/math], причём так, что каждый вектор [math]\displaystyle{ {\displaystyle \mathbf {b} _{j}} }[/math] или [math]\displaystyle{ {\displaystyle \mathbf {e} _{j}} }[/math] может быть выражен линейной комбинацией векторов [math]\displaystyle{ {\displaystyle \mathbf {a} _{1},\;\ldots ,\; \mathbf {a} _{j}} }[/math]. Данный процесс может быть использован для получения QR-разложения, в которой систему исходных векторов образуют столбцы исходной матрицы, а столбцы матрицы Q представляют из себя набор полученных при ортогонализации векторов. Таким образом, в отличие от методов Гивенса (вращений) и Хаусхолдера (отражений), основанных на приведении матрицы левыми унитарными/ортогональными преобразованиями к треугольному виду, метод ортогонализации основан на приведении матрицы правыми неортогональными (можно сказать, треугольными) преобразованиями к унитарному/ортогональному виду.
Математические основы метода
Классический метод ортогонализации довольно прост, однако из-за неустойчивости, проявляющейся в неортогональности получаемых систем, редко применяется на практике.
Пусть имеются линейно независимые векторы [math]\displaystyle{ \mathbf{a}_1,\;\ldots,\;\mathbf{a}_N }[/math]. Пусть оператор проекции вектора [math]\displaystyle{ \mathbf{a} }[/math] на вектор [math]\displaystyle{ \mathbf{b} }[/math] определён следующим образом: [math]\displaystyle{ \mathbf{proj}_{\mathbf{b}}\,\mathbf{a} = {\langle \mathbf{a}, \mathbf{b} \rangle \over \langle \mathbf{b}, \mathbf{b}\rangle} \mathbf{b} , }[/math]
где [math]\displaystyle{ \langle \mathbf{a}, \mathbf{b} \rangle }[/math] — скалярное произведение векторов [math]\displaystyle{ \mathbf{a} }[/math] и [math]\displaystyle{ \mathbf{b} }[/math].
Скалярное произведение для двух векторов [math]\displaystyle{ \mathbf{ a= [a_1, a_2, ...,a_k]} }[/math] и [math]\displaystyle{ \mathbf{ b= [b_1, b_2, ..., b_k]} }[/math] в k-мерном действительном пространстве определяется как:
- [math]\displaystyle{ \langle \mathbf{a}, \mathbf{b} \rangle=\sum_{i=1}^k a_ib_i=a_1b_1+a_2b_2+\cdots+ a_kb_k }[/math].
Этот оператор проецирует вектор [math]\displaystyle{ \mathbf{a} }[/math] коллинеарно вектору [math]\displaystyle{ \mathbf{b} }[/math].
Ортогональность векторов [math]\displaystyle{ \mathbf{a} }[/math] и [math]\displaystyle{ \mathbf{b} }[/math] достигается на шаге (2).
Классический процесс Грама — Шмидта выполняется следующим образом:
- [math]\displaystyle{ {\begin{array}{lclr} {\mathbf {b}}_{1}&=&{\mathbf {a}}_{1}&(1)\\ {\mathbf {b}}_{2}&=&{\mathbf {a}}_{2}-{\mathbf {proj}}_{{{\mathbf {b}}_{1}}}\,{\mathbf {a}}_{2}&(2)\\ {\mathbf {b}}_{3}&=&{\mathbf {a}}_{3}-{\mathbf {proj}}_{{{\mathbf {b}}_{1}}}\,{\mathbf {a}}_{3}-{\mathbf {proj}}_{{{\mathbf {b}}_{2}}}\,{\mathbf {a}}_{3}&(3)\\ {\mathbf {b}}_{4}&=&{\mathbf {a}}_{4}-{\mathbf {proj}}_{{{\mathbf {b}}_{1}}}\,{\mathbf {a}}_{4}-{\mathbf {proj}}_{{{\mathbf {b}}_{2}}}\,{\mathbf {a}}_{4}-{\mathbf {proj}}_{{{\mathbf {b}}_{3}}}\,{\mathbf {a}}_{4}&(4)\\ &\vdots &&\\{\mathbf {b}}_{N}&=&{\mathbf {a}}_{N}-\displaystyle \sum _{{j=1}}^{{N-1}}{\mathbf {proj}}_{{{\mathbf {b}}_{j}}}\,{\mathbf {a}}_{N}&(N) \end{array}} }[/math]
На основе каждого вектора [math]\displaystyle{ \mathbf{b}_j \;(j = 1 \ldots N) }[/math] может быть получен нормированный вектор: [math]\displaystyle{ \mathbf{e}_j = {\mathbf{b}_j\over \| \mathbf{b}_j \|} }[/math] (у нормированного вектора направление будет таким же, как у исходного, а длина — единичной). Причем берется норма согласованная со скалярным произведением [math]\displaystyle{ \| x \| = \sqrt{\langle x, x \rangle} }[/math]
Результаты процесса Грама — Шмидта:
[math]\displaystyle{ \mathbf{b}_1,\;\ldots,\;\mathbf{b}_N }[/math] — система ортогональных векторов либо
[math]\displaystyle{ \mathbf{e}_1,\;\ldots,\;\mathbf{e}_N }[/math] — система ортонормированных векторов.
Вычисление [math]\displaystyle{ \mathbf{b}_1,\;\ldots,\;\mathbf{b}_N }[/math] носит название ортогонализации Грама — Шмидта, а [math]\displaystyle{ \mathbf{e}_1,\;\ldots,\;\mathbf{e}_N }[/math] — ортонормализации Грама — Шмидта.
Наиболее распространённой формой метода является Вариант метода ортогонализации с переортогонализацией.