0

サイズの大きな「スパース」行列 (たとえば、100 万 x 100 万) を処理し、行列に対して SVD、LU などの分解を実行できる Java の線形代数ライブラリを探しています。

いろいろ調べてCOLTを試してみたのですが、一定数までの行列しか扱えません。

EJML サイトは、これを処理できないとも述べています。(http://code.google.com/p/effective-java-matrix-library/wiki/FAQ)

このサイズのデータ​​を処理できる C++ のパッケージがあることは知っていますが、Java を中心に他のすべてのコードを構築しているため、Java から移行することはできません。

何かご意見は?どんな助けでも大歓迎です!

4

1 に答える 1

0

la4j (Java の線形代数)を調べてみてください。密行列だけでなく疎行列も処理します。したがって、次のようなことを試すことができます。

Matrix a = new CRSMatrix(...); // Compressed Row Storage format
Matrix vd[] = a.decompose(Matrices.EIGEN_DECOMPOSITOR); // vd[0] = V, vd[1] = D

したがって、スパース行列では問題なく動作しますが、(100 万 X 100 万) サイズについてはわかりません。

于 2013-02-27T03:16:16.457 に答える