inverse
Инверсия матрицы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Для инверсии матрицы в MATLAB® смотрите inv
.
inverse(A
, <Normal>)
inverse(A)
возвращает инверсию матричного A.
Если входом является матричный A категории Cat::Matrix
, затем A^(-1)
называется, чтобы вычислить результат. В отличие от перегруженной арифметики, функционального inverse
также работает с array
s и hfarray
s.
Если входной матрицей является array
из доменного типа DOM_ARRAY
, затем numeric::inverse(A, Symbolic)
называется, чтобы вычислить результат.
Инверсия hfarray
s доменного типа DOM_HFARRAY
внутренне вычисляется через numeric::inverse(A)
.
Если аргумент не оценивает к матрице одного из упомянутых выше типов, символьный вызов inverse(A)
возвращен.
По умолчанию, inverse
вызовы normal
прежде, чем возвратить результаты. Этот дополнительный внутренний вызов гарантирует, что конечный результат нормирован. Этот вызов может быть в вычислительном отношении дорогим. Это также влияет на результат, возвращенный inverse
только если матрица содержит переменные или точные выражения, такие как sqrt(5)
или sin(PI/7)
.
Чтобы избежать этого дополнительного вызова, задайте Normal = FALSE
. В этом случае, inverse
также может возвратить нормированные результаты, но не гарантирует такой нормализации. Смотрите Пример 4.
Вычислите инверсию матрицы, данной различными типами данных:
A := array(1..2, 1..2, [[1, 2], [3, PI]]); inverse(A)
B := hfarray(1..2, 1..2, [[1, 2], [3, PI]]); inverse(B)
C := matrix(2, 2, [[1, 2], [3, PI]]); inverse(C)
delete A, B, C:
Следующая матрица не является обратимой:
inverse(matrix([[1, 2], [3, 6]]))
Если вход не оценивает к матрице, то на символьные звонки отвечают:
delete A, B: inverse(A + 2*B)
Используя Normal
может значительно уменьшить производительность inverse
. Например, вычисление инверсии этой матрицы занимает много времени:
n := 5: inv5 := inverse(matrix(n, n, [[1/(x[i] + x[j]) $ j = 1..n] $ i = 1..n])):
Для лучшей производительности задайте Normal = FALSE
:
n := 5: inv5 := inverse(matrix(n, n, [[1/(x[i] + x[j]) $ j = 1..n] $ i = 1..n]), Normal = FALSE):
|
Квадратная матрица: любой двумерный |
|
Опция, заданная как Возвратите нормированные результаты. Значение |
Инверсия возвращена как матрица того же типа как входная матрица. Если матрица не является обратимой, то FAIL
возвращен. Если вход не оценивает к матрице, то символьный вызов inverse
возвращен.
A