サムネがコーヒーの記事は書きかけです。

PythonでGauss-Jordan EliminationとRREFの取得

行列のガウス・ジョルダン変形とRREFの取得をやってみます。

Gauss-Jordan Elimination

$$\begin {pmatrix}1&2&3&1&0\\2&4&6&3&1\\3&4&1&1&-2\\4&6&4&-1&-5\end{pmatrix}$$

この行列をガウス・ジョルダン変形すれば、以下のようになります。

$$\begin {pmatrix}1&0&-5&0&-1\\0&1&4&0&0\\0&0&0&1&1\\0&0&0&0&0\end{pmatrix}$$

これをpythonで計算するには、以下のスクリプトを実行します。

import sympy as sp
import numpy as np

A = [[1,2,3,1,0],[2,4,6,3,1],[3,4,1,1,-2],[4,6,4,-1,-5]]

def rref(mat) -> np.ndarray:
    m = sp.Matrix(A)
    m_rref, pivots = m.rref()
    return np.array(m_rref)
rref(A)
>>>
[[1 0 -5 0 -1]
 [0 1 4 0 0]
 [0 0 0 1 1]
 [0 0 0 0 0]]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です