Advertisement
Guest User

Untitled

a guest
Nov 10th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def determinate(A):
  2.     determinate = 1
  3.     ## преобразуем две матрицы в одну для упрощения подсчетов
  4.     matrix = np.array(copy.deepcopy(A), dtype = np.float64)
  5.     ## приведение к треугольному виду
  6.     n = matrix.shape[0]
  7.     for i in range(0, n):
  8.         ## находим ненулевой элемент, меняем строки и запоминаем его индекс
  9.         j = i
  10.         while matrix[j][i] == 0:
  11.             j += 1
  12.         if i != j:
  13.             determinate *= -1
  14.         tmp = copy.deepcopy(matrix[i])
  15.         matrix[i] = matrix[j]
  16.         matrix[j] = tmp
  17.         ## обнуляем оставшиеся элементы в столбце
  18.         determinate *= matrix[i][i]
  19.         matrix[i] = matrix[i] / matrix[i][i]
  20.         for k in range(0, n):
  21.             if k == i:
  22.                 continue
  23.             matrix[k] -= matrix[i] * matrix[k][i]
  24.     return determinate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement