2

nxn行列式を解いて値を返すことができるコンピューターアルゴリズムが必要でした。最も推奨されるのは、入力が2D配列、Nであり、出力が値であるC++言語です。

数学には、サイズが3 x 3を超える行列式を解くための徹底的な方法があります。誰かが行列式を解くコードスニペットを見つけることができれば、それは役に立ちます。

主な目的は、「n」線形方程式のシステムの係数を前提として、「n」変数を解くことでした。'n'が4を超えると、この問題は紙の上で厄介になります。このような方程式を解くための「行列式」の方法が1つあります。'n'が3を超えると、紙の上でも乱雑になりますが、代わりにコンピューターがそれを解決する方法を見つけることができれば、それは実行可能です。ありがとう!

4

4 に答える 4

3

数値レシピで説明されているように、行列式は、LU分解後の対角要素の積にすぎません。(この本はオンラインで入手でき、LU分解を計算するためのコードがあります)。

于 2012-04-09T16:58:20.530 に答える
1

ウィキペディアにはアルゴリズムのリストがあります。LAPACKとそのいとこは標準ツールであり、 C++バージョンがあるように見えます。

于 2012-04-09T16:58:31.643 に答える
1

より単純なアプローチは、ラプラ式を適用して再帰的な方法を使用することです (http://en.wikipedia.org/wiki/Determinant#Laplace.27s_formula_and_the_adjugate_matrix)

ここに det() 関数を実装するクラス Matrix があります。 http://www.dreamincode.net/forums/topic/55772-determinant-of-matrix-in-c/

2 つのソリューションがここに示されています: http://cboard.cprogramming.com/cplusplus-programming/30001-determinant-calculation.html

最初のものは再帰的ではなく、2番目のものは基本的に最初のリンクと同じソリューションです。非再帰的な方法では、基本的に行列を三角行列に変換します。三角行列の行列式は、対角要素の乗算です。ここを参照してください: http://en.wikipedia.org/wiki/Determinant#Properties_of_the_determinant (ルール 6)

于 2012-04-09T17:18:05.870 に答える