Я пытаюсь вычислить собственный вектор матрицы 4x4 в opencv.
Для этого я сначала вычислить собственное значение по следующей формуле:вычисление собственного вектора из сложного собственного значения в opencv
Det(A - lambda * identity matrix) = 0
От wiki on eigenvalues and eigenvectors.
После решения этого, он дает мне 4 собственные значения, которые выглядят примерно так:
0.37789 + 1.91687i
0.37789 - 1.91687i
0.412312 + 1.87453i
0.412312 - 1.87453i
Из этих 4-х собственных значений I принимают наибольшее значение, и я хочу использовать, что с этой формулой:
(A - lambda * identity matrix) v = 0
I попытался использовать мою исходную матрицу A с opencv-функцией «eigen()», но это не дает мне результатов, которые я ищу.
Я также пытался использовать RREF (уменьшенная строка эшелона строк), однако я не знаю, как это сделать со сложными собственными значениями.
Так что мой вопрос: как бы вы вычислили этот собственный вектор?
Я подключил свои данные до wolframalpha, чтобы увидеть, какими должны быть мои результаты.
«не дает мне результаты, которые я ищу», то, что вы имеете в виду этим? какие результаты вы получаете? Попробовали ли вы решить уравнение самостоятельно или только через 'eigen()'? – user463035818
Если вам нужно только самое высокое собственное значение и соответствующий ему собственный вектор, использование [итерации мощности] (http://en.wikipedia.org/wiki/Power_iteration) может быть опцией – user463035818
@ tobi303 eigen() всегда будет возвращать: [ -0,50, -0,50, -0,50, 0,50; 0,50, 0,50, -0,50, 0,50; -0,50, 0,50, 0,50, 0,50; -0.50, 0.50, -0.50, -0.50] только +/- будет отличаться. Я проверил бы итерацию мощности и посмотрю, является ли это то, что я ищу – sadhi