Outils pour utilisateurs

Outils du site


teaching:progappchim:maxwell-boltzmann

Représentation de la distribution de vitesse de Maxwell-Boltzmann

Pour la théorie, cf. le cours de physico-chimie ou la 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.
Ce site web utilise des cookies pour analyser le trafic de visites. En restant sur ce site, vous acceptez le stockage de cookies sur votre ordinateur. En savoir plus
teaching/progappchim/maxwell-boltzmann.txt · Dernière modification: 2014/01/30 04:19 par villersd