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.

Примеры

Пример 1

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

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:

Пример 2

Следующая матрица не является обратимой:

inverse(matrix([[1, 2], [3, 6]]))

Пример 3

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

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

Пример 4

Используя 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):

Параметры

A

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

Опции

Normal

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

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

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

Инверсия возвращена как матрица того же типа как входная матрица. Если матрица не является обратимой, то FAIL возвращен. Если вход не оценивает к матрице, то на символьный звонок inverse отвечают.

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

A

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

Функции MuPAD