30/08/2025, 18:34 AI_ASSIGNMENT_3.
ipynb - Colab
mat = [[8.0,2.0,1.0],[4.0,7.0,6.0],[2.0,3.0,-4.0]]
def int_gauss_elemination(matrix):
from copy import deepcopy
A = deepcopy(matrix)
n = len(A)
D = 1 # previous pivot
for k in range(n-1):
if A[k][k] == 0:
# swap with a lower row that has nonzero pivot
for l in range(k+1, n):
if A[l][k] != 0:
A[k], A[l] = A[l], A[k]
break
pivot = A[k][k]
if pivot == 0:
continue
for i in range(k+1, n):
for j in range(k+1, n):
A[i][j] = (A[i][j]*pivot - A[i][k]*A[k][j]) // D
D = pivot
# Zero out lower column
for i in range(k+1, n):
A[i][k] = 0
return A
A = [[8, 2, 1],
[4, 7, 6],
[2, 3, -4]]
rank_2=[[0,0,0],
[2,5,9],
[3,7,13]]
result = int_gauss_elemination(A)
for row in result:
print(row)
print("Determinant =", result[-1][-1]) # last pivot
rank =0
for i in range(len(rank_2)):
if result[i][i]!=0:
rank+=1
print("Rank =", rank)
if rank == 3:
print("all the columns and rows are linearly independent")
else:
print("all the columns and rows are linearly dependent")
[8, 2, 1]
[0, 48, 44]
[0, 0, -314]
Determinant = -314
Rank = 3
all the columns and rows are linearly independent
mat = [[8.0,2.0,1.0],[4.0,7.0,6.0],[2.0,3.0,-4.0]]
# for row in mat:
# print(row)
inv = [[1 if i == j else 0 for j in range(len(mat[0])) ]for i in range(len(mat))]
# print(inv)
# for row in inv:
# print(row)
for k in range(len(mat)):
for i in range(k,len(mat)):
den = mat[i][k]
for j in range(len(mat[0])):
mat[i][j] = mat[i][j] / den
inv[i][j] = inv[i][j] / den
# print(mat)
https://colab.research.google.com/drive/1mZjrrGbg1k-fyamL16HtC0cd4vSJ3qZG?authuser=2#printMode=true 1/2
30/08/2025, 18:34 AI_ASSIGNMENT_3.ipynb - Colab
for l in range(k+1,len(mat)):
for m in range(len(mat[0])):
mat[l][m] = mat[l][m] - mat[k][m]
inv[l][m] = inv[l][m] - inv[k][m]
# for row in mat:
# print(row)
# for row in inv:
# print(row)
for i in range(len(mat)-1,0,-1):
for j in range(i-1,-1,-1):
mul = mat[j][i]
for k in range(len(mat)):
mat[j][k] = mat[j][k] - mat[i][k]*mat[j][i]
inv[j][k] = inv[j][k] - inv[i][k]*mul
print("REDUCED ROW ELCHLEON FORM: ")
print("\n")
for row in mat:
print(row)
print("\n")
print("INVERSE OF THE MATRIX")
print("\n")
for row in inv:
print(row)
REDUCED ROW ELCHLEON FORM:
[1.0, 0.0, 0.0]
[0.0, 1.0, 0.0]
[-0.0, -0.0, 1.0]
INVERSE OF THE MATRIX
[0.1464968152866242, -0.03503184713375796, -0.01592356687898089]
[-0.08917197452229299, 0.10828025477707007, 0.14012738853503184]
[0.0063694267515923605, 0.06369426751592357, -0.15286624203821655]
keyboard_arrow_down inverse of the given matrix
https://colab.research.google.com/drive/1mZjrrGbg1k-fyamL16HtC0cd4vSJ3qZG?authuser=2#printMode=true 2/2