0

疎行列 A を Compressed Sparse Row 形式 (CSR) で保存します。A の LU 分解を計算したいと思います。一般的なアルゴリズムは、行列のすべての係数をループする必要があるため、あまり効率的ではありません。CSR 形式を利用して LU 分解を計算する効率的なアルゴリズムはありますか? ご協力ありがとうございました!

4

1 に答える 1

0

私はla4j (Java の線形代数) ライブラリの作成者です。la4j は CRS フォーマットと LU 分解をサポートしています。だから、あなたはそれを使ってみることができます。しかし、la4j (0.4.0) は、分解を実行する際に具体的な形式の詳細を実際には処理しません。しかし、これは私が次のリリースで計画していることです。更新を購読するか、そのようなアルゴリズムを自分で実装して、la4j にプルリクエストを送信することができます。

LU デコンポジターの使用方法:

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

// lu[0] - L, lu[1] - U
Matrix[][] lu = a.decompose(Matrices.LU_DECOMPOSITOR);
于 2013-06-07T05:06:18.157 に答える