Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sympy Simplification with Square Root

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:

enter image description here

I would have expected the final result to be the following:

enter image description here

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?

like image 544
Justace Clutter Avatar asked Dec 19 '14 03:12

Justace Clutter


1 Answers

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
like image 179
ErikR Avatar answered Sep 28 '22 01:09

ErikR