linalg:: minpoly

Минимальный полином матрицы

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

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

Синтаксис

linalg::minpoly(A, x)

Описание

linalg::minpoly(A, x) вычисляет минимальный полином квадратной матрицы A в x, т.е. многочлен самой низкой степени, уничтожающей матричный A.

Минимальный полином A делит характеристический полином A теоремой Кэли-Гамильтона.

Если матрица задана по Dom::Float, то из-за числовых ошибок вычисленный полином может иметь степень выше, чем размерность матрицы. В таких случаях linalg::minpoly возвращает значение FAIL. Смотрите Пример 3.

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

Примеры

Пример 1

Мы задаем следующую матрицу по рациональным числам:

A := Dom::Matrix(Dom::Rational)(
  [[0, 2, 0], [0, 0, 2], [2, 0, 0]]
)

Минимальным полиномом матричного A в переменной x затем дают:

delete x:  linalg::minpoly(A, x)

В этом случае минимальный полином на самом деле равен характеристическому полиному A:

linalg::charpoly(A, x)

Пример 2

Минимальный полином матрицы:

B := matrix([[0, 1, 0], [0, 0, 0], [0, 0, 0]])

полином степени 2:

m := linalg::minpoly(B, x)

Характеристический полином B имеет степень 3 и разделен на минимальный полином B:

p := linalg::charpoly(B, x)

p / m

Пример 3

Для следующего примера MuPAD® не может вычислить минимальный полином, и таким образом FAIL возвращен:

C := Dom::Matrix(Dom::Float)([
   [7, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 2, 0, 0, 0], 
   [1, 2, 3, 0, 0], [1, 2, 3, 4, 7]
])

delete x:  linalg::minpoly(C, x)
Warning: Unable to compute minimal polynomial. [linalg::minpoly]

На самом деле для этого примера MuPAD не может проверять на нулевую эквивалентность во время Исключения Гаусса и поэтому выбрал неправильный элемент центра.

Если вы выполняете вычисление по коэффициенту domainDom::ExpressionField(normal) вместо этого, то в большинстве случаев минимальный полином может быть вычислен:

C := matrix([
   [7, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 2, 0, 0, 0],
   [1, 2, 3, 0, 0], [1, 2, 3, 4, 7]
])

linalg::minpoly(C, x)

Однако в целом этой проблемы относительно нулевого распознавания нельзя избежать.

Параметры

A

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

x

Неопределенное

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

Полином доменного Dom::DistributedPolynomial([x],R), где R является звонком компонента A или значением FAIL.

Смотрите также

Функции MuPAD