pinv

Инверсия Мура-Пенроуза (псевдоинверсия) символьной матрицы

Синтаксис

Описание

пример

X = pinv(A) возвращает псевдоинверсию A. Псевдоинверсия также называется инверсией Мура-Пенроуза.

Примеры

Вычислите псевдоинверсию матрицы

Вычислите псевдоинверсию этой матрицы. Поскольку эти числа не являются символьными объектами, вы получаете результаты с плавающей точкой.

A = [1 1i 3; 1 3 2];
X = pinv(A)
X =
   0.0729 + 0.0312i   0.0417 - 0.0312i
  -0.2187 - 0.0521i   0.3125 + 0.0729i
   0.2917 + 0.0625i   0.0104 - 0.0938i

Теперь преобразуйте эту матрицу в символьный объект и вычислите псевдоинверсию.

A = sym([1 1i 3; 1 3 2]);
X = pinv(A)
X =
[   7/96 + 1i/32, 1/24 - 1i/32]
[ - 7/32 - 5i/96, 5/16 + 7i/96]
[   7/24 + 1i/16, 1/96 - 3i/32]

Проверяйте тот A*X*A = A и X*A*X = X.

isAlways(A*X*A == A)
ans =
  2×3 logical array
     1     1     1
     1     1     1
isAlways(X*A*X == X)
ans =
  3×2 logical array
     1     1
     1     1
     1     1

Теперь проверьте тот A*X и X*A Эрмитовы матрицы.

isAlways(A*X == (A*X)')
ans =
  2×2 logical array
     1     1
     1     1
isAlways(X*A == (X*A)')
ans =
  3×3 logical array
     1     1     1
     1     1     1
     1     1     1

Вычислите псевдоинверсию матрицы

Вычислите псевдоинверсию этой матрицы.

syms a
A = [1 a; -a 1];
X = pinv(A)
X =
[ (a*conj(a) + 1)/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1) -...
(conj(a)*(a - conj(a)))/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1),
- (a - conj(a))/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1) -...
(conj(a)*(a*conj(a) + 1))/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1)]
[ (a - conj(a))/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1) +...
(conj(a)*(a*conj(a) + 1))/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1),
(a*conj(a) + 1)/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1) -...
(conj(a)*(a - conj(a)))/(a^2*conj(a)^2 + a^2 + conj(a)^2 + 1)]

Теперь вычислите псевдоинверсию A принятие, что a isreal.

assume(a,'real')
A = [1 a; -a 1];
X = pinv(A)
X =
[ 1/(a^2 + 1), -a/(a^2 + 1)]
[ a/(a^2 + 1),  1/(a^2 + 1)]

Для дальнейших расчетов удалите предположение на a путем воссоздания его с помощью syms.

syms a

Входные параметры

свернуть все

Введите в виде символьной матрицы.

Выходные аргументы

свернуть все

Псевдоинверсия матрицы, возвращенной как символьная матрица, такая, что A*X*A = A и X*A*X = X.

Больше о

свернуть все

Псевдоинверсия Мура-Пенроуза

Псевдоинверсия m-by-n матричный A n-by-m матричный X, таким образом, что A*X*A = A и X*A*X = X. Матрицы A*X и X*A должно быть Эрмитовым.

Советы

  • Вызов pinv для числовых аргументов, которые не являются символьными объектами, вызывает MATLAB® pinv функция.

  • Для обратимой матрицы A, инверсия Мура-Пенроуза X из A совпадает с инверсией A.

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

| | |

Введенный в R2013a