ACOS |
ArcCosinus |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float acos(float n); |
double acos(double n); |
long double acos(long double n); |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction trigonométrique retourne l'«ArcCosinus».
Algorithme
MODULE ABS(valeur) SI valeur < 0 ALORS RETOURNE - valeur SINON RETOURNE valeur FIN SI MODULE SQRT(X) SI X = 0.0 ALORS RETOURNE 0.0 SINON M ← 1.0 XN ← X BOUCLE FAIRE TANT QUE XN >= 2.0 XN ← 0.25 x XN M ← 2.0 x M FIN BOUCLE FAIRE TANT QUE BOUCLE FAIRE TANT QUE XN < 0.5 XN ← 4.0 x XN M ← 0.5 x M FIN BOUCLE FAIRE TANT QUE A ← XN B ← 1.0 - XN BOUCLE REPETER A ← A x (1.0 + 0.5 x B) B ← 0.25 x (3.0 + B) x B x B FIN BOUCLE JUSQU'A B ← 1.0E - 15 RETOURNE A x M FIN SI MODULE ARCTAN(X) A ← 1.0 / SQRT(1.0 + (X x X)) B ← 1.0 BOUCLE POUR N ← 1 JUSQU'A 11 A ← (A + B) / 2.0 B ← SQRT(A x B) FIN BOUCLE POUR RETOURNE X / (SQRT(1.0 + (X x X)) x A) MODULE ACOS(a) PI ← 3.141592653589793 SI ABS(a) = 1.0 ALORS RETOURNE (1 - a ) x PI / 2.0 SINON RETOURNE ARCTAN(-a / SQRT(1 - a x a)) + 2 x ARCTAN(1) FIN SI |
Remarques
- La fonction acos() renvoie l'arc cosinus du paramètre n. Le paramètre de acos() doit être compris entre -1 et 1; sinon une erreur de domaine se produira.
- Si vous avez un message d'erreur :
- Définition et utilité : La fonction acos est utilisée pour calculer l'arc cosinus (l'inverse du cosinus) d'un nombre. Elle est définie dans la bibliothèque <cmath>. Le résultat est un angle exprimé en radians, compris entre 0 et π (0 ≤ acos(x) ≤ π), où x doit être compris entre -1 et 1, inclus. Par exemple, acos(1) renvoie 0, et acos(-1) renvoie π.
- Domaine d'entrée : acos est une fonction prenant en paramètre un nombre réel x et retourne un angle en radians. Cependant, le paramètre doit être dans l'intervalle [-1, 1]. Si un nombre en dehors de cet intervalle est passé, le comportement est indéfini, et cela peut entraîner une exception ou un résultat inattendu.
- Comportement en dehors du domaine : Si un nombre hors de l'intervalle valide (-1 à 1) est passé à acos, la fonction renvoie NaN (Not a Number). Cela peut se produire par exemple avec des arguments comme acos(1.5) ou acos(-2). Il est donc essentiel de vérifier que le paramètre se trouve dans cette intervalle avant d'appeler la fonction pour éviter des erreurs ou des comportements non contrôlés.
- Précision et limites des calculs : Comme toutes les fonctions trigonométriques, acos est affectée par la précision des calculs sur les nombres flottants. Cela peut entraîner des petites erreurs de calcul, notamment lorsque l'argument est très proche de -1 ou 1. Les résultats peuvent ne pas être exactement 0 ou π, mais légèrement différents en raison des arrondis internes.
- Conversion en degrés : acos retourne un angle en radians, étant l'unité standard pour les calculs trigonométriques en C++. Cependant, si vous souhaitez obtenir l'angle en degrés, il te faudra convertir manuellement le résultat :
- Utilisation avec des fonctions trigonométriques : acos est souvent utilisée en combinaison avec d'autres fonctions trigonométriques. Par exemple, si vous connaissez la valeur du cosinus d'un angle et que tu souhaites obtenir cet angle, vous pouvez utiliser acos pour retrouver l'angle à partir de la valeur du cosinus. Cela peut être utilisé dans divers domaines comme la géométrie, la physique ou les graphiques 3D.
- Retour en NaN et vérification d'erreur : Lorsque acos retourne NaN, cela peut être problématique dans des calculs ultérieurs. Il est donc conseillé de vérifier si le résultat est un nombre valide avec la fonction std::isnan() avant de l'utiliser. Cela peut prévenir les erreurs logiques dans le programme lorsque le paramètre est hors des limites autorisées.
- Performance et applications : Le calcul de l'arc cosinus peut être relativement coûteux en termes de performance, surtout lorsqu'il est effectué fréquemment dans des applications avec de grandes quantités de données. Dans des domaines comme la vision par ordinateur ou les calculs géométriques, des optimisations peuvent être nécessaires pour accélérer ce calcul. Cela peut inclure l'utilisation d'approximations ou de bibliothèques spécifiques.
undefined reference to `acos' |
avec un compilateur «gcc», vous devrez probablement rajouter le paramètre «-lm» afin de lui indiquer qu'il faut inclure les bibliothèques mathématique à vos projets.
où M_PI est une constante définie dans <cmath> représentant la valeur de π.
Exemple
Voici un exemple montrant l'Arc Cosinus de 0,5 :

on obtiendra le résultat suivant :
ACos(0.5)= 1.047197551196598Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - cos
Langage de programmation - C++ - Référence de procédures et fonctions - sin
Langage de programmation - C++ - Référence de procédures et fonctions - tan
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 28.