2012-04-28 9 views
1

プログラムが行列のランクを見つける方法を考えるのが難しいです。特に、私は、プログラムが線形結合のすべてのケースを捕らえて、依存関係が生じることを確実にする方法を完全には理解していません。C++ - 行列のランクを見つける方法

これを解決する方法の一般的な考え方は、私が興味を持っていることです。しかし、答えをもっと遠くに進めたいのであれば、私は具体的には正方行列のみについて解を探しています。また、コードはC++になります。

ありがとうございました!

+2

'rank'関数は数値的に不安定です。通常は、行列が不良条件*であるかどうかを知りたければ、それは低ランク行列に非常に近いです。しかし、丸め誤差が心配していない場合は、Gauss-Jordanを使用して同じランクの三角行列を作ることができます。 –

答えて

1

一般プロセス:

行列=

平方メートル= RREF(マトリックス)

ランク= number_non_zero_rows(㎡)

RREF( 'あなたがのランクを見つけたいあなたの行列'行列)は、あなたの常用のガウス消去を行う関数です。

number_non_zero_rows(m2)は、行数を合計する関数です。w i以外のエントリがありません

rational(Gaussian elimination)ステップでは、依存関係が発生する線形結合のすべてのケースについて懸念しています。ちなみに、これは行列の次元が何であるかに関係なく機能します。

関連する問題