teaching:progappchim:maxwell-boltzmann

no way to compare when less than two revisions

Différences

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


teaching:progappchim:maxwell-boltzmann [2014/01/30 04:19] (Version actuelle) – créée villersd
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
  • de villersd