MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Possible Bug in ArcTan ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg64853] Re: Possible Bug in ArcTan ?
  • From: "David W. Cantrell" <DWCantrell at sigmaxi.org>
  • Date: Sun, 5 Mar 2006 03:19:46 -0500 (EST)
  • References: <du6o44$5rg$1@smc.vnet.net> <du83m5$sv3$1@smc.vnet.net> <du8are$fp7$1@smc.vnet.net> <dubgv0$fm7$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Paul Abbott <paul at physics.uwa.edu.au> wrote:
> In article <du8are$fp7$1 at smc.vnet.net>,
>  "David W. Cantrell" <DWCantrell at sigmaxi.org> wrote:
>
> > "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de> wrote:
> > > Hi,
> > >
> > > why can ArcTan[] have two arguments ArcTan[x,y]
> >
> > As the Help Browser says,
> > "taking into account which quadrant the point (x,y) is in."
> >
> > For example, suppose you want to convert -2 + I to polar form,
> > r*E^(I*theta). One can't simply say theta = ArcTan[1/-2]. The range of
> > the single-argument ArcTan is [-Pi/2, Pi/2], i.e., fourth and first
> > quadrants, while our point (-2, 1) is in the third quadrant. But we can
> > conveniently say theta = ArcTan[-2, 1].
>
> Or we can say theta = 2 ArcTan[1/(Sqrt[5]-2)] (see below).
>
> > Note: Some other languages implement the two-argument form under the
> > name ATAN2. Furthermore, the order of the two arguments is often
> > backwards compared to Mathematica's, that is, ATAN2(y,x).
>
> There is another way that avoids the two-argument form altogether.

Yes, there are alternative ways. One can indeed write something equivalent
to the two-argument form using just standard trig functions etc., but those
ways typically involve considering some special case(s). See below.

> Using the half-angle formula for tan,
>
>   Simplify[Tan[t/2] == Sin[t]/(Cos[t] + 1)]
>
>   True
>
> then in polar coordinates, x=r Cos[t], y=r Sin[t], r=Sqrt[x^2+y^2],
>
>   Tan[t/2] == y/(x+r) ==> t == 2 ArcTan[y/(x+Sqrt[x^2+y^2])]
>
> This formula is also valid when x == 0, whereas ArcTan[y/x] is
> problematic there (ArcTan[0,y] is ok, of course).

t == 2 ArcTan[y/(x+Sqrt[x^2+y^2])] fails if y is zero and x is negative,
and so that case would have to be considered separately.

Of course, ArcTan[x,y] does not fail in such a case.

Cheers,
David


  • Prev by Date: Re: Multiple application of LinearFilter
  • Next by Date: Re: Possible Bug in ArcTan ?
  • Previous by thread: Re: Re: Possible Bug in ArcTan ?
  • Next by thread: Re: Possible Bug in ArcTan ?