Русская Википедия:Алгоритм вычисления собственных значений

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Алгоритм вычисления собственных значений — алгоритм, позволяющий определить собственные значения и собственные векторы заданной матрицы. Создание эффективных и устойчивых алгоритмов для этой задачи является одной из ключевых задач вычислительной математики.

Собственные значения и собственные векторы

Шаблон:Main Если задана Шаблон:Math квадратная матрица Шаблон:Math над вещественными или комплексными числами, то собственное значение Шаблон:Math и соответствующий ему корневой вектор Шаблон:Math — это пара, удовлетворяющая равенству[1]:

<math>\left(A - \lambda E\right)^k {\mathbf v} = 0,</math>

где Шаблон:Math ненулевой Шаблон:Math вектор-столбец, Шаблон:Math является Шаблон:Math единичной матрицей, Шаблон:Math — положительным целым, а Шаблон:Math и Шаблон:Math могут быть комплексными, даже если Шаблон:Math вещественна. Если Шаблон:Math, вектор просто называется собственным вектором. В этом случае Шаблон:Math. Любое собственное значение Шаблон:Math матрицы Шаблон:Math имеет простой[note 1] собственный вектор, соответствующий ему так, что если Шаблон:Math — наименьшее целое, при котором Шаблон:Math для корневого вектора Шаблон:Math, то Шаблон:Math будет простым собственным вектором. Значение Шаблон:Math всегда можно взять меньше либо равным Шаблон:Math. В частности, Шаблон:Math для всех корневых векторов Шаблон:Math, соответствующих Шаблон:Math

Для любого собственного значения Шаблон:Math матрицы Шаблон:Math ядро Шаблон:Math состоит из всех собственных векторов, соответствующих Шаблон:Math, (вместе с 0) и называется собственным подпространством числа Шаблон:Math, а векторное подпространство Шаблон:Math состоит из всех корневых векторов (дополненное нулевым вектором) и называется корневым подпространством. Геометрическая кратность значения Шаблон:Math является размерностью его собственного подпространства. Алгебраическая кратность значения Шаблон:Math является размерностью его корневого подпространства. Дальнейшие термины связаны с равенством:

<math>p_A\left(z\right) = {\rm det}\left( zE - A \right) = \prod_{i=1}^k (z - \lambda_i)^{\alpha_i},</math>

Здесь Шаблон:Math — определитель, Шаблон:Math — все различные собственные значения матрицы Шаблон:Math, а Шаблон:Math — соответствующие алгебраические кратности. Функция Шаблон:Math — это характеристический многочлен матрицы Шаблон:Math. Таким образом, алгебраическая кратность является кратностью собственных значений как корней характеристического многочлена. Поскольку любой собственный вектор является корневым вектором, геометрическая кратность меньше либо равна алгебраической кратности. Сумма алгебраических кратностей равна Шаблон:Math степени характеристического многочлена. Уравнение Шаблон:Math называется характеристическим уравнением, поскольку его корни являются в точности собственными значениями матрицы Шаблон:Math. По теореме Гамильтона — Кэли сама матрица Шаблон:Math удовлетворяет тому же самому уравнению: Шаблон:Math[note 2]. Как следствие, столбцы матрицы <math>\textstyle \prod_{i \ne j} (A - \lambda_iE)^{\alpha_i}</math> должны быть либо 0, либо корневыми векторами, соответствующими собственному значению Шаблон:Math, поскольку они уничтожаются матрицей <math>\textstyle (A - \lambda_jE)^{\alpha_j}.</math>

Любой набор корневых векторов различных собственных значений линейно независим, так что базис для всего Шаблон:Math можно выбрать из набора корневых векторов. Точнее этот базис Шаблон:Math можно выбрать и выстроить так, что:

Если эти базисные вектора расположить как столбцы матрицы Шаблон:Math, то Шаблон:Math можно использовать для преобразования матрицы Шаблон:Math в её нормальную жорданову форму:

<math>V^{-1}AV = \begin{bmatrix} \lambda_1 & \beta_1 & 0 & \ldots & 0 \\ 0 & \lambda_2 & \beta_2 & \ldots & 0 \\ 0 & 0 & \lambda_3 & \ldots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \ldots & \lambda_n \end{bmatrix},</math>

