Методы вычисления определителя матрицы в Python

Чтобы вычислить определитель матрицы в Python, существует несколько методов. Вот несколько часто используемых подходов:

  1. Numpy:

    import numpy as np
    
    matrix = np.array([[1, 2], [3, 4]])
    determinant = np.linalg.det(matrix)
  2. Сайпи:

    from scipy import linalg
    
    matrix = [[1, 2], [3, 4]]
    determinant = linalg.det(matrix)
  3. Симпи:

    from sympy import Matrix
    
    matrix = Matrix([[1, 2], [3, 4]])
    determinant = matrix.det()
  4. Использование расширения кофактора (рекурсивный подход):

    def cofactor(matrix):
       if len(matrix) == 2:
           return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0]
       determinant = 0
       for c in range(len(matrix)):
           sub_matrix = [[matrix[i][j] for j in range(len(matrix)) if j != c] for i in range(1, len(matrix))]
           determinant += (-1)  c * matrix[0][c] * cofactor(sub_matrix)
       return determinant
    
    matrix = [[1, 2], [3, 4]]
    determinant = cofactor(matrix)
  5. Использование метода исключения Гаусса:

    def gaussian_elimination(matrix):
       n = len(matrix)
       for i in range(n):
           if matrix[i][i] == 0:
               for j in range(i + 1, n):
                   if matrix[j][i] != 0:
                       matrix[i], matrix[j] = matrix[j], matrix[i]
                       break
           for j in range(i + 1, n):
               ratio = matrix[j][i] / matrix[i][i]
               for k in range(i, n):
                   matrix[j][k] -= ratio * matrix[i][k]
       determinant = 1
       for i in range(n):
           determinant *= matrix[i][i]
       return determinant
    
    matrix = [[1, 2], [3, 4]]
    determinant = gaussian_elimination(matrix)