ACOS |
ArcCosinus |
|---|---|
| Oracle Database SQL | Oracle 8i ou supérieure |
Syntaxe
| ACOS(Nombre) |
Paramètres
| Nom | Description |
|---|---|
| Nombre | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Retour
| Valeur | Description |
|---|---|
| -2 à 2 | Ces valeurs sont les seules pouvant être retourné si le paramètre à une valeur valide. |
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
- Retourne l'angle dont le cosinus vaut le nombre donné : La fonction ACOS(nombre) retourne la valeur en radians de l'angle dont le cosinus est égal à nombre. Elle permet donc de faire l'opération inverse de la fonction COS(), ce qui est essentiel dans de nombreux calculs trigonométriques inverses.
- Le domaine de validité du paramètre est restreint à [-1 ; 1] : Contrairement à ce que suggère la fiche (-2 à 2), ACOS n'accepte que des valeurs entre -1 et 1 inclus. Si la valeur fournie dépasse cet intervalle, la fonction retourne une erreur :
- Retourne une valeur en radians comprise entre 0 et π : Le résultat d'ACOS est une valeur réelle en radians, comprise entre 0 (quand l'entrée est 1) et π (quand l'entrée est -1). Il ne s'agit pas d'une mesure en degrés, donc une conversion peut être nécessaire pour affichage ou traitement.
- Utilisée dans des calculs géométriques et trigonométriques avancés : Cette fonction est utile en géométrie analytique, physique ou géolocalisation. Par exemple, elle peut être utilisée pour calculer l'angle entre deux vecteurs dans un espace à deux ou trois dimensions à partir de leur produit scalaire.
- N'est pas fréquemment utilisée dans les requêtes métier standard : Comme ACOS est une fonction mathématique avancée, elle est rarement employée dans les requêtes SQL classiques de gestion, mais elle devient indispensable dans les applications scientifiques, d'analyse spatiale ou de modélisation 3D.
- Doit être combinée avec d'autres fonctions pour des calculs complets : ACOS seule ne suffit pas pour des calculs complexes : elle est souvent utilisée avec SQRT, POWER, SIN, COS, ASIN, ou des opérations sur des vecteurs normalisés. Une erreur dans l'ordre ou la précision des opérations peut fausser tout le résultat.
- Nécessite une gestion prudente des erreurs de domaine : Puisque ACOS rejette tout argument hors de [-1 ; 1], il est courant de devoir restreindre ou arrondir les résultats intermédiaires, par exemple en encapsulant le paramètre avec LEAST(GREATEST(x, -1), 1) pour éviter les erreurs dues aux approximations numériques.
- Disponible uniquement dans Oracle 8i et versions ultérieures : La fonction n'est pas disponible dans les versions antérieures à Oracle 8i, ce qui peut poser problème pour les applications anciennes ou les bases migrées sans activation de toutes les fonctions mathématiques. Il est alors nécessaire de la simuler.
| ORA-3049 : argument hors domaine |
Exemples
Voici un exemple montrant l'Arc Cosinus de 0,5 :
- SELECT acos(0.5) FROM DUAL;
on obtiendra le résultat suivant :
| acos(0.5) |
| 1,04719755119659774615421446109316762805 |
Voici un autre exemple montrant l'Arc Cosinus de 0,5 :
- BEGIN
- DBMS_OUTPUT.PUT_LINE(acos(0.5));
- END;
on obtiendra le résultat suivant :
1,04719755119659774615421446109316762805Voir également
Langage de programmation - Oracle - Référence de fonctions - COS
Langage de programmation - Oracle - Référence de fonctions - SIN
Langage de programmation - Oracle - Référence de fonctions - TAN
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Vendredi, le 15 mai 2015