行列式を計算するのに必要な基本演算の最小数見つける上の任意の作業が行われているによって小と固定するためのマトリックス?たとえば、です。n n n = 5
行列式を計算するのに必要な基本演算の最小数見つける上の任意の作業が行われているによって小と固定するためのマトリックス?たとえば、です。n n n = 5
回答:
それが必要な演算の数は、の行列計算することが知られており、行列であり、行列乗算定数です。たとえば、Wikipediaのこの表、およびその脚注と参照を参照してください。マトリックス反転の漸近的な複雑さも、この同じ意味でのマトリックス乗算と同じであることに注意してください。
同等性は非常に効果的です。特に、Schur補数を使用して(n / 2 )× (n / 2 )ブロックを操作することにより、行列の行列式を再帰的に計算できます。
したがって、つの行列式を計算し、1つの行列を反転し、 2つのペアを乗算することにより、行列式を計算できます。行列、およびいくつかの単純な操作。行列式の呼び出しを再帰的に展開すると、複雑さは行列の乗算と反転に支配されることになります。(n / 2 )× (n / 2 )(n / 2 )× (n / 2 )(n / 2 )× (n / 2 )
これは、が小さいでも、サブキュービック行列乗算アルゴリズムを使用しなくてもうまく機能します。(もちろん、最終的にはガウス消去法とほぼ同等になります。)たとえば、場合、2つの乗算、、4つの除算を計算できます、乗算、、2回の乗算、および最終回答は1回の乗算。合計数は乗算と除算で、未満ですn = 4 det (D )D − 1 B D − 1 C 2 × 8 = 16 det (A − B D − 1 C )2 + 4 + 16 + 2 + 1 = 25 40補因子の拡大から。Strassenのアルゴリズムを使用すると、ここで2つの乗算が節約されますが、より漸近的になります。
この拡張では分割が非常に重要であることに気付くかもしれません。除算を避けたい場合は、操作でClowシーケンスと動的プログラミングを使用して除算を行うことができます。乗算を実行し、除算を実行しない方法も知られています。n 2 + ω / 2 + o (1 )