FORTRAN générer des nombres aléatoires

Résolu
foko -  
ccm81 Messages postés 11033 Statut Membre -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. foko
     
    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. nab
       
      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
  3. foko
     
    Merci beaucoup ccm81!

    Ça a fonctionné niquel!
    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    avec plaisir,

    peux tu mettre le pb a résolu

    bonne suite
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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