Pour la fonction ln, la convergence en 1 est beaucoup trop lente.
Il vaut mieux calculer ln(1/x)=-ln(x) et utiliser
Une implantation en python :
def logb(x) :
n=30; # précision supérieure à 2^(-30) entre 0.5 et 1
signe=-1;
if x>1 :
x=1/x; signe=1;
u=1-x;
log=1/n;
for k in range(n,0,-1) :
log=log*u+1/k;
log=signe*u*log;
return(log);
Une remarque : je ne suis pas un spécialiste du calcul numérique, et je ne connais pas la précision des calculs que fait python.
Je ne peux donc pas garantir la précision du résultat.
Je suis parti de l'idée que la mantisse des flottants comporte au moins 64 bits.
Comme on commence par calculer les plus petits termes, il me semble que l'on peut monter jusqu'à n=40 sans problème, et, vraisemblablement, un peu au delà.