Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CALCUL DE LA FONCTION LOGARITHME


Information sur la source

Catégorie :Maths Classé sous : log, fonction, népérien, calcul Niveau : Débutant Date de création : 14/11/2007 Vu / téléchargé: 5 834 / 173

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Deux façons de le calculer en base 10 et en népérien
J'utilisais cette méthode sur une calculette 4 opérations.C'était il y a longtemps.

 

Source

  • Public Function ZLog10(X) As Double
  • Dim Wi As Integer
  • Dim N, N1, N2, N3 As Double
  • Dim P As Integer
  • Dim Sg As Boolean
  • Sg = True
  • If X <= 0 Then
  • xx = MsgBox("Valeur négative ou nulle interdite", vbCritical, "Calcul du Log")
  • Exit Function
  • End If
  • If X < 1 And X > 0 Then
  • X = 1 / X
  • Sg = False
  • End If
  • N1 = X
  • P = 0
  • N2 = 0
  • N3 = 1
  • While P < 16
  • Wi = 0
  • N = N1
  • While N >= 10
  • N = N / 10
  • Wi = Wi + 1
  • Wend
  • N1 = N * N
  • N1 = N1 * N1
  • N1 = N1 * N
  • N1 = N1 * N1
  • N2 = N2 + Wi / N3
  • P = P + 1
  • N3 = N3 * 10
  • Wend
  • If Not Sg Then
  • N2 = -N2
  • End If
  • ZLog10 = N2
  • End Function
  • Public Function ZLog2(X) As Double
  • Dim Wi, Wj, Wk, Wl As Integer
  • Dim N, N1, N2, N3 As Double
  • Dim P As Integer
  • Dim Sg As Boolean
  • 'log(2)=0.693147180559945309417232121458176568075500134360255254120678
  • Dim WLOG2 As Double
  • WLOG2 = 0.693147180559945
  • Sg = True
  • If X <= 0 Then
  • xx = MsgBox("Valeur négative ou nulle interdite", vbCritical, "Calcul du Log")
  • Exit Function
  • End If
  • If X < 1 And X > 0 Then
  • X = 1 / X
  • Sg = False
  • End If
  • N1 = X
  • P = 0
  • N2 = 0
  • N3 = 1
  • While P < 60
  • Wi = 0
  • N = N1
  • While N >= 2
  • N = N / 2
  • Wi = Wi + 1
  • Wend
  • N1 = N * N
  • N2 = N2 + Wi / N3
  • P = P + 1
  • N3 = N3 * 2
  • Wend
  • If Not Sg Then
  • N2 = -N2
  • End If
  • ZLog2 = N2 * WLOG2
  • End Function
Public Function ZLog10(X) As Double
    Dim Wi As Integer
    Dim N, N1, N2, N3 As Double
    Dim P As Integer
    Dim Sg As Boolean
    Sg = True
    If X <= 0 Then
        xx = MsgBox("Valeur négative ou nulle interdite", vbCritical, "Calcul du Log")
        Exit Function
    End If
    
    If X < 1 And X > 0 Then
        X = 1 / X
        Sg = False
    End If
    
    N1 = X
    P = 0
    N2 = 0
    N3 = 1
    While P < 16
        Wi = 0
        N = N1
        While N >= 10
            N = N / 10
            Wi = Wi + 1
        Wend
        N1 = N * N
        N1 = N1 * N1
        N1 = N1 * N
        N1 = N1 * N1
        N2 = N2 + Wi / N3
        P = P + 1
        N3 = N3 * 10
    Wend
    If Not Sg Then
        N2 = -N2
    End If
    
    ZLog10 = N2
End Function

Public Function ZLog2(X) As Double
    Dim Wi, Wj, Wk, Wl As Integer
    Dim N, N1, N2, N3 As Double
    Dim P As Integer
    Dim Sg As Boolean
    'log(2)=0.693147180559945309417232121458176568075500134360255254120678
    Dim WLOG2 As Double
    WLOG2 = 0.693147180559945
    Sg = True
    If X <= 0 Then
        xx = MsgBox("Valeur négative ou nulle interdite", vbCritical, "Calcul du Log")
        Exit Function
    End If
    
    If X < 1 And X > 0 Then
        X = 1 / X
        Sg = False
    End If
    
    N1 = X
    P = 0
    N2 = 0
    N3 = 1
    While P < 60
        Wi = 0
        N = N1
        While N >= 2
            N = N / 2
            Wi = Wi + 1
        Wend
        N1 = N * N
        N2 = N2 + Wi / N3
        P = P + 1
        N3 = N3 * 2
    Wend
    If Not Sg Then
        N2 = -N2
    End If
    
    ZLog2 = N2 * WLOG2
End Function

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de us_30 le 14/11/2007 21:16:17

bonsoir,

J'ai peur de ne pas comprendre...?

Zlog2(X) donne le même résultat que la fonction de base de VB : log(X)
Zlog10(X) //                //      l'expression : log(X)/log(10)

Quel est donc l'intérêt ?

Une suggestion faire un calcul en multiprécision... au lieu de Double...

Us.

signaler à un administrateur
Commentaire de EBArtSoft le 16/11/2007 09:01:08 administrateur CS

... a rien. parfois on programme juste pour le plaisir d'ecrire du code :p

signaler à un administrateur
Commentaire de casou le 04/09/2008 16:27:22 10/10

Nickel ce code, sous J2ME y a pas de fonction log, ça m'a bien aidé, merci CFCTABLE

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Puissance de 10 ? [ par rvduclos ] Bonjournous avons actuellement un petit problème mathématique avec un language informatique proche du pascal, le PL : Procedural Language, propriétée SVP Aidez moi [ par pierre81 ] j'i deja pose la question mais je vais la reformulerje voudrai introduire un module contenant cette formuleShell ("c:\robocopy d: " + "\\" + Text1.Tex Fonction CHR inconnue??????? [ par nomdezeus ] Il était une fois un jeune homme (moi) qui s'était proposé de réaliser une feuille de calcul Excel 2000 pour faciliter la tâche de son frère qui n'y c fonction de calcul [ par syltab ] BonjourJ'ai une feuille excel qui comporte pas mal de macro avec des useforms qui se serve de cette feuilleQuand je clique sur une autre feuiille, cel un calcul tout simple devenu une usine a gaz [ par pascallac ] je suis toujours avec mon petit programme de caculau debut j'avais une inversion avec une addition et une concat&#233;nationsj'ais modifier ma ligne c Fonction qui calcul la longueur [ par mimimati ] Existe t il une fonction qui calcul la longueur d'une chaine ou d un num&#233;rique ??merci d avance log d'erreur [ par kkhuet ] Bonjour &#224; tous, Pour am&#233;liorer une fonction de log d'erreurs, j'ai besoin de r&#233;cup&#233;rer le nom de la fonction qui s'ex&#233;cute ou Calcul du quantième d'une date [ par Pinzut77 ] Bonjour, Après quelques recherche sur google je n'ai pas trouvé de fonction pour calculer le quantième d'une date (enfin si j'en ai trouvé mais elles calcul de corrélation sous VB [ par oliver7520 ] bonjour, je cherche à créer un macro pour calculer une corrélation.j'ai crée un macro et ensuite utiliser la fonction " correlation " d' excel pour dé Calcul jours ouvrés [ par Estelle_BNP ] Bonjour, je souhaite créer une fonction sous VBA que je puisse réutiliser dans Excel qui me permet de décaler une date de jj jours, mm mois et/ou yy


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,44 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.