Вы можете использовать ключевое слово numer = True или denom = True с расширением:
>>> q
(x + 1)*(x + 2)/((x - 2)*(x - 1))
>>> q.expand(numer=True)
(x**2 + 3*x + 2)/((x - 2)*(x - 1))
>>> _.expand(denom=True)
(x**2 + 3*x + 2)/(x**2 - 3*x + 2)
Как исправить выше:
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)
N / D
_.diff(a)
_.simplify()
_.expand(numer=True)
_.expand(denom=True)
V = _
Другим способом является использование метода cancel (), который в основном делает то же самое (хотя название несколько нелогично):
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
V.diff(a).cancel()