Gauss - Jordan Method

AIM: Write a Python program to solve the system of linear equations using Gauss - Jordan method.

Source Code:
import numpy as np
import sys

# Reading number of unknowns
n = int(input("Enter number of unknowns: "))

# Making numpy array of n x n+1 size and initializing
# to zero for storing augmented matrix
a = np.zeros((n,n+1))

# Making numpy array of n size and initializing
# to zero for storing solution vector
x = np.zeros(n)

# Reading augmented matrix coefficients
print("Enter Augmented Matrix Coefficients:")
for i in range(n):
  for j in range(n+1):
    a[i][j] = float(input( "a["+str(i)+"]["+ str(j)+"]="))

# Applying Gauss Jordan Elimination
for i in range(n):
  if a[i][i] == 0.0:
    sys.exit("Divide by zero detected!")
   
  for j in range(n):
    if i != j:
      ratio = a[j][i]/a[i][i]

      for k in range(n+1):
        a[j][k] = a[j][k] - ratio * a[i][k]

# Obtaining Solution
for i in range(n):
  x[i] = a[i][n]/a[i][i]

# Displaying solution
print("Required solution is: ")
for i in range(n):
  print("X%d = %0.2f" %(i,x[i]), end = "\t")
Output:
Enter number of unknowns: 3
Enter Augmented Matrix Coefficients:
a[0][0]=1
a[0][1]=1
a[0][2]=1
a[0][3]=9
a[1][0]=2
a[1][1]=-3
a[1][2]=4
a[1][3]=13
a[2][0]=3
a[2][1]=4
a[2][2]=5
a[2][3]=40
Required solution is:
X0 = 1.00     X1 = 3.00     X2 = 5.00