Approximation Mac laurin du log

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
syrina
Messages: 1
Enregistré le: 02 Jan 2012, 13:37

Approximation Mac laurin du log

par syrina » 02 Jan 2012, 13:54

Bonjour,

j'ai besoin d'implémenter la fonction log2, j'ai donc recouru à l'approximer avec la séries da Mac Laurin en convertissant le nombre en matisse et exposant par exp: pour X=75.68=2^6 * 1.1825
log2(X)=6+log2(1.1825)
Je dois approximer le log2 de la mantisse à l'ordre 3 tout en faisant la conversion nécessaire entre le log naturel et le log2.
j'ai choisi des valeurs aléatoires entre 1 et 100. Mon problème est que la valeur de l'erreur absolue varie significativement d'une valeur à une autre. par exp:

x=45.56 => e=0.008
x=56.44 => e=0.07
x=67.33 => e=2.5*10^(-6)

Je comprends pas à quoi est du cette variation? pourquoi le graphe de l'erreur présente-il des pics pour certaines valeurs?

Merci



Avatar de l’utilisateur
mathelot
Habitué(e)
Messages: 13515
Enregistré le: 08 Juin 2006, 09:55

par mathelot » 05 Jan 2012, 15:26

bonjour,

un algo trouvé dans "Art of programming" pour calculer log2(x):

1ère réduction
faire des shifts droits ou gauche sur pour se ramener
au cas
ces boucles (loop) donne la partie entière n de log2

on suppose dans la suite que
algo

L'algorithme, qui utilise seulement shifting,additions, soustractions operations
proportionnel aux nombres de places of de précision souhaitée, peut être utilisé pour calculer
une approximation de

L1[initialize] y=0 , z=(x shifted right 1) , k=1
L2[test for the end] if x=1, stop
l3[Compare] If x-z<1, z=(z shifted right 1), k=k+1
and repéter ce step
L4 [reduce values] Set x=x-z ,z= (x shifted right k),

on implémente une table de constantes pré-calculées log2(2),log2(4/3),log2(8/7)..
autant que la précision de l'ordinateur.

d'après Donald Knuth.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 81 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite