[Numpy-discussion] arctan2 with complex args
Timothy Hochberg
tim.hochberg at ieee.org
Mon Apr 30 10:11:02 EDT 2007
On 4/30/07, David Goldsmith <David.L.Goldsmith at noaa.gov> wrote:
>
> lorenzo bolla wrote:
> > me!
> > I have two cases.
> >
> > 1. I need that arctan2(1+0.00000001j,1-0.000001j) gives something
> > close to arctan2(1,1): any decent analytic prolungation will do!
> >
> This is the foreseeable use case described by Anne.
>
> In any event, I stand not only corrected, but embarrassed (for numpy):
>
> Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)
> [GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import numpy as N
> >>> complex(0,1)
> 1j
> >>> N.arctan(1)
> 0.78539816339744828
> >>> N.arctan(complex(0,1))
> Warning: invalid value encountered in arctan
> (nannanj)
>
> I agree that arctan should be implemented for _at least_ *one* complex
> argument...
It is, you should look at that error a bit more carefully...
-tim
(hint what is arctan(0+1j)?)
DG
> >
> > 1. if someone of you is familiar with electromagnetic problems, in
> > particular with Snell's law, will recognize that in case of
> > total internal reflection
> > <http://en.wikipedia.org/wiki/Total_internal_reflection> the
> > wavevector tangential to the interface is real, while the normal
> > one is purely imaginary: hence the angle of diffraction is still
> > given by arctan2(k_tangent, k_normal), that, as in Matlab or
> > Octave, should give pi/2 (that physically means no propagation
> > -- total internal reflection, as said).
> >
> > L.
> >
> > On 4/30/07, *Anne Archibald* <peridot.faceted at gmail.com
> > <mailto:peridot.faceted at gmail.com>> wrote:
> >
> > On 29/04/07, David Goldsmith <David.L.Goldsmith at noaa.gov
> > <mailto:David.L.Goldsmith at noaa.gov>> wrote:
> > > Far be it from me to challenge the mighty Wolfram, but I'm not
> > sure that
> > > using the *formula* for calculating the arctan of a *single*
> > complex
> > > argument from its real and imaginary parts makes any sense if x
> > and/or y
> > > are themselves complex (in particular, does Lim(formula), as the
> > > imaginary part of complex x and/or y approaches zero, approach
> > > arctan2(realpart(x), realpart(y)?) - without going to the trouble
> to
> > > determine it one way or another, I'd be surprised if "their"
> > > continuation of the arctan2 function from RxR to CxC is (a. e.)
> > > continuous (not that I know for sure that "mine" is...).
> >
> > Well, yes, in fact, theirs is continuous, and in fact analytic,
> except
> > along the branch cuts (which they describe). Formulas almost always
> > yield continuous functions apart from easy-to-recognize cases. (This
> > can be made into a specific theorem if you're determined.)
> >
> > Their formula is a pretty reasonable choice, given that it's not at
> > all clear what arctan2 should mean for complex arguments. But for
> > numpy it's tempting to simply throw an exception (which would catch
> > quite a few programmer errors that would otherwise manifest as
> > nonsense numbers). Still, I suppose defining it on the complex
> > numbers
> > in a way that is continuous close to the real plane allows people to
> > put in almost-real complex numbers and get out pretty much the
> answer
> > they expect. Does anyone have an application for which they need
> > arctan2 of, say, (1+i,1-i)?
> >
> > Anne
> > _______________________________________________
> > Numpy-discussion mailing list
> > Numpy-discussion at scipy.org <mailto:Numpy-discussion at scipy.org>
> > http://projects.scipy.org/mailman/listinfo/numpy-discussion
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Numpy-discussion mailing list
> > Numpy-discussion at scipy.org
> > http://projects.scipy.org/mailman/listinfo/numpy-discussion
> >
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
--
//=][=\\
tim.hochberg at ieee.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20070430/0eaef35a/attachment.html>
More information about the NumPy-Discussion
mailing list