Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def determinate(A):
- determinate = 1
- ## преобразуем две матрицы в одну для упрощения подсчетов
- matrix = np.array(copy.deepcopy(A), dtype = np.float64)
- ## приведение к треугольному виду
- n = matrix.shape[0]
- for i in range(0, n):
- ## находим ненулевой элемент, меняем строки и запоминаем его индекс
- j = i
- while matrix[j][i] == 0:
- j += 1
- if i != j:
- determinate *= -1
- tmp = copy.deepcopy(matrix[i])
- matrix[i] = matrix[j]
- matrix[j] = tmp
- ## обнуляем оставшиеся элементы в столбце
- determinate *= matrix[i][i]
- matrix[i] = matrix[i] / matrix[i][i]
- for k in range(0, n):
- if k == i:
- continue
- matrix[k] -= matrix[i] * matrix[k][i]
- return determinate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement