Atan2

Atan2

En trigonométrie, la fonction atan2 à deux arguments est une variation de la fonction arctangente. Pour tout arguments réels x et y non nuls, atan2(y,x) est l'angle en radians entre la partie positive de l'axe des x d'un plan, et le point de ce plan aux coordonnées (x,y). Cet angle est positif pour les angles dans le sens anti-horaire dit sens trigonométrique (moitié haute du plan, y > 0) et négatif dans l'autre (moitié basse du plan, y < 0).

La fonction atan2 fut en premier lieu introduite dans les langages de programmation informatique, mais elle est désormais aussi couramment utilisée dans les autres sciences et ingénieries. Elle est au moins aussi vieille que le langage de programmation Fortran et on la trouve maintenant dans la plupart des autres langages.

En termes mathématiques, atan2 retourne la valeur principale de la fonction argument appliquée sur le nombre complexe x+iy. Soit atan2(y, x) = Pr arg(x+iy) = Arg(x+iy). Le résultat pourrait varier de 2π sans aucun impact sur l'angle, mais pour garantir son unicité, on utilise la valeur principale dans l'intervalle ] -π ; π ]. Soit -π < atan2(yx) ≤ π.

La fonction atan2 est utilisée dans beaucoup d'applications impliquants des vecteurs de l'espace Euclidien, comme pour trouver la direction d'un point à un autre. Une des utilisations principales est la conversion des matrices de rotation en angles d'Euler, pour faire pivoter des représentations graphiques informatiques.

Dans certains languages informatiques, l'ordre des paramètres est inversé, ou la fonction est dénommée différemment. Sur les calculatrices scientifiques, le résultat de la fonction est souvent issu de la conversion des coordonnées rectangulaires (x,y) en coordonnées polaires.

Sommaire

Motivation

La fonction arctangente à un seul argument ne fait pas la différence entre des directions diamétralement opposées. Par exemple, l'angle anti-horaire à partir de l'axe des x jusqu'au vecteur <1, 1>, calculé de la façon habituelle comme arctan(1/1), donne π/4 (radians), ou 45°. De la même façon, l'angle entre l'axe des x jusqu'au vecteur < -1, -1 >, avec la même méthode arctan(-1/-1), donne encore π/4, même si la réponse clairement attendue serait plutôt −3π/4, ou −135°.

La fonction "atan2" prend en compte le signe des deux composants du vecteur, et place l'angle dans le bon quadrant. Ainsi, atan2(1, 1) = π/4 et atan2(−1, −1) = −3π/4.

De plus, la méthode habituelle ne fonctionne pas dans le cas d'un angle de ±π/2 (or ±90°). Par exemple, une tentative pour trouver l'angle entre l'axe des x et le vecteur <0, 1>, nécessite l'évaluation de arctan(1/0), qui échoue à cause de la division par zéro. Alors que atan2(1,0) donne la bonne réponse π/2.

Quand les calculs sont effectués à la main, les corrections de quadrant nécessaires et la gestion des exceptions peuvent être faites par observation, mais dans un programme informatique, il est extrêmement utile de disposer d'une fonction unique qui délivre toujours un résultat correct non ambigu.

Définition

Pour y≠0:

\operatorname{atan2}(y, x) = \begin{cases}
\varphi\cdot \sgn(y) & \qquad x > 0 \\
\frac{\pi}{2}\cdot \sgn(y) & \qquad x = 0 \\
(\pi - \varphi)\cdot \sgn(y) & \qquad x < 0 \\
\end{cases}

\varphi\, est l'angle compris dans [0,π/2[ de façon à ce que  \tan(\varphi) = \left| \frac{y}{x}\right|\,  et sgn est la fonction signe.

Et:

\operatorname{atan2}(0, x) = \begin{cases}
0 & \qquad x > 0 \\
\text{non defini} & \qquad x = 0 \\
\pi & \qquad x < 0 \\
\end{cases}

Notes:

  • Cela donne des résultats compris dans ]-π,π], qui peut être translaté dans [0,2π[ en ajoutant 2π aux valeurs négatives.
  • Traditionnellement, atan2(0,0) est non défini.
    • La fonction C, et la plupart des autres implémentations informatiques, sont conçues pour les efforts de transformations des coordonnées cartésiennes en polaires, et donc définissent toujours atan2(0,0). Dans les implémentations sans zéro signé, ou lorsque sont donnés des arguments zéro positif, le résultat est normalement défini à 0. La valeur rendue sera toujours comprise dans ]-π,π] plutôt que sortir en erreur ou retourner NaN ("Not a Number", cad "Pas un Nombre").
    • Les systèmes gérants les mathématiques symboliques devraient normalement retourner une valeur non définie pour atan2(0,0) ou bien signaler qu'une anomalie s'est produite.
  • Pour les systèmes comme la virgule flottante IEEE 754 qui savent gérer le zéro signé, les infinis ou NaN, il est habituel d'implémenter des extensions capables d'étendre les résultats possibles pour inclure -π et -0. Ces dernières pourraient aussi retourner NaN ou lever une exception lorsqu'un des arguments reçus est un NaN.

La librairie mathématique libre FDLIBM disponible dans netlib montre dans son code source comment implémenter atan2 avec une gestion de valeurs spéciales IEEE.

Pour les systèmes ne disposant pas d'un multiplicateur hardware, la fonction atan2 peut être implémentée numériquement d'une manière fiable avec la méthode CORDIC. Dans ce genre de cas, il sera surement préférable de calculer atan(y) par atan2(y,1).

L'expression suivante dérivée de la formule de la tangente de l'arc moitié peut aussi être utilisée pour définir atan2. Cette expression devrait être plus adaptée à un usage symbolique que la définition précédente. Elle est néanmoins totalement inadaptée à l'utilisation en virgule flottante; la division provoque un débordement au voisinage de la partie négative de l'axe des x, et donne un NaN ou une erreur pour atan2(0,0).


 \operatorname{atan2} (y, x)=2 \arctan \frac{y}{\sqrt{x^2+y^2}+x}.

Variations

Illustrations

Le diagramme ci-dessous présente les valeurs prise par atan2 sur des points remarquables du cercle unitaire. Les valeurs, en radians, sont inscrites en bleu à l'intérieur du cercle. Les quatre points (1,0), (0,1), (-1,0), and (0,-1) sont notés à l'extérieur du cercle. Notez que l'ordre des arguments est inversé; la fonction atan2(y,x) donne l'angle correspondant au point (x,y).

Atan2 circle.svg

Le schéma suivant montre les valeurs prises par atan2 pour les points du cercle unitaire. Sur l'axe des X, on a les angles complexes des points. Ils partent de 0 ( point (0,1) ) et vont dans le sens trigonométrique en passant par les points :

  • (0,1) qui a pour angle complexe π/2 en radians,
  • (-1,0) qui a pour angle complexe π,
  • (-1,-1) qui a pour angle complexe 3π/2,

jusqu'à (1,0) qui a pour angle complexe 0 = 2π modulo
Sur ce schéma, on peut voir clairement apparaitre la discontinuité de la fonction atan2. Quand un point z traverse la partie négative de l'axe réel, par exemple va de (0,1) à (0,-1) en passant par (-1,0) ; son argument devrait aller de π/2 à 3π/2 en passant par π. Mais la valeur de la fonction atan2 ( valeur principale de l'argument ) va de π/2 à π, puis saute à -π (discontinuité), pour aller vers -π/2.

Atan2.PNG

Ci-dessous une vue 3D montrant atan2 appliquée à une portion de plan.

Atan2Diagram.png

Références

Voir aussi

Liens externes (en anglais en attendant des équivalents français)

Autres implémentations pour atan2 (en)


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Atan2 de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Atan2 — In computing, atan2 is a two argument function that makes it easy to find the angle round the origin of a point. When given the coordinates ( x , y ) the angle is atan2( y , x ). It is implemented in many different programming languages. The… …   Wikipedia

  • Atan2 — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arkustangens und Arkuskotangens — Der Arkustangens – geschrieben arctan, atan, neuerdings auch tan  − 1[1]) – sowie Arkuskotangens – geschrieben arccot, acot, neuerdings auch cot  − 1[2] – sind die Umkehrfunktionen der eingeschränkten Tangens und Kotangensfunktion: Da… …   Deutsch Wikipedia

  • Acot — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arccot — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arctan — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arctan2 — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arcus-Cotangens — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arcus-Tangens — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

  • Arcus Cotangens — Arkustangens und Arkuskotangens sind mathematische Funktionen. Sie sind die Umkehrfunktionen des Tangens bzw. des Kotangens und damit Arkusfunktionen. Da der Tangens periodisch ist, wird zur Umkehrung der Definitionsbereich von Tangens auf ( − π… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”