====== Représentation de la distribution de vitesse de Maxwell-Boltzmann ======
Pour la théorie, //cf.// le cours de physico-chimie ou la [[http://en.wikipedia.org/wiki/Maxwell-Boltzmann_distribution#Distribution_for_the_speed|page Wikipédia sur la distribution de vitesse de Maxwell-Boltzmann]]
===== Sans NumPy =====
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
NumPy/Matplotib : representation de la distribution de vitesses de Maxwell-Boltzmann
version SANS utilisation de NumPy
cf cours et http://en.wikipedia.org/wiki/Maxwell-Boltzmann_distribution#Distribution_of_speeds
"""
import matplotlib.pyplot as plt
from math import pi,exp # importation des fonctions mathématiques exp et pi
plt.figure()
#from pylab import *
def fonc_dist(v):
kB = 1.3806504e-23 # constante de Boltzmann
NA = 6.02214179e23 # nombre d'Avogadro
T = 298.15 # température (25 Celcius)
mmg= 28 # masse molaire en g
m=mmg/(1000*NA)
factor=4.*pi * (m/(2.*pi*kB*T))**1.5
expofactor= -m/(2.*kB*T)
s = factor * v**2 * exp(expofactor * v**2)
return s
x=[] # liste standard en python
y=[]
xx=1.
while xx < 2000:
x.append(xx)
y.append(fonc_dist(xx))
xx=xx+10.
plt.plot(x,y)
plt.show()
===== Avec NumPy =====
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
NumPy/Matplotib : representation de la distribution de vitesses de Maxwell-Boltzmann
version AVEC utilisation de NumPy
cf cours et http://en.wikipedia.org/wiki/Maxwell-Boltzmann_distribution#Distribution_of_speeds
"""
import matplotlib.pyplot as plt
import numpy as np # utilisation des tableaux numpy, cf. http://docs.scipy.org/doc/
#les fonctions mathématiques exp et pi seront issues de nummpy
plt.figure()
#from pylab import *
def fonc_dist(v):
kB = 1.3806504e-23 # constante de Boltzmann
NA = 6.02214179e23 # nombre d'Avogadro
T = 298.15 # température (25 Celcius)
mmg= 28 # masse molaire en g
m=mmg/(1000*NA)
factor=4.*np.pi * (m/(2.*np.pi*kB*T))**1.5
expofactor= -m/(2.*kB*T)
s = factor * v**2 * np.exp(expofactor * v**2)
return s
x = np.arange(0., 2000., 10.) # array numpy
plt.plot(x,fonc_dist(x))
plt.show()
Suggestion : ajouter des fonctionnalités pour superposer des distributions avec des températures différentes, ou des masses molaires différentes.