# Python program to find the Reduced Row Echelon Form of a matrix

We call a matrix is in echelon or row echelon form if it meets the following conditions –

• The leading entry in each non-zero row of the given matrix is a 1 (also known as the leading coefficient).
• Every leading 1 is to the right of the row above it.
• Any non-zero rows are always above the row with all zeros.

The following are some examples of the row echelon form of a matrix.

Example 1:

The given 3×5 matrix is in its row echelon form.

Example 2:

A matrix is in Reduced Row Echelon Form (RREF) if it satisfies the given conditions –

• The matrix is in row echelon form
• The leading entry in each nonzero row is a 1
• Each column containing a leading 1 has zeros in all its other entries

Example 1:

The given matrix is in its reduced row echelon form.

Example 2:

Any matrix can be transformed into row echelon or reduced row echelon form by using the Gaussian elimination method which includes a number of elementary row operations.

There are three types of elementary row operations –

• Swapping two rows
• Multiplying a row by a nonzero number
• Adding or subtracting a multiple of one row to another row

## Python program to find Reduced Row Echelon Form of a Matrix

SymPy is an open-source python library for symbolic computation. We will use `rref()` method of this module to find the reduced row echelon form of a matrix.

But before you use it in your program first you need to download the SymPy package on your system, for that use –

``sudo pip3 install sympy``

Once it gets installed you can import this library into your Python program.

``````# Python program to transform a matrix in RREF

# import sympy
from sympy import *

# Enter a matrix
myMatrix = Matrix([[1, 0, 7, 3, 2], [0, 6, 4, 7, 3], [7,-1, -3, -5, -4]])
print("Matrix : {} ".format(myMatrix))

# Using sympy.rref() method to find rref
matrix_rref = myMatrix.rref()

print("The Row echelon form of given matrix and the pivot column is: {}".format(matrix_rref))

``````

When you execute this program it will display the given output.

Similarly, you enter a matrix with mxn dimension to transform it into reduced row echelon form.

Now if you have a query then write us in the comments below.