Упрощение уравнения Sympy не избавляет от дробей. Есть ли простой способ сделать это?Python

Программы на Python
Anonymous
Упрощение уравнения Sympy не избавляет от дробей. Есть ли простой способ сделать это?

Сообщение Anonymous »

Я запускаю код, содержащий что-то вроде следующего:
import sympy
eq_lhs = sympy.sympify("2*x - 3*y + 43/2")
my_eq = sympy.Eq(eq_lhs, rhs=0)
my_eq.simplify()
print(my_eq)

Вывод по-прежнему
2*x - 3*y + 43/2 = 0

Хотя я ожидаю, что дроби будут выброшены на множитель как таковые:
4*x - 6*y + 43 = 0

Есть ли какая-нибудь симпатичная функция, которая могла бы это сделать? Должен ли .simplify() сделать это уже? Мне бы хотелось услышать ваше мнение.
Для этого у меня есть новая ручная функция, но мне просто интересно, должно ли это быть уже по умолчанию.def my_simplify(eq):
# Extract the denominators of the coefficients
dens_lhs = [sympy.fraction(term)[1] for term in eq.lhs.as_ordered_terms()]
dens_rhs = [sympy.fraction(term)[1] for term in eq.rhs.as_ordered_terms()]
lcm = sympy.lcm(dens_lhs + dens_rhs)

# Multiply the entire equation by the LCM
simplified_eq = sympy.Eq(lcm * eq.lhs, lcm * eq.rhs)

# Return
return simplified_eq


Подробнее здесь: https://stackoverflow.com/questions/786 ... y-way-to-d

Вернуться в «Python»