I am having some very trivial issues getting proper branch cuts of 
elementary functions in the complex plane.

In [1]: from sympy import *                                         

Exmpl. 1-------------------sqrt()---------------------------
1st numerically

In [2]: 
N(sqrt(-1.+I*1e-10))                                                            
                        

Out[2]: 5.0e-11 + 1.0*I

In [3]: 
N(sqrt(-1.-I*1e-10))                                                            
                        

Out[3]: 5.0e-11 - 1.0*I              

Ok. sqrt-branch seems to lie on neg. Re-axis and is selected properly
2nd same thing symbolically

In [5]: 
eps=symbols('eps')                                                              
                        


In [6]: 
limit(sqrt(-1+I*eps),eps,0,'+')                                                 
                        

Out[6]: I

In [7]: 
limit(sqrt(-1+I*eps),eps,0,'-')                                                 
                        

Out[7]: I

In [8]: 
limit(sqrt(-1-I*eps),eps,0,'+')                                                 
                        

Out[8]: I

In [9]: 
limit(sqrt(-1-I*eps),eps,0,'-')                                                 
                        

Out[9]: I

Oops? Symbolic sqrt() does not seem to handle the branch cut properly(?)

Exmpl. 2----------------------------------------------
1st numerically

In [10]: 
log(-1-I*1e-10)                                                                 
                       

Out[10]: 5.0e-21 - 3.14159265348979*I

In [11]: 
log(-1+I*1e-10)                                                                 
                       

Out[11]: 5.0e-21 + 3.14159265348979*I

Ok. log-branch seems to lie on neg. Re-axis and is selected properly

2nd same thing symbolically

In [12]: limit(log(-1+I*eps),eps,0,'+')                                         
                                
Out[12]: I*pi

In [13]: limit(log(-1+I*eps),eps,0,'-')                                         
                                
Out[13]: I*pi

In [14]: limit(log(-1-I*eps),eps,0,'+')                                         
                                
Out[14]: I*pi

In [15]: limit(log(-1-I*eps),eps,0,'-')                                         
                                
Out[15]: I*pi

Oops? Symbolic log() does not seem to handle the branch cut properly(?)

I could probably 'find' more of that behavior with other elementary functions.
So, what am I doing wrong?

Xaver

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to