Итерация фактора Рэлея
Итерация коэффициента Рэлея — это алгоритм собственных значений , который расширяет идею обратной итерации за счет использования коэффициента Рэлея для получения все более точных оценок собственных значений .
Итерация по фактору Рэлея — это итеративный метод , то есть он дает последовательность приближенных решений, которая сходится в пределе к истинному решению. Гарантируется очень быстрая сходимость, и на практике для получения разумного приближения требуется не более нескольких итераций. Алгоритм итерации фактора Рэлея сходится кубически эрмитовых или симметричных матриц, если исходный вектор достаточно близок к собственному вектору матрицы для анализируемой .
Алгоритм
[ редактировать ]Алгоритм очень похож на обратную итерацию, но в конце каждой итерации расчетное собственное значение заменяется коэффициентом Рэлея. Начните с выбора некоторого значения как начальное предположение о собственном значении для эрмитовой матрицы . Начальный вектор также должно быть предоставлено в качестве начального предположения о собственном векторе.
Вычислить следующее приближение собственного вектора к
где - единичная матрица,
и присвоим очередное приближение собственного значения к коэффициенту Рэлея текущей итерации, равное
Чтобы вычислить более одного собственного значения, алгоритм можно комбинировать с методом дефлятирования.
Обратите внимание, что для очень маленьких задач полезно заменить обратную матрицу на адъюгату , которая даст ту же итерацию, поскольку она равна обратной матрице до нерелевантного масштаба (в частности, обратной определителю). Сопряженное легче вычислить явно, чем обратное (хотя обратное легче применить к вектору для немалых задач), и оно более корректно с численной точки зрения, поскольку оно остается четко определенным при сходимости собственного значения.
Пример
[ редактировать ]Рассмотрим матрицу
для которого точные собственные значения равны , и , с соответствующими собственными векторами
- , и .
(где это золотое сечение).
Наибольшее собственное значение и соответствует любому собственному вектору, пропорциональному
Начнем с первоначального предположения о собственном значении
- .
Тогда первая итерация дает
вторая итерация,
и третий,
откуда очевидна кубическая сходимость.
Октавная реализация
[ редактировать ]Ниже представлена простая реализация алгоритма в 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