diff --git a/.gitignore b/.gitignore index 4d223ef..ff32beb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ .devcontainer/ __pycache__/ .pytest_cache/ + +Scripts +Lib +pyvenv.cfg diff --git a/det.py b/det.py index 2f56473..f8281d4 100644 --- a/det.py +++ b/det.py @@ -12,4 +12,19 @@ def det(m: np.ndarray) -> float: :return: Determinant of the matrix """ - raise NotImplementedError() + if m.shape == (2, 2): + return (m[0][0] * m[1][1]) - (m[0][1] * m[1][0]) + + # iterate across top column + # for each element in top column multiply by inner matrix determinant + determinant = 0 + + for index, element in enumerate(m[0]): + innerMatrix = np.delete(m, index, 1)[1:, :] + if (index % 2) == 0: + determinant += element * det(innerMatrix) + else: + determinant -= element * det(innerMatrix) + + + return determinant