I have an expression that I think could be simplified somewhat and for some reason sympy is not performing what I think are simple simplifications. My code with the example is as follows:
# coding: utf-8
# In[1]:
from __future__ import division
from sympy import *
init_printing()
# In[3]:
d, R, c = symbols('d R c', Positive = True, Real = True)
Δt = symbols('\Delta_t', Real = True)
# In[4]:
Δt = (1/c**2)*(-R*c+sqrt(c**2*(R+d)**2))
Δt
# In[5]:
simplify(Δt)
I have placed the code above for cut and paste pleasures... The graphical output from iPython is as follows:
I would have expected the final result to be the following:
I thought that based on how I defined the variables the simplifications would have happened, at least the sqrt((R+d)**2)... What am I doing wrong?
Try real = True
and positive = True
(lower case):
import sympy as sp
d, R, c = sp.symbols('d R c', positive = True, real = True)
dt = sp.symbols('\Delta_t', real = True)
dt = (1/c**2)*(-R*c+sp.sqrt(c**2*(R+d)**2))
print(sp.simplify(dt))
Output:
d/c
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With