Pour la théorie, cf. le cours de physico-chimie ou la page Wikipédia sur la distribution de vitesse de Maxwell-Boltzmann
<sxh python; title : Maxwell-Boltzmann_01.py> #! /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() </sxh>
<sxh python; title : Maxwell-Boltzmann_02.py> #! /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() </sxh>