# Importing NumPy Library
import sys
import numpy
# Reading unknowns number
n = int(input('Enter number of unknowns: '))
# Making numpy array of n x n+1 size and initializing
# to zero for storing augmented matrix
arr = numpy.zeros((n,n+1))
# Making numpy array of n size and initializing
# to zero for storing solution vector
ans = numpy.zeros
# Reading augmented matrix
print('Enter Augmented Matrix Coefficients:')
for i in range

:
for j in range(n+1):
arr
[j] = float(input( 'matrix['+str(i)+']['+ str(j)+']='))
# print input matrix
print('INPUT MATRIX')
for i in range
:
row = [ ele for ele in arr ]
print(row)
# Applying Gauss Elimination
for i in range
:
if arr == 0.0:
sys.exit('Divide by zero detected!')
for j in range(i+1, n):
ratio = arr[j]/arr
for k in range(n+1):
arr[j][k] = arr[j][k] - ratio * arr[k]
# print final matrix
print('FINAL MATRIX')
for i in range
:
row = [ ele for ele in arr ]
print(row)
# Back Substitution
ans[n-1] = arr[n-1][n]/arr[n-1][n-1]
for i in range(n-2,-1,-1):
ans = arr[n]
for j in range(i+1,n):
ans = ans - arr[j]*ans[j]
ans = ans/arr
# Displaying solution
print('\nRequired solution is: ')
for i in range
:
print('X%d = %0.2f' %(i,ans))