У меня есть матрица 100x100, и я нашел ее самым большим собственным значением. Теперь мне нужно найти собственный вектор, соответствующий этому собственному значению. Как я могу это сделать?Найти собственный вектор для данного собственного значения R
6
A
ответ
9
eigen
Функция не дает вам то, что вы ищете?
> B <- matrix(1:9, 3)
> eigen(B)
$values
[1] 1.611684e+01 -1.116844e+00 -4.054214e-16
$vectors
[,1] [,2] [,3]
[1,] -0.4645473 -0.8829060 0.4082483
[2,] -0.5707955 -0.2395204 -0.8164966
[3,] -0.6770438 0.4038651 0.4082483
3
Чтение фактической помощи государства на собственные функции, что $vectors
является: «а р * р матрица, столбцы которой содержат собственные векторы х.» Фактическим вектором, соответствующим самому большому собственному значению, является 1-й столбец $vectors
. Чтобы сразу получить:
> B <- matrix(1:9, 3)
> eig <- eigen(B)
> eig$vectors[,which.max(eig$values)]
[1] -0.4645473 -0.5707955 -0.6770438
# equivalent to:
> eig$vectors[,1]
[1] -0.4645473 -0.5707955 -0.6770438
Обратите внимание, что ответ @ user2080209 не работает: она возвращает первую строку.
нет, думаю нет. Например, для вашей матрицы я знаю собственное значение 1.611684e + 01 и I, что найти собственный вектор для этого собственного значения, а не все три – user2080209
@ user2080209: Что заставляет вас думать, что собственные векторы находятся не в том же порядке, что и собственные значения? –
@ user2080209, 'eig <- собственный (B); eig $ vector [eig $ values == 1.611684e + 01] 'выберет подходящий собственный вектор – huon