コードをMATLABからJavaに移植したところ、行列の固有分解が必要です。具体的にk
は、完全な分解ではなく、最初の値のみが必要です。
ただし、JAMAでは、固有分解クラスが完全な固有分解を計算します。変更しようとしましたが、エラーが発生します。別の同様のライブラリはありますか?
MATLABでは、問題の関数はeigs(k,A)
コードをMATLABからJavaに移植したところ、行列の固有分解が必要です。具体的にk
は、完全な分解ではなく、最初の値のみが必要です。
ただし、JAMAでは、固有分解クラスが完全な固有分解を計算します。変更しようとしましたが、エラーが発生します。別の同様のライブラリはありますか?
MATLABでは、問題の関数はeigs(k,A)
したがって、すべての固有値の配列を返すだけです。配列の最初の k 個の値だけを含む配列を返したいとします。Java でこれを行う方法はたくさんあります。1 つは、配列を ArrayList に変換し、そのリストの subList を取得して、変換して配列に戻すことです。
double[] mySubArray = new double[k];
for (int i=0; i < k; i++) {
subArray[i] = myFullArray[i];
}
ちなみに、これは彼が参照しているライブラリです: http://math.nist.gov/javanumerics/jama/doc/
http://commons.apache.org/proper/commons-math/javadocs/api-3.6/org/apache/commons/math3/linear/EigenDecomposition.htmlでEigenDecomposition という名前の別のパッケージを試すことができるかもしれません。 、これにより - 番目getImagEigenvalue(int i)
の固有値を取得できます。i