Простейший метод поиска максимального собственного значения - простые итерации. Произвольный вектор умножается на матрицу, произведение нормируется, далее опять и так до сходимости. Скорость зависит от того, насколько старшее собственное значение отделено от следующего по величине. Поскольку для умножения матрицы на вектор достаточно доступа к значением её элементов - тут работать будет.
Однако, в случае пары комплексно-сопряжённых значений будут проблемы. Сходимости вектора не будет.
В этом случае, начиная с некоторой итерации, три последовательных вектора будут линейно зависимы. Найдя коэффициенты линейной комбинации их, получим алгебраическое уравнение, корнями которого будут искомые комплексно-сопряжённые значения
(Уилкинсон, "Алгебраическая проблема собственных значений", с. 501)
Для нахождения коэффициентов линейной комбинации следует использовать метод наименьших квадратов.
-- Пн окт 25, 2010 15:13:36 --PaviaЭто Вы изволили описать метод одновременных итераций. Он полезен в том случае, когда несколько наибольших с.з. равны или близки по модулю. Однако после первой итерации надеяться на сходимость не стоит. Это итеративный метод. Просто на матрицу А умножается не вектор, а матрица, одна из размерностей которой равна размерности А, а другая мала и соответствует числу одновременно отыскиваемых с.з. После умножения столбцы матрицы-произведения ортогонализуются (для чего и находятся произведение данной матрицы на транспонированную к ней и собственные вектора и числа этого произведения) и делается итерация с уже ортогонализованными столбцами
(Уилкинсон и Райнш, "Справочник алгоритмов на языке Алгол").