From ba1eba3ea8bc725f2bc0021c6edde7d4aea4e040 Mon Sep 17 00:00:00 2001 From: syn Date: Sun, 15 Mar 2020 19:51:42 +0300 Subject: Other tasks --- 4/two_basis.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 4/two_basis.py (limited to '4/two_basis.py') diff --git a/4/two_basis.py b/4/two_basis.py new file mode 100644 index 0000000..d1d71a2 --- /dev/null +++ b/4/two_basis.py @@ -0,0 +1,47 @@ +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) -- cgit v1.2.1-18-gbd029