0

スパース行列を実装し、コレスキー分解、LU分解、QR分解などの分解を実行する必要があります。

実際、密行列に対してこれを実行できるJAMAというライブラリを見つけました。

しかし、スパース行列を実装する必要があります。

誰もがスパース行列を実装した経験を共有できますか、それを実装するためのライブラリがありますか。

4

2 に答える 2

1

ColtまたはMatrix-Toolkits-Javaを見たことがありますか?これらはあなたを助けるかもしれません。

于 2011-08-26T21:21:48.927 に答える
1

スパース行列をサポートするla4j (Java用線形代数)ライブラリがあります。la4jは、CRS(圧縮行ストレージ)およびCCS(圧縮列ストレージ)として最も一般的で効果的なスパース表現を使用します。la4jの対応するクラスは次のとおりです:CRSMatrixおよびCCSMatrix。したがって、ソースを調べたり、前述の分解でla4jのスパース行列を直接使用したりできます。

簡単な例を次に示します。

Matrix a = new CRSMatrix(new double[][]{
    { 1.0, 0.0, 0.0 },
    { 0.0, 2.0, 0.0 },
    { 0.0, 0.0, 3.0 }
});

Matrix[] qr = a.decompose(Matrices.QR_DECOMPOSITOR); // qr[0] = Q, qr[1] = R

Matrix[] u = a.decompose(Matrices.CHOLESKY_DECOMPOSITOR); // u[0] = U
于 2013-02-11T04:07:12.670 に答える