from libsolve import * from fractions import Fraction import numpy as np TWO_SIMEQ = '\\overset{{\\texttt{{two.py}}}}\\simeq' # generate figure as plain file, so we can \input it def gen_figure(figname, text): with open(f'figures/fig_two_{figname}.tex', 'w') as fd: fd.write('$$' + text + '$$') AT = Matrix([ [-2, 14, 18, 14], [-3, -9, -3, -3], [-12, -6, 18, 12], [6, 18, 6, 6] ]) before = AT.to_tex() AT.make_D(0, -Fraction(1, 2)) AT.make_D(1, -Fraction(1, 3)) AT.make_D(2, -Fraction(1, 6)) AT.make_D(3, Fraction(1, 6)) AT.make_S(1, 0, -1) AT.make_S(2, 0, -2) AT.make_S(3, 0, -1) AT.make_S(2, 1, -Fraction(3, 2)) AT.make_S(3, 1, -1) AT.make_D(1, Fraction(1, 2)) gen_figure('fsr_A_T', f''' {before} {TWO_SIMEQ} {AT.to_tex()} ''') AB = Matrix([ [-2, -3, -12, 6], [14, -9, -6, 18], [18, -3, 18, 6], [14, -3, 12, 6], [2, -1, 1, 0], [7, -4, 0, 5] ]) before = AB.to_tex() AB.triangulate() AB.make_D(0, Fraction(1, 2)) AB.make_D(1, -Fraction(1, 30)) AB.make_U(2, 4) gen_figure('AB_sol', f''' {before} {TWO_SIMEQ} {AB.to_tex()} ''') A = Matrix([ [-2, -3, -12, 6], [14, -9, -6, 18], [18, -3, 18, 6], [14, -3, 12, 6] ]) before = A.to_tex() A.triangulate() A.make_D(0, -1) A.make_D(1, -Fraction(1, 30)) gen_figure('ker_A', f''' {before} {TWO_SIMEQ} {A.to_tex()} ''') imker = Matrix([ [-2, 14, 18, 14], [-3, -9, -3, -3], [-12, -6, 18, 12], [6, 18, 6, 6], [-3, -6, 2, 0], [0, 2, 0, 1] ]) before = imker.to_tex() imker.triangulate() gen_figure('imker', f''' {before} {TWO_SIMEQ} {imker.to_tex()} ''')