Читать книгу Математические модели в естественнонаучном образовании. Том I - Денис Владимирович Соломатин - Страница 13
Глава 2. Линейные модели структурированных популяций
2.4. Вычисление собственных векторов и собственных значений
ОглавлениеСначала покажем, как собственные векторы и собственные значения можно вычислять вручную для -матриц.
Для любой наперёд заданной матрицы , уравнение для нахождения собственного вектора этой матрицы, которое хотим решить, имеет вид , где и вектор , и скаляр неизвестны. Это уравнение можно переписать как: , , .
Обратите внимание, в среднем уравнении появилась единичная матрица, чтобы вынесение общего множителя из каждого слагаемого стало возможным. Без единичной матрицы получилось бы , что не имеет смысла, так как вычитание скаляра из матрицы не определено.
Теперь, если и действительно являются собственным вектором и его собственным значением, последнее уравнение показывает, что матрица не может иметь обратную. Ибо если бы это было так, то могли бы умножить каждую часть уравнения на обратную ей слева, чтобы получить . Даже не зная, чему равна , можно утверждать, что получится , а это будет означать . Но определение собственных векторов требует, чтобы они были ненулевыми, , следовательно, полученной противоречие опровергает наше предположение об обратимости матрицы .
Итак, не имеет обратной, тогда должен быть равен 0. Таким образом доказали, если является любым из собственных значений матрицы , то оно должно удовлетворять уравнению .
Пример. Для матрицы , получаем , и поэтому превращается в , что равносильно уравнению , решая которое получим . Это означает, что единственными возможными собственными значениями для являются числа 1 и 0.98.
Уравнение называется характеристическим уравнением матрицы . Для – матрицы характеристическое уравнение всегда будет квадратным, поэтому решить его не составляет особого труда.
Хотя описанный выше метод и применим к матрицам большего порядка (при условии, что умеете вычислять определители больших матриц), решение характеристического уравнения может оказаться намного сложнее, потому что для -матрицы оно содержит многочлен -й степени. Для больших на практике применяются приближенные численные методы. Тем не менее, можно видеть, что найдется не более чем собственных значений, поскольку характеристическое уравнение может иметь не более корней. Комплексные числа тоже могут входить в список собственных значений, поскольку корни многочлена могут комплексными. Следовательно, справедлива теорема:
Теорема. Если является собственным значением для -матрицы , то оно удовлетворяет полиномиальному уравнению -й степени . Таким образом, для существует не более собственных значений.
После того, как определили возможные собственные значения матрицы, нужно найти соответствующие собственные векторы. Рассмотрим решение на примере и . Нужно найти вектор такой, что , поэтому предстоит решить матричное уравнение , .
Поскольку невозможно решить эту задачу через обратную матрицу (почему?), записываем два уравнения, представляя уравнение в нематричной форме:
В то время как очевидно ненулевое решение – угадать его не составило особого труда и это абсолютно правильный способ поведения в нестандартных ситуациях, для систем линейных уравнений существует развитая методика их решения. Так как одно из уравнений выражается через другое, предстоит найти решение одного . Имея одно уравнение для двух неизвестных, можем взять одно из неизвестных в качестве свободной переменной, чтобы оно имело любое значение, которое нам нравится, и тогда определится второе. Например, если решать уравнение относительное выражаемого через , получим . Таким образом, любой вектор вида является собственным вектором с собственным значением 0.98.
Рисунок 2.4. Синим цветом обозначен собственный вектор. Он, в отличие от красного, при деформации (преобразовании) не изменил направление, поэтому является собственным вектором этого преобразования, соответствующим некоторому собственному значению.
Геометрически это выглядит так, что вектора коллинеарные вектору при преобразовании лишь сжимаются до 0.98 от своей первоначальной длины. Для большей наглядности, изобразим на рисунке 2.4 некоторое преобразование векторного пространства.
Поскольку есть свобода выбора по своему усмотрению, будем считать его равным 1. Таким образом, нашли собственный вектор , который использовался на протяжении всей этой главы.
Собственный вектор, связанный с , найдём аналогично: , следовательно, нужно решить систему
Поскольку уравнения кратны друг другу, решим одно , получим , поэтому . Выбирая , чтобы компоненты вектора оказались целочисленными, находим .
Хотя это был лишь один пример вычисления собственного вектора конкретной матрицы , для любой – матрицы процедура работает одинаково. Хотя не будем доказывать это здесь, подробности раскрываются в классической теореме Кронекера-Капелли, в данном случае всегда одно из уравнений окажется кратным другому, поэтому можно решить его, выражая через (или через ), чтобы найти все собственные векторы.
Как и в случае с собственными значениями, вычисление собственных векторов для матриц размерности 3 × 3 или более выполняется аналогичным образом как для 2 × 2 случаев, хотя возникают некоторые дополнительные трудности. Оставим обсуждение деталей для курса линейной алгебры и вместо этого научимся использовать MATLAB для таких вычислений.
Существуют различные компьютерные методы расчета. На самом деле, MATLAB и другие компьютерные пакеты на самом деле не вычисляют собственные векторы и собственные значения так, как описано выше. Поскольку вычисление собственных векторов и значений очень важно не только для учебных моделей, но и для множества открытых проблем в науке и технике, были давно разработаны и включены во многие стандартные пакеты программного обеспечения довольно продвинутые сложные методы.
Хотя на самом деле не будем погружаться в детали каких-либо методов, используемых этими пакетами, поверхностно опишем один из подходом, обсудив ниже «степенной метод».
Зададим матрицу перехода , выберем любой начальный вектор и вычислим . Согласно сильной эргодической теореме, если является доминирующим собственным значением с соответствующим собственным вектором , то должны ожидать, что будет ближе к , чем было . Но поскольку еще не знаем значения , нужно каким-то образом скорректировать , чтобы учесть фактор изменения его длины. Один из способов сделать это – просто разделить каждую компоненту вектора на самую большую из его компонент, чтобы получить новый вектор, который назовём . Это означает, что будет иметь хотя бы одну компоненту равную 1 и будет «ближе» чем к тому вектору, который в пределе окажется собственным. Так на рисунке 2.4 красный «приблизился» к синему в результате трансформации векторов пространства.
Затем можно повторить процесс, используя вместо , чтобы получить еще лучшее приближение собственного вектора. Конечно, затем предстоит повторять процесс снова и снова, пока не обнаружим, что приближения в собственному вектору меняются незначительно.