マトリックスに次のプロパティがある場合、マトリックスは行エシュロン形式になります。
- 完全にゼロで構成される行は、行列の一番下に表示されます。
- 完全にゼロを含まない各行では、最初の非ゼロのエントリは 1 (先頭 1 と呼ばれます) です。
- 連続する 2 つの (ゼロ以外の) 行の場合、上の行の先頭の 1 は、下の行の先頭の 1 よりも左にあります。
縮小行階層形式の場合、各行の先頭の 1 には、その列の上下に 0 が含まれます。
以下は行階層形式の例です。
そして縮小された行階層形式:
アンキタデイブ
ガウス消去法と呼ばれる手法を使用して、任意の行列を縮小行階層形式に変換できます。これは、連立一次方程式を解く場合に特に役立ちます。
ガウス消去法
ガウス消去は、行列を縮小された行階層形式に変換する方法です。また、連立一次方程式の解を求める方法としても使用できます。この背後にある考え方は、行に対していくつかの数学的演算を実行し、変数が 1 つだけ残るまで継続するというものです。
以下に実行できる操作をいくつか示します。
- 任意の 2 行を入れ替えます
- 2 つの行を加算します。
- 1 つの行にゼロ以外の定数 (つまり、1/3、-1/5、2) を掛けます。
次の線形方程式があるとします。
上記の拡張行列
ここで、これを行階層形式に変換する必要があります。これを行階層形式に変換するには、ガウス消去を実行する必要があります。
Javaジェネリックス
- まず、2*r を引く必要があります。1rから2そして4*r1rから3rの最初の位置に0を取得します2そして r3。
結合SQLから更新
- 次に、行 r2 と r3 を交換し、その後 5*r を減算します。2rから33 行目の 2 番目の 0 を取得します。
- これで、値を推定できます と rから3、つまり、10 z =0 ⇾ z=0。 z =0 の値を利用して、それを r2、y = 2 に代入できます。同様に、y と z の値を r に代入できます。1x=3 の値が得られます
マトリックスのランク
行列のランクは、行階層形式内のゼロ以外の行の数です。ランクを見つけるには、次の手順を実行する必要があります。
- 指定された行列の行階層形式を見つけます
- ゼロ以外の行の数を数えます。
マトリックスの例を見てみましょう:
ここで、上記の行列を行階層形式に縮小します。
ここでは、2 行のみにゼロ以外の要素が含まれています。したがって、行列のランクは 2 になります。
実装
- 行列を縮小行階層形式に変換するには、Python の Sympy パッケージを使用しました。まず、それをインストールする必要があります。
Python3
# install sympy> ! pip install sympy> # import sympy> import> sympy> # find the reduced row echelon form> sympy.Matrix([[> 4> ,> 0> ,> 1> ],[> 2> ,> 0> ,> 2> ],[> 3> ,> 0> ,> 3> ]]).rref()> # find the rank of matrix> print> ('Rank of matrix :',sympy.Matrix([[> 4> ,> 0> ,> 1> ],[> 2> ,> 0> ,> 2> ],[> 3> ,> 0> ,> 3> ]]).rank())> |
>
>
出力:
(Matrix([ [1, 0, 0], [0, 0, 1], [0, 0, 0]]), (0, 2)) Rank of matrix : 2>