Как сохранить дробь в выводе без оценки - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь выяснить Характеристический полином и Собственные значения , используя sympy.Но когда я печатаю результаты в блокноте Jupyter, все доли в коэффициентах многочленов были оценены как float (например, 0.5x**2+1), но я хочу $(1/2)x^2+1$). Есть ли что-нибудь, чтобы решить эту проблему. Спасибо.

Мой код

import sympy as sp
from sympy import *
x, y, z = symbols('x,y,z')
init_printing(use_unicode=False, wrap_line=False)
M = sp.Matrix([[0, -1/2], [1/3, 0]])
x = symbols('x')
p = M.charpoly(x)
p

Выход.

Output

1 Ответ

0 голосов
/ 19 сентября 2018

это соответствующие переменные

from fractions import Fraction
M = sp.Matrix([[0, -Fraction(1, 2)], [Fraction(1, 3), 0]])

, которые дают

PurePoly(x**2 + 1/6, x, domain='QQ')

смысл в том, что 1/3 немедленно преобразуется в float 0.3333 ... путь кИзбегайте использования fractions.Fraction или (возможно, лучше) его версии: sympy.Rational.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...