Institut Galil´ee, MACS Langage C : programmation avanc´
ee pour le calcul scientifique, petit sujet d’´
etudeInstitut Galil´ee, MACS Langage C : programmation avanc´
ee pour le calcul scientifique, petit sujet d’´
etudeInstitut Galil´ee, MACS Langage C : programmation avanc´
ee pour le calcul scientifique, petit sujet d’´
etude
Petit sujet d’´etude : ´etude d’une marche al´eatoire sur r´eseau
monodimensionnel, simulation du mouvement brownien en une dimension
S. Kokh 1
On se propose de simuler le mouvement d’une collection de particules contraintes `a se d´eplacer sur un
r´eseau p´eriodique 1D de mani`ere al´eatoire. Soient ∆t > 0 et ∆x > 0.
Description du r´eseau : on consid`ere une suite de 2nx+ 1 nœuds xkr´epartis sur l’intervalle r´eel
[xMin, xMax] comme `a la figure 1.
x0=xMin < x1<··· < xnx
1< xnx= 0 < xnx+1 <··· < x2nx
1< x2nx=xMax.
La r´epartition est r´eguli`ere, de sorte que
xk=xMin +kx, x=xMax xMin
2nx
, k = 0,...,2nx.
x0x1xnx
1xnx+1
xnxx2nx
x2nx
1
Figure 1 – R´eseau discret
Description des particules et leur mouvement : on consid`ere une famille de nbParticles particules.
Les particules sont telles que :
chaque particule `a une masse ´eagle `a 1/nbParticles ;
plusieurs particules peuvent se trouver au mˆeme point de l’espace.
La position des particules est d´etermin´ee par la r`egle suivante :
`a l’instant t= 0 toutes les particules se trouve au nœud xnx= 0 ;
chaque particule change de position au bout d’une dur´ee ∆t. Elle a une probabilit´e 0.5 de se deplacer
de +∆xet une probabilit´e 0.5 de se d´eplacer de x.
Conditions aux limites : periodicit´e. On simulera la pr´esence de conditions aux limites p´eriodiques
pour le probl`eme en imposant qu’une particule situ´ee en x2nx(resp. x0) se d´epla¸cant de +∆x(resp. x)
se retrouvera au terme de son d´eplacement en x0(resp. x2nx).
Travail demand´e : ´ecrivez un programme qui simule le d´eplacement de la famille de particules d´ecrite
ci-dessus. En particulier :
on laissera chaque particule effectuer nd´eplacements, de sorte que nt<tMax ;
au terme des d´eplacement de toute les particules, on calculera mkla masse totale de particule pr´esentes
dans l’intervalle (xkx/2, xk+ ∆x/2), k= 0,...,2nx;
on affichera `a sur la sortie standard pour k= 0,...,2nxle couple de r´eels
(xk, mk),
chaque couple ´etant affich´e sur une ligne, et pour chaque couple, les ´el´ements seront s´epar´es par des
espaces. On devrait obtenir sur la sortie standard
x0m0
x1m1
.
.
.
xkmk
.
.
.
1 / 2
Institut Galil´ee, MACS Langage C : programmation avanc´
ee pour le calcul scientifique, petit sujet d’´
etudeInstitut Galil´ee, MACS Langage C : programmation avanc´
ee pour le calcul scientifique, petit sujet d’´
etudeInstitut Galil´ee, MACS Langage C : programmation avanc´
ee pour le calcul scientifique, petit sujet d’´
etude
comme post-traitement, grˆace `a une redirection (pipe) on ´ecrira la sortie standard dans un fichier que
l’on affichera avec gnuplot.
Pour les applications, on utilisera les valeurs suivantes
xMin =1, xMax = 1, nx= 500,nbParticle = 106, tMax = 2 ×103,t= ∆x2.
Indications
on pourra utiliser la fonction de la librarie standard
long int random(void)
qui retourne un entier pseudo-al´eatoire entre compris entre 0et RAND MAX (en cas de besoin d’infor-
mations suppl´ementaires utilisez le web ou alors man random dans un terminal).
on comparera le r´esulat de la sortie standard grˆace `a gnuplot avec le graphe de la fonction
x7→ 4×103
2π×2×103e
x2
2×2×103.
on pourra utiliser la fonction de la librarie mathm´etique
double floor(double x)
qui calcule la partie enti`ere (en cas de besoin d’informations suppl´ementaires utilisez le web ou alors
man floor dans un terminal).
2 / 2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !