1

私はEigenが初めてで、スパースLU問題に取り組んでいます。ベクトル b(n) を作成すると、Eigenは Ax=b 方程式の x(n) を計算できることがわかりました。

質問:

  1. 元の行列 A の因数分解結果である L & U を表示するにはどうすればよいですか?

  2. Eigenにゼロ以外を挿入する方法は? 現在、小さなスパース行列でテストしているだけなので、ゼロ以外を 1 つずつ挿入しますが、大規模な行列がある場合、プログラムに行列を入力するにはどうすればよいですか?

4

2 に答える 2

-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();
    }
  }
于 2014-08-22T20:08:35.900 に答える