Я хочу написать функцию типа eigen()
для вычисления собственных значений и собственных векторов произвольной матрицы. Я написал следующие коды для вычисления собственных значений, и мне нужна функция или метод для решения приведенного линейного уравнения.Функция для вычисления собственных значений матрицы в R
eig <- function(x){
if(nrow(x)!=ncol(x)) stop("dimension error")
ff <- function(lambda){
for(i in 1:nrow(x)) x[i,i] <- x[i,i] - lambda
}
det(x)
}
мне нужно решить det(x)=0
, что является полиномиальное линейное уравнение, чтобы найти значения lambda
. Там в любом случае?
Try 'optim' функция. – vinux
или 'uniroot', чтобы найти корень? – liuminzhao
Но 'optim()' находит корни, которые минимизируют функцию. Я хочу ее решить, что-то вроде 'polyroot()'. – Mahmoud