Линейная алгебра

Искусство использования матриц и векторов для решения задач физики

Версия для печати

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

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

Дана квадратная матрица A. Какими должны быть векторы xj и числа λj, чтобы при умножении A на xj получался вектор xj, умноженный на число λj?

Существуют ли такие xj и λj, что можно записать:

Axj = λj xj.

Поскольку умножение матрицы на вектор одновременно вращает вектор и умножает его на число, неясно, есть ли решение у этой задачи. Но можно доказать, что в большинстве случаев для матрицы размером есть N таких векторов и значений, которые называются собственными значениями и собственными векторами. Зачастую это комплексные величины, которые, как кажется, не имеют физического смысла, но даже если так, физический смысл с их помощью (или из них) можно получить. Если собственные значения – действительные числа, то собственные векторы обладают очень особым свойством.

Если собственный вектор xj умножается на A, то результат есть вектор, который либо параллелен xj (если λj положительно), либо противоположно направлен (если λj отрицательно).

Простая иллюстрация этой идеи:

  • restart:with(LinearAlgebra):
  • A:=Matrix([[1,2,3],[4,3,2],[-1,0,2]]);
  • Eigenvectors(A);

OК, ясно, что получено «нечто вроде». Обычно нужны числа, а не гигантские абстрактные выражения. Простой путь их получения – ввести в матрицу элементы в виде чисел с плавающей запятой, т. е. с десятичной точкой:

  • A:=Matrix([[1.,2.,3.],[4.,3.,2.],[-1.,0.,2.]]);
  • v:=Eigenvectors(A);

Это намного лучше.

Теперь посмотрим на выдачу.

Из справки Maple help для Eigenvectors:

Первый набор чисел – это вектор-столбец, содержащий числа – собственные значения, а второй набор – это матрица, столбцы которой есть собственные векторы.

Поэтому если нужно получить третье собственное значение, то следует записать:

  • lambda3:=v[1][3];

(Это выглядит странным, но так как v[1] – это вектор-столбец, имеет смысл спрашивать о его третьем элементе [3].) Теперь нам нужен третий столбец v[2], это делает команда Maple Column.

  • v3:=Column(v[2],3);

Теперь, умножая v3 на A, можно проверить, действительно ли это собственный вектор. Если так, то вернет

  • y:=Multiply(A ,v3);

Для проверки правильности разделим y на λ3 и посмотрим, получается ли собственный вектор :

  • y/lambda3;

Если в матрице, созданной Eigenvector, сравнить этот вектор с , окажется, что это то же самое с точностью, установленной командой Digits (= 10) для арифметики с плавающей запятой в Maple.

Задача 5.3. Поворот и собственные значения

Поверните матрицу Rx из задачи о повороте вектора и найдите ее собственные значения и собственные векторы. Подумайте, что означает вращение и можно ли дать физический смысл ответам, полученным из Maple. При выборе значения theta попробуйте:

(a) θ = 1.3,

(b) θ = ,

(c) θ = .

(Учтите, что (c) понадобится при изучении спина в квантовой механике.) Хороший способ решить эту задачу – определить матрицу Rx с помощью функции Maple M(θ)

  • M:=theta->evalf(Matrix([[1,0,0],[0,cos(theta),-sin(theta)],[0,sin(theta),cos(theta)]]));

и затем применить ее для вычисления трех матриц в заданиях (a)–(c). (Из-за того, что в Maple10 есть ошибка, не стоит использовать в задаче evalf.)

Правила формального синтаксиса команд линейной алгебры приведены в конце главы.

Задача 5.4 о вращении матриц

Если трехкомпонентные векторы поворачиваются матрицей вращения, то матрицы тоже можно вращать. Поворот вектора v – это R*v, а поворот матрицы M – это inv(R)*M*R, где inv(R) означает инверсию матрицы R. В курсах физики и математики про это сказано много. Здесь только краткий пример.

(a) Создайте диагональную матрицу и преобразуйте ее, повернув систему координат с помощью ортонормальной матрицы поворотов:

Назовите новую матрицу M2.

(b) Вычислите собственные значения и собственные векторы матриц M1 и M2. Как их сравнить?

(c) Умножьте с обеих сторон M1 на вектор по правилу: transpose(a)*M1*a, приравняйте получившееся уравнение 4, чтобы создать квадратное уравнение 4x2 + y2 + 2z2 = 4, и используйте implicitplot3d для его визуализации. Примените в графике опцию axes=boxed. Форма одинаковая, кроме ориентации. Собственные значения M1 обусловлены геометрической шириной соответствующего эллипсоида и не зависят от поворота. Покажите это визуально для M2.