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.[br]Vous trouverez[url=https://edu-nuage.ac-versailles.fr/s/Ifhu4oCOuJ9kdhd] ici un fichier tableur Excel[/url] reproduisant la même simulation.
On imagine avoir 100 noyaux radioactifs. [br]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.[br][br]La probabilité p est fixée par le curseur rouge. En faisant varier p, cela relance les nombres aléatoires du tableau.
Les lignes du tableur de 5 à 104 correspondent aux états des 100 noyaux : [br][list][*]1 si le noyau est présent[/*][*]0 s'il est désintégré[/*][/list]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.[br]La colonne B contient des 1, signifiant la présence de 100 noyaux initiaux.[br]Dans la cellule C5 on a rentré la formule suivante qui a été recopiée à droite et vers le bas :[br][code][/code][code]=Si(B5 ≟ 1 ∧ AléaEntreBornes(0, 100) < 100 (1 - $B$1), 1, 0)[/code][br]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).
La fonction Python ci-dessous permet de simuler la même chose. [br][code][br]from random import*[br]def compte_noyaux_restants(n,p):[br] N=n[br] for i in range(n):[br] if random() < p:[br] N=N-1[br] return N[br][br][/code][br]Par exemple [code]compte_noyaux_restants(10000,0.02)[/code] 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 [br]On peut ensuite créer une liste du nombre de noyaux restants jusqu'à ce qu'il ne reste plus que 1% des noyaux. [br][code][br]def Liste_nb_noyaux_restants(n,p):[br] L=[][br] N=n[br] while n>0.01*N:[br] L.append(n)[br] n=compte_noyaux_restants(n,p)[br] return L[br][/code][br]On peut alors tracer le graphique avec le module matplotlib :[br][code][br]import matplotlib.pyplot as plt[br]n=40000[br]L=Liste_nb_noyaux_restants(n,1/6)[br]m=len(L)[br]plt.plot(range(m),L, linestyle = 'none', marker = '.')[br]plt.show()[br][br][/code]
Ci dessous se trouve une interface en ligne pour Python, via le site repl.it.[br]La fenêtre du haut contient le code Python que vous pouvez modifier.[br]La fenêtre noire en dessous est la console. Utilisez-la pour exécuter une des fonctions. Par exemple :[br][code]compte_noyaux_restants(10000, 0.02)[br][/code]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.[br]Le code produit aussi un graphique qui est visible en cliquant en haut à gauche sur l'icone document (Files) puis en choisissant graphique.png.
<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>
[url=https://repl.it/@IAIPRacver/Desintegration-radioactive]https://repl.it/@IAIPRacver/Desintegration-radioactive[/url]