FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Entraide pour le programmation en général (tous langages).
Règles du forum : Entraide concernant la programmation informatique en général, tous langages : recherche ou correction d'un code ou d'une fonction, aide à la réalisation d'un projet...
Pour la programmation web (HTML, CSS, PHP, MySQL...), il est conseillé de s'orienter dans le forum Webmastering.
Merci de lire et de respecter la charte générale du forum.
  • Avatar du membre
Avatar du membre
par zeittaw
#187352
Bonjour tout le monde, je suis élève en première bac en physique, et je dois réaliser un programme sur matlab dans le cadre de mon cours de programmation, cependant je suis bloquée à une certaine étape...
Voici l'énoncé :

"Le gaz parfait à deux dimensions
Introduction Supposons une boîte remplie d’un gaz parfait. N atomes identiques d'hélium se déplacent dans la boîte selon des trajectoires rectilignes de directions et sens arbitraires. Ils sont réfléchis par les parois avec un angle identique à l’angle incident (effet de miroir). Entre les atomes d'hélium, il n’y a aucune interaction. Le système complet est à la température T de 50mK , la norme de la vitesse de chaque atome étant déterminée par la distribution de Boltzmann :
P(v)= m/2(pi)kBT)^(3/2).4(pi)v^2.e^(-mv^2/2kBT)

où m est la masse de l'atome d'hélium et kB la constante de Boltzmann. Dans le programme la boîte est représentée par un tableau de dimensions L × K et les atomes d'hélium par des cercles rigides. Chaque couple d'indice du tableau ( i,j ) correspond à la position dans la boîte. Structure
1. Le programme simule le déplacement des N atomes d'hélium identiques. Pour initialiser le nombre de cercles ainsi que le nombre maximal de collisions CMAX entre les atomes et les parois, le programme demande à l’utilisateur d’introduire pour chacun des deux une valeur entière à tester.
2. Ensuite, le programme détermine les positions et les vitesses initiales des N atomes dans la boîte. Pour ceci, il fait appelle à la fonction externe Initialisation( L,K,T ) où les variables d'entrées L , K sont les dimensions du tableau et T la température du système.
3. Puis, le système évolue jusqu'à ce que l’ensemble d’atome ait effectué le nombre CMAX de collisions avec les parois. Dans le cas où un atome entre en collision avec une des parois, le programme appelle la fonction externe Reflexion( L,K,i,j, vi , vj) où les variables d’entrées (i , j) sont la position initiale de la particule dans le tableau et vi, vj les composantes de sa vitesse v . La fonction fournit comme variables de sorties la nouvelle position et les nouvelles composantes du vecteur de vitesse.
4. L’évolution complète du système est graphiquement affichée sur l’écran. "

Je suis parvenue à crée un tableau de dimension 1000x1000, et contenant 1000 particules en codant cela :

m=6.6464764*10^-27;
k=1.38064852*10^-23;
T=0.05;
v = linspace (0 ,100,1001); % valeur de la vitesse = v
f = ((m)/(2*pi*k*T))^(3/2)*4*pi*v.^2.*exp(-m*v.^2/(2*k*T));
plot(v,f)
M= zeros(1000);
x= 1000*rand(1000,2);
x1= ceil(x);
for i=1:1000
M(x1(i,1),x1(i,2))=1;
end
spy(M) "


Maintenant je dois donner à mes particules leur vitesse initiale qui doit être prise dans la distribution de probabilité, mais je n'arrive vraiment pas.. :cry:
Est-ce que l'un de vous connait des fonctions Matlab qui pourraient m'être utiles ou pourraient tout simplement me guider ? Un grand merci d'avance :D
Présentation

Hello, Bienvenue sur FEI :) @+ Gabriel.

Bonjour :bonjour: Merci de m'accueillir sur votr[…]

Bonjour à tous, D'abord, désol&eacut[…]

Salutations, chers amis, Les joueurs peuvent profi[…]