|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
П 4.1 Метод Данилевского для нахождения собственных значений и собственных векторов
Рассмотрим метод Данилевского. Этот метод основан на том, что преобразование подобия не изменяет характеристического многочлена матрицы А [10]. Матрицы, связанные преобразованием подобия, имеют одинаковые спектры. Поэтому, удачно подобрав преобразование подобия, можно получить матрицу, собственный многочлен, который записывается непосредственно по ее виду. М.А. Данилевский предложил исходную матрицу А приводить преобразованием подобия к так называемой канонической форме Фробениуса.
. (1)
Характеристический полином матрицы Ф можно записать
. (2)
Таким образом, элементы первой строки матрицы Фробениуса являются соответствующими коэффициентами ее собственного многочлена, а значит, и собственного многочлена исходной матрицы А, связанной с матрицей Ф преобразованием подобия:
. (3)
Решая уравнение
, (4)
найдем собственные значения матриц Фробениуса и А. Следовательно, основная задача сводится к отысканию матрицы S, которая обеспечивает преобразование подобия от матрицы A к матрице Ф. Рассмотрим эти преобразования и построим матрицу Фробениуса. Возьмем единичную матрицу, размерность которой соответствует размерности матрицы А. В единичной матрице n – 1 строка заменяется строкой, сформированной из элементов n -ой строки матрицы А, взятых с противоположным знаком, после их деления на элемент . Только элемент n – 1 столбца формируется по-иному. В эту позицию выставляется элемент, обратный элементу . Получим матрицу .
Умножение матрицы А справа на матрицу дает матрицу , в которой последняя строка принимает нужный вид, т.е. совпадает с последней строкой матрицы Фробениуса. Затем полученную матрицу умножим слева на матрицу (обратную), которая существует, так как , т.е в единичной матрице (n – 1)- строка заменяется n -строкой исходной матрицы А.
.
Очевидно, что преобразование не изменяет последнюю строку матрицы . Таким образом, после выполнения первого шага метода Данилевского, получаем матрицу :
.
При этом матрицы и записываются непосредственно по виду матрицы А. Второй шаг метода Данилевского аналогичен первому. Приведем вторую снизу строку матрицы к форме Фробениуса при сохранении неизменной первой снизу строки. Для этого проводим преобразование: , где
. .
Итак, если , то после n–1 шагов будем иметь:
, (5) где матрицы формируются из единичной матрицы заменой элементов n–i строки на элементы, полученные делением элементов n–i+1 строки матрицы А, взятых с противоположным знаком, на n–i элемент столбца из этой строки. Преобразование (5) можно записать следующим образом:
Тем самым исходная матрица А посредством преобразования подобия с матрицей будет приведена к канонической форме Фробениуса, по виду первой строки которой записывается собственный многочлен: . Решая уравнения (4), найдем собственные значения матрицы Ф, а следовательно и матрицы А. Пример 1. С помощью преобразования подобия привести матрицу А к канонической форме Фробениуса. Найти собственные значения матрицы А. . Решение: Первый этап , , . Второй этап , . Третий этап ,
, . Первая строка матрицы Ф определяет коэффициенты характеристического уравнения матрицы А, которое имеет вид . Корни этого уравнения являются собственными значениями матрицы Ф, а следовательно матрицы А. Решаем уравнение, получаем . Найдем собственные векторы матрицы А. Собственные векторы матриц Ф и А, принадлежащие одним и тем же собственным значениям, будут различны, но между ними существует связь [10]. Если Х – собственный вектор матрицы А, принадлежащий собственному значению l, а вектор Y – собственный вектор матрицы Фробениуса , принадлежащий тому же собственному значению λ, то вектор SY также будет собственным вектором матрицы А, соответствующим собственному значению l, т.е. X = SY. Действительно, так как ФY = lY и , то следовательно . Умножая это равенство слева на матрицу S, получаем , учитывая, что , имеем
X = SY. (6)
Итак, собственные векторы матрицы А легко определить по соответствующим собственным векторам матрицы Ф. Найдем собственные векторы матрицы Ф. Имеем ФY=lY Û
.
Отсюда получаем систему
. (7)
Так как собственный вектор матрицы определен с точностью до постоянного множителя, то полагаем . Тогда из предыдущих равенств системы можно последовательно найти остальные координаты вектора Y
. (8)
Равенство можно использовать для контроля вычислений . Собственный вектор , соответствующий числу , определяется равенством:
, (9)
где - собственный вектор матрицы Фробениуса, соответствующий собственному значению li. Отдельные координаты вектора находим из равенства (9), в предположении, что .
Пример 2. Найти собственные векторы матрицы из предыдущего примера.
Решение: Матрица Фробениуса построена
.
Собственные значения найдены . Найдем собственные вектора матрицы А. Матрица подобия имеет вид . Собственные векторы матрицы Фробениуса: , , , .
Собственные векторы матрицы А
, , , .
Пример 3. В рамках метода Данилевского реализовать операцию перемножения матриц. Данный метод описан в матричном классе «SquareMatrix». Реализация на языке программирования С++ может иметь следующий вид:
SquareMatrix SquareMatrix:: operator *(SquareMatrix B){ int n = this->size; int m = B.getColCount(); /* Объявление результирующей матрицы*/ double **C = new double*[n]; for (int i=0; i < n; i++){ C[i] = new double[m]; } /* Вычисление произведения матриц*/ for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++){ for (int k = 0; k < n; k++){ C[i][j]+=this->elements[i][k]*B.elements[k][j]; } } } /* Создание матрицы*/ return SquareMatrix(n, C); }; Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.019 сек.) |