arctan with two arguments


When inverting the polar coordinates, one needs the arc tan functionMathworldPlanetmath (http://planetmath.org/CyclometricFunctions) arctan with two argumentsMathworldPlanetmathPlanetmath. If (x,y)2{0}, then arctan(x,y) is defined as the angle (x,y) makes with the positive x-axis.

One usually sees expressions like arctan(y/x), which is equal to arctan(x,y) when (x,y) is in the first quadrantMathworldPlanetmath. However, arctan(y/x) does not give the correct angle when (x,y) is in the third quadrant (since y/x=(-y)/(-x)). Also, the quotient y/x involves a division by zero when x=0, which is damaging both numerically and mathematically.

In most mathematical software and programming languages the two-argument arctan is directly implemented.

In Python languagePlanetmathPlanetmath the functions atan(x) and atan2(x,y) are the respective one and two argument versions of arctan. The point of having the two argument version is to determine the correct quadrant of the point. For instance, 1/1=1=-1/-1, so atan(x) cannot distinguish between (1,1) and (-1,-1), but atan2(x,y) can, as the following Python code illustrates:

\PMlinkescapetext{
>>> from math import *
>>> print atan(1)
0.785398163397
>>> print atan2(1,1)
0.785398163397
>>> print atan2(-1,-1)
-2.3619449019
}

because (1,1) has argument π/4=0.7853 but (-1,-1) has argument -3π/4=-2.3619.

Analytic properties

In mathematical works, arctan(x,y) is simply denoted by θ(x,y). The symbol θ obviously refers to the angle, but it is really the function h2, where

g(r,θ)=(rcosθ,rsinθ),h(x,y)=g-1(x,y)=(r,θ).

The function g:22 is the polar-to-Cartesian coordinate transformationMathworldPlanetmath. By the inverse function theoremMathworldPlanetmath, the function h (the Cartesian-to-polar coordinate transformation) exists and is smooth wherever it is defined. Note that h cannot be defined continuously everywhere, because of the multi-valued nature of θ(r,θ) and (r,θ+2πn) always map to the same point under g. (Similarly, θ cannot defined when r=x2+y2=0.) This means, if one chases a loop (say a circle) around the origin, θ would move from 0 to 2π, even though the image point g(r,θ) winds back to the starting point.

Technically, a “largest” possible domain of h (and θ) can only be taken to be some simply connected open subset of 2{0}. (Note: 2{0} itself is not simply connected.) For example, such a domain might be 2{(x,y):x0}, i.e. delete the negative real axis from 2.

The exterior derivative of θ is

dθ=-yx2+y2dx+xx2+y2dy,

(found by implicit differentiationMathworldPlanetmath), and hence

θx=-yx2+y2,θy=xx2+y2

(which can also be found by differentiating arctan(y/x) directly and piecing the results for each quadrant).

Of course, the formulasMathworldPlanetmathPlanetmath above are only valid wherever θ is defined, but the analytical expressions do not change no matter which domain of definition is taken for θ. This allows for the following neat formula to find the total variationDlmfPlanetmath of angle of a smooth curve γ:[a,b]2{0}:

γ𝑑θ=abγ*𝑑θ=ab(-yx˙x2+y2+xy˙x2+y2)𝑑t.

(This is related to the formula for the winding numberDlmfPlanetmath and the argument principle in complex analysis.)

For example, if γ(t)=(rcost,rsint), for t[0,2πn], is the circle that winds around the origin n times, then γ𝑑θ=2πn.

Title arctan with two arguments
Canonical name operatornamearcTanWithTwoArguments
Date of creation 2013-03-22 15:18:19
Last modified on 2013-03-22 15:18:19
Owner matte (1858)
Last modified by matte (1858)
Numerical id 11
Author matte (1858)
Entry type Definition
Classification msc 51M04
Classification msc 51-01
Synonym angle function