Как заставить симпы преобразовать «Сумму произведений» в «Рациональное выражение» p(x)/q(x)Python

Программы на Python
Ответить
Anonymous
 Как заставить симпы преобразовать «Сумму произведений» в «Рациональное выражение» p(x)/q(x)

Сообщение Anonymous »

Я пытаюсь заставить Sympy выдать результат, представляющий собой частное двух полиномов: p / q.

Код: Выделить всё

import sympy as sp
sp.init_printing()

a,b,c = sp.symbols("a b c")

N=a*b*100 - (a**2) * (b**2)
D=2*(a-b)

V = N / D
print(V)
#Output: (-a**2*b**2 + 100*a*b)/(2*a - 2*b)

# HERE"s WHERE I GET THE RESULT:
g = V.diff(a)
print(g)
#Output: (-2*a*b**2 + 100*b)/(2*a - 2*b)
#             -2*(-a**2*b**2 + 100*a*b)/(2*a - 2*b)**2
# The problem here is that it's the sum of two terms

# So I try simplifying it to get it as p/q
h = g.simplify()
print(h)
# Output: b*(a*(a*b - 100) + 2*(a - b)*(-a*b + 50)) / (2*(a - b)**2)
#
# It works to get the function as "p/q", except now
# it didn't expand the numerator and denominator into
# into a sum of polynomial terms.  How to undo the factoring
# of numerator and denominator while still maintaining the whole
# function as a rational function of the form p/q?
Я хочу, чтобы это выглядело так:

Код: Выделить всё

(-2*a**2*b**2 - 4*a*b**3) / (4a + 4b**2)


Подробнее здесь: https://stackoverflow.com/questions/551 ... ression-px
Ответить

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

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

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

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

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