Méthode de Monte Carlo

itralover -  
tuxboy Messages postés 1083 Statut Membre -
Bonjour tous le monde
je suis un étudiant en physique nucléaire, je dois écrire un programme Fortran qui calcule une intégrale multidimensionnelle par la méthode de Monte carlo,et je cherche des programmes pareils pour voir comment faire et merci beaucoup à vous tous.
Configuration: Windows XP
Internet Explorer 7.0

6 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    La méthode de monte carlo ne sert pas à calculer directement une intégrale.
    Je te conseil de te renseigner là dessus. Cette méthode sert à retrouver certains phénomènes physique par le biais de tirages aléatoire. Je n'en dit pas plus, j'ai peur de dire une connerie.
    1
    1. itralover
       
      Bonjour Char Snipeur,
      Je te remercie infiniment pour ta réponse mais je voulais juste te dire que je suis sur que la méthode de Monte Carlo permet de calculer une intégrale multidimensionnelle par le logiciel Fortran,je te demande de bien t'informer là-dessus et s'il y a de nouveaux je serai trés content de m'écrire et au revoir.
      0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    ha oui, en effet, je ne connaisait pas cette méthode...
    http://www.aiaccess.net/French/Glossaires/GlosMod/f_gm_monte_carlo.htm
    Bon, ba c'est pas très compliqué alors.
    Il faut trouvé un générateur de nombre aléatoire (rand() ?) et c'est parti.
    L'avantage du fortran c'est que les tableaux sont dimensionné automatiquement sur la dernière dimension.
    REAL*8 som,V
    c nombre de point max :
    parameter Nmax 500
    DO 1 N=1,Nmax
    som=som+d()
    1 continue
    write(6,*)'resultat de :',som*V/Nmax

    Ensuite, il faut définir une fonction d() donnant une valeur de façon aléatoire en fonction de ta fonction à intégrer f():
    function d()
    x1=rand()*(x1m-x1p)
    x2=rand()*(x2m-x2p)
    ...
    return f(x1,x2,...)

    Voilà en gros le programme.
    1
  3. Hicham dev
     
    program Monte
    implicit none
    double precision x,Rf,IMf,RI,IMI,Rand
    integer N,I
    complex II,JJ
    logical Domaine
    open(10,file='x.dat')
    JJ=(0d0,1d0)
    RI=0d0
    IMI=0d0
    N=0

    do 1 I=1,100
    x=20d0
    Domaine=(x.le.10d0).and.(x.ge.2d0)
    do while(.not.Domaine)
    x=8d0*Rand()+2
    write(10,*)x
    write(*,*)x
    Domaine=(x.le.10d0).and.(x.ge.2d0)
    enddo
    RI=RI+Rf(x)
    IMI=IMI+IMf(x)
    N=N+1
    1 Continue
    RI=8d0*RI/N
    IMI=8d0*IMI/N
    write(*,*)N
    II=RI+JJ*IMI

    write(*,*)'partie réelle de l''integrale est',RI
    write(*,*)'partie imaginaire de l''integrale est',IMI
    write(*,*)' l''integrale complexe est: II=',II
    end

    double precision function Rf(x)
    double precision x
    Rf=(x*x-3)*dcos(x)/dsqrt(x-1)
    return
    end
    double precision function IMf(x)
    double precision x
    IMf=(x*x-3)*dsin(x)/dsqrt(x-1)
    return
    end
    0
    1. Hicham dev
       
      voilà le programme sur fortran
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. leila1980 Messages postés 3 Statut Membre
     
    je voudrais s'il vous plait que quelqu'un me fasse un programme de simulation monte carlo avec le longage de programmation fortran qui calcul la probabilité de transmission a travrs un canal droit et plein en aluminium et entouré du fer en utilisant l'albédo.
    les particules incidentes sont des neutrons monocinétique.
    c'est urgent voila mon e-mail: fleila1980.hotmail.fr
    Merci beaucoup.
    -1
    1. Alex
       
      Ta cru que tu passait commande là? ....
      Donc les tarifs c'est 500€ la journée!
      Mdr...

      Diplôme de physique spécialité commentsamarche ^^
      0
    2. itralover
       
      bonsoir Leila1980 ,
      Alors le principe du programme est facile,normalement l'expression de la probabilité de transmission est une intégrale multidimensionnelle donc pour calculer la valeur de cette intégrale par un programme Fortran il suffit de calculer la valeur moyenne de la fonction à intégrer en utilisant les nombres aléatoires par (idum) aprés tu multiplie la valeur moyenne par le domaine d'intégration.
      0
  6. leila1980 Messages postés 3 Statut Membre
     
    cher itralover,
    mon problème ne conserne pas le calcul d'integral mais de la probabilité de transmission à travers un canal droit et plein.
    si tu veux me faire ce calcul ou tous personne pouvant m'aider ou capable de le faire qu'il me contacte sur mon e-mail pour lui donner les énnoncer du problème.
    je serai très reconnaissante à toute personne pouvant m'aider à résoudre ce problème.
    Meri chèrs amis
    -1
    1. itralover
       
      Bonsoir Leila,
      j'ai pas compris ,est-ce que ton probleme est purement physique c,à,d tu n'es pas arrivivé à trouver l'expression de la probabilité de transmission ou bien il est du coté programmation par fortran alors si tu as l'expression de la probabilité de transmission tu me l'envoies pour essayer de t'aider et meme si tu l'as pas envoie moi l'énnoncé du probleme ok? bon courage.
      0
      1. leila1980 Messages postés 3 Statut Membre > itralover
         
        Bonsoir,
        je voudrais le programme qui calcul la probabilité de transmission(nombre de neutrons à la sortie/le nombdre de neutron à l'entrée) à la sortie d'un canal droit de section carré remplie d'aluminium et entouré du fer.
        le faiseau de neutrons entrant est est rectangulaire d'énergie monocinétiques.
        les dimenions du canal sont des données d'entrées ainsi que l'énergie.
        si vous avez besoin d'autres informations dites les moi.
        merci beaucoup cher ami pour votre aide.
        0