FORTRAN générer des nombres aléatoires

Résolu
Bonjour,

Je dois générer des nombres aléatoires que fortran doit aller chercher dans un intervalle [-130,130]. Jusque là, pas de soucis, j'utilise la fonction rand où N0=-130 et N1=130:

x=int(rand(0)*(N1+1-N0))+N0

Mais le problème c'est que les nombres générés devraient suivre une loi normale pour que ce soit plus réaliste, vu que je crée cette variable pour illustrer la variabilité dans la pluviométrie...

Quelqu'un a une idée?

Merci beaucoup!

5 réponses

  1. bonjour

    pour une simulation de tirages selon une loi normale de moyenne m et d'écart type s

    u et v sont de type réels
    u = Rnd
    v = Rnd
    normale = m + s * Sqr(-2 * Log(u)) * Cos(2 * pi * v)

    bonne suite
    2
    1. Bonjour à tous!

      Juste une petite mise à jour du message, personne ne sait comment générer des nombres aléatoires suivant une loi normale dans FORTRAN 77?

      Mercii!
      0
      1. bonjour tous le monde,
        j'ai besoins de générer des nombres aléatoires compris entre 0 et 1 et qui suit une loi normale sur fortran90 car je veux utiliser une décomposition qui marche avec des lois normales.

        merci de m'aider
        0
    2. Merci beaucoup ccm81!

      Ça a fonctionné niquel!
      0
      1. re
        une modif
        Remplacer log(u) par log(1-u), c'est plus prudent, puis qu'on a
        0 <= u < 1
        si par malchance, avec les rnd, tu tombes sur u = 0, ça va planter alors que
        0 < 1-u <= 1
        va passer à tous les coups
        bonne suite
        0
    3. re

      avec plaisir,

      peux tu mettre le pb a résolu

      bonne suite
      0
      1. bonjour

        tu as la réponse dans les post#2 et #5
        je ne connais pas le fortran mais tu dois avoir l'équivalent de
        rnd pour un aléa de 0 à 1
        sqr pour racine carrée

        bonne suite
        0