# Arcotangente2

In trigonometria l'arcotangente2 è una funzione a due argomenti che rappresenta una variazione dell'arcotangente. Comunque presi gli argomenti reali $x$ e $y$ non entrambi nulli, $\operatorname {atan2} (y,x)$ indica l'angolo in radianti tra il semiasse positivo delle $X$ di un piano cartesiano e un punto di coordinate $(x,y)$ giacente su di esso. L'angolo è positivo se antiorario (semipiano delle ordinate positive, $y>0$) e negativo se in verso orario (semipiano delle ordinate negative, $y<0$).
Questa funzione quindi restituisce un valore compreso nell'intervallo $(-\pi ,\pi ]$. La funzione è definita per tutte le coppie di valori reali $(x,y)$ eccetto la coppia $(0,0)$.

## Definizione

La funzione può essere definita in termini dell'usuale funzione arcotangente, che ha valori in $(-\pi /2,\pi /2),$ per mezzo della seguente definizione:
    $\operatorname {atan2} (y,x)={\begin{cases}\arctan({\frac {y}{x}}),&{\text{se }}x>0,\\\arctan({\frac {y}{x}})+\pi ,&{\text{se }}x<0\wedge y\geq 0,\\\arctan({\frac {y}{x}})-\pi ,&{\text{se }}x<0\wedge y<0,\\+{\frac {\pi }{2}},&{\text{se }}x=0\wedge y>0,\\-{\frac {\pi }{2}},&{\text{se }}x=0\wedge y<0,\\{\text{non definita}},&{\text{se }}x=0\wedge y=0.\end{cases}}$
La notazione con le parentesi di Iverson consente un'espressione più compatta:
    $\operatorname {atan2} (y,x)=\arctan \left({\frac {y}{x}}\right)[x\neq 0]+\operatorname {sgn}(y)\left(\pi [x<0]+{\frac {\pi }{2}}[x=0]\right)+{\text{NaN}}[x=0\wedge y=0]$

## Notazione

La notazione matematica dell'arcotangente2 è arctan2 o arctg2. Nei linguaggi di programmazione e sulle tastiere di alcune calcolatrici è molto diffusa anche la notazione atan2.

## Storia e motivazione

La funzione atan2 è stata introdotta per la prima volta nei linguaggi di programmazione dei computer, ma ora è comune anche in altri campi della scienza e dell'ingegneria. Risale almeno al linguaggio di programmazione FORTRAN e attualmente si trova in molti linguaggi di programmazione moderni. Tra questi linguaggi ci sono: la libreria standard math.h di C, la libreria Java Math, System.Math di .NET (utilizzabile da C#, VB.NET, ecc.), il modulo Python math, il modulo Ruby Math, il pacchetto Go math e altrove. Inoltre, molti linguaggi di scripting, come Perl, includono la funzione atan2(y, x) in stile C.

## Proprietà

La funzione è un'estensione della funzione arcotangente $\arctan \left({\frac {y}{x}}\right)$ in quanto, a differenza di essa, è in grado di distinguere tra angoli diametralmente opposti, tenendo conto non solo del rapporto tra gli argomenti ma anche del loro segno. Infatti, la funzione arcotangente restituisce lo stesso valore per le coppie $(x,y)$ e $(-x,-y)$ così come per le coppie $(x,-y)$ e $(-x,y)$, determinando quindi solo l'ampiezza dell'angolo rispetto all'asse $X$ ma non il suo effettivo posizionamento rispetto ai quadranti degli assi cartesiani.
Un altro aspetto importante della funzione arcotangente2 è che essa, a differenza della funzione semplice $\arctan \left({\frac {y}{x}}\right)$, è definita anche nel caso $x=0$.
Infatti, dalla definizione di cui sopra, si ottiene:
    $\operatorname {atan2} (y,0)={\begin{cases}\arccos(0)={\frac {\pi }{2}},&{\mbox{se }}y>0\\-\arccos(0)=-{\frac {\pi }{2}},&{\mbox{se }}y<0\end{cases}}$
da cui si ricava che $\operatorname {atan2} \left(y,0\right)$ esprime l'angolo retto orientato rispetto all'asse $X$.