python - Exact user defined expressions in Sympy derivatives -


i using sympy calculate derivative of complicated potential. have defined x, y, d0, e, c, k, d, b sympy symbols. go on following definitions:

import sympy sm x, y, d0, e, c, k, d, b = sm.symbols("x, y, d0, e, c, k, d, b") phi = sm.atan2(y,x) d = d0 + e*d0*sm.sin(k*phi) rho = sm.sqrt(x**2 + y**2)  u = (2**b)/((2*d-d)**b)*(d - rho)**b 

the symbol "u" stands 2d potential.

now when differentiate vs. x using:

sm.simplify(u.diff(x)) 

i extremely long answer: extremely long naswer

as can see, in answer there explicitly full expression e.g. d : d0 + e*d0*sin(k*phi) . also, instead of sin(phi) sin(atan2(x,y) , same happens of defined expressions.

is there way result automatically show definitions instead of long versions, without having need use subs method every single user-defined variable?

e.g. instead of d0 + e*d0*sin(k*phi) sympy automatically uses symbol d?

when write phi = sm.atan2(y,x), assigns python variable result of atan2(y, x). if want phi symbol, have define way

phi = symbols('phi') 

and substitute phi in atan2(y, x) later.

u.subs(phi, atan2(y, x)) 

this worth reading regarding this.


Comments

Popular posts from this blog

Ansible - ERROR! the field 'hosts' is required but was not set -

customize file_field button ruby on rails -

SoapUI on windows 10 - high DPI/4K scaling issue -