numeric
::det
Определитель матрицы
Блокноты 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 используется.