Итерация фактора Рэлея - Rayleigh quotient iteration

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

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

Алгоритм

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

Вычислить следующее приближение собственного вектора по формуле


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

Чтобы вычислить более одного собственного значения, алгоритм можно комбинировать с методом дефляции.

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

пример

Рассмотрим матрицу

для которых точные собственные значения равны , и с соответствующими собственными векторами

, и .

(где золотое сечение).

Наибольшее собственное значение соответствует любому собственному вектору, пропорциональному

Начнем с предположения о начальном собственном значении

.

Тогда первая итерация дает

вторая итерация,

и третий,

откуда очевидна кубическая сходимость.

Реализация октавы

Ниже приводится простая реализация алгоритма в Octave .

function x = rayleigh(A, epsilon, mu, x)
  x = x / norm(x);
  % the backslash operator in Octave solves a linear system
  y = (A - mu * eye(rows(A))) \ x; 
  lambda = y' * x;
  mu = mu + 1 / lambda
  err = norm(y - lambda * x) / norm(y)

  while err > epsilon
    x = y / norm(y);
    y = (A - mu * eye(rows(A))) \ x;
    lambda = y' * x;
    mu = mu + 1 / lambda
    err = norm(y - lambda * x) / norm(y)
  end

end

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

Ссылки

  • Ллойд Н. Трефетен и Дэвид Бау, III, Численная линейная алгебра , Общество промышленной и прикладной математики, 1997. ISBN  0-89871-361-7 .
  • Райнер Кресс, «Численный анализ», Springer, 1991. ISBN  0-387-98408-9