det

Детерминант матрицы

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

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

Синтаксис

det(A, options)

Описание

det(A) возвращает детерминант матричного A.

Если входной матрицей является array доменного типа DOM_ARRAY, то numeric::det(A, Symbolic) называется, чтобы вычислить результат.

Детерминант hfarray s доменного типа DOM_HFARRAY внутренне вычисляется через numeric::det(A).

Если аргумент не оценивает к матрице одного из упомянутых выше типов, символьный вызов, det(A) возвращен.

Опция MinorExpansion полезна для маленьких матриц (обычно, матриц размерности до 10) содержащий много символьных записей. По умолчанию det пытается распознать матрицы, которые могут извлечь выгоду из использования MinorExpansion и используют эту опцию при вычислении их детерминантов. Тем не менее, det не всегда распознает эти матрицы. Кроме того, идентификация, что матрица является достаточно небольшой и содержит много символьных записей, занимает время. Чтобы улучшать производительность, используйте опцию MinorExpansion явным образом.

По умолчанию det вызывает normal прежде, чем возвратить результаты. Этот дополнительный внутренний вызов гарантирует, что конечный результат нормирован. Этот вызов может быть в вычислительном отношении дорогим. Это также влияет на результат, возвращенный det, только если матрица содержит переменные или точные выражения, такие как sqrt(5) или sin(PI/7).

Чтобы избежать этого дополнительного вызова, задайте Normal = FALSE. В этом случае det также может возвратить нормированные результаты, но не гарантирует такой нормализации. Смотрите Пример 3 и Пример 4.

Примеры

Пример 1

Мы вычисляем детерминант матрицы, данной различными типами данных:

A := array(1..2, 1..2, [[1, 2], [3, PI]]);
det(A)

B := hfarray(1..2, 1..2, [[1, 2], [3, PI]]);
det(B)

C := matrix(2, 2, [[1, 2], [3, PI]]);
det(C)

delete A, B, C:

Пример 2

Если вход не оценивает к матрице, то на символьные звонки отвечают:

delete A, B:
det(A + 2*B)

Пример 3

Если вы используете опцию Normal, det вызывает функцию normal для конечных результатов. Этот вызов гарантирует, что det возвращает результаты в нормированной форме:

det(matrix([[x, x^2], [x/(x + 2), 1/x]]))

Если вы задаете Normal = FALSE, det не вызывает normal для конечного результата:

det(matrix([[x, x^2], [x/(x + 2), 1/x]]), Normal = FALSE)

Пример 4

Используя Normal может значительно уменьшить производительность det. Например, вычисление детерминанта этой матрицы занимает много времени:

n := 5:
det5 := det(matrix([[(x[i*j]^(i + j) + x[i+j]^j)/(i + j) $
                                               j = 1..n] $
                                               i = 1..n])):

Для лучшей производительности задайте Normal = FALSE:

n := 5:
det5 := det(matrix([[(x[i*j]^(i + j) + x[i+j]^j)/(i + j) $
                                               j = 1..n] $
                                               i = 1..n]),
                                          Normal = FALSE):

Параметры

A

Квадратная матрица: или двумерный array, двумерный hfarray или объект категории Cat::Matrix

Опции

MinorExpansion

Вычислите детерминант рекурсивным незначительным расширением вдоль первого столбца.

Normal

Опция, заданная как Normal = b

Возвратите нормированные результаты. Значением b должен быть TRUE или FALSE. По умолчанию, Normal = TRUE, означая, что det гарантирует нормализацию возвращенных результатов. Нормализация результатов может быть в вычислительном отношении дорогой.

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

Арифметическое выражение.

Перегруженный

A