LOG |
Logarithme |
---|---|
Langage C | math.h |
Syntaxe
double log(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
- Calcul du logarithme naturel : La fonction log(), définie dans la bibliothèque <math.h>, calcule le logarithme naturel (base e) d'un nombre donné en entrée. Si l'entrée est x, le résultat est ln?(x), où e≈2.71828. Cette fonction est utile dans de nombreux domaines, notamment les mathématiques, la physique, et les algorithmes de calcul scientifique.
- Domaines d'entrée valides : log() accepte des valeurs strictement positives comme entrée. Si l'entrée est négative ou nulle, la fonction retourne une erreur, typiquement représentée par une valeur infinie négative (-HUGE_VAL) ou un signalement via errno (par exemple, EDOM pour un paramètre hors domaine). Cela reflète les propriétés mathématiques du logarithme naturel, qui est défini uniquement pour x>0.
- Précision des calculs : La précision de log() dépend du type de donnée utilisé (float, double, ou long double) et des capacités de l'architecture matérielle. Bien que le résultat soit très précis, des erreurs d'arrondi peuvent survenir pour des valeurs extrêmes ou des calculs nécessitant une précision très élevée.
- Gestion des erreurs et des exceptions : Lorsqu'une valeur invalide est fournie, log() peut déclencher des exceptions mathématiques. Par exemple, appeler log(0) entraîne un résultat infini négatif (-inf), tandis qu'une valeur négative retourne une erreur et peut lever une exception flottante, si configurée. Ces cas doivent être gérés pour éviter des comportements imprévus dans le programme.
- Compatibilité avec d'autres fonctions logarithmiques : Outre log(), la bibliothèque <math.h> propose des fonctions dérivées comme log10() (logarithme base 10) et log2() (logarithme base 2). Pour un logarithme avec une base quelconque b, il est possible d'utiliser la relation logb(x)=ln(x)/ln(b), ce qui fait de log() une fonction polyvalente.
- Applications dans les algorithmes : log() est souvent utilisée dans les algorithmes impliquant des calculs exponentiels inverses, comme le calcul des complexités logarithmiques (O(log(n))) en informatique, les distributions probabilistes (par exemple, les fonctions de vraisemblance), ou les calculs financiers (comme l'intérêt composé).
- Comportement avec des entrées spéciales : Si l'entrée est 1, la fonction retourne 0, car ln(1)=0. Si l'entrée est un nombre très proche de 0 (positif mais proche de zéro), log() retourne une valeur négative très grande, tendant vers -∞. Ces comportements sont cohérents avec la courbe logarithmique et doivent être anticipés dans des calculs précis.
- Optimisation matérielle : Sur certaines plateformes, log() peut tirer parti des optimisations matérielles pour des performances accrues, notamment via des instructions spéciales sur des processeurs modernes. Cela en fait une fonction rapide et efficace pour les calculs intensifs, mais son comportement peut varier légèrement en fonction de l'implémentation sous-jacente.
Exemple
Voici un exemple permettant d'afficher le logarithme inférieurs à 2 :
Essayer maintenant !
on obtiendra le résultat suivant :
LOG(0.100000)=-2.302585LOG(0.200000)=-1.609438
LOG(0.300000)=-1.203973
LOG(0.400000)=-0.916291
LOG(0.500000)=-0.693147
LOG(0.600000)=-0.510826
LOG(0.700000)=-0.356675
LOG(0.800000)=-0.223143
LOG(0.900000)=-0.105360
LOG(1.000000)=0.000000
LOG(1.100000)=0.095310
LOG(1.200000)=0.182322
LOG(1.300000)=0.262364
LOG(1.400000)=0.336472
LOG(1.500000)=0.405465
LOG(1.600000)=0.470004
LOG(1.700000)=0.530628
LOG(1.800000)=0.587787
LOG(1.900000)=0.641854
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.
Dernière mise à jour : Mardi, le 28 juillet 2015