diff options
Diffstat (limited to 'lab3/lab3.py')
| -rw-r--r-- | lab3/lab3.py | 70 |
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 |