vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
28 avril 2004 à 21:44
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
14 juil. 2004 à 12:04
J'aimerais faire une fonction pour calculer un valeur approchée d'un logarithme (népérien par exemple). Je sais qu'entre -1 et 1 je peux utiliser un dévéloppement en série entière de ln, mais le problème c'est en dehors de cet intervalle. J'ai bien essayé en calculant l'intégrale de 1/x mais ca n'est pas très précis, ou bien c'est trop lent.
Quelqu'un sait-il comment je peux faire (par exemple comment est codée la fonction log de math.h, ou bien dans les calculatrices classiques) ?
Merci pour vos réponses
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 28 avril 2004 à 23:49
bon j'ai une idée pour comment faire.
en utilisant ln(x) = -ln(1/x), on se débrouille toujours pour ke x > 1. ensuite, on mets x entre 1 et 10 en utilisant ln(10^n.x')=n.ln(10)+ln(x') (fo calculer ln(10) une bonne fois pour toute juste)
puis apres, pour se rapprocher de 1, suffit d'utiliser ln(x) = 2 ln(sqrt(x)) (note k'au bout de 5 racines carrées de suite, on a nécessairement x entre 1 et 1.1)
et la tu prends le développement en série, ki devient tres bon vu k'on est a coté de 1.
j'ai pas testé mais sur le papier ca a l'air de bien aller en tout k ;)
ha et si tu veu calculer racine carré sans utiliser le sqrt de math.h, suffit d'utiliser la suite (mettons on veu calculer racine(a)) :
u0 = a;
u(n+1) = 0.5( u(n) + a/u(n) ).
en+ elle converge tres vite !! (c'est la méthode de newton)
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 28 avril 2004 à 23:18
bon c'est pas forcement une bonne méthode, mais pour calculer ailleurs ke dans ]0;1[ il suffit d'utiliser ln(x) = -ln(1/x).
le probleme avec le developpement en série de ln, c'est ke mettons si on va juska l'ordre n, le reste intégral (qui dépend de n) n'est pas du tout borné (vu ke la dérivée n+1eme de ln est (-1)^(n)*n!/x^(n+1) ...)
dc ya des chance ke pour x entre 0 et 0.2, estimer ln x par les 1ers termes de la série de ln(1-x) soit tres mauvais.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 14 juil. 2004 à 12:04
Oui mais ces formules ne sont sympathiques que dans un voisinage défini, ici un voisinage de 0
ln(1+x)~x au voisinage de 0
(c'est ce dont je parlais dans mon premier post, la série entière)