числовой::
Детерминант матрицы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
numeric::det(A
, <mode
>, <MinorExpansion>, <NoWarning>)
numeric::det(A)
возвращает детерминант матричного A.
Без опции Symbolic
все записи A
должны быть числовыми. Числовые выражения такой как, и т.д. приняты и преобразованы в плавания. Если символьные записи найдены в матрице, numeric::det
автоматически переключается на Symbolic
, выдающий предупреждение.
Symbolic
опции должен использоваться, если матрица содержит символьные объекты, которые не могут быть преобразованы в числа с плавающей точкой.
Матрицы A
матричной области, такие как Dom::Matrix(...)
или Dom::SquareMatrix(...)
внутренне преобразованы в массивы по выражениям через expr(A)
. Обратите внимание на то, что det
должен использоваться, когда детерминант должен быть вычислен по области компонента. Смотрите Пример 2. Обратите внимание на то, что Symbolic
опции должен использоваться, если записи не могут быть преобразованы в числовые выражения.
Без опции Symbolic
функция чувствительна к переменной окружения DIGITS
, который определяет числовую рабочую точность.
Числовые матрицы могут быть обработаны с или без опции Symbolic
:
A := array(1..3, 1..3,[[1, 1, I], [1, exp(1), I], [1, 2, 2]]): numeric::det(A), numeric::det(A, Symbolic)
Symbolic
опции должен использоваться, когда матрица имеет нечисловые записи:
A := array(1..2, 1..2, [[1/(x + 1), 1], [1/(x + 2), PI]]): numeric::det(A, Symbolic)
Если опция, MinorExpansion
используется, символьные записи, принята, даже если опция Symbolic
не задана:
detN := numeric::det(A, MinorExpansion); detS := numeric::det(A, Symbolic, MinorExpansion)
Упростите эти результаты с помощью Simplify
:
Simplify(detN), Simplify(detS)
delete A:
Следующая матрица имеет доменные компоненты:
A := Dom::Matrix(Dom::IntegerMod(7))([[6, -1], [1, 6]])
Обратите внимание на то, что numeric::det
вычисляет детерминант следующей матрицы:
expr(A), numeric::det(A)
det
должен использоваться, если детерминант должен быть вычислен по доменному Dom::IntegerMod
компонента (7)
:
det(A)
delete A:
Мы демонстрируем использование аппаратных плаваний. Гильбертовы матрицы известно плохо обусловлены: вычисление детерминанта подвергается серьезным эффектам отмены. Следующие результаты, оба с HardwareFloats
, а также с SoftwareFloats
, омрачены числовым округлением:
A := linalg::hilbert(15): float(numeric::det(A, Symbolic)), numeric::det(A, HardwareFloats), numeric::det(A, SoftwareFloats)
delete A:
|
Квадратная матрица доменный тип |
|
Один из флагов |
|
С С По сравнению с Если никакой Если результат не может быть вычислен с аппаратными плаваниями, арифметику программного обеспечения ядром MuPAD пробуют. Если текущее значение Может быть несколько причин аппаратной арифметики, чтобы перестать работать:
Если ни Если Обратите внимание на то, что Запаздывающие цифры в результатах с плавающей точкой, вычисленных с ПримечаниеДля плохих обусловленных матриц результаты, возвращенные с |
|
Эта опция предотвращает преобразование входных данных к плаваниям. При использовании этой опции приняты символьные записи. Это заменяет опцию ПримечаниеЭта опция не должна использоваться для матриц с плавающей точкой! Алгоритм |
|
При использовании этой опции используется рекурсивное незначительное расширение вдоль столбцов. Эта опция может быть полезна для маленьких матриц с символьными записями. Эта опция подразумевает При использовании этой опции приняты символьные записи, даже если опция |
|
Отключает предупреждения |
По умолчанию детерминант возвращен как число с плавающей запятой. С опцией Symbolic
возвращено выражение.
Без опции Symbolic
QR - используется факторизация A через преобразования Домовладельца.
С Symbolic
LU - используется факторизация A.