Méthode de Monte Carlo
Fermé
itralover
-
29 oct. 2008 à 13:23
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 - 24 janv. 2014 à 07:53
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 - 24 janv. 2014 à 07:53
A voir également:
- Méthode de Monte Carlo
- Le client et le serveur ne sont pas compatibles avec une version de protocole ou une méthode de chiffrement ssl commune. ✓ - Forum Réseaux sociaux
- Erreur le volume précédent n'a pas pu être monté - Forum Téléchargement
- Le support d'installation ne peut être monté kali linux ✓ - Forum Debian
- La méthode range de l'objet worksheet a échoué ✓ - Forum VB / VBA
- La methode de connexion que vous utilisez n'est pas autorisée ✓ - Forum Réseau
6 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
29 oct. 2008 à 15:01
29 oct. 2008 à 15:01
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.
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.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
3 nov. 2008 à 10:58
3 nov. 2008 à 10:58
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.
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.
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
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
tuxboy
Messages postés
995
Date d'inscription
lundi 23 juillet 2012
Statut
Membre
Dernière intervention
28 mai 2019
190
24 janv. 2014 à 07:53
24 janv. 2014 à 07:53
Bonjour,
Un point de départ par ici : http://www.physics.unlv.edu/~pang/comp6/monte.f90
Un point de départ par ici : http://www.physics.unlv.edu/~pang/comp6/monte.f90
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
leila1980
Messages postés
3
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 décembre 2008
21 déc. 2008 à 23:51
21 déc. 2008 à 23:51
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.
les particules incidentes sont des neutrons monocinétique.
c'est urgent voila mon e-mail: fleila1980.hotmail.fr
Merci beaucoup.
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.
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.
leila1980
Messages postés
3
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 décembre 2008
25 déc. 2008 à 00:30
25 déc. 2008 à 00:30
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
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
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.
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.
leila1980
Messages postés
3
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 décembre 2008
>
itralover
25 déc. 2008 à 23:20
25 déc. 2008 à 23:20
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.
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.
3 nov. 2008 à 09:48
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.