LOG10 |
Logarithme 10 |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float log10(float n); |
double log10(double n) |
long double log10(long double n); |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction retourne le logarithme décimal.
Algorithme
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 LOG(x) negatif ← faux fois ← 1 ajout ← 0 SI x <= 0.0 ALORS RETOURNE 0 FIN SI SI x < 1.0 ALORS negatif ← vrai x ← 1.0 / x FIN SI BOUCLE FAIRE TANT QUE x >= 10.0 x ← x / 10.0 ajout ← ajout + 2.302585092994046 FIN BOUCLE FAIRE TANT QUE BOUCLE FAIRE TANT QUE x >= 1.1 x ← SQRT(x) fois ← fois x 2 FIN BOUCLE FAIRE TANT QUE x ← x - 1 savx ← x i ← 2 xp ← x x x quotient ← (xp / i) dl ← x - quotient BOUCLE FAIRE TANT QUE 1.0E-15 ← quotient i ← i + 1 xp ← xp x x dl ← dl + (xp / i) i ← i + 1 xp ← xp x x quotient ← (xp / i) dl ← dl - quotient FIN BOUCLE FAIRE TANT QUE dl ← dl x fois dl ← dl + ajout SI negatif ALORS dl ← -dl FIN SI RETOURNE dl MODULE LOG10(DansNombre) RETOURNE LOG(DansNombre) / 2,3025850930 |
Remarques
- La fonction log10() renvoie le logarithme de base 10 pour n. Une erreur de domaine se produit si n est négatif et une erreur d'intervalle se produit si le paramètre est zéro.
- Définition et utilité : La fonction log10 fait partie de la bibliothèque <cmath> en C++ et permet de calculer le logarithme décimal (ou logarithme à base 10) d'un nombre réel. Elle est largement utilisée dans les calculs où le logarithme à base 10 est nécessaire, par exemple dans les sciences, l'ingénierie, la finance, ou les algorithmes de calcul de complexité. Contrairement au logarithme népérien (log), utilisant la base e, log10 calcule directement le logarithme à base 10.
- Comportement avec des valeurs spéciales : log10(1) = 0 : Cela est dû au fait que 10^0 = 1, et donc le logarithme décimal de 1 est égal à zéro. Se la paramètre n est inférieur ou égal à zéro, la fonction retourne NaN (Not a Number), car les logarithmes à base 10 ne sont pas définis pour les valeurs négatives ou zéro. Par exemple, log10(-5) ou log10(0) produirait une erreur, retournant NaN.
- Relation avec le logarithme naturel : La fonction log10 peut être exprimée en fonction du logarithme népérien (fonction log) grâce à la formule suivante :
- Utilisation dans des applications pratiques : log10 est couramment utilisée dans des calculs d'échelle logarithmique. Par exemple :
- Mesures de magnitude : En astronomie et en géophysique, la magnitude d'un événement (comme un tremblement de terre ou la luminosité d'une étoile) est souvent mesurée en termes de logarithmes décimaux.
- Échelles de pH : En chimie, l'échelle de pH est une échelle logarithmique où le logarithme décimal de la concentration des ions hydrogène est utilisé pour exprimer l'acidité ou l'alcalinité d'une solution.
- Analyse de signaux : Dans les télécommunications et le traitement du signal, les logarithmes à base 10 sont utilisés pour exprimer les rapports de puissance ou l'intensité sonore (comme en décibels).
- Comportement avec des nombres très grands ou très petits : La fonction log10 peut gérer des nombres très grands et très petits. Toutefois, les problèmes de précision peuvent apparaître lorsque les valeurs sont trop petites ou trop proches de zéro. Par exemple, pour des nombres proches de zéro, la fonction peut renvoyer des valeurs très négatives (logarithmes très faibles), tandis que pour des très grands nombres, elle peut produire des résultats imprécis en raison des limites de la précision des nombres à virgule flottante (type double). Dans ces cas, les résultats doivent être vérifiés et traités avec soin.
- Problèmes de précision et alternatives : Bien que log10 soit précise dans la plupart des cas, il est important de tenir compte de la précision des nombres à virgule flottante en C++. Les calculs peuvent parfois être affectés par des erreurs d'arrondi, en particulier lorsque les résultats sont très grands ou très petits. Pour une plus grande précision, certaines applications peuvent utiliser des bibliothèques spécialisées qui offrent des types numériques à plus haute précision, tels que long double ou des bibliothèques externes comme Boost.Multiprecision pour les calculs nécessitant une précision encore plus grande.
Cela permet d'utiliser la fonction log pour obtenir un logarithme à base 10, bien que log10 soit plus directe et optimisée pour ce cas spécifique. Cela peut être utile dans des contextes où la fonction log est déjà utilisée, ou si vous souhaitez calculer un logarithme à base 10 à partir d'une valeur calculée de manière différente.
Exemple
Voici un exemple permettant d'afficher le logarithme en base 10 inférieurs à 2 :

on obtiendra le résultat suivant :
LOG10(0.100000)=-1.000000LOG10(0.200000)=-0.698970
LOG10(0.300000)=-0.522879
LOG10(0.400000)=-0.397940
LOG10(0.500000)=-0.301030
LOG10(0.600000)=-0.221849
LOG10(0.700000)=-0.154902
LOG10(0.800000)=-0.096910
LOG10(0.900000)=-0.045757
LOG10(1.000000)=0.000000
LOG10(1.100000)=0.041393
LOG10(1.200000)=0.079181
LOG10(1.300000)=0.113943
LOG10(1.400000)=0.146128
LOG10(1.500000)=0.176091
LOG10(1.600000)=0.204120
LOG10(1.700000)=0.230449
LOG10(1.800000)=0.255273
LOG10(1.900000)=0.278754
Voici un exemple simple montrant comment utiliser log10 pour calculer le logarithme décimal d'un nombre :
Ce programme calcule et affiche le logarithme décimal de 1000, qui est égal à 3, car log10(1000) = 3. Cette fonction est très utile dans les contextes où l'échelle logarithmique basée sur 10 est nécessaire.
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - exp
Langage de programmation - C++ - Référence de procédures et fonctions - log
Langage de programmation - C - Référence de procédures et fonctions - log10
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 163.