LOG |
Logarithme |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float log(float n); |
double log(double n) |
long double log(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 naturel ou népérien.
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 |
Remarques
- La fonction log() renvoie le logarithme naturel de 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 log est définie dans la bibliothèque <cmath> en C++ et permet de calculer le logarithme népérien (ou logarithme naturel) d'un nombre réel. Le logarithme népérien est le logarithme à la base de e, où e ≈ 2.71828. Cette fonction est couramment utilisée dans les calculs scientifiques, financiers et techniques, où les propriétés des logarithmes naturels sont nécessaires pour résoudre des équations exponentielles ou travailler avec des courbes de croissance.
- Logarithme et base de calcul : Le logarithme naturel est très utilisé en mathématiques et en physique, mais il est parfois nécessaire de calculer des logarithmes à d'autres bases, comme la base 10 (logarithme décimal) ou la base 2 (logarithme binaire). Bien que log donne le logarithme népérien, on peut utiliser la fonction log10 pour le logarithme décimal et log2 pour le logarithme binaire. Par exemple, le logarithme décimal de x peut être obtenu en utilisant la relation :
- Comportement avec des valeurs spéciales : Si le paramètre x est égal à 1, le logarithme est égal à zéro (log(1) = 0), car e^0 = 1.
- Calcul avec des nombres très grands ou très petits : La fonction log est robuste pour gérer des nombres très grands ou très petits, tout en renvoyant des résultats précis. Toutefois, des erreurs de dépassement ou d'insuffisance de précision peuvent se produire lorsque les valeurs d'entrée sont extrêmement proches de zéro ou excessivement grandes. Dans ces cas, il est important d'être conscient des limites de précision de type double en C++ et des implications liées aux calculs en virgule flottante.
- Utilisation dans des algorithmes et applications pratiques : La fonction log est couramment utilisée dans des domaines comme :
- Les algorithmes de recherche binaire : Les logarithmes sont utilisés pour estimer les performances ou les complexités d'algorithmes de recherche.
- Les modèles de croissance exponentielle : Par exemple, dans des modèles de population ou de croissance financière, le logarithme permet de linéariser des relations exponentielles.
- Les équations différentielles et la physique : En sciences, les logarithmes naturels sont utilisés dans des équations liées à la radioactivité, la chaleur, ou les réactions chimiques, où les phénomènes suivent des lois exponentielles.
- Ces domaines exploitent la capacité de log à travailler efficacement avec des valeurs positives et réalistes dans des contextes complexes.
- Problèmes de précision et alternatives : Bien que log soit une fonction très précise pour des calculs en temps normal, il existe des situations où des erreurs d'arrondi ou des pertes de précision peuvent survenir, en particulier avec des nombres proches de zéro. Pour obtenir plus de contrôle sur les erreurs de précision, vous pouvez utiliser des bibliothèques spécialisées ou des types numériques à plus haute précision (comme long double en C++). En outre, des méthodes comme la transformation logarithmique des données sont couramment utilisées pour stabiliser des calculs impliquant de grandes intervalles de valeurs.
Si le paramètre x est inférieur ou égal à zéro, log(x) renverra NaN (Not a Number), car le logarithme n'est pas défini dans ces cas. Par exemple, log(-5) ou log(0) est indéfini en mathématiques.
Ces comportements doivent être pris en compte pour éviter des erreurs dans les calculs, surtout lors de l'utilisation de la fonction sur des entrées dynamiques.
Exemples
Voici un exemple permettant d'afficher le logarithme inférieurs à 2 :

on obtiendra le résultat suivant :
LOG(0.1)=-2.3025850929940455LOG(0.2)=-1.6094379124341003
LOG(0.3)=-1.203972804325936
LOG(0.4)=-0.916290731874155
LOG(0.5)=-0.6931471805599453
LOG(0.6)=-0.5108256237659907
LOG(0.7)=-0.35667494393873245
LOG(0.8)=-0.1053605156578264
LOG(0.9)=-1.1102230246251565e-16
LOG(1.0)=0.09531017980432474
LOG(1.2)=0.1823215567939546
LOG(1.3)=0.26236426446749106
LOG(1.4)=0.336472236621213
LOG(1.5)=0.40546510810816455
LOG(1.6)=0.47000362924573574
LOG(1.7)=0.5306282510621706
LOG(1.8)=0.5877866649021193
LOG(1.9)=0.641853886172395
Voici un exemple simple montrant comment utiliser la fonction log pour calculer le logarithme népérien d'un nombre :
Ce programme affiche le logarithme de 10 à la base de e. Le résultat sera environ 2.302585. Cela montre que log peut être utilisée pour effectuer facilement des calculs logarithmiques dans des applications.
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 - pow
Langage de programmation - C++ - Référence de procédures et fonctions - sqrt
Langage de programmation - C - Référence de procédures et fonctions - log
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 162.