Hello, In the following test code I am attempting to simplify the resulting expression by replacing a subexpression with a function
import symengine as se import sympy as sp # Potential V def V(x, y): v = (x*x + y*y)/2 + y*(x*x - (y*y)/3) return v def main(): # Symbols x, y, Ho = sp.symbols('x, y, Ho') expr = sp.Pow(Ho - V(x, y), -1) dexpr_dx = se.Derivative(expr, x, 1).xreplace({y*(x**2 + (-1/3)*y**2) + (-1/2)*x**2 + (-1/2)*y**2: V(x, y)}) print("dexpr_dx =", dexpr_dx) if __name__ == "__main__": main() Taking in derivative w.r.t. x resulting in V(x, y) being replace the expression dexpr_dx = -(-x - 2*x*y)/(Ho - y*(x**2 + (-1/3)*y**2) + (-1/2)*x**2 + (-1/2)*y**2)**2 which I would like to rewrite as -(-x - 2*x*y)/(Ho - V(x, y))**2 as I will be repeating the differentiation in the actual code. In other words, I would like to reduce the output code bloat. I've tried subs(), replace(), and xreplace() with no success. Any insight in how to do this would be appreciated. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/0f41303e-5524-4a71-8ab4-207515901da8n%40googlegroups.com.