Comment calculer et tracer la loi de Planck avec Python ?

Published: 25 septembre 2023

Tags: Python; Matplotlib;

DMCA.com Protection Status

La loi de Planck décrit la distribution spectrale de l'énergie du rayonnement électromagnétique émis par un corps noir en équilibre thermique. Calculer et tracer la loi de Planck peut être fait en utilisant différents méthodes et bibliothèques en python.

Obtenir les constantes physiques fondamentales

Pour calculer la luminance émise à partir de la température en utilisant le principe de Planck, nous devons incorporer des constantes physiques fondamentales telles que la vitesse de la lumière, la constante de Boltzmann et la constante de Planck. Pour accéder facilement aux constantes physiques dans votre code Python, une excellente solution est d'utiliser Scipy et sa fonction d'importation de constantes.

from scipy import constants

c = constants.speed_of_light
h = constants.h
k = constants.k

Créer une fonction de Planck

Maintenant, créons une fonction Planck en python qui prendra à la fois la longueur d'onde et la température en tant qu'entrées et renverra la luminance :

k1 = 2.0*h*c**2
k2 = h*c/k

def planck_function(wl, T, k1, k2):
    radiance = k1 / ( (wl**5) * (np.exp(k2/(wl*T)) - 1.0) )
    return radiance

k1 et k2 sont des constantes qui restent inchangées, il n'est donc pas nécessaire de les recalculer à chaque exécution de la fonction.

Tracer la fonction de Planck

La dernière tâche consiste à utiliser Matplotlib pour représenter visuellement la fonction de Planck sur une plage de températures et de longueurs d'onde.

import matplotlib.pyplot as plt
import numpy as np

wls = np.linspace(1e-9, 3e-6, 1000)

temps = [3000,4000,5000,6000]

for temp in temps:
    plt.plot(wls, planck_function(wls, temp, k1, k2))

plt.grid('..')

plt.title("How to calculate and plot Planck's law with python ?")

plt.savefig('plank_law_01.png', dpi=100, facecolor='white')

plt.show()

donne

Comment calculer et tracer la loi de Planck avec Python ?
Comment calculer et tracer la loi de Planck avec Python ?

Code agrégé

from scipy import constants

import matplotlib.pyplot as plt
import numpy as np

c = constants.speed_of_light
h = constants.h
k = constants.k

k1 = 2.0*h*c**2
k2 = h*c/k

def planck_function(wl, T, k1, k2):
    radiance = k1 / ( (wl**5) * (np.exp(k2/(wl*T)) - 1.0) )
    return radiance

wls = np.linspace(1e-9, 3e-6, 1000)

temps = [3000,4000,5000,6000]

for temp in temps:
    plt.plot(wls, planck_function(wls, temp, k1, k2))

plt.grid('..')

plt.title("How to calculate and plot Planck's law with python ?")

plt.savefig('plank_law_01.png', dpi=100, facecolor='white')

plt.show()

Références

Liens Site
constants docs.scipy.org
Planck's law en.wikipedia.org
Image

of