Google Classroom
GeoGebraClasse GeoGebra

1-1 Désintégration radioactive : modélisation et simulation

Simulation avec GeoGebra puis Python

On présente ici deux simulations, une avec GeoGebra puis une avec Python d'une même modélisation mathématique de la désintégration radioactive. Vous trouverez ici un fichier tableur Excel reproduisant la même simulation.

Modélisation :

On imagine avoir 100 noyaux radioactifs. On suppose qu'à chaque étape (représentant un intervalle de temps), chaque noyau se désintégrera avec probabilité p, et ce indépendamment des autres noyaux. La probabilité p est fixée par le curseur rouge. En faisant varier p, cela relance les nombres aléatoires du tableau.

Explications sur le contenu du tableur.

Les lignes du tableur de 5 à 104 correspondent aux états des 100 noyaux :
  • 1 si le noyau est présent
  • 0 s'il est désintégré
La ligne 3 calcule la somme des nombres dans la colonne, et représente donc le nombre de noyaux restants à l'étape correspondante indiquée en ligne 2. La colonne B contient des 1, signifiant la présence de 100 noyaux initiaux. Dans la cellule C5 on a rentré la formule suivante qui a été recopiée à droite et vers le bas : =Si(B5 ≟ 1 ∧ AléaEntreBornes(0, 100) < 100 (1 - $B$1), 1, 0) qui signifie : Si en B5 il y a un 1 et qu'un tirage aléatoire entre 0 et 100 donne un nombre inférieur à 100(1-p), alors le noyau reste présent (1), sinon il n'y a plus de noyau (0).

Avec Python

La fonction Python ci-dessous permet de simuler la même chose.  from random import* def compte_noyaux_restants(n,p): N=n for i in range(n): if random() < p: N=N-1 return N Par exemple compte_noyaux_restants(10000,0.02) renvoie le nombre de noyaux restants après une étape si on a initialement 10000 noyaux et qu'ils se désintègrent avec probabilité 0.02 On peut ensuite créer une liste du nombre de noyaux restants jusqu'à ce qu'il ne reste plus que 1% des noyaux. def Liste_nb_noyaux_restants(n,p): L=[] N=n while n>0.01*N: L.append(n) n=compte_noyaux_restants(n,p) return L On peut alors tracer le graphique avec le module matplotlib : import matplotlib.pyplot as plt n=40000 L=Liste_nb_noyaux_restants(n,1/6) m=len(L) plt.plot(range(m),L, linestyle = 'none', marker = '.') plt.show()

Capture d'écran d'un programme Python pour p=1/6 et 40000 noyaux initiaux

Ci dessous se trouve une interface en ligne pour Python, via le site repl.it. La fenêtre du haut contient le code Python que vous pouvez modifier. La fenêtre noire en dessous est la console. Utilisez-la pour exécuter une des fonctions. Par exemple : compte_noyaux_restants(10000, 0.02) vous renverra le nombre de noyaux restants après une simulation avec n=10000 noyaux se désintégrant chacun avec probabilité p=0,02. Le code produit aussi un graphique qui est visible en cliquant en haut à gauche sur l'icone document (Files) puis en choisissant graphique.png.
Image
<iframe height="400px" width="100%" src="https://repl.it/@IAIPRacver/Desintegration-radioactive?lite=true" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals"></iframe>