def solver_2(mx, vec):
    m_gauss, v_gauss = gauss_transformation(mx, vec)
    x = lower_zeros_simple_equation_solver(m_gauss, v_gauss)

    doc.add(Text('После приведения к нижнетреугольной матрице:'))
    doc.add(Math(r'\acute{A} = ', m_gauss))
    doc.add(Math(r'\acute{b} = ', v_gauss))
    return x


if __name__ == '__main__':
    n = int(sys.argv[1])
    original_mx, original_vec, ans = generate_matrix_and_vector_and_answer(n)


    doc.add(Section('Решение Ax = b  различными методами для N={}(вариант)'.format(n)))
    doc.add(Math('A = ', original_mx.map('{:.8g}'.format)))
    doc.add(Math('b = ', original_vec.map('{:.8g}'.format)))
    doc.add(Text('Точный ответ:'))
    doc.add(Math(r'\bar{x} = ', ans))

    for method in [1, 2]:
        for k in [2, 4, 6]:
            Num.precision = k
            mx = original_mx.map(Num)
            vec = original_vec.map(Num)
            slv_name = 'компактной схемы Гаусса(LU-разложение)' if method == 1 else 'Гаусса с выбором главного элемента'
            doc.add(Text(''))
            doc.add(Text(''))
            doc.add(Section('Решение системы методом {} при k={}(точность)'.format(slv_name, k)))
            calc_ans = solver_1(mx, vec) if method == 1 else solver_2(mx, vec)