4

次の動的配列には、非対称 n*n 行列 (n <=100) が含まれています。

int **matrix;
matrix = new int*[n];
for (int i = 0; i < n; i++)
    matrix[i] = new int[n];

それを逆にする非常に簡単な方法はありますか?理想的には、STL から何かを使用するか、単一のヘッダー ファイルをダウンロードするだけです。

4

2 に答える 2

10

アイゲンを使用。

http://eigen.tuxfamily.org/index.php?title=Main_Page

配列を固有行列にマップしてから、効率的な行列反転を実行できます。

それのみを含める必要があります。

通常、線形システムを解くために反転を実行する必要がある場合は、利用できる行列のプロパティに基づいて行列分解を使用することをお勧めします。

http://eigen.tuxfamily.org/dox/TutorialLinearAlgebra.html

于 2012-03-08T14:21:27.980 に答える
3

非常に簡単ではありませんが、うまくいきます: c 48 ページの Numerical Recipes、 LU 分解を使用します。

于 2012-03-08T14:19:18.883 に答える