私はEigenが初めてで、スパースLU問題に取り組んでいます。ベクトル b(n) を作成すると、Eigenは Ax=b 方程式の x(n) を計算できることがわかりました。
質問:
元の行列 A の因数分解結果である L & U を表示するにはどうすればよいですか?
Eigenにゼロ以外を挿入する方法は? 現在、小さなスパース行列でテストしているだけなので、ゼロ以外を 1 つずつ挿入しますが、大規模な行列がある場合、プログラムに行列を入力するにはどうすればよいですか?
元のマトリックスを使用Eigen::FullPivLU::matrixLU()
する場合は、LU 分解マトリックスを受け取ります。L と U を別々に表示するには、メソッドtriangularView<
モード>
を使用できます。Eigen wiki では、その良い例を見つけることができます。行列へのゼロ以外の挿入は、入れたくない数値に依存します。Eigen には便利な構文があるため、ループに値を簡単に挿入できます。
for(int i=0;i<size;i++)
{
for(int j=size;j>someNumber;j--)
{
matrix(i,j)=yourClass.getNextNumber();
}
}