Классический процесс Грама — Шмидта выполняется следующим образом:
На основе каждого вектора может быть получен нормированный вектор: (у нормированного вектора направление будет таким же, как у исходного, а длина — единичной).
Результаты процесса Грама — Шмидта:
— система ортогональных векторов либо
— система ортонормированных векторов.
Вычисление носит название ортогонализации Грама — Шмидта, а — ортонормализации Грама — Шмидта.
Вывод алгоритма построения ортогонального базиса по линейно независимому набору векторов
Требуется построить ортогональную систему векторов по линейно-независимому набору векторов .
Процесс построения базиса заключается в проецировании первого вектора базиса на следующие за вектора и нахождения ортогональных к этим проекциям векторов .
Первый вектор строящегося базиса выбираем так:
1. — так выбираем первый вектор строящегося базиса.
2. — нормируем вектор .
3. , где — проекция вектора на вектор , вдоль нормированного вектора .
4.
5. — в общем виде.
Заметим что:
А так как норма (длина вектора) в линейном пространстве порождается скалярным произведением, получаем:
И получаем окончательный вид:
Первый вектор строящегося базиса определяется как:
1. — первый вектор с индексом .
2. — все остальные векторы с индексами: .
Доказательство
Докажем ортогональность векторов .
Для этого вычислим скалярное произведение , подставив в него формулу (2).
Мы получим ноль. Равенство нулю скалярного произведения векторов означает, что эти векторы ортогональны. Затем вычислим скалярное произведение , используя результат для и формулу (3). Мы снова получим ноль, то есть векторы и ортогональны. Общее доказательство выполняется методом математической индукции.
Геометрическая интерпретация — вариант 1
Рис. 1. Второй шаг процесса Грама — Шмидта
Рассмотрим формулу (2) — второй шаг алгоритма.
Её геометрическое представление изображено на рис. 1:
1 — получение проекции вектора на ;
2 — вычисление , то есть перпендикуляра, которым выполняется проецирование конца на . Этот перпендикуляр — вычисляемый в формуле (2) вектор ;
3 — перемещение полученного на шаге 2 вектора в начало координат. Это перемещение сделано на рисунке лишь для наглядности. Оно не является математическим действием и поэтому не отражается в формуле (2).
На рисунке видно, что вектор ортогонален вектору , так как является перпендикуляром, по которому проецируется на .
Рассмотрим формулу (3) — третий шаг алгоритма — в следующем варианте:
Её геометрическое представление изображено на рис. 2:
Рис. 2. Третий шаг процесса Грама — Шмидта
1 — получение проекции вектора на ;
2 — получение проекции вектора на ;
3 — вычисление суммы , то есть проекции вектора на плоскость, образуемую векторами и . Эта плоскость закрашена на рисунке серым цветом;
4 — вычисление , то есть перпендикуляра, которым выполняется проецирование конца на плоскость, образуемую векторами и . Этот перпендикуляр — вычисляемый в формуле (6) вектор ;
5 — перемещение полученного в начало координат. Это перемещение сделано на рисунке лишь для наглядности. Оно не является математическим действием и поэтому не отражается в формуле (6).
На рисунке видно, что вектор ортогонален векторам и , так как является перпендикуляром, по которому проецируется на плоскость, образуемую векторами и .
Таким образом, в процессе Грама — Шмидта для вычисления выполняется проецирование ортогонально на гиперплоскость, формируемую векторами . Вектор затем вычисляется как разность между и его проекцией. То есть — это перпендикуляр от конца к гиперплоскости, формируемой векторами . Поэтому ортогонален векторам, образующим эту гиперплоскость.
Геометрическая интерпретация — вариант 2
Рассмотрим проекции некоторого вектора на векторы и как компоненты вектора в направлениях и (рис. 3):
Рис. 3. Вектор имеет компоненты в направлениях и
Если удалить из компоненту в направлении , то станет ортогонален (рис. 4):
Рис. 4. Вектор имеет компоненту в направлении , а компонента в направлении отсутствует (нулевая)
Если из удалить компоненты в направлениях и , то станет ортогонален и , и (рис. 5):
Рис. 5. Вектор не имеет компонент в направлениях и
В формуле (2) из вектора удаляется компонента в направлении вектора . Получаемый вектор не содержит компоненту в направлении и поэтому ортогонален вектору .
В формуле (3) из вектора удаляются компоненты в направлениях и (формуле 3 соответствует переход от рис. 3 к рис. 5; рис. 4 не соответствует формуле 3). Получаемый вектор ортогонален векторам и .
В формуле (4) из вектора удаляются компоненты в направлениях . Получаемый вектор ортогонален векторам .
Таким образом, по формулам (1) — (4) на основе векторов получается набор ортогональных векторов .
Численная неустойчивость
При вычислении на ЭВМ по формулам (1) — (5) векторы часто не точно ортогональны из-за ошибок округления. Из-за потери ортогональности в процессе вычислений классический процесс Грама — Шмидта называют численно неустойчивым.
Модифицированный процесс Грама — Шмидта
Процесс Грама — Шмидта может быть сделан более вычислительно устойчивым путём небольшой модификации. Вместо вычисления как
этот вектор вычисляется следующим образом:
Геометрическая интерпретация
Рассмотрим получение по формулам (8) — (11):
Геометрически это показано на рис 6:
Рис. 6. Геометрическое представление модифицированного процесса
На рис. 6 вектор обозначен как .
1 — получение проекции вектора на для формулы (12), то есть компоненты в направлении ;
2 — вычитание по формуле (12), то есть удаление из компоненты в направлении . Получаемый вектор ортогонален , так как не имеет компоненты в направлении ;
3 — перенос вектора в начало координат. Это перемещение сделано на рисунке лишь для наглядности. Оно не является математическим действием и поэтому не отражается в формуле (12).
4 — получение проекции вектора на для формулы (13), то есть компоненты в направлении ;
5 — вычитание по формуле (13), то есть удаление из компоненты в направлении . Получаемый вектор ортогонален , так как не имеет компоненты в направлении . При вычитании из компоненты в направлении в результирующем векторе не появляется компонента в направлении ;
6 — перенос вектора в начало координат. Это перемещение сделано на рисунке лишь для наглядности. Оно не является математическим действием и поэтому не отражается в формуле (13).
Таким образом, получаемый на рис. 6 вектор не имеет компонент в направлениях и и поэтому ортогонален и .
Рассмотрим непосредственно формулы (8) — (11).
В формуле (8) из вектора удаляется компонента в направлении вектора . Получаемый вектор не содержит компоненту в направлении и поэтому ортогонален вектору .
Далее в формуле (9) из результата удаляется его компонента в направлении вектора . Получаемый вектор не содержит компоненту в направлении и поэтому ортогонален вектору .
Путём дальнейшего последовательного удаления из результата его компонент получается вектор , не содержащий компонент в направлениях и потому ортогональный векторам .
Эквивалентность классического и модифицированного процессов
Классический и модифицированный процессы можно сопоставить следующим образом:
Формула (14) показывает вычисление в классическом процессе, а формула (15) — в модифицированном.
Разница между (14) и (15) заключается в том, от каких векторов вычисляются компоненты: от в классическом процессе или от результата предыдущего вычитания, то есть от в модифицированном процессе. представляет собой , из которого удалены компоненты в направлениях . Компонента вектора в направлении при этом удалении не затрагивается и поэтому она в такая же, как в . Другими словами,
На рис. 6 равенство (16) имеет форму «».
Равенство (16) отображено знаками "||" между формулами (14) и (15). Это позволяет видеть, что формулы (14) и (15) эквивалентны.
Таким образом, классический и модифицированный процессы эквивалентны, но только при идеально точных вычислениях. Реальные вычисления имеют погрешность из-за ошибок округления.
Особые случаи
Процесс Грама — Шмидта может применяться также к бесконечной последовательности линейно независимых векторов.
Кроме того, процесс Грама — Шмидта может применяться к линейно зависимым векторам. В этом случае он выдаёт (нулевой вектор) на шаге , если является линейной комбинацией векторов . Если это может случиться, то для сохранения ортогональности выходных векторов и для предотвращения деления на ноль при ортонормировании алгоритм должен делать проверку на нулевые векторы и отбрасывать их. Количество векторов, выдаваемых алгоритмом, будет равно размерности подпространства, порождённого векторами (т.е. количеству линейно независимых векторов, которые можно выделить среди исходных векторов).
Данный скрипт, предназначенный для пакета Mathematica, проводит процесс ортогонализации Грама ― Шмидта над векторами, заданными в фигурных скобках последней строки. Количество векторов и их координат могут быть произвольными. В данном случае для примера взяты векторы , , .
Данный скрипт, предназначенный для пакета Maxima, проводит процесс ортогонализации Грама ― Шмидта над векторами, заданными в квадратных скобках. Количество векторов и их координат могут быть произвольными. В данном случае для примера взяты векторы , , .
Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.
2019-2025 WikiSort.ru - проект по пересортировке и дополнению контента Википедии