Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4282063

Browse files
NaitikDwivedepre-commit-ci[bot]MaximSmolskiy
authored
Add matrix inversion algorithm using NumPy (#12657)
* Create matrix_inversion.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update matrix_inversion.py * Update matrix_inversion.py * Update matrix_inversion.py * Update matrix_inversion.py * Update matrix_inversion.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Maxim Smolskiy <mithridatus@mail.ru>
1 parent d123cbc commit 4282063

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

‎linear_algebra/matrix_inversion.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import numpy as np
2+
3+
4+
def invert_matrix(matrix: list[list[float]]) -> list[list[float]]:
5+
"""
6+
Returns the inverse of a square matrix using NumPy.
7+
8+
Parameters:
9+
matrix (list[list[float]]): A square matrix.
10+
11+
Returns:
12+
list[list[float]]: Inverted matrix if invertible, else raises error.
13+
14+
>>> invert_matrix([[4.0, 7.0], [2.0, 6.0]])
15+
[[0.6000000000000001, -0.7000000000000001], [-0.2, 0.4]]
16+
>>> invert_matrix([[1.0, 2.0], [0.0, 0.0]])
17+
Traceback (most recent call last):
18+
...
19+
ValueError: Matrix is not invertible
20+
"""
21+
np_matrix = np.array(matrix)
22+
23+
try:
24+
inv_matrix = np.linalg.inv(np_matrix)
25+
except np.linalg.LinAlgError:
26+
raise ValueError("Matrix is not invertible")
27+
28+
return inv_matrix.tolist()
29+
30+
31+
if __name__ == "__main__":
32+
mat = [[4.0, 7.0], [2.0, 6.0]]
33+
print("Original Matrix:")
34+
print(mat)
35+
print("Inverted Matrix:")
36+
print(invert_matrix(mat))

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /