Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def my_det(X):
- '''
- Parameters
- ----------
- X : array_like
- Returns
- -------
- det : float
- Determinant of `a`.
- '''
- a = X
- n = len(X)
- m = len(X[0])
- if n != m:
- raise ValueError("Matrices are of different sizes!")
- eps = 1e-6
- tmp = [[a[i][j] for j in range(m)] for i in range(n)]
- res = 1
- for i in range(n):
- ind = i
- for j in range(i + 1, n):
- ind = i if abs(tmp[j][i]) <= abs(tmp[ind][i]) else j
- if abs(tmp[ind][i]) < eps:
- return 0
- tmp[i], tmp[ind] = tmp[ind], tmp[i]
- if ind != i:
- res *= -1
- res *= tmp[i][i]
- for j in range(i + 1, n):
- tmp[i][j] /= tmp[i][i]
- for j in range(n):
- if abs(tmp[j][i]) > eps and i != j:
- for p in range(i + 1, n):
- tmp[j][p] -= tmp[i][p] * tmp[j][i]
- det = res
- # Your code here
- return det
Advertisement
Add Comment
Please, Sign In to add comment