from libsolve2 import * from fractions import Fraction as F def f_eye(dim): return Matrix([ [0 if i != j else 1 for i in range(dim)] for j in range(dim) ]) eye = f_eye(6) m = Matrix([ [ 4, -3, -2, 0, 0, 0], [ 0, 2, -1, 0, 0, 0], [ 0, 2, 5, 0, 0, 0], [ 1, 1, 1, 2, -1, 0], [-2, -3, -3, 4, 6, 0], [ 1, 8, 7, -5, -3, 3] ]) for_root1 = m - eye * 3 print('(m - 3E)^2 =') print((for_root1@for_root1).triangled(swap=True)) print() print() for_root2 = m - eye * 4 print('(m - 4E)^2 =') print((for_root2@for_root2).triangled(swap=True)) def make_vec(iter): return Matrix([[i] for i in iter]) print() print('Проверим, лежит ли кто-нибудь из ФСР в ядре:') print(((for_root2) @ make_vec([0, -F(1, 3), F(2, 3), 0, 0, 1])).T) print(((for_root2) @ make_vec([0, -F(2, 3), F(4, 3), 0, 1, 0])).T) print(((for_root2) @ make_vec([0, -1, 2, 1, 0, 0])).T) print(((for_root2) @ make_vec([1, 0, 0, 0, 0, 0])).T) print('кажется, ни один вектор не лежит в ядре.') print() print('а вот эти уже лежат в ядре') print((for_root2 @ make_vec([0, -1, 2, 1, 0, 0])).T) print((for_root2 @ make_vec([1, 0, 0, 0, 0, 0])).T)