participal Eigenvalues Java (JAMA)
Я просто перенес свой код из MATLAB в Java, и мне нужно собственное разложение матрицы, в частности, мне нужен только первый k
значения не полное разложение.
Однако в JAMA класс собственного разложения вычисляет полное собственное разложение. Я пытался изменить его, но он выдает некоторые ошибки. Есть ли другая подобная библиотека?
В MATLAB рассматриваемая функция eigs(k,A)
2 ответа
Так что он просто возвращает массив всех собственных значений. Вы хотите вернуть массив только с первыми k значениями массива. Есть много способов сделать это в Java. Одним из них является преобразование массива в ArrayList, получение подсписка этого списка и обратное преобразование в массив.
double[] mySubArray = new double[k];
for (int i=0; i < k; i++) {
subArray[i] = myFullArray[i];
}
Кстати, это библиотека, на которую он ссылается: http://math.nist.gov/javanumerics/jama/doc/
Может быть, вы можете попробовать другой пакет с именем EigenDecomposition в http://commons.apache.org/proper/commons-math/javadocs/api-3.6/org/apache/commons/math3/linear/EigenDecomposition.html, есть некоторые методы, такие как getImagEigenvalue(int i)
Вы можете получить i
Собственное значение этим.