고윳값과 고유벡터 (Eigenvalue & Eigenvector)

이정운·2023년 1월 27일
0

선형 변환을 바라보는 다른 시각

우리가 선형대수를 공부하는 이유는 연립 일차 방정식을 풀기 위함이고
이를 위해 행렬과 벡터를 공부한다.

이때 우리가 공부하는 행렬을 선형변환이라고 부른다.

"선형"이라는 말전에 변환은 또 뭐야?
쉽게 말해서 함수라는 말이다. 우리가 벡터에 행렬을 곱하는 Ax=yAx=y에서 A를 "벡터 x를 벡터y로 mapping하는 함수"라고 바라볼 수 있다.

쉽게 말해 행렬은 벡터를 변환시켜 다른 벡터를 출력해준다.

"선형 변환"은 이런 함수 중에서 아래의 조건을 만족하면 "선형변환"이라고 부른다.

임의의 벡터 u,v에 대하여 다음의 수식을 만족하면 변환행렬 A를 선형변환이라고 부른다.(alpha beta는 scalar)
A(αu+βv)=αAu+βAvA(\alpha u+\beta v)=\alpha Au+\beta Av

정리하면 행렬은 함수다!!

그러면 함수에 치역이 있듯이 행렬 A도 치역이 있습니까?

우리가 행렬 곱을 다른 시각으로 행렬 A의 열벡터가 만든 vector space라고 배웠다. 맞다. 행렬 A는 input vector가 들어올 때 자신의 열벡터가 만든 vector space로 mapping 하는 함수이다.(선형변환)

고윳값과 고유벡터의 직관적 이해

고유벡터와 고윳값이 물어보는 것은 다음과 같다.
벡터 x에 어떠한 선형변환 A를 가했을 때, 그 크기만 변하고 방향은 유지되는 벡터 x는 무엇인가요?

우리가 고유벡터를 찾는 이유는 행렬을 곱해서 다른 vector space로 mapping 되었음에도 자신의 방향을 유지하는 vector를 찾기 위함이다!!

고윳값,고유벡터 정의

임의의 n×nn \times n 행렬 AA에 대하여, 0이 아닌 솔류션 벡터 xx가 존재한다면 숫자 λ\lambda는 행렬 A의 고윳값이라고 할 수 있다.

이때 xx를 고유벡터 λ\lambda를 고윳값이라고 부른다.

식에서 알 수 있듯이 벡터 xx에 선형변환을 가했음에도 크기만 변했지 방향은 유지하고 있다.

이것을 풀기 위해 식을 전개하면

이 된다. 그런데 scalar 자체와 행렬을 연산할 때는

로 표시한다.

만약 행렬 AλIA-\lambda I가 역행렬이 존재한다면 x=0x=0라는 유일한 해만 존재한다. (역행렬이 존재한다면 방정식의 해는 유일하다.) x=0x=0일때 이 해를 trivial soulution이라고 부른다. (쉽게 말해 당연히 답이지)이다. 그런데 trivial solution은 우리가 원하는 해가 아니다. 우리는 0벡터가 아니면서 저 수식을 만족하는 고유벡터와 고윳값을 찾고 싶기 때문이다. 그러므로

AλIA-\lambda I 는 역행렬이 존재하면 아니된다. 역행렬 존재하지 않기 위해서는 우리가 지난 시간에 배운 determinant를 이용하면 된다.

det(AλI)=0det(A-\lambda I)=0이 되면 역행렬이 존재하지 않고 이 수식을 계산하면 우리가 원하는 고윳값과 고유벡터를 얻을 수 있다.

고유벡터에 대해서 조금만 더 살펴보면

고유벡터 x는 AλIA-\lambda I의 nullspace에 속하는 벡터이다.

또한 고유벡터 끼리는 선형 독립이어야 한다.

문제 예시



λ=1\lambda=1일때



λ=3\lambda=3일때



그러므로 행렬 AA의 eigenvalue와 eigenvector는


이다.

참고

Robotics 101: Computational Linear Algebra (https://github.com/michiganrobotics/rob101)
공돌이의 수학정리노트 (https://angeloyeo.github.io/2019/07/17/eigen_vector.html)
혁펜하임 선형대수 수업
(https://www.youtube.com/watch?v=xDARfmKauuA&list=PL_iJu012NOxdZDxoGsYidMf2_bERIQaP0&index=20)

profile
헬스 ,강화학습,3D Vision,Robotics를 좋아하는 엔지니어 입니다.

0개의 댓글