Это можно сделать!
Я отменяю свой предыдущий ответ.Ваше выражение может быть упрощено с помощью Sympy.Вот как:
import sympy as sym
x = sym.symbols('x', positive=True)
expr = 16*x**3/(-x**2 + sym.sqrt(8*x**2 + (x**2 - 2)**2) + 2)**2 - 2*2**(sym.S(4)/5)*x*(-x**2 + sym.sqrt(8*x**2 + (x**2 - 2)**2) + 2)**(sym.S(3)/5) + 10*x
sym.simplify(sym.factor(sym.factor(sym.expand(sym.radsimp(expr))), deep=True))
Вывод:
x*(x**2 + 2)
По сути, я копался во всех документах на sympy.simplify
до тех пор, пока янашел эту магическую комбинацию.Кроме того, вы должны определить x
как positive
при создании символа, как я делал в приведенном выше коде.
Комментарий к Mathematica
"Mathematica делает упрощение без каких-либоусилия "
Я не думаю, что вы когда-либо недооцениваете количество времени и денег, затраченных на то, чтобы сделать эвристический кошмар, который Simplify
Математики казался" просто работающим ".К сожалению, во многих отношениях Sympy все еще находится в зачаточном состоянии по сравнению.sympy.simplify
является одним из таких способов.