Main Content

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*XX*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의 의사 역행렬을 계산합니다.

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)]

추후 계산을 위해 syms를 사용하여 a를 다시 만들어서 가정을 제거합니다.

syms a

입력 인수

모두 축소

입력값으로, 기호 행렬로 지정됩니다.

출력 인수

모두 축소

행렬의 의사 역행렬로, A*X*A = AX*A*X = X가 성립하는 기호 행렬로 반환됩니다.

세부 정보

모두 축소

무어-펜로즈 의사 역행렬

m×n 행렬 A의 의사 역행렬은 A*X*A = AX*A*X = X가 성립되는 n×m 행렬 X입니다. 행렬 A*XX*A는 에르미트 행렬이어야 합니다.

  • 기호 객체가 아닌 숫자형 인수에 대해 pinv를 호출하면 MATLAB® pinv 함수가 호출됩니다.

  • 가역 행렬 A의 경우 A의 무어-펜로즈 역행렬 XA의 역행렬과 일치합니다.

버전 내역

R2013a에 개발됨

참고 항목

| | |