다음과 같이 행렬이 있다.
(A <- matrix(c(1,6,5,2), nrow=2, byrow=T))
(u <- matrix(c(6,-5), nrow=2, byrow=T))
(v <- matrix(c(3,-1), nrow=2, byrow=T))

결과
> (A <- matrix(c(1,6,5,2), nrow=2, byrow=T))
     [,1] [,2]
[1,]    1    6
[2,]    5    2
> (u <- matrix(c(6,-5), nrow=2, byrow=T))
     [,1]
[1,]    6
[2,]   -5
> (v <- matrix(c(3,-1), nrow=2, byrow=T))
     [,1]
[1,]    3
[2,]   -1

행렬 A의 고유값과 고유벡터는 다음과 같다.
> eigen(A)
$values
[1]  7 -4

$vectors
           [,1]       [,2]
[1,] -0.7071068 -0.7682213
[2,] -0.7071068  0.6401844

행렬u, v가 행렬A의 고유값에 대응하는 고유벡터인지 판별해 보자. 먼저 함수하나를 만들자. 이 함수는 고유벡터이면 대응되는 고유값이 무엇인지 print하고, T를 반환한다. 고유벡터가 아니면 F를 반환한다.
udf_is_eigenvector <- function(A, u){
    is_eigenvector <- F
    for (eval in eigen(A)$values){
        if (identical(A%*%u, u*eval) == T){
            is_eigenvector <- T
            print(paste0("eigen value = ", eval))
            break
        }
    }
    return(is_eigenvector)
}

판별결과
> udf_is_eigenvector(A, u)
[1] "eigen value = -4"
[1] TRUE
> udf_is_eigenvector(A, v)
[1] FALSE
Retrieved from http://w.databaser.net/moniwiki/wiki.php/고유벡터인지판별하는함수
last modified 2018-04-13 23:12:53