gpt4 book ai didi

r - 用于计算 R 中矩阵的特征值的函数

转载 作者:行者123 更新时间:2023-12-05 03:15:27 25 4
gpt4 key购买 nike

我想编写一个类似eigen() 的函数来计算任意矩阵的特征值和特征向量。我编写了以下用于计算特征值的代码,我需要一个函数或方法来求解得到的线性方程。

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 的值。有什么办法吗?

最佳答案

这是一个使用 uniroot.all 的解决方案:

library(rootSolve)
myeig <- function(mat){
myeig1 <- function(lambda) {
y = mat
diag(y) = diag(mat) - lambda
return(det(y))
}

myeig2 <- function(lambda){
sapply(lambda, myeig1)
}
uniroot.all(myeig2, c(-10, 10))
}

R > x <- matrix(rnorm(9), 3)
R > eigen(x)$values
[1] -1.77461906 -1.21589769 -0.01010515
R > myeig(x)
[1] -1.77462211 -1.21589767 -0.01009019

关于r - 用于计算 R 中矩阵的特征值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16132007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com