From 5cd1f142d2002717c18f7595f9492afeb4ddf061 Mon Sep 17 00:00:00 2001 From: syn Date: Sun, 15 Mar 2020 13:36:04 +0300 Subject: First task --- 4/one.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 4/one.py (limited to '4/one.py') diff --git a/4/one.py b/4/one.py new file mode 100644 index 0000000..341c383 --- /dev/null +++ b/4/one.py @@ -0,0 +1,38 @@ +from libsolve2 import * +from fractions import Fraction + +def f_eye(dim): + return Matrix([ + [0 if i != j else 1 for i in range(dim)] + for j in range(dim) + ]) + +matrices = { + 'A': Matrix([ + [ 2, -3, 1, 3], + [ 9, -9, 1, 4], + [-5, 2, -6, -2], + [-5, 2, -1, -7] + ]), + 'B': Matrix([ + [ 2, -3, 1, 3], + [ 5, -7, 1, 2], + [-5, 2, -6, -2], + [-9, 4, -1, -9] + ]), + 'C': Matrix([ + [-6, -8, -4, 3], + [ 1, 1, 3, -2], + [-1, -4, -7, 1], + [ 1, 8, 4, -8] + ]) +} + +for name, m in matrices.items(): + print() + print(f'{name} polynomial is {(m - f_eye(4) * x).det()}') + m5 = m + f_eye(4) * 5 + print(f'{name} + 5E =\n{m5}') + print(f'rank({name} + 5E) = {m5.rank()}') + print(f'rank({name} + 5E)**2 = {(m5@m5).rank()}') + print(f'rank({name} + 5E)**3 = {(m5@m5@m5).rank()}') -- cgit v1.2.1-18-gbd029