본문 바로가기
MATLAB 코딩/기초

[matlab 공부하자] 39.특이값 분해(singular value decomposition), svd함수

by bigpicture 2019. 7. 3.
반응형

39.특이값 분해(singular value decomposition), svd함수



특이값 분해는

어떤 행렬을 

세 행렬의 곱으로 분해하는 것입니다. 말 그래도 분해에요. 


matlab에서는 svd라는 함수가 사용됩니다. 


x라는 행렬을 정의하고 함수에 넣습니다. 아래와 같은 형태로 넣어주셔야 해요. 


[U,S,V] = svd(x)


U와 V는 unitary 행렬입니다. 자기 자신의 transpose와 곱하면 항등행렬이 나오는 행렬을 unitary 행렬이라고 합니다.


아래 수식이 성립하죠.


U*U'=I

V*V'=I


S는 diagonal matrix입니다. 예를들면 아래와 같은 행렬이에요. 



S =


   16.8481         0         0

         0    1.0684         0

         0         0    0.0000



중앙대각선에만 값이 존재합니다. 


분해의 결과를 말씀드릴게요. 

아래 수식이 성립합니다.


X=U*S*V'

반응형

댓글