agent150 Для отыскания собственного вектора, соответствующего данному собственному значению (которое мы реально нашли, решая некую систему уравнений - т.е., приближенно), мы решаем здоровенную систему линейных уравнений, так что, конечно, найденный собственный вектор будет собственным лишь "приближенно". Прогоняя его по вашей процедуре, мы получим, вообше говоря, еще более худшее приближение, при многократной процедуре - совсем плохое.
Вопрос: как от этого избавиться?
Т.е., у вас есть метод, который портит решения. А вы не хотите их портить . Как этого добиться?
Ответ: не применять этот метод.
Но если все-таки надо применять, то сделайте так: сосчитайте все, как считали. А потом выбросьте это на фиг, и замените исходным вектором.
Другое дело если вы хототе найти с.в-р поточнее. Вообще, метод прогонки обычно дает приемлемую точность. Может, имеет смысл его как то модифицировать под вашу специфическую матрицу (в порядке бреда - разорвать по середине, и устроить "прогонку к краям"?)
И еще: для сжимающего оператора Ваша процедура, вообще говоря, действительно должна бы давать улучшение решения. Но: "большие числа" - говорит о том, что сжимаемости нет....