Vous êtes sur la page 1sur 11

TP1: Monte-Carlo

1. Introduction:

La méthode de Monte-Carlo, universellement exploitée


dans le monde de la simulation pour sa puissance et son
efficacité.

On peut, mis à part l’utilisation de l’intégration, l’utiliser


pour simuler la désintégration d’une population de
noyaux radioactifs, le refroidissement d’un verre,
le comportement d’un gaz d’électrons,…

C’est une méthode inspirée de la physique statistique,


qui offre un moyen très puissant pour comprendre
beaucoup de phénomènes dans tous les domaines de la
physique.
Méthode de Monte-Carlo:
Le terme méthode Monte-Carlo, désigne une famille de méthodes
algorithmiques visant à calculer une valeur numérique approchée en utilisant des
procédés aléatoires, c'est-à-dire des techniques probabilistes. Le nom de ces
méthodes, qui fait allusion aux jeux de hasard pratiqués à Monte-Carlo, a été
inventé en 1947 par Nicholas Metropolis, et publié pour la première fois en 1949
dans un article coécrit avec Stanislaw Ulam.

Les méthodes de Monte-Carlo sont particulièrement utilisées pour calculer des


intégrales en dimensions plus grandes que 1 (en particulier, pour calculer des
surfaces et des volumes). Elles sont également couramment utilisées
en physique des particules, où des simulations probabilistes permettent
d'estimer la forme d'un signal ou la sensibilité d'un détecteur. La comparaison
des données mesurées à ces simulations peut permettre de mettre en évidence
des caractéristiques inattendues, par exemple de nouvelles particules.

Le véritable développement des méthodes de Monte-Carlo s'est effectué sous


l'impulsion de John von Neumann et Stanislas Ulam, lors de la Seconde Guerre
mondiale et des recherches sur la fabrication de la bombe atomique. Ils ont
utilisé ces méthodes probabilistes pour résoudre des équations aux dérivées
partielles dans le cadre de la Monte-Carlo N-Particle transport (MCNP).
3. EXEMPLES
Calcul d’un intégrale
clear all, close all
d=0;
n=10^4;
for i=1:n
x=rand();
y=rand();
if y < x.*(1-x).*(sin(200.*x.*(1-x))).^2
d=d+1;
figure(1)
plot(x,y,'*g'), hold on
else
plot(x,y,'*r')
end
end
Int=d/n
Calcule de π:
%Calcule de Pi
clear all, close all
disque=0;
n=10^4;
for i=1:n
x=rand();
y=rand();
if x.^2+y.^2<1
disque=disque+1;
figure(1)
plot(x,y,'*g'), hold on
else plot(x,y,'*r')
end
end
pii=4*disque/n
Approximation numérique du volume d'une sphère :

On peut bien sûr étendre ces méthodes a des situations plus


compliquées, et évaluer, par exemple, le volume d'un convexe de Rd,
ou d > 2.
On se limitera ici au cas ou d = 3 pour évaluer le volume V d'une
sphère.
Le principe est le même : on définit un cube qui contient la sphère,
puis on génère n points indépendants dans ce cube, avec une
distribution uniforme.

% Volume d'une sphère


N=10^4;
X=2*rand(N,1)-1;
Y=2*rand(N,1)-1;
Z=2*rand(N,1)-1;
S=(X.^2 + Y.^2 + Z.^2 < 1);
Vol=8*sum(S)/N
plot3(X.*S,Y.*S,Z.*S,'*g');
% % % % % % % % % % % % % % % % % % %
dim=3;
x=2*rand(dim,N)-1;
vol=2^dim*sum(sum(x.^2)<1)/N
Triple intégrale:

%Triple intégrale int3d_mc


N=10^4;
x=2*rand(3,N)-1;
int3d=(2^3/N)*sum((sum(x.^4)<1).*exp(sum(x)))
Désintegration radioactive____________________
clear all, close all
lambda=5.6*10^-12;
n=10^4;
dt=0.0001/lambda;
nt=zeros(10000,1); %MC
nta=zeros(10000,1); % Résultat analytique
tmax=10000*dt;
t=(0:dt:tmax)';
nta=n*exp(-lambda*t); % Solution analytique
nt(1)=n;
% __________________________Monte-Carlo______
for i=2:10001
aleatoire=rand(n,1);
compte=length(aleatoire(aleatoire<=0.0001));
n=n-compte;
if(n<=0)
break;
end
nt(i)=n;
end
plot(t,nt,‘r',t,nta,‘b');
xlabel('Temps');
ylabel('Nbre de nucleides');

Vous aimerez peut-être aussi