где Шаблон:Math — собственные значения, Шаблон:Math если Шаблон:Math и Шаблон:Math в других случаях.

Если Шаблон:Math является обратимой матрицей и Шаблон:Math — собственное значение матрицы Шаблон:Math с соответствующим корневым вектором Шаблон:Math, то Шаблон:Math. Таким образом, Шаблон:Math является собственным значением матрицы Шаблон:Math с соответствующим корневым вектором Шаблон:Math. Таким образом, подобные матрицы имеют те же самые собственные значения.

Нормальные, эрмитовы и вещественные симметричные матрицы

Шаблон:Main

Эрмитово-сопряжённая матрица Шаблон:Math к комплексной матрице Шаблон:Math — это траспонированная матрица с заменой всех элементов на сопряжённые значения: Шаблон:Math. Квадратная матрица Шаблон:Math называется нормальной, если она коммутирует с эрмитово-сопряжённой: Шаблон:Math. Матрица называется эрмитовой, если она равна своей сопряжённой: Шаблон:Math. Все эрмитовы матрицы нормальны. Если Шаблон:Math имеет только вещественные элементы, то сопряжённая к ней — это просто транспонированная матрица, и она будет эрмитовой в том и только в том случае, когда она симметрична. Если применить это к столбцам, сопряжённость можно использовать для определения канонического скалярного произведения в Шаблон:Math: Шаблон:Math[note 3]. Нормальные, эрмитовы и вещественные симметричные матрицы имеют ряд полезных свойств:

  • Каждый корневой собственный вектор нормальной матрицы является простым собственным вектором.
  • Любая нормальная матрица подобна диагональной, поскольку её нормальная жорданова форма является диагональной матрицей.
  • Собственные вектора, соответствующие различным собственным значениям нормальной матрицы, ортогональны.
  • Для любой нормальной матрицы Шаблон:Math Шаблон:Math имеет ортонормальный базис, состоящий из собственных векторов матрицы Шаблон:Math. Соответствующая матрица собственных векторов является унитарной.
  • Собственные значения эрмитовой матрицы являются вещественными числами, поскольку Шаблон:Math для ненулевого собственного вектора Шаблон:Math.
  • Если матрица Шаблон:Math вещественна, существует ортонормальный базис для Шаблон:Math, состоящий из собственных векторов матрицы Шаблон:Math, в том и только в том случае, когда Шаблон:Math симметрична.

Возможно как для вещественных, так и для комплексных матриц иметь все собственные значения вещественными, не будучи при этом эрмитовой матрицей. Например, вещественная треугольная матрица имеет все свои собственные значения на диагонали, но, в общем случае, не симметрична.

Число обусловленности

Любую задачу вычислительной математики можно рассматривать как вычисление некоторой функции ƒ от некоторого аргумента Шаблон:Math. Число обусловленности Шаблон:Math задачи — это отношение относительной ошибки результата вычисления к относительной ошибке параметра функции и зависит как от функции, так и от параметра. Число обусловленности описывает насколько возрастает ошибка во время вычислений. Десятичный логарифм этого числа говорит о количестве знаков, которые мы теряем по отношению к исходным данным. Число обусловленности относится к наилучшему сценарию, отражая нестабильность самой задачи, независимо от способа решения. Никакой алгоритм не может дать результат лучше, чем определённый числом обусловленности, разве что случайно. Однако плохо разработанный алгоритм может дать существенно более плохие результаты. Например, как будет упомянуто ниже, задача нахождения собственных значений нормальной матрицы всегда хорошо обусловлена, однако задача нахождения корней многочлена может быть Шаблон:Не переведено 5. Такие алгоритмы вычисления собственных значений, которые работают путём нахождения корней характеристического многочлена, могут оказаться плохо обусловленными, даже если сама задача хорошо обусловлена.

Для задачи решения системы линейных уравнений Шаблон:Math, где Шаблон:Math является обратимой, число обусловленности Шаблон:Math определяется выражением Шаблон:Math, где Шаблон:Nowrap — операторная норма, подчинённая обычной евклидовой норме на Шаблон:Math. Поскольку это число не зависит от Шаблон:Math и является тем же самым как для Шаблон:Math, так и для Шаблон:Math, оно обычно называется числом обусловленности Шаблон:Math матрицы Шаблон:Math. Это значение Шаблон:Math является также абсолютным значением отношения наибольшего собственного значения матрицы Шаблон:Math к её наименьшему собственному значению. Если Шаблон:Math является унитарной, то Шаблон:Math, так что Шаблон:Math. В общем случае для матриц часто сложно вычислить операторную норму. По этой причине обычно используют другие нормы матрицы для оценки числа обусловленности.

Для задачи вычисления собственных значений Шаблон:Не переведено 5, что если Шаблон:Math является собственным значением диагонализируемой Шаблон:Math матрицы Шаблон:Math с матрицей собственных векторов Шаблон:Math, то абсолютная ошибка вычисления Шаблон:Math ограничена произведением Шаблон:Math и абсолютной ошибкой в Шаблон:Math: <math>\;\;|\delta \lambda| \leqslant \kappa_{op}(V)\|\delta A\|_{op}</math> [2]. Как следствие, число обусловленности для вычисления Шаблон:Math равно Шаблон:Math. Если матрица Шаблон:Math нормальна, то Шаблон:Math является унитарной и Шаблон:Math. Таким образом, задача вычисления собственных значений нормальных матриц хорошо обусловлена.

Было показано, что число обусловленности задачи вычисления собственного подпространства нормальной матрицы Шаблон:Math, соответствующего собственному значению Шаблон:Math, обратно пропорционально минимальному расстоянию между Шаблон:Math и другими, отличными от Шаблон:Math, собственными значениями матрицы Шаблон:Math[3]. В частности, задача определения собственного подпространства для нормальных матриц хорошо обусловлена для изолированных собственных значений. Если собственные значения не изолированы, лучшее, на что мы можем рассчитывать, это определение подпространства всех собственных векторов близлежащих собственных значений.

Алгоритмы

Любой нормированный многочлен является характеристическим многочленом сопровождающей матрицы, поэтому алгоритм для вычисления собственных значений можно использовать для нахождения корней многочленов. Теорема Абеля — Руффини показывает, что любой такой алгоритм для размерности большей 4 должен либо быть бесконечным, либо вовлекать функции более сложные, чем элементарные арифметические операции или дробные степени. По этой причине алгоритмы, вычисляющие точно собственные значения за конечное число шагов, существуют только для специальных классов матриц. В общем случае алгоритмы являются итеративными, дающими на каждой итерации очередное приближение к решению.

Некоторые алгоритмы дают все собственные значения, другие дают несколько значений или даже всего одно, однако и эти алгоритмы можно использовать для вычисления всех собственных значений. Как только собственное значение Шаблон:Math матрицы Шаблон:Math определено, его можно использовать либо для приведения алгоритма к получению другого собственного значения, либо для сведения задачи к такой, которая не имеет Шаблон:Math в качестве решения.

Приведение обычно осуществляется сдвигом: Шаблон:Math заменяется на Шаблон:Math для некоторой константы Шаблон:Math. Собственное значение, найденное для Шаблон:Math, должно быть добавлено к Шаблон:Math, чтобы получить собственное значение матрицы Шаблон:Math. Например, в степенном методе Шаблон:Math. Итерация степенного метода находит самое большое по абсолютной величине значение, так что даже если Шаблон:Math является приближением к собственному значению, итерация степенного метода вряд ли найдёт его во второй раз. И наоборот, методы, основанные на обратных итерациях находят наименьшее собственное значение, так что Шаблон:Math выбирается подальше от Шаблон:Math в надежде оказаться ближе к какому-нибудь другому собственному значению.

Приведение можно совершить путём сужения матрицы Шаблон:Math к пространству столбцов матрицы Шаблон:Math. Поскольку Шаблон:Math вырождена, пространство столбцов имеет меньшую размерность. Алгоритм вычисления собственных значений можно тогда применить к этой суженой матрице. Процесс можно продолжать, пока не будут найдены все собственные значения.

Если алгоритм не даёт к собственные значения, общей практикой является применение алгоритма, основанного на обратной итерации, с приравниванием Шаблон:Math к ближайшей аппроксимации собственного значения. Это быстро приводит к собственному вектору ближайшего к Шаблон:Math собственного значения. Для небольших матриц альтернативой служит использование столбцового подпространства произведения Шаблон:Math для каждого из остальных собственных значений Шаблон:Math

Матрицы Хессенберга и трёхдиагональные матрицы

Шаблон:Main

Поскольку собственными значениями треугольной матрицы являются диагональные элементы, в общем случае не существует конечного метода, подобного исключениям Гаусса, для приведения матрицы к треугольной форме, сохраняя при этом собственные значения, однако можно получить нечто близкое к треугольной матрице. Верхняя матрица Хессенберга — это квадратная матрица, у которой все элементы ниже первой поддиагонали равны нулю. Нижняя матрица Хессенберга — это квадратная матрица, у которой все члены выше первой наддиагонали равны нулю. Матрицы, которые являются как нижними, так и верхними матрицами Хессенберга — это трёхдиагональные матрицы. Матрицы Хессенберга и трёхдиагональные матрицы являются исходными точками многих алгоритмов вычисления собственных значений, поскольку нулевые значения уменьшают сложность задачи. Существует несколько методов сведения матриц к матрицам Хессенберга с теми же собственными значениями. Если исходная матрица симметрична или эрмитова, то результирующая матрица будет трёхдиагональной.

Если нужны только собственные значения, нет необходимости вычислять матрицу подобия, поскольку преобразованная матрица имеет те же собственные значения. Если также нужны и собственные векторы, матрица подобия необходима для преобразования собственных векторов матрицы Хессенберга к собственным векторам исходной матрицы.

Метод Применим к матрицам Результат Цена без матрицы подобия Цена с матрицей подобия Описание
Преобразования Хаусхолдера общего вида матрица Хессенберга Шаблон:Math[4] Шаблон:Math[4] Отражение каждого столбца относительно подпространства для обнуления нижних элементов столбца.
Повороты Гивенса общего вида матрица Хессенберга Шаблон:Math[4] Осуществляется плоское вращении для обнуления отдельных элементов. Вращения упорядочены так, что следующие вращения не затрагивают нулевые элементы.
Итерации Арнольди общего вида матрица Хессенберга Осуществляется ортогонализация Грама ― Шмидта на подпространствах Крылова.
Шаблон:Не переведено 5[5] эрмитова трёхдиагональная матрица Итерации Арнольди для эрмитовых матриц.

Итеративные алгоритмы

Итеративные алгоритмы решают задачу вычисления собственных значений путём построения последовательностей, сходящихся к собственным значениям. Некоторые алгоритмы дают также последовательности векторов, сходящихся к собственным векторам. Чаще всего последовательности собственных значений выражаются через последовательности подобных матриц, которые сходятся к треугольной или диагональной форме, что позволяет затем просто получить собственные значения. Последовательности собственных векторов выражаются через соответствующие матрицы подобия.

Метод Применим к матрицам Результат Цена за один шаг Сходимость Описание
Степенной метод общего вида наибольшее собственное значение и соответствующий вектор Шаблон:Math Линейная Многократное умножение матрицы на произвольно выбранный начальный вектор с последующей нормализацией.
Обратный степенной метод общего вида ближайшее к μ собственное значение и соответствующий вектор Линейная Степенная итерация с матрицей Шаблон:Math
Метод итераций Рэлея общего вида ближайшее к μ собственное значение и соответствующий вектор Кубическая Степенная итерация с матрицей Шаблон:Math где Шаблон:Math является отношением Рэлея от предыдущей итерации.
Предобусловленная обратная итерация[6] или Шаблон:Не переведено 5 положительно определённая вещественная симметричная ближайшее к μ собственное значение и соответствующий вектор Обратная итерация с предобуславливанием (приближённое обращение матрицы Шаблон:Math).
Метод деления пополам[7] вещественная симметричная трёхдиагональная любое собственное значение Линейная Использует метод бисекции для поиска корней характеристического многочлена и свойства последовательности Штурма.
Итерации Лагерра вещественная симметричная трёхдиагональная любое собственное значение Кубическая[8] Использует Шаблон:Не переведено 5 вычисления корней характеристического многочлена и свойства последовательности Штурма.
QR-алгоритм[9] хессенберга все собственные значения Шаблон:Math Кубическая Разложение A = QR, где Q ортогональная, R ― треугольная, затем используется итерация к RQ.
все собственные значения Шаблон:Math
Метод Якоби вещественная симметричная все собственные значения Шаблон:Math квадратичная Использует поворот Гивенса в попытке избавиться от недиагональных элементов. Попытка не удаётся, но усиливает диагональ.
Шаблон:Не переведено 5 эрмитова трёхдиагональная все собственные значения Шаблон:Math Матрица разбивается на подматрицы, которые диагонализируются, затем воссоединяются.
все собственные значения Шаблон:Math
Метод гомотопии вещественная симметричная трёхдиагональная все собственные значения Шаблон:Math Строится вычисляемая гомотопия.
Шаблон:Не переведено 5 вещественная симметричная ближайшее к μ собственное значение и соответствующий собственный вектор Предобусловленная обратная итерация, применённая к Шаблон:Math
Алгоритм MRRR[10] вещественная симметричная трёхдиагональная некоторые или все собственные значения и соответствующие собственные вектора Шаблон:Math «Multiple Relatively Robust Representations» — Осуществляется обратная итерация с разложением LDLT смещённой матрицы.

Прямое вычисление

Не существует простых алгоритмов прямого вычисления собственных значений для матриц в общем случае, но для многих специальных классов матриц собственные значения можно вычислить прямо. Это:

Треугольные матрицы

Поскольку определитель треугольной матрицы является произведением её диагональных элементов, то для треугольной матрицы T <math>\mathrm{det}\left ( \lambda E - T \right ) = {\prod}_i \left ( \lambda - T_{ii} \right )</math>. Таким образом, собственные значения T ― это её диагональные элементы.

Разложимые полиномиальные уравнения

Если Шаблон:Math ― любой многочлен и Шаблон:Math то собственные значения матрицы Шаблон:Math удовлетворяют тому же уравнению. Если удаётся разложить многочлен Шаблон:Math на множители, то собственные значения Шаблон:Math находятся среди его корней.

Например, проектор ― это квадратная матрица Шаблон:Math, удовлетворяющая уравнению Шаблон:Math. Корнями соответствующего скалярного полиномиального уравнения Шаблон:Math будут 0 и 1. Таким образом, проектор имеет 0 и 1 в качестве собственных значений. Кратность собственного значения 0 ― это дефект Шаблон:Math, в то время как кратность 1 ― это ранг Шаблон:Math.

Другой пример ― матрица Шаблон:Math, удовлетворяющая уравнению Шаблон:Math для некоторого скаляра Шаблон:Math. Собственные значения должны быть равны Шаблон:Math. Операторы проектирования:

<math>P_+=\frac{1}{2}\left(E+\frac{A}{\alpha}\right)</math>
<math>P_-=\frac{1}{2}\left(E-\frac{A}{\alpha}\right)</math>

удовлетворяют равенствам:

<math>AP_+=\alpha P_+ \quad AP_-=-\alpha P_-</math>

и

<math>P_+P_+=P_+ \quad P_-P_-=P_- \quad P_+P_-=P_-P_+=0.</math>

Пространства столбцов матриц Шаблон:Math и Шаблон:Math являются подпространствами собственных векторов матрицы Шаблон:Math, соответствующими Шаблон:Math и Шаблон:Math, соответственно.

Матрицы 2×2

Для размерностей от 2 до 4 существуют использующие радикалы формулы, которые можно использовать для вычисления собственных значений. Для матриц 2×2 и 3×3 это обычная практика, но для матриц 4×4 растущая сложность Шаблон:Не переведено 5 делает этот подход менее привлекательным.

Для матриц 2×2

<math>A = \begin{bmatrix} a & b \\ c & d \end{bmatrix},</math>

характеристический многочлен равен

<math>{\rm det} \begin{bmatrix} \lambda - a & -b \\ -c & \lambda - d \end{bmatrix} = \lambda^2\, -\, \left( a + d \right )\lambda\, +\, \left ( ad - bc \right ) = \lambda^2\, -\, \lambda\, {\rm tr}(A)\, +\, {\rm det}(A).</math>

Собственные значения можно найти как корни квадратного уравнения:

<math>\lambda = \frac{{\rm tr}(A) \pm \sqrt{{\rm tr}^2 (A) - 4 {\rm det}(A)}}{2}.</math>

Если определить <math>\textstyle {\rm gap}\left ( A \right ) = \sqrt{{\rm tr}^2 (A) - 4 {\rm det}(A)}</math> как расстояние между двумя собственными значениями, легко вычислить:

<math>\frac{\partial\lambda}{\partial a} = \frac{1}{2}\left ( 1 \pm \frac{a - d}{{\rm gap}(A)} \right ),\qquad \frac{\partial\lambda}{\partial b} = \frac{\pm c}{{\rm gap}(A)}</math>

с подобными формулами для Шаблон:Math и Шаблон:Math. Отсюда следует, что вычисление хорошо обусловлено, если собственные значения изолированы.

Собственные векторы можно получить, используя теорему Гамильтона — Кэли. Если Шаблон:Math — собственные значения, то Шаблон:Math, так что столбцы Шаблон:Math обнуляются матрицей Шаблон:Math и наоборот. Предполагая, что ни одна из матриц не равна нулю, столбцы каждой матрицы должны содержать собственные векторы для другого собственного значения (если же матрица нулевая, то Шаблон:Math является произведением единичной матрицы на константу и любой ненулевой вектор является собственным).

Например, пусть:

<math>A = \begin{bmatrix} 4 & 3 \\ -2 & -3 \end{bmatrix},</math>

тогда Шаблон:Math и Шаблон:Math, так что характеристическое уравнение равно

<math> 0 = \lambda^2 - \lambda - 6 = (\lambda - 3)(\lambda + 2),</math>

а собственные значения равны 3 и −2. Теперь:

<math>A - 3E = \begin{bmatrix} 1 & 3 \\ -2 & -6 \end{bmatrix}</math>, <math>\qquad A + 2E = \begin{bmatrix} 6 & 3 \\ -2 & -1 \end{bmatrix}</math>

В обеих матрицах столбцы отличаются скалярными коэффициентами, так что можно выбирать любой столбец. Так, Шаблон:Math можно использовать в качестве собственного вектора, соответствующего собственному значению −2, а Шаблон:Math в качестве собственного вектора для собственного числа 3, что легко можно проверить умножением на матрицу Шаблон:Math.

Матрицы 3×3

Если Шаблон:Math является матрицей 3×3, то характеристическим уравнением будет:

<math>{\rm det} \left( \alpha E - A \right) = \alpha^3 - \alpha^2 {\rm tr}(A) - \alpha \frac{1}{2}\left( {\rm tr}(A^2) - {\rm tr}^2(A) \right) - {\rm det}(A) = 0.</math>

Это уравнение можно решить с помощью методов Кардано или Лагранжа, но аффинное преобразование матрицы Шаблон:Math существенно упрощает выражение и ведёт прямо к тригонометрическому решению. Если Шаблон:Math, то Шаблон:Math и Шаблон:Math имеют одни и те же собственные векторы и Шаблон:Math является собственным значением матрицы Шаблон:Math тогда и только тогда, когда Шаблон:Math является собственным значением матрицы Шаблон:Math. Если положить <math>\textstyle q = {\rm tr}(A)/3</math> и <math>\textstyle p =\left({\rm tr}\left((A - qE)^2\right)/ 6\right)^{1/2}</math>, получим:

<math>{\rm det} \left( \beta E - B \right) = \beta^3 - 3 \beta - {\rm det}(B) = 0.</math>

Подстановка Шаблон:Math и некоторое упрощение с использованием тождества Шаблон:Math сводит уравнение к Шаблон:Math. Таким образом,

<math>\beta = 2{\rm cos}\left(\frac{1}{3}{\rm arccos}\left( {\rm det}(B)/2 \right) + \frac{2k\pi}{3}\right), \quad k = 0, 1, 2.</math>

Если Шаблон:Math является комплексным числом или больше 2 по абсолютной величине, арккосинус для всех трёх величин Шаблон:Math следует брать из одной и той же ветви. Проблема не возникает, если Шаблон:Math вещественна и симметрична, приводя к простому алгоритму:[11]

% Given a real symmetric 3x3 matrix A, compute the eigenvalues

p1 = A(1,2)^2 + A(1,3)^2 + A(2,3)^2
if (p1 == 0) 
   % A is diagonal.
   eig1 = A(1,1)
   eig2 = A(2,2)
   eig3 = A(3,3)
else
   q = trace(A)/3
   p2 = (A(1,1) - q)^2 + (A(2,2) - q)^2 + (A(3,3) - q)^2 + 2 * p1
   p = sqrt(p2 / 6)
   B = (1 / p) * (A - q * E)       % E is the identity matrix
   r = det(B) / 2

   % In exact arithmetic for a symmetric matrix  -1 <= r <= 1
   % but computation error can leave it slightly outside this range.
   if (r <= -1) 
      phi = pi / 3
   elseif (r >= 1)
      phi = 0
   else
      phi = acos(r) / 3
   end

   % the eigenvalues satisfy eig3 <= eig2 <= eig1
   eig1 = q + 2 * p * cos(phi)
   eig3 = q + 2 * p * cos(phi + (2*pi/3))
   eig2 = 3 * q - eig1 - eig3     % since trace(A) = eig1 + eig2 + eig3
end

Снова, собственные векторы Шаблон:Math можно получить путём использования теоремы Гамильтона — Кэли. Если Шаблон:Math — различные собственные значения матрицы Шаблон:Math, то Шаблон:Math. Тогда столбцы произведения любых двух из этих матриц содержат собственные векторы третьего собственного значения. Однако если Шаблон:Math, то Шаблон:Math и Шаблон:Math. Таким образом, корневое собственное подпространство Шаблон:Math натянуто на столбцы Шаблон:Math, в то время как обычное собственное подпространство натянуто на столбцы Шаблон:Math. Обычное собственное подпространство Шаблон:Math натянуто на столбцы Шаблон:Math.

Например, пусть

<math>A = \begin{bmatrix} 3 & 2 & 6 \\ 2 & 2 & 5 \\ -2 & -1 & -4 \end{bmatrix}.</math>

Характеристическое уравнение равно

<math> 0 = \lambda^3 - \lambda^2 - \lambda + 1 = (\lambda - 1)^2(\lambda + 1),</math>

с собственными значениями 1 (кратности 2) и −1. Вычисляем:

<math>A - E = \begin{bmatrix} 2 & 2 & 6 \\ 2 & 1 & 5 \\ -2 & -1 & -5 \end{bmatrix}, \qquad A + E = \begin{bmatrix} 4 & 2 & 6 \\ 2 & 3 & 5 \\ -2 & -1 & -3 \end{bmatrix}</math>,

а затем

<math>(A - E)^2 = \begin{bmatrix} -4 & 0 & -8 \\ -4 & 0 & -8 \\ 4 & 0 & 8 \end{bmatrix}, \qquad (A - E)(A + E) = \begin{bmatrix} 0 & 4 & 4 \\ 0 & 2 & 2 \\ 0 & -2 & -2 \end{bmatrix}</math>.

Тогда Шаблон:Math является собственным вектором для −1, а Шаблон:Math является собственным вектором для 1. Векторы Шаблон:Math и Шаблон:Math являются корневыми векторами, соответствующими значению 1, любой из которых можно скомбинировать с Шаблон:Math и Шаблон:Math, образуя базис корневых векторов матрицы Шаблон:Math.

См. также

Комментарии

Шаблон:Примечания

Примечания

Шаблон:Примечания

Литература

Дополнительная литература

Шаблон:Rq


Ошибка цитирования Для существующих тегов <ref> группы «note» не найдено соответствующего тега <references group="note"/>