以下ダイナミックアレイは(N < = 100で)非対称のn×n個のマトリックスが含ま:C++反転行列
int **matrix;
matrix = new int*[n];
for (int i = 0; i < n; i++)
matrix[i] = new int[n];
は、それを反転するための非常に簡単な方法はありますか?理想的には、私はSTLから何かを使うか、または単一のヘッダファイルをダウンロードするだけです。
以下ダイナミックアレイは(N < = 100で)非対称のn×n個のマトリックスが含ま:C++反転行列
int **matrix;
matrix = new int*[n];
for (int i = 0; i < n; i++)
matrix[i] = new int[n];
は、それを反転するための非常に簡単な方法はありますか?理想的には、私はSTLから何かを使うか、または単一のヘッダファイルをダウンロードするだけです。
Eigen。
http://eigen.tuxfamily.org/index.php?title=Main_Page
あなたは固有の行列に、あなたの配列をマッピングして、効率的な行列反転を行うことができます。
これだけを含める必要があります。
通常、線形システム解法のために逆行列を実行する必要がある場合は、利用可能な行列のプロパティに基づいて行列分解を使用する方がよいと付け加えます。
極端にですが動作します。Numerical Recipes in cページ48、使用するLU分解。
反転とはどういう意味ですか?いくつかのサンプル入力と出力を試してみてください – Adrian
私は逆行列を見つけることを意味します:http://en.wikipedia.org/wiki/Invertible_matrix – pockethook
@Adrian彼はこのことをnxn行列と呼んでいるので、反転によって。 –