Численное решение алгебраических проблем собственных значений
Численное решение алгебраических проблем собственных значений: степенной метод.
Екатеринбург 2006
Введение
Выбор наиболее эффективного метода определения собственных значений и собственных векторов для конкретной инженерной задачи зависит от ряда факторов, таких, как тип уравнений, число искомых собственных значений и их характер. Различают полную (алгебраическую) проблему собственных значений, предполагающую нахождение всех собственных пар {λ, v} матрицы А, и частичную проблему собственных значений, состоящую как правило, в нахождении одного или нескольких собственных чисел λ и, соответствующих им собственных векторов v. Достаточно часто возникают задачи поиска наибольшего и наименьшего по модулю собственных значений квадратной матрицы – знание таких характеристик матрицы позволяют, например, делать заключения о сходимости итерационных процессов, оптимизировать параметры итерационных методов, учитывать влияние на результаты решения алгебраических задач погрешностей исходных данных. Другой пример: имеется матрица размера 5000*5000, в каждой строке которой содержится порядка десяти отличных от нуля элементов (разреженная матрица), и требуется найти только несколько, может быть, четыре или пять, собственных значений. Нахождение всех собственных пар разреженной матрицы представляет собой достаточно сложную вычислительную проблему.
Итерационные методы позволяют находить собственные значения и векторы, минуя процедуру построения характеристического полинома. Отличительной чертой этих методов является то, что собственные значения находятся лишь после определения собственных векторов. Рассмотрим метод, который позволяет найти наибольшее по модулю собственное значение матрицы и соответствующий собственный вектор - степенной метод.
Степенной метод
Классическим методом, который иногда оказывается полезным для больших разреженных систем, хотя и страдает серьезными недостатками, является степенной метод. Предположим, что собственные значения матрицы вещественны и удовлетворяют условию
(1)
При заданном векторе рассмотрим последовательность
(2)
Предположим, что матрица имеет n линейно независимых собственных векторов соответствующих собственным значениям (это имеет место, например, в случае симметричной матрицы А). Разложим по собственным векторам:
Пусть , тогда, учитывая (2):
Разделим обе части равенства на λ>1>k ≠ 0.
В силу (1) все множители стремятся к нулю при k→ ∞ и вектор по направлению приближается к собственному вектору :
при k→ ∞, (4)
Если , то норма вектора будет при этом стремиться к нулю, либо неограниченно возрастать, если . На практике вычисляемые векторы нормируют на каждой итерации, а в качестве критерия окончания процесса используют условие:
.
Формульно-словесное описание метода:
Выбираем : , k=0, ε – точность вычисления компонент собственного вектора
k = k+1
Вычисляем
Ищем координату :
Образуем вектор
Если , то собственным значением является ;
= ; в противном случае перейти к п. 2.
Существует модификация степенного метода, которая отличается от предыдущего алгоритма критерием остановки итерационного процесса.
Формульно-словесное описание метода:
Выбираем : , k=0, ε – точность вычисления максимального по модулю собственного значения, - некоторый допуск (близость к нулю компонент вектора );
k = k+1;
Вычисляем ;
Ищем координату : ;
Образуем вектор ;
Вычисляем для таких i, что , где - допуск;
Если , то собственным значением является , где j – число индексов, для которых выполняется условие ; в противном случае перейти к п. 2.
Основным достоинством степенного метода является то, что векторы получаются только с помощью умножения матрицы на вектор (плюс некоторая работа по вычислению нормирующих множителей); никаких преобразований самой матрицы при этом не требуется. Главный недостаток этого метода заключается в том, что он может сходиться очень медленно. Скорость сходимости в первую очередь определяется отношением . Если это отношение по модулю близко к 1, что характерно для многих практических задач, то сходимость будет медленной.
Степенной метод имеет и другие недостатки. Если имеется несколько собственных значений с максимальным модулем, например (а так всегда бывает в случае вещественной матрицы с доминирующей парой комплексно-сопряженных собственных значений), то итерационная последовательность (2) вообще не сходится.
Задание на лабораторную работу
Цель работы: изучение степенных методов расчета максимального по модулю собственного значения и соответствующего собственного вектора квадратной матрицы.
Ознакомиться со степенным методом вычисления максимального по модулю собственного значения матрицы A и его модификациями.
Составить и отладить программы, рассчитывающие максимальное по модулю собственное значение и соответствующий ему собственный вектор матрицы А произвольной.
Элементы матрицы А должны считываться из файла, точность расчета ε вводится с клавиатуры.
При проверке работоспособности программ для n=2 и n=3 выполнить ручной расчет собственных значений и собственных векторов матрицы А.
Нахождение собственных векторов и собственных значений следует провести, используя самостоятельно составленные и предложенные ниже тестовые примеры:
, ,.
При заданной точности расчета ε фиксировать выполненное число итераций k.
Составить отчет, который должен содержать следующие разделы:
описание степенного метода и его модификаций
описание исходных данных
схемы-алгоритмов
тексты программ;
результаты расчетов тестовых примеров с использованием разработанных программ;
анализ полученных результатов, выводы по работе;
список литературы.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Вержбицкий В.М. Основы численных методов: Учебник для вузов. – М.: Высш. шк., 2002. – 840с.
Волков Е.А. Численные методы: Учебное пособие. – 3-е изд., испр. – СПб: Лань, 2004. – 248с.
Кетков Ю.Л. MATLAB 6: программирование численных методов. – СПб.: БВХ-Петербург, 2004. – 672с.
Турчак Л.И. Основы численных методов: Учебное пособие. – М.: Наука. Гл. ред. физ.-мат. лит., 1987. – 320с.