Обратная итерация
В численном анализе обратная итерация (также известная как метод обратной мощности ) представляет собой итерационный алгоритм собственных значений . Это позволяет найти приблизительную собственный вектор , когда приближение к соответствующему собственному значению уже известно.Метод концептуально аналогичен степенному методу .Судя по всему, изначально он был разработан для расчета резонансных частот в области строительной механики. [1]
Алгоритм итерации обратной степени начинается с аппроксимации для собственного значения, соответствующего желаемому собственному вектору , и вектору , либо случайно выбранный вектор, либо приближение к собственному вектору. Метод описывается итерацией
где некоторые константы обычно выбираются как Поскольку собственные векторы определены с точностью до умножения на константу, выбор теоретически может быть произвольным; практические аспекты выбора обсуждаются ниже.
На каждой итерации вектор умножается на матрицу и нормализовано.Это точно такая же формула, как и в степенном методе , за исключением замены матрицы к Чем ближе приближение чем выбрано собственное значение, тем быстрее сходится алгоритм; однако неправильный выбор может привести к медленной сходимости или к сходимости к собственному вектору, отличному от желаемого. На практике этот метод используется, когда известно хорошее приближение собственного значения и, следовательно, требуется всего несколько (часто только одна) итераций.
Теория и конвергенция
[ редактировать ]Основная идея степенной итерации — выбор начального вектора. (либо собственного вектора аппроксимация , либо случайный вектор) и итеративное вычисление . За исключением набора нулевой меры , для любого начального вектора результат будет сходиться к собственному вектору, соответствующему доминирующему собственному значению .
Обратная итерация делает то же самое для матрицы , поэтому он сходится к собственному вектору, соответствующему доминирующему собственному значению матрицы . Собственные значения этой матрицы: где являются собственными значениями .Наибольшее из этих чисел соответствует наименьшему из Собственные векторы и из одинаковы, поскольку
Вывод : метод сходится к собственному вектору матрицы соответствующее ближайшему собственному значению
В частности, взяв мы видим это сходится к собственному вектору, соответствующему собственному значению с наибольшей величиной и, таким образом, может использоваться для определения наименьшего собственного значения величины поскольку они обратно пропорциональны.
Скорость сходимости
[ редактировать ]Проанализируем скорость сходимости метода.
степенной метод Известно, что сходится к пределу линейно , точнее:
следовательно, для метода обратной итерации аналогичный результат звучит так:
Это ключевая формула для понимания сходимости метода. Это показывает, что если выбирается достаточно близко к некоторому собственному значению , например каждая итерация будет повышать точность раз. (Мы используем это для достаточно небольших "ближайший к " и "ближайший к " то же самое.) Для достаточно маленьких это примерно то же самое, что и . Следовательно, если кто-то сможет найти , такой, что будет достаточно мал, то очень небольшое количество итераций может быть удовлетворительным.
Сложность
[ редактировать ]Алгоритм обратной итерации требует решения линейной системы или расчета обратной матрицы.Для неструктурированных матриц (не разреженных, не Теплица,...) для этого требуется операции.
Варианты реализации
[ редактировать ]Метод определяется формулой:
Однако существует несколько вариантов его реализации.
Вычислить обратную матрицу или решить систему линейных уравнений
[ редактировать ]Мы можем переписать формулу следующим образом:
подчеркивая, что для нахождения следующего приближения мы можем решить систему линейных уравнений. Есть два варианта: можно выбрать алгоритм, решающий линейную систему, или можно вычислить обратную а затем применить его к вектору.Оба варианта имеют сложность O ( n 3 ), точное количество зависит от выбранного метода.
Выбор зависит также от количества итераций. Наивно, если на каждой итерации решать линейную систему, сложность будет равна k O ( n 3 ), где k — количество итераций; аналогично вычисление обратной матрицы и ее применение на каждой итерации имеет сложность k O ( n 3 ).Однако заметим, что если оценка собственных значений остается постоянной, то мы можем уменьшить сложность до O ( n 3 ) + k О ( п 2 ) любым методом.Вычисление обратной матрицы один раз и сохранение ее для применения на каждой итерации имеет сложность O ( n 3 ) + k О ( п 2 ).Сохранение -разложения LU а использование прямой и обратной замены для решения системы уравнений на каждой итерации также имеет сложность O ( n 3 ) + k О ( п 2 ).
Инвертирование матрицы обычно требует больших начальных затрат, но меньших затрат на каждой итерации. И наоборот, решение систем линейных уравнений обычно требует меньших начальных затрат, но требует большего количества операций для каждой итерации.
Трехдиагонализация, форма Хессенберга
[ редактировать ]Если необходимо выполнить много итераций (или мало итераций, но для многих собственных векторов), то, возможно, было бы разумно привести матрицу к сначала верхняя форма Хессенберга (для симметричной матрицы это будет трехдиагональная форма ). Какие затраты арифметические операции с использованием техники, основанной на редукции Хаусхолдера ), с конечной последовательностью ортогональных преобразований подобия, что-то вроде двустороннего QR-разложения. [2] [3] (Для QR-разложения вращения Хаусхолдера умножаются только слева, но для случая Хессенберга они умножаются как слева, так и справа.) Для симметричных матриц эта процедура стоит арифметические операции с использованием метода, основанного на редукции Хаусхолдера. [2] [3]
Решение системы линейных уравнений для трехдиагональной матрицы издержек операций, поэтому сложность возрастает как , где — номер итерации, что лучше, чем при прямой инверсии. Однако для нескольких итераций такое преобразование может быть непрактичным.
Кроме того, преобразование в форму Хессенберга включает в себя квадратные корни и операцию деления, которые не всегда поддерживаются аппаратным обеспечением.
Выбор константы нормировки C k
[ редактировать ]На процессорах общего назначения (например, производства Intel) время выполнения операций сложения, умножения и деления примерно одинаковое. Но на встроенном и/или низкоэнергетическом оборудовании ( процессоры цифровых сигналов , FPGA , ASIC ) разделение может не поддерживаться аппаратно, и поэтому его следует избегать. Выбор позволяет быстрое деление без явной аппаратной поддержки, поскольку деление на степень 2 может быть реализовано либо как битовый сдвиг (для арифметики с фиксированной запятой ), либо как вычитание из экспоненты (для арифметики с плавающей запятой ).
При реализации алгоритма с использованием арифметики с фиксированной запятой выбор константы особенно важно. Небольшие значения приведут к быстрому росту нормы и переполниться ; большие значения вызовет вектор стремиться к нулю.
Использование
[ редактировать ]Основное применение метода — ситуация, когда найдено приближение к собственному значению и необходимо найти соответствующий приближенный собственный вектор. В такой ситуации обратная итерация является основным и, вероятно, единственным методом, который можно использовать.
Методы поиска приближенных собственных значений
[ редактировать ]Обычно метод используется в сочетании с каким-либо другим методом, который находит приближенные собственные значения: стандартным примером является алгоритм деления собственных значений пополам , другим примером является итерация фактора Рэлея , которая фактически представляет собой ту же обратную итерацию с выбором приближенного собственного значения в качестве Фактор Рэлея, соответствующий вектору, полученному на предыдущем шаге итерации.
Есть ситуации, когда метод можно использовать сам по себе, однако они весьма маргинальны.
Норма матрицы как приближение к доминирующему собственному значению
[ редактировать ]Доминирующее собственное значение можно легко оценить для любой матрицы. Для любой индуцированной нормы верно, что для любого собственного значения . Таким образом, приняв норму матрицы в качестве приблизительного собственного значения, можно увидеть, что метод сходится к доминирующему собственному вектору.
Оценки на основе статистики
[ редактировать ]В некоторых приложениях реального времени приходится находить собственные векторы матриц со скоростью миллионы матриц в секунду. В таких приложениях обычно статистика матриц известна заранее, и в качестве приблизительного собственного значения можно принять среднее собственное значение для некоторой большой выборки матрицы.Лучше, можно вычислить среднее отношение собственных значений к следу или норме матрицы и оценить среднее собственное значение как след или норму, умноженную на среднее значение этого отношения. Очевидно, что такой метод можно использовать только осторожно и только тогда, когда высокая точность не имеет решающего значения. Этот подход оценки среднего собственного значения можно комбинировать с другими методами, чтобы избежать слишком большой ошибки.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Эрнст Полхаузен, Расчет собственных колебаний статически определенных ферм , ZAMM - Журнал прикладной математики и механики 1, 28-42 (1921).
- ^ Jump up to: а б Деммель, Джеймс В. (1997), Прикладная числовая линейная алгебра , Филадельфия, Пенсильвания: Общество промышленной и прикладной математики , ISBN 0-89871-389-7 , МР 1463942 .
- ^ Jump up to: а б Ллойд Н. Трефетен и Дэвид Бау, Численная линейная алгебра (SIAM, 1997).