Метод Хаусхолдера отражения: схема и пример

Метод Хаусхолдера отражения - это способ за конечное число ортогональных преобразований превратить произвольный столбец (а затем и всю матрицу) в нужный вид, обнуляя выбранные элементы. Геометрически каждое преобразование Хаусхолдера - это зеркальное отражение вектора относительно гиперплоскости, проходящей через начало координат. Благодаря тому, что отражение сохраняет длины и углы, метод Хаусхолдера отражения численно устойчив и служит стандартным инструментом для построения QR-разложения, приведения матрицы к верхней хессенберговой или трёхдиагональной форме и для решения задач наименьших квадратов. Ниже разберём, как строится матрица отражения, как с её помощью обнуляются поддиагональные элементы столбца, и пройдём весь алгоритм на конкретном примере.
Что такое преобразование Хаусхолдера
Преобразование Хаусхолдера задаётся вектором и определяет матрицу отражения
где - единичная матрица. Такая матрица обладает двумя ключевыми свойствами: она симметрична () и ортогональна (), а значит - повторное применение возвращает исходный вектор. Действие на произвольный вектор есть его отражение относительно гиперплоскости с нормалью . При этом норма сохраняется: . Именно ортогональность отвечает за хорошую обусловленность: метод Хаусхолдера отражения не усиливает ошибки округления так, как это делает исключение Гаусса с делением на малый ведущий элемент.
Дальше - интерактивный построитель: задайте вектор или матрицу, выберите задачу, и модель построит матрицу отражения и выполнит шаги метода Хаусхолдера с подробными выкладками.
Как обнулить столбец одним отражением
Базовая задача метода Хаусхолдера отражения - найти такое , чтобы для заданного вектора результат был коллинеарен первому орту, то есть имел вид . Поскольку отражение сохраняет длину, обязательно . Вектор отражения выбирается как
Тогда , и все компоненты вектора, кроме первой, обращаются в ноль. Знак выбирают противоположным знаку первой компоненты , то есть . Это критически важно для численной устойчивости: при таком выборе разность не подвержена катастрофической потере значащих цифр, которая возникла бы при вычитании двух близких чисел. Нормировать не обязательно - формула для инвариантна к масштабу , но на практике часто используют нормировку и хранят коэффициент .
QR-разложение методом Хаусхолдера отражения
Главное применение - построение QR-разложения матрицы , то есть представление с ортогональной и верхней треугольной . Идея: последовательно применять отражения так, чтобы каждое обнуляло поддиагональные элементы очередного столбца.
На шаге берётся подстолбец от диагонали вниз и строится отражение , обнуляющее всё ниже диагонали в -м столбце:
Поскольку каждое ортогонально, произведение тоже ортогонально, и тогда
Важная деталь реализации: матрицы в явном виде не перемножают. Применение отражения к матрице выполняется как , то есть через два матрично-векторных произведения за операций вместо при явном умножении. Это делает метод Хаусхолдера отражения экономичным: полное QR-разложение стоит примерно флопов. По сравнению с алгоритмом LU-разложения метод Хаусхолдера отражения дороже, но зато сохраняет ортогональность и не требует выбора ведущего элемента для устойчивости. Подробнее о треугольных факторизациях см. в разборе LU-разложения матрицы.
Пошаговый пример
Возьмём первый столбец . Тогда , а знак первой компоненты положителен, поэтому . Вектор отражения:
Считаем и матрицу отражения:
Проверка: . Поддиагональный элемент обнулился, а норма сохранилась (). Для матрицы эту процедуру повторяют для каждого столбца, работая каждый раз с уменьшающимся подблоком: на шаге отражение действует только на строки и столбцы с индексами от до , а уже обнулённая часть остаётся нетронутой. Если нужна сама матрица , её собирают, применяя отражения в обратном порядке к единичной матрице, либо хранят все векторы в компактном виде в обнулённой нижней части - так поступают библиотечные реализации (LAPACK), экономя память. При решении системы или задачи наименьших квадратов матрицу вообще не формируют: достаточно последовательно применить отражения к правой части , получить и затем решить треугольную систему обратной подстановкой.
Связь с другими ортогональными методами
Метод Хаусхолдера отражения - не единственный способ ортогонального обнуления. Вращения Гивенса обнуляют по одному элементу за раз и удобны для разреженных матриц или дообновления QR, когда к уже разложенной матрице добавляется строка или столбец. Процесс Грама–Шмидта строит ортонормированный базис напрямую, но его классическая версия численно неустойчива из-за накопления ошибок ортогональности; модифицированный Грам–Шмидт лучше, но всё равно уступает отражениям по качеству ортогонализации. Для плотных матриц метод Хаусхолдера отражения - стандарт де-факто: он за один шаг обнуляет целый столбец и сохраняет ортогональность с машинной точностью.
Помимо QR-разложения, отражения Хаусхолдера используют и как первый этап более сложных алгоритмов. Перед поиском собственных значений симметричную матрицу сначала приводят к трёхдиагональной форме серией двусторонних преобразований , а несимметричную - к верхней хессенберговой форме; обе процедуры опираются на те же отражения, что и QR. Аналогично строится двухдиагональная форма как подготовительный шаг к сингулярному разложению. Во всех этих задачах метод Хаусхолдера отражения ценят за то, что он выполняет обнуление за конечное число шагов и не накапливает ошибку, в отличие от итерационных схем.
Частые ошибки
- Неправильный выбор знака : при разность теряет точность; всегда берите знак, противоположный .
- Явное перемножение матриц : это лишние операций на шаг; применяйте отражение как .
- Нормировка на ноль: если столбец уже имеет нулевые поддиагональные элементы, может выйти нулевым - этот случай надо обрабатывать отдельно (отражение не нужно).
- Путаница и : порядок множителей при сборке обратен порядку применения.
- Забытое деление на : формула требует нормирующего знаменателя, иначе не будет ортогональной.
FAQ
Чем метод Хаусхолдера отражения лучше вращений Гивенса? Одно отражение обнуляет сразу весь поддиагональный кусок столбца, тогда как одно вращение Гивенса обнуляет лишь один элемент. Для плотных матриц Хаусхолдер требует меньше операций; Гивенс выигрывает на разреженных задачах и при инкрементальном обновлении.
Почему метод численно устойчив? Все преобразования ортогональны, , поэтому относительные ошибки округления не растут. В отличие от исключения Гаусса, здесь нет деления на потенциально малый ведущий элемент.
Можно ли применять отражения к прямоугольным матрицам? Да. Для при получается «тонкое» QR-разложение, которое используют для решения переопределённых систем методом наименьших квадратов.
Коротко
Метод Хаусхолдера отражения строит ортогональную матрицу , которая отражает вектор так, чтобы обнулить все его компоненты ниже выбранной. Последовательное применение таких отражений к столбцам матрицы даёт устойчивое QR-разложение без выбора ведущего элемента. Ключ к точности - выбор знака и применение отражений без явного перемножения матриц.
Читайте также

Алгоритм Рабина-Карпа: поиск подстроки за O(n+m)
Разбираем алгоритм Рабина-Карпа: как полиномиальный хеш и скользящее окно ускоряют поиск подстроки до O(n+m) в среднем, почему бывают ложные совпадения и при чём тут плагиат.

Распределение Фишера критические значения: как искать F-квантили
Распределение Фишера и его критические значения: что такое F-распределение, как читать таблицу критических значений по двум степеням свободы, как применять F-квантили в F-тесте на равенство дисперсий и в дисперсионном анализе.

Модель Гордона: рост дивидендов и цена акции
Модель Гордона (Gordon Growth Model) оценивает справедливую стоимость акции через дивиденды с постоянным темпом роста. Формула, вывод, расчёт, ставка дисконтирования и ошибки.