File tree 1 file changed +8
-1
lines changed
1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -27,14 +27,21 @@ def inverse_of_matrix(matrix: list[list[float]]) -> list[list[float]]:
27
27
[[0.25, -0.5], [-0.3, 1.0]]
28
28
"""
29
29
30
- D = Decimal # An abbreviation to be conciseness
30
+ D = Decimal # An abbreviation for conciseness
31
+
32
+ # Check if the provided matrix has 2 rows and 2 columns, since this implementation only works for 2x2 matrices
33
+ if len (matrix ) != 2 or len (matrix [0 ]) != 2 or len (matrix [1 ]) != 2 :
34
+ raise ValueError ("Please provide a matrix of size 2x2." )
35
+
31
36
# Calculate the determinant of the matrix
32
37
determinant = D (matrix [0 ][0 ]) * D (matrix [1 ][1 ]) - D (matrix [1 ][0 ]) * D (matrix [0 ][1 ])
33
38
if determinant == 0 :
34
39
raise ValueError ("This matrix has no inverse." )
40
+
35
41
# Creates a copy of the matrix with swapped positions of the elements
36
42
swapped_matrix = [[0.0 , 0.0 ], [0.0 , 0.0 ]]
37
43
swapped_matrix [0 ][0 ], swapped_matrix [1 ][1 ] = matrix [1 ][1 ], matrix [0 ][0 ]
38
44
swapped_matrix [1 ][0 ], swapped_matrix [0 ][1 ] = - matrix [1 ][0 ], - matrix [0 ][1 ]
45
+
39
46
# Calculate the inverse of the matrix
40
47
return [[float (D (n ) / determinant ) or 0.0 for n in row ] for row in swapped_matrix ]
You can’t perform that action at this time.
0 commit comments