package alg import ( "zhimolostnova_anna_lab_6/util" ) // Determinant Функция для вычисления детерминанта матрицы func Determinant(matrix [][]float64) float64 { size := len(matrix) if size == 1 { return matrix[0][0] } if size == 2 { return matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0] } // Рекурсивное вычисление детерминанта по разложению по первой строке det := 0.0 for j := 0; j < size; j++ { subMatrix := util.GetMinor(matrix, j) sign := 1 if j%2 != 0 { sign = -1 } det += float64(sign) * matrix[0][j] * Determinant(subMatrix) } return det }