summaryrefslogtreecommitdiff
path: root/lab3/lab3.py
diff options
context:
space:
mode:
Diffstat (limited to 'lab3/lab3.py')
-rw-r--r--lab3/lab3.py70
1 files changed, 11 insertions, 59 deletions
diff --git a/lab3/lab3.py b/lab3/lab3.py
index bb41579..2ddcc18 100644
--- a/lab3/lab3.py
+++ b/lab3/lab3.py
@@ -181,6 +181,10 @@ def mat_multiply(a: np.array, b: np.array):
return np.matmul(a, b)
+def mat_invert(a: np.array):
+ return np.linalg.inv(a)
+
+
def check_matrices():
def read_matrix(n: int, m: int) -> np.array:
a = []
@@ -193,6 +197,7 @@ def check_matrices():
print("2 - Умножение матрицы на скаляр;")
print("3 - Транспонирование матриц;")
print("4 - Умножение матриц;")
+ print("5 - Вычисление обратной матрицы;")
test = int(input("> "))
if test == 1:
n, m = map(int, input("Введите размерность матриц: ").split())
@@ -231,59 +236,13 @@ def check_matrices():
print("Произведение матриц:")
print(mat_multiply(a, b))
+ elif test == 5:
+ n, m = map(int, input("Введите размерность матрицы: ").split())
+ print("Введите матрицу:")
+ a = read_matrix(n, m)
-############
-# Задача 1 #
-############
-
-def task1():
- print("Задача 1:")
- elements = "a b c d".split()
- cayley = np.array([
- list("abab"),
- list("abab"),
- list("abcd"),
- list("abcd"),
- ])
- if check_associativity(cayley, elements):
- print("Данная операция является ассоциативной")
- else:
- print("Данная операция не является ассоциативной")
-
-############
-# Задача 2 #
-############
-
-def task2(l: float):
- print("Задача 2:")
- a = np.array([
- [1, -2],
- [-3, l]
- ])
- e = np.identity(2)
- b = mat_add(
- mat_add( mat_multiply(a, a),
- mat_scale(10 - l / 2, a) ),
- mat_scale(l / 2, e)
- )
- print(b)
-
-############
-# Задача 3 #
-############
-
-def task3(l: float):
- print("Задача 3:")
- a = np.array([
- [ -1, l, 3],
- [l / 3, 2, 8 - l / 3]
- ])
- b = np.array([
- [-l, 2],
- [ 1, 10 - l / 2],
- [-3, l]
- ])
- print(mat_multiply(a, b))
+ print("Результат:")
+ print(mat_invert(a))
############
@@ -300,13 +259,6 @@ def main():
if flag.lower() == "да":
check_matrices()
- flag = input("Выполнить задания? (да/НЕТ) ")
- if flag.lower() == "да":
- l = 6
- task1()
- task2(l)
- task3(l)
-
if __name__ == "__main__":
main() \ No newline at end of file