From 4304a5e64108140c7890ee034a957f7eb8208054 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Fri, 1 Apr 2022 19:33:34 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D1=80=D0=BE=D0=B1=D0=BD=D0=BE=D0=B5=20=D1=80=D0=B5?= =?UTF-8?q?=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B8=D0=B7=20=D1=82=D1=80=D0=B5=D1=82=D1=8C?= =?UTF-8?q?=D0=B5=D0=B9=20=D0=BB=D0=B0=D0=B1=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab3/lab3.py | 70 ++++++++++-------------------------------------------------- 1 file changed, 11 insertions(+), 59 deletions(-) (limited to 'lab3/lab3.py') 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 -- cgit v1.2.3