Skip to content

Commit 58d36d0

Browse files
committed
Fix review issues
1 parent c2b5fe1 commit 58d36d0

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

linear_algebra/src/gaussian_elimination_pivoting.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,22 @@ def solve_linear_system(matrix: np.ndarray) -> np.ndarray:
2222
>>> solution = solve_linear_system(np.column_stack((A, B)))
2323
>>> np.allclose(solution, np.array([2., 3., -1.]))
2424
True
25-
>>> solve_linear_system(np.array([[0, 0, 0], [0, 0, 0]], dtype=float))
25+
>>> solve_linear_system(np.array([[0, 0, 0]], dtype=float))
2626
Traceback (most recent call last):
2727
...
28-
ValueError: Matrix is not correct
28+
ValueError: Matrix is not square
29+
>>> solve_linear_system(np.array([[0, 0, 0], [0, 0, 0]], dtype=float))
30+
Traceback (most recent call last):
31+
...
32+
ValueError: Matrix is singular
2933
"""
3034
ab = np.copy(matrix)
3135
num_of_rows = ab.shape[0]
3236
num_of_columns = ab.shape[1] - 1
3337
x_lst: list[float] = []
3438

35-
assert num_of_rows == num_of_columns
39+
if num_of_rows != num_of_columns:
40+
raise ValueError("Matrix is not square")
3641

3742
for column_num in range(num_of_rows):
3843
# Lead element search
@@ -41,8 +46,8 @@ def solve_linear_system(matrix: np.ndarray) -> np.ndarray:
4146
ab[[column_num, i]] = ab[[i, column_num]]
4247

4348
# Upper triangular matrix
44-
if ab[column_num, column_num] == 0.0:
45-
raise ValueError("Matrix is not correct")
49+
if abs(ab[column_num, column_num]) < 1e-8:
50+
raise ValueError("Matrix is singular")
4651

4752
if column_num != 0:
4853
for i in range(column_num, num_of_rows):

0 commit comments

Comments
 (0)