Outils pour utilisateurs

Outils du site


teaching:progappchim:maxwell-boltzmann

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

teaching:progappchim:maxwell-boltzmann [2014/01/30 04:19] (Version actuelle)
villersd créée
Ligne 1: Ligne 1:
 +====== 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 =====
 +<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>​
 +
 +===== Avec NumPy =====
 +<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>​
 +
 +<note tip>​Suggestion : ajouter des fonctionnalités pour superposer des distributions avec des températures différentes,​ ou des masses molaires différentes.</​note>​
teaching/progappchim/maxwell-boltzmann.txt · Dernière modification: 2014/01/30 04:19 par villersd