В математике , в частности в линейной алгебре и численном анализе , процесс Грама-Шмидта или алгоритм Грама-Шмидта представляет собой способ нахождения набора из двух или более векторов, перпендикулярных друг другу.
Векторная проекция вектора на ненулевой вектор определяется как [примечание 1]
где обозначает скалярное произведение векторов и . Это означает, что является ортогональной проекцией на прямую, натянутую на . Если является нулевым вектором, то определяется как нулевой вектор.
Для данных векторов процесс Грама–Шмидта определяет векторы следующим образом:
Последовательность — это требуемая система ортогональных векторов, а нормализованные векторы образуют ортонормированный набор . Вычисление последовательности известно как ортогонализация Грама–Шмидта , а вычисление последовательности известно как ортонормализация Грама–Шмидта .
Чтобы проверить, что эти формулы дают ортогональную последовательность, сначала вычислим , подставив вышеуказанную формулу вместо : получим ноль. Затем используем это для повторного вычисления, подставив формулу вместо : получим ноль. Для произвольного доказательство выполняется методом математической индукции .
Геометрически этот метод работает следующим образом: для вычисления он ортогонально проецируется на подпространство , сгенерированное , которое совпадает с подпространством, сгенерированным . Затем вектор определяется как разность между и этой проекцией, гарантированно ортогональной всем векторам в подпространстве .
Процесс Грама–Шмидта также применим к линейно независимой счетно бесконечной последовательности { v i } i . Результатом является ортогональная (или ортонормированная) последовательность { u i } i такая, что для натурального числа n : алгебраическая оболочка та же, что и у .
Если процесс Грама-Шмидта применяется к линейно зависимой последовательности, он выводит вектор 0 на шаге , предполагая, что является линейной комбинацией . Если необходимо создать ортонормальный базис, то алгоритм должен проверить наличие нулевых векторов в выходных данных и отбросить их, поскольку ни один кратный нулевому вектор не может иметь длину 1. Количество векторов, выведенных алгоритмом, будет тогда размерностью пространства, охватываемого исходными входными данными.
Вариант процесса Грама–Шмидта с использованием трансфинитной рекурсии , примененной к (возможно, несчетно) бесконечной последовательности векторов, дает набор ортонормированных векторов с таким, что для любого завершение охвата совпадает с завершением . В частности, при применении к (алгебраическому) базису гильбертова пространства (или, в более общем смысле, базису любого плотного подпространства) он дает (функционально-аналитический) ортонормированный базис. Обратите внимание, что в общем случае часто строгое неравенство выполняется, даже если начальный набор был линейно независимым, и охват не обязательно должен быть подпространством охвата (скорее, это подпространство его завершения).
Пусть ортогональны (относительно данного скалярного произведения). Тогда имеем
Кроме того, параметризованная версия процесса Грама–Шмидта дает (сильную) деформационную ретракцию общей линейной группы на ортогональную группу .
Численная стабильность
Когда этот процесс реализуется на компьютере, векторы часто не совсем ортогональны из-за ошибок округления . Для процесса Грама-Шмидта, описанного выше (иногда называемого «классическим Грам-Шмидтом»), эта потеря ортогональности особенно плоха; поэтому говорят, что (классический) процесс Грама-Шмидта численно неустойчив .
Процесс Грама-Шмидта можно стабилизировать с помощью небольшой модификации; эта версия иногда называется модифицированным Грам-Шмидтом или MGS. Этот подход дает тот же результат, что и исходная формула в точной арифметике, и вносит меньшие ошибки в арифметику конечной точности.
Вместо вычисления вектора uk , как
он вычисляется как
Этот метод использовался в предыдущей анимации, когда промежуточный вектор использовался при ортогонализации синего вектора .
Вот еще одно описание модифицированного алгоритма. Учитывая векторы , на нашем первом шаге мы создаем векторы , удаляя компоненты вдоль направления . В формулах . После этого шага у нас уже есть два наших желаемых ортогональных вектора , а именно , но мы также сделали уже ортогональными к . Затем мы ортогонализируем оставшиеся векторы относительно . Это означает, что мы вычисляем путем вычитания . Теперь мы сохранили векторы, где первые три вектора уже есть , а оставшиеся векторы уже ортогональны к . Как теперь должно быть ясно, на следующем шаге выполняется ортогонализ против . Действуя таким образом, мы находим полный набор ортогональных векторов . Если требуются ортонормированные векторы, то мы нормализуем по ходу дела, так что знаменатели в формулах вычитания превращаются в единицы.
Алгоритм
Следующий алгоритм MATLAB реализует классическую ортонормализацию Грама–Шмидта. Векторы v 1 , ..., v k (столбцы матрицы V, так что V(:,j)это th-й вектор) заменяются ортонормированными векторами (столбцами ), которые охватывают то же подпространство.U
функция U = граммшмидт ( V )[ n , k ] = размер ( V );U = нули ( n , k );U (:, 1 ) = V (:, 1 ) / норма ( V (:, 1 ));для i = 2 : кU (:, я ) = V (:, я );для j = 1 : i - 1U (:, i ) = U (:, i ) - ( U (:, j ) '* U (:, i )) * U (:, j );конецU (:, i ) = U (:, i ) / норма ( U (:, i ));конецконец
Стоимость этого алгоритма асимптотически составляет O( nk 2 ) операций с плавающей точкой, где n — размерность векторов. [2]
С помощью метода Гаусса
Если строки { v 1 , ..., v k } записаны в виде матрицы , то применение метода Гаусса к расширенной матрице даст ортогонализованные векторы вместо . Однако матрицу необходимо привести к форме ступенчатой строки , используя только операцию строки добавления скалярного множителя одной строки к другой. [3] Например, принимая , как указано выше, мы имеем
Обратите внимание, что выражение для является «формальным» определителем, т.е. матрица содержит как скаляры, так и векторы; значение этого выражения определяется как результат разложения сомножителей по строке векторов.
Формула-определитель для Грама-Шмидта вычислительно (экспоненциально) медленнее, чем рекурсивные алгоритмы, описанные выше; она представляет в основном теоретический интерес.
Выражено с помощью геометрической алгебры
Выраженные с использованием обозначений, используемых в геометрической алгебре , ненормализованные результаты процесса Грама-Шмидта могут быть выражены как
что эквивалентно выражению с использованием оператора, определенного выше. Результаты могут быть эквивалентно выражены как [4]
, что тесно связано с выражением с использованием детерминантов выше.
Альтернативы
Другие алгоритмы ортогонализации используют преобразования Хаусхолдера или вращения Гивенса . Алгоритмы, использующие преобразования Хаусхолдера, более стабильны, чем стабилизированный процесс Грама–Шмидта. С другой стороны, процесс Грама–Шмидта производит th-й ортогонализованный вектор после th-й итерации, тогда как ортогонализация с использованием отражений Хаусхолдера производит все векторы только в конце. Это делает только процесс Грама–Шмидта применимым для итерационных методов, таких как итерация Арнольди .
В квантовой механике существует несколько схем ортогонализации с характеристиками, которые лучше подходят для определенных приложений, чем оригинальный Грам-Шмидт. Тем не менее, он остается популярным и эффективным алгоритмом даже для самых больших расчетов электронной структуры. [5]
^ Чейни, Уорд; Кинкейд, Дэвид (2009). Линейная алгебра: теория и приложения. Садбери, Массачусетс: Джонс и Бартлетт. стр. 544, 558. ISBN 978-0-7637-5020-6.
^ Голуб и Ван Лоан 1996, §5.2.8.
^ Pursell, Lyle; Trimble, SY (1 января 1991 г.). «Ортогонализация Грама-Шмидта методом исключения Гаусса». The American Mathematical Monthly . 98 (6): 544–549. doi :10.2307/2324877. JSTOR 2324877.
^ Доран, Крис; Ласенби, Энтони (2007). Геометрическая алгебра для физиков . Cambridge University Press. стр. 124. ISBN978-0-521-71595-9.
^ Pursell, Yukihiro; et al. (2011). "Расчеты электронных состояний кремниевой нанопроволоки с 100 000 атомов на компьютере K из первых принципов". Труды Международной конференции 2011 года по высокопроизводительным вычислениям, сетевым технологиям, хранению и анализу . С. 1:1–1:11. doi :10.1145/2063384.2063386. ISBN9781450307710. S2CID 14316074.
^ В комплексном случае это предполагает, что скалярное произведение линейно по первому аргументу и сопряженно-линейно по второму. В физике более распространенным соглашением является линейность по второму аргументу, в этом случае мы определяем
Источники
Бау III, Дэвид; Трефетен, Ллойд Н. (1997), Численная линейная алгебра , Филадельфия: Общество промышленной и прикладной математики, ISBN 978-0-89871-361-9.
Учебник по математике в колледже Харви Мадда по алгоритму Грама-Шмидта
Самые ранние известные случаи использования некоторых математических слов: G Статья «Ортогонализация Грама-Шмидта» содержит некоторую информацию и ссылки о происхождении метода.
Демонстрации: процесс Грама-Шмидта на плоскости и процесс Грама-Шмидта в пространстве
Апплет ортогонализации Грама-Шмидта
Ортогонализация NAG Грама–Шмидта n векторов порядка m рутина