linalg:: eigenvectors

Собственные вектора матрицы

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

linalg::eigenvectors(A)

Описание

linalg::eigenvectors(A) вычисляет собственные значения и собственные вектора матричного A.

Приближение с плавающей точкой собственных значений и собственных векторов вычисляется с помощью numeric::eigenvectors, если матричный A задан по кольцевому Dom::Float компонента (см. Пример 1). В этом случае рекомендуется вызвать numeric::eigenvalues непосредственно для лучшей эффективности.

linalg::eigenvectors работает можно следующим образом: Для каждого собственного значения λ n ×n матричный A, основание для ядра (λ  In - A), eigenspace A относительно собственного значения λ, вычисляется с помощью Алгоритма Гаусса-Жордана (см. linalg::gaussJordan). Здесь, I n обозначает n ×n единичная матрица.

Собственные вектора имеют доменный Dom::Matrix (R), где R является звонком компонента A.

Звонок компонента матричного A должен быть полем, т.е. областью категории Cat::Field, для которого решатель solve может вычислить нули полинома.

Это может произойти, что основание для eigenspace A относительно определенного собственного значения не может быть вычислено (например, если звонок компонента не имеет канонического представления нулевого элемента). В этом случае linalg::eigenvectors отвечает предупреждающим сообщением и возвращает FAIL.

Примеры

Пример 1

Мы вычисляем собственные значения и собственные вектора матрицы

:

A := Dom::Matrix(Dom::Rational)(
  [[1, -3, 3], [6, -10, 6], [6, 6, 4]]
):
Ev:= linalg::eigenvectors(A)

Матричный A является диагонализируемым. Следовательно, мы извлекаем собственные вектора и комбинируем их к матричному P, таким образом, что P^-1 * A * P является диагональной матрицей, диагональные элементы которой даны соответствующими собственными значениями:

Eigenvectors:= Ev[1][3][1], Ev[2][3][1], Ev[3][3][1]

P:= Eigenvectors[1].Eigenvectors[2].Eigenvectors[3]

P^-1 * A * P

Более квалифицированный способ извлечь вышеупомянутые собственные вектора от вывода, сгенерированного linalg::eigenvectors, следующий:

map(Ev, op@op, 3)

Если мы рассматриваем матричный A по доменному Dom::Float, вызов linalg::eigenvectors(A) приводит к численному расчету собственных значений и собственным векторам A через функциональный numeric::eigenvectors:

B := Dom::Matrix(Dom::Float)(A): 
linalg::eigenvectors(B)

Параметры

A

Квадратная матрица области категории Cat::Matrix

Возвращаемые значения

Список подсписков, где каждый подсписок состоит из собственного значения λ A, его алгебраической кратности и основания для eigenspace λ. Если основание eigenspace не может быть вычислено, FAIL возвращен.