QR-разложение
В линейной алгебре - разложение , также известное как факторизация или QU-факторизация , представляет собой разложение матрицы A QR в произведение A = QR ортонормированной матрицы Q и верхней треугольной матрицы R. QR - QR-разложение часто используется для решения линейной задачи наименьших квадратов (LLS) и является основой для конкретного алгоритма собственных значений — алгоритма QR .
Случаи и определения
[ редактировать ]Квадратная матрица
[ редактировать ]Любая действительная квадратная матрица A может быть разложена как
где Q — ортогональная матрица (ее столбцы — ортогональные единичные векторы, что означает ) и R — верхнетреугольная матрица (также называемая правотреугольной матрицей). Если A обратим R , то факторизация уникальна, если мы требуем, чтобы диагональные элементы были положительными.
Если вместо этого A — комплексная квадратная матрица, то существует разложение A = QR , где Q — унитарная матрица (поэтому сопряженное транспонирование ).
Если A имеет n независимых столбцов, то первые n столбцов Q образуют ортонормированный базис для пространства столбцов A линейно . В более общем смысле, первые k столбцов Q образуют ортонормированный базис для диапазона первых k столбцов A для любого 1 ≤ k ≤ n . [1] Тот факт, что любой столбец k таблицы A зависит только от первых k столбцов Q, соответствует треугольной форме R . [1]
Прямоугольная матрица
[ редактировать ]В более общем смысле мы можем факторизовать комплексную размера m × n матрицу A с m ≥ n как произведение размера m × m унитарной матрицы Q и размера m × n верхней треугольной матрицы R . Поскольку нижние ( m − n ) строки верхней треугольной матрицы размера m × n полностью состоят из нулей, часто бывает полезно разделить R или оба R и Q :
где R 1 — верхняя треугольная матрица размера n × n , 0 — ( m − n ) × n нулевая матрица , Q 1 — это m × n , Q 2 — это m ×( m − n ) , а Q 1 и Q 2 оба иметь ортогональные столбцы.
Голуб и Ван Лоан (1996 , §5.2) называют Q 1 R 1 тонкой QR- A факторизацией ; Трефетен и Бау называют это сокращенной QR-факторизацией . [1] Если A имеет полный ранг n и мы требуем, чтобы диагональные элементы R 1 были положительными, тогда R 1 и Q 1 уникальны, но в общем случае Q 2 нет. R 1 тогда равен верхнему треугольному множителю разложения Холецкого A * A ( = A Т А, если А действительно).
Разложения QL, RQ и LQ
[ редактировать ]Аналогично мы можем определить разложения QL, RQ и LQ, где L — нижняя треугольная матрица.
Вычисление QR-разложения
[ редактировать ]Существует несколько методов фактического вычисления QR-разложения, таких как процесс Грама-Шмидта , преобразования Хаусхолдера или вращения Гивенса . Каждый из них имеет ряд преимуществ и недостатков.
Использование процесса Грама – Шмидта
[ редактировать ]Рассмотрим процесс Грама – Шмидта , примененный к столбцам матрицы полного ранга столбца. , с внутренним продуктом (или для сложного случая).
Определите проекцию :
затем:
Теперь мы можем выразить s по нашему недавно вычисленному ортонормированному базису:
где . Это можно записать в матричной форме:
где:
и
Пример
[ редактировать ]Рассмотрим разложение
Напомним, что ортонормированная матрица имеет собственность .
Тогда мы можем вычислить с помощью Грама-Шмидта следующим образом:
Таким образом, мы имеем
Связь с разложением RQ
[ редактировать ]Разложение RQ преобразует матрицу A в произведение верхнетреугольной матрицы R (также известной как правотреугольная) и ортогональной Q. матрицы Единственное отличие от QR-разложения — это порядок этих матриц.
QR-разложение представляет собой ортогонализацию по Граму-Шмидту столбцов A , начиная с первого столбца.
Разложение RQ представляет собой ортогонализацию по Граму – Шмидту строк A , начиная с последней строки.
Преимущества и недостатки
[ редактировать ]Процесс Грама-Шмидта по своей природе численно нестабильен. Хотя применение проекций имеет привлекательную геометрическую аналогию с ортогонализацией, сама ортогонализация подвержена численным ошибкам. Существенным преимуществом является простота реализации.
Использование отражений Хаусхолдера
[ редактировать ]( Отражение Хаусхолдера или преобразование Хаусхолдера ) — это преобразование, которое принимает вектор и отражает его относительно некоторой плоскости или гиперплоскости . Мы можем использовать эту операцию для вычисления QR- факторизации матрицы - n . m с м ≥ п .
Q можно использовать для отражения вектора таким образом, что все координаты, кроме одной, исчезают.
Позволять — произвольный действительный m -мерный вектор-столбец такой, что для скаляра α . Если алгоритм реализован с использованием арифметики с плавающей запятой , то α должна получить противоположный знак как k -я координата , где должна быть центральной координатой, после которой все записи равны 0 в окончательной верхней треугольной форме матрицы , A чтобы избежать потери значимости . В сложном случае положим [2]
и замените транспозицию сопряженной транспозицией в конструкции Q ниже.
Тогда, где — вектор [1 0 ⋯ 0] Т , ||·|| является евклидовой нормой и — единичная матрица размера m × m , положим
Или, если сложный
представляет собой m матрицу Хаусхолдера размером на m , которая одновременно симметрична и ортогональна (эрмитова и унитарна в комплексном случае), и
Это можно использовать для постепенного преобразования m на размером n матрицы A в верхнетреугольную форму . Сначала мы умножаем A на матрицу Хаусхолдера Q 1 , которую получаем, когда выбираем первый столбец матрицы для x . В результате получается матрица Q 1 A с нулями в левом столбце (кроме первой строки).
Это можно повторить для A ′ (полученного из Q 1 A путем удаления первой строки и первого столбца), в результате чего получается матрица Хаусхолдера Q ′ 2 . Обратите внимание, что Q ′ 2 меньше, чем Q 1 . Поскольку мы хотим, чтобы он действительно работал с Q 1 A вместо A ′, нам нужно расширить его в верхний левый угол, заполнив 1, или вообще:
После итерации этого процесса, ,
– верхнетреугольная матрица. Итак, с
представляет собой QR-разложение .
Этот метод имеет большую численную стабильность , чем метод Грама – Шмидта, описанный выше.
В следующей таблице показано количество операций на k -м шаге QR-разложения с помощью преобразования Хаусхолдера, предполагая квадратную матрицу размера n .
Операция | Количество операций на k -м шаге |
---|---|
Умножения | |
Дополнения | |
Разделение | |
Квадратный корень |
Суммируя эти числа за n - 1 шагов (для квадратной матрицы размера n ), сложность алгоритма (с точки зрения умножения с плавающей запятой) определяется выражением
Пример
[ редактировать ]Рассчитаем разложение
Сначала нам нужно найти отражение, которое преобразует первый столбец матрицы A , вектор , в .
Сейчас,
и
Здесь,
- и
Поэтому
- и , а потом
Теперь наблюдайте:
итак у нас уже есть почти треугольная матрица. Нам нужно только обнулить запись (3, 2).
Возьмите минор (1, 1) , а затем примените этот процесс снова к
Тем же методом, что и выше, получаем матрицу преобразования Хаусхолдера
после выполнения прямой суммы с 1, чтобы убедиться, что следующий шаг процесса работает правильно.
Теперь мы находим
Или, до четырех десятичных цифр,
Матрица Q ортогональна, а R является верхнетреугольной, поэтому A = QR — требуемое разложение QR.
Преимущества и недостатки
[ редактировать ]Использование преобразований Хаусхолдера по своей сути является наиболее простым из численно устойчивых алгоритмов QR-разложения из-за использования отражений в качестве механизма создания нулей в R- матрице. Однако алгоритм отражения Хаусхолдера требует большой пропускной способности и не поддается распараллеливанию, поскольку каждое отражение, создающее новый нулевой элемент, изменяет всю Q и R. матрицу
Использование вращения Гивенса
[ редактировать ]QR-разложения также можно вычислить с помощью серии вращений Гивенса . Каждое вращение обнуляет элемент субдиагонали матрицы, образуя R. матрицу Объединение всех вращений Гивенса образует ортогональную Q. матрицу
На практике вращения Гивенса на самом деле не выполняются путем построения всей матрицы и ее умножения. Вместо этого используется процедура вращения Гивенса, которая выполняет эквивалент умножения разреженной матрицы Гивенса, без дополнительной работы по обработке разреженных элементов. Процедура вращения Гивенса полезна в ситуациях, когда необходимо обнулить лишь относительно небольшое количество недиагональных элементов, и ее легче распараллелить, чем преобразования Хаусхолдера .
Пример
[ редактировать ]Рассчитаем разложение
Во-первых, нам нужно сформировать матрицу вращения, которая обнулит самый нижний левый элемент: . Эту матрицу мы формируем с помощью метода вращения Гивенса и называем матрицу . Сначала мы повернём вектор , чтобы указать вдоль X. оси Этот вектор имеет угол . Мы создаем ортогональную матрицу вращения Гивенса, :
И результат теперь имеет ноль в элемент.
Аналогичным образом мы можем сформировать матрицы Гивенса и , который обнулит субдиагональные элементы и , образуя треугольную матрицу . Ортогональная матрица формируется из произведения всех матриц Гивенса . Таким образом, мы имеем , а QR- разложение имеет вид .
Преимущества и недостатки
[ редактировать ]Разложение QR с помощью вращения Гивенса является наиболее сложным для реализации, поскольку порядок строк, необходимый для полного использования алгоритма, определить непросто. Однако он имеет существенное преимущество в том, что каждый новый нулевой элемент влияет только на строку с обнуляемым элементом ( i ) и строку выше ( j ). Это делает алгоритм вращения Гивенса более эффективным и распараллеливаемым, чем метод отражения Хаусхолдера.
Связь с определителем или произведением собственных значений
[ редактировать ]Мы можем использовать QR-разложение, чтобы найти определитель квадратной матрицы. Предположим, что матрица разложена как . Тогда у нас есть
можно выбрать так, что . Таким образом,
где это элементы на диагонали . Кроме того, поскольку определитель равен произведению собственных значений, мы имеем
где являются собственными значениями .
Мы можем распространить вышеуказанные свойства на неквадратную комплексную матрицу. путем введения определения QR-разложения для неквадратных комплексных матриц и замены собственных значений сингулярными значениями.
Начните с QR-разложения для неквадратной матрицы A :
где обозначает нулевую матрицу и является унитарной матрицей.
Из свойств сингулярного разложения (СВД) и определителя матрицы имеем
где являются сингулярными значениями .
Обратите внимание, что сингулярные значения и идентичны, хотя их комплексные собственные значения могут быть разными. Однако если А квадратное, то
Отсюда следует, что QR-разложение можно использовать для эффективного вычисления произведения собственных значений или сингулярных значений матрицы.
Колонна поворотная
[ редактировать ]Поворотный QR отличается от обычного QR по Граму-Шмидту тем, что в начале каждого нового шага он берет самый большой оставшийся столбец — поворот столбца — [3] и, таким образом, вводит матрицу перестановок P :
Поворот столбцов полезен, когда A имеет (почти) недостаточный ранг или подозревается в этом. Это также может улучшить числовую точность. P обычно выбирается так, чтобы диагональные элементы R не увеличивались: . Это можно использовать для нахождения (числового) ранга A с меньшими вычислительными затратами, чем разложение по сингулярным значениям , что составляет основу так называемых QR-алгоритмов выявления ранга .
Использование для решения линейных обратных задач
[ редактировать ]По сравнению с прямым обращением матрицы, обратные решения, использующие QR-разложение, более численно стабильны, о чем свидетельствуют их уменьшенные числа обусловленности . [4]
Чтобы решить недоопределенную ( ) линейная задача где матрица имеет размеры и ранг , сначала найдите QR-факторизацию транспонирования : , где Q — ортогональная матрица (т.е. ), а R имеет специальную форму: . Здесь это квадрат правая треугольная матрица, а нулевая матрица имеет размерность . После некоторой алгебры можно показать, что решение обратной задачи можно выразить как: где можно найти методом исключения Гаусса или вычисления непосредственно путем замены вперед . Последний метод отличается большей численной точностью и меньшим объемом вычислений.
Чтобы найти решение к переопределенному ( ) проблема что минимизирует норму , сначала найдите QR-факторизацию : . Тогда решение можно выразить как , где это матрица, содержащая первый столбцы полного ортонормированного базиса и где все как прежде. Эквивалентно недоопределенному случаю, обратную замену . для быстрого и точного нахождения этого значения можно использовать без явного инвертирования . ( и часто предоставляются числовыми библиотеками как «экономическое» QR-разложение.)
Обобщения
[ редактировать ]Разложение Ивасавы обобщает QR-разложение на полупростые группы Ли.
См. также
[ редактировать ]- Полярное разложение
- Собственное разложение (спектральное разложение)
- LU-разложение
- Разложение по сингулярным значениям
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Трефетен, Ллойд Н .; Бау, Дэвид III (1997). Численная линейная алгебра . Филадельфия, Пенсильвания: Общество промышленной и прикладной математики . ISBN 978-0-898713-61-9 .
- ^ Стер, Йозеф; Булирш, Роланд (2002), Введение в численный анализ (3-е изд.), Springer, стр. 225, ISBN 0-387-95452-Х
- ^ Стрэнг, Гилберт (2019). Линейная алгебра и обучение на данных (1-е изд.). Уэлсли: Wellesley Cambridge Press. п. 143. ИСБН 978-0-692-19638-0 .
- ^ Паркер, Роберт Л. (1994). Геофизическая обратная теория . Принстон, Нью-Джерси: Издательство Принстонского университета. Раздел 1.13. ISBN 978-0-691-20683-7 . OCLC 1134769155 .
Дальнейшее чтение
[ редактировать ]- Голуб, Джин Х .; Ван Лоан, Чарльз Ф. (1996), Матричные вычисления (3-е изд.), Джонс Хопкинс, ISBN 978-0-8018-5414-9 .
- Хорн, Роджер А.; Джонсон, Чарльз Р. (1985), Матричный анализ , издательство Кембриджского университета, сек. 2.8, ISBN 0-521-38632-2
- Пресс, WH; Теукольский, С.А.; Феттерлинг, WT; Фланнери, BP (2007), «Раздел 2.10. QR-разложение» , Численные рецепты: искусство научных вычислений (3-е изд.), Нью-Йорк: Cambridge University Press, ISBN 978-0-521-88068-8
Внешние ссылки
[ редактировать ]- Онлайн-калькулятор матриц Выполняет QR-разложение матриц.
- В руководстве пользователя LAPACK подробно описаны подпрограммы для расчета QR-разложения.
- В руководстве пользователя Mathematica приведены подробности и примеры процедур для расчета QR-разложения.
- ALGLIB включает частичный порт LAPACK на C++, C#, Delphi и т. д.
- Eigen::QR Включает реализацию QR-разложения на C++.