Обратная итерация - Inverse iteration

В численный анализ, обратная итерация (также известный как метод обратной мощности) является итеративный алгоритм собственных значений. Это позволяет найти примернуюсобственный вектор когда приближение к соответствующему собственное значение уже известен. Метод концептуально аналогичен силовой метод Похоже, что изначально он был разработан для вычисления резонансных частот в области строительной механики.[1]

Алгоритм обратной степенной итерации начинается с приближения для собственное значение соответствующий желаемому собственный вектор и вектор , либо случайно выбранный вектор, либо приближение к собственному вектору. Метод описывается итерацией

где - некоторые константы, обычно выбираемые как Поскольку собственные векторы определены с точностью до умножения на константу, выбор теоретически может быть произвольным; практические аспекты выбора обсуждаются ниже.

На каждой итерации вектор умножается на матрицу и нормализованный. Это точно такая же формула, что и в силовой метод, кроме замены матрицы от Чем ближе приближение к собственному значению выбирается, тем быстрее алгоритм сходится; однако неправильный выбор может привести к медленной сходимости или к сходимости к собственному вектору, отличному от желаемого. На практике этот метод используется, когда известно хорошее приближение для собственного значения, и, следовательно, требуется всего несколько (довольно часто всего одна) итерация.

Теория и конвергенция

Основная идея итерация мощности выбирает начальный вектор (либо собственный вектор приближение или случайный вектор) и итеративно вычисляя . За исключением набора нуля мера, для любого начального вектора результат будет сходиться к собственный вектор соответствующий доминирующему собственное значение.

Обратная итерация делает то же самое для матрицы , поэтому он сходится к собственному вектору, соответствующему доминирующему собственному значению матрицы . Собственные значения этой матрицы: где собственные значения .Наибольшее из этих чисел соответствует наименьшему из Собственные векторы и из такие же, поскольку

Заключение: Метод сходится к собственному вектору матрицы соответствующему ближайшему собственному значению к

В частности, принимая Мы видим, что сходится к собственному вектору, соответствующему собственному значению с наименьшим абсолютным значением[требуется разъяснение ].

Скорость схождения

Разберем скорость сходимости метода.

В силовой метод известно сходятся линейно до предела, точнее:

следовательно, для метода обратной итерации аналогичный результат звучит так:

Это ключевая формула для понимания сходимости метода. Это показывает, что если выбирается достаточно близко к некоторому собственному значению , Например каждая итерация будет повышать точность раз. (Мы используем это для достаточно малых "ближайший к "и" ближайший к "то же самое.) Для достаточно маленьких это примерно так же, как . Следовательно, если можно найти , так что будет достаточно маленьким, тогда может быть достаточно нескольких итераций.

Сложность

Алгоритм обратной итерации требует решения линейная система или вычисление обратной матрицы. Для неструктурированных матриц (не разреженных, не теплицевых, ...) это требует операции.

Варианты реализации

Метод определяется формулой:

Однако есть несколько вариантов его реализации.

Вычислить обратную матрицу или решить систему линейных уравнений

Мы можем переписать формулу следующим образом:

подчеркивая, что найти следующее приближение мы можем решить систему линейных уравнений. Есть два варианта: один может выбрать алгоритм, решающий линейную систему, или один может вычислить обратную а затем примените его к вектору. Оба варианта имеют сложность На3), точное количество зависит от выбранного метода.

Выбор зависит также от количества итераций. Наивно, если на каждой итерации решать линейную систему, сложность будет к * O (п3), где k - количество итераций; аналогично, вычисление обратной матрицы и ее применение на каждой итерации представляет собой сложную задачу. к * O (п3)Отметим, однако, что если оценка собственного значения остается постоянным, то мы можем уменьшить сложность до На3) + k * O (n2) с помощью любого метода. Вычисление обратной матрицы один раз и сохранение ее для применения на каждой итерации представляет собой сложную задачу. На3) + k * O (n2).Сохранение LU разложение из и используя прямая и обратная замена решать систему уравнений на каждой итерации тоже сложно На3) + k * O (n2).

Инверсия матрицы обычно имеет более высокую начальную стоимость, но меньшую стоимость на каждой итерации. И наоборот, решение систем линейных уравнений обычно требует меньших начальных затрат, но требует больше операций для каждой итерации.

Тридиагонализация, Форма Гессенберга

Если необходимо выполнить много итераций (или несколько итераций, но для многих собственных векторов), тогда может быть разумным вывести матрицу на верхний уровень. Форма Гессенберга первый (для симметричной матрицы это будет трехдиагональная форма ). Что стоит арифметические операции с использованием техники, основанной на Сокращение домовладельцев ), с конечной последовательностью ортогональных преобразований подобия, что-то вроде двустороннего QR-разложения.[2][3] (Для QR-разложения вращения Хаусхолдера умножаются только слева, но для случая Хессенберга они умножаются как слева, так и справа.) симметричные матрицы эта процедура стоит арифметические операции с использованием техники, основанной на редукции Хаусхолдера.[2][3]

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

Также преобразование в Форма Гессенберга включает извлечение квадратного корня и операцию деления, которые не всегда поддерживаются оборудованием.

Выбор константы нормализации

На процессорах общего назначения (например, производства Intel) время выполнения сложения, умножения и деления примерно одинаково. Но на встроенном и / или оборудовании с низким энергопотреблением (цифровые сигнальные процессоры, FPGA, ASIC ) разделение может не поддерживаться аппаратными средствами, поэтому его следует избегать. Выбор позволяет быстрое деление без явной аппаратной поддержки, так как деление на степень 2 может быть реализовано как битовый сдвиг (для арифметика с фиксированной точкой ) или вычитание от экспоненты (для арифметика с плавающей запятой ).

При реализации алгоритма с использованием арифметика с фиксированной точкой, выбор постоянной особенно важно. Небольшие значения приведут к быстрому росту нормы и чтобы переполнение; большие значения вызовет вектор стремиться к нулю.

Применение

Основное применение метода - это ситуация, когда найдено приближение к собственному значению и необходимо найти соответствующий приближенный собственный вектор. В такой ситуации обратная итерация является основным и, вероятно, единственным методом использования.

Методы поиска приближенных собственных значений

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

Бывают ситуации, когда метод можно использовать сам по себе, однако они весьма незначительны.

Норма матрицы как приближение к доминирующий собственное значение

Доминирующее собственное значение легко оценить для любой матрицы. Для любого индуцированная норма правда, что для любого собственного значения . Итак, взяв норму матрицы в качестве приближенного собственного значения, можно увидеть, что метод сходится к доминирующему собственному вектору.

Оценки на основе статистики

В некоторых приложениях реального времени нужно находить собственные векторы для матриц со скоростью в миллионы матриц в секунду. В таких приложениях, как правило, статистика матриц известна заранее, и в качестве приближенного собственного значения можно принять среднее собственное значение для некоторой большой выборки матрицы. Лучше можно рассчитать среднее отношение собственных значений к следу или норме матрицы. и оценивают среднее собственное значение как след или норму, умноженную на среднее значение этого отношения. Очевидно, что такой метод можно использовать только по своему усмотрению и только тогда, когда высокая точность не является критичной. Этот подход к оценке среднего собственного значения можно комбинировать с другими методами, чтобы избежать чрезмерно большой ошибки.

Смотрите также

использованная литература

  1. ^ Эрнст Польхаузен, Berechnung der Eigenschwingungen statisch-bestimmter Fachwerke, ZAMM - Zeitschrift für AngewandteMathematik und Mechanik 1, 28-42 (1921).
  2. ^ а б Деммель, Джеймс У. (1997), Прикладная числовая линейная алгебра, Филадельфия, Пенсильвания: Общество промышленной и прикладной математики, ISBN  0-89871-389-7, Г-Н  1463942.
  3. ^ а б Ллойд Н. Трефетен и Дэвид Бау, Числовая линейная алгебра (СИАМ, 1997).