반응형
행렬은 벡터의 선형변환입니다. 벡터에 행렬을 곱하면, 크기와 방향이 달라집니다.
하지만 어떤 경우에는 방향이 아니라 크기만 달라지는 경우가 있습니다. 이때 아래와 같은 등식이 성립합니다. A는 행렬, x는 벡터, 람다는 상수입니다.
$$A\vec{x}=\lambda \vec{x}$$
이를 행렬 입장에서 생각해봅시다. 어떤 행렬 A가 있습니다. 이 행렬에 어떤 벡터를 곱하면 벡터의 크기와 방향이 달라집니다. 그런데 어떤 벡터는 이 행렬과 곱해져도 방향이 변하지 않고 크기만 변합니다.
$$A\vec{x}=\lambda \vec{x}$$
이 벡터를 행렬 A의 '고유벡터'라고 합니다. 이때 크기 변화에 대한 상수 λ 를 '고유값' 이라고 합니다.
R에서 어떤 행렬의 고유값과 고유벡터를 구하는 함수는 eigen 입니다. 예를 들어봅시다.
> eigen(A)
eigen() decomposition
$values
[1] 5.3722813 -0.3722813
$vectors
[,1] [,2]
[1,] -0.5657675 -0.9093767
[2,] -0.8245648 0.4159736
벡터가 2x2 여서 헷갈릴 수 있는데 고유벡터가 두개인 것입니다. 행이 벡터입니다. 각각의 벡터는 아래와 같습니다.
(-0.5657675, -0.9093767)
(-0.8245648, 0.4159736)
등식이 성립하는지 확인해봅시다. 고유벡터 하나와 고유값 하나를 vec1과 value1 에 입력하였습니다.
> vec1=eigen(A)$vectors[,1]
> vec1
[1] -0.5657675 -0.8245648
> value1=eigen(A)$values[1]
> value1
[1] 5.372281
행렬과 고유벡터를 곱하고, 고유치와 고유벡터를 곱하여 결과가 같은지 확인합시다.
> A%*%vec1
[,1]
[1,] -3.039462
[2,] -4.429794
> value1*vec1
[1] -3.039462 -4.429794
결과가 같습니다.
반응형
'5. 자료구조 > 2) 행렬 | matrix()' 카테고리의 다른 글
[R코딩] 행렬의 특잇값 분해 (svd) (1) | 2020.12.22 |
---|---|
[R코딩] 행렬을 이용한 연립방정식의 해 (solve) (0) | 2020.12.21 |
[R코딩] 행렬 열별 평균 구하기 (colMeans) (0) | 2020.12.21 |
[R코딩] 행렬 열 별로 합 구하기 (colsums) (0) | 2020.12.21 |
[R코딩] 행렬의 행 별로 합 구하기 (rowSums) (0) | 2020.12.21 |
댓글