이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
pinv
기호 행렬의 무어-펜로즈 역행렬(의사 역행렬)
설명
예제
행렬의 의사 역행렬 계산하기
이 행렬의 의사 역행렬을 계산합니다. 이러한 숫자는 기호 객체가 아니므로 부동소수점 결과를 얻게 됩니다.
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
의 의사 역행렬을 계산합니다.
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
입력 인수
출력 인수
세부 정보
버전 내역
R2013a에 개발됨