From b07c66515193eb9a9ed4b41b5f384df33bf6fc63 Mon Sep 17 00:00:00 2001 From: Hrishikesh Date: Sat, 20 Oct 2018 19:29:07 +0530 Subject: [PATCH] Added Gaussian Elimination method for inverse of matrix --- .../GaussianElimination.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 python/Gaussian Method for inverse/GaussianElimination.py diff --git a/python/Gaussian Method for inverse/GaussianElimination.py b/python/Gaussian Method for inverse/GaussianElimination.py new file mode 100644 index 0000000..f589d7b --- /dev/null +++ b/python/Gaussian Method for inverse/GaussianElimination.py @@ -0,0 +1,40 @@ +import numpy as np +m = int(input('number of rows and columns, m = ')) +matrix = []; columns = [] +matrix1 = [] +# initialize the number of rows +for i in range(0,m): + matrix += [0] + matrix1 += [0] +# initialize the matrix +for i in range (0,m): + matrix[i] = [0]*m + matrix1[i] = [0]*m + +for i in range (0,m): + for j in range (0,m): + print ('entry in row: ',i+1,' column: ',j+1) + matrix[i][j] = float(input()) +for i in range (0,m): + for j in range (0,m): + if i==j: + matrix1[i][j] = 1.0; + +A = np.array(matrix); +B = np.array(matrix1); +if(np.linalg.det(A)!=0): + for i in range(0,m): + c = A[i,i]; + A[i,:] = A[i,:]/c; + B[i,:] = B[i,:]/c; + + for j in range(0,m): + if i!=j: + d = A[j,i]; + print(d) + A[j,:] = A[j,:]-d*A[i,:]; + B[j,:] = B[j,:]-d*B[i,:]; + print(B) +else: + print("Inverse not possible as determinant of matrix is zero"); +