IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Loi normale standard


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 66
    Par défaut Loi normale standard
    Bonjour à tous.

    J'ai un petit souci pour retranscrire la fonction LOI.NORMALE.STANDARD de Excel dans mon programme VB.NET.

    D'après le site de Microsoft, la formule serait celle-ci :
    Z(x) = (1/(sqrt(2*pi()))*exp(-x^2/2))

    Je traduis donc par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Function LoiNormaleStandard(ByVal z As Double) As Double
            Return (1 / (Math.Sqrt(2 * Math.PI)) * Math.Exp(-z ^ 2 / 2))
    End Function
    Par contre si je teste ma fonction, j'ai des résultats complètement différents.
    Ex :

    dans Excel : LOI.NORMALE.STANDARD(3,1791444442303) = 99,9261%

    dans VB.NET: LoiNormaleStandard(3,1791444442303) = 0.2548%

    Une petite idée de ce qui cloche dans ma formule ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 66
    Par défaut
    Ouais bon j'avais encore lu a moitié l'aide de Bill et donc ma fonction qui se transforme comme ci-dessous fonctionne avec les bons résultats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Private Function LoiNormaleStandard(ByVal z As Double) As Double
            'http://support.microsoft.com/kb/214111/fr
            Dim Zx As Double = (1 / (Math.Sqrt(2 * Math.PI)) * Math.Exp(-z ^ 2 / 2))
     
            Dim b1 As Double = 0.31938153
            Dim b2 As Double = -0.356563782
            Dim b3 As Double = 1.781477937
            Dim b4 As Double = -1.821255978
            Dim b5 As Double = 1.330274429
            Dim p As Double = 0.2316419
            Dim t As Double = 1 / (1 + p * z)
     
            Return 1 - Zx * (b1 * t + b2 * t ^ 2 + b3 * t ^ 3 + b4 * t ^ 4 + b5 * t ^ 5)
     
    End Function
    Désolé pour le dérangement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/07/2011, 11h13
  2. Réponses: 5
    Dernier message: 26/08/2009, 09h53
  3. Loi normale standard inverse
    Par fafabzh6 dans le forum SAS STAT
    Réponses: 7
    Dernier message: 06/06/2008, 09h15
  4. Help, Loi Normale
    Par hteamspy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2006, 10h25
  5. [Statistiques] Générer une loi normale
    Par mhtrinh dans le forum C
    Réponses: 6
    Dernier message: 19/05/2006, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo