Упрощение уравнения 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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