N = A - Z sum(A_avant) == sum(A_apres)
Seconde · Chapitre 14 · TP expérimental et numérique

Radioactivité naturelle et équations nucléaires

Tu vas détecter avec un compteur la radioactivité naturelle qui nous entoure (air, roches, sel de potassium). Python t'aidera ensuite à décrire les noyaux, repérer les isotopes, comparer les énergies et compléter automatiquement des équations nucléaires.

≈ 1 h 50 en toutCompteur + 5 activités PythonSeul ou en binômePython s'exécute dans la page
← Tous les cours ← Retour au cours
Partie 1
Problématique

D'où vient la radioactivité naturelle que l'on détecte autour de nous, et comment écrire, vérifier et comparer les transformations nucléaires ?

Objectifs

  • Mesurer une radioactivité naturelle et le bruit de fond.
  • Calculer la composition d'un noyau et repérer des isotopes.
  • Comparer l'énergie libérée par kilogramme de différents combustibles.
  • Utiliser les lois de conservation pour compléter une équation.

Compétences travaillées

  • Réaliser : mesurer un comptage et le répéter.
  • Analyser : tenir compte du bruit de fond.
  • Valider : vérifier une équation par le calcul.
  • Communiquer : comparer des ordres de grandeur sur un graphique.
L'éditeur Python de cette page

Le code s'exécute réellement dans ton navigateur. Au premier clic sur ▶ Exécuter, Python se télécharge (≈ 7 Mo, une seule fois, connexion Internet nécessaire). Le bouton Télécharger .py donne un fichier utilisable dans EduPython, Thonny, Basthon ou Capytale.

Raccourcis : Ctrl + Entrée exécute, Tab décale la ligne de 4 espaces.

Choisis ton parcours

Débutant en Python : fais les cinq activités dans l'ordre, en t'aidant des indices. À l'aise avec les variables et les boucles (en général à partir du deuxième trimestre) : l'activité 1 est facultative, commence directement à l'activité 2 et vise l'activité 5 sans indice.

1
Expérience : compter les désintégrations
≈ 25 min · en salle de TP

Matériel

  • un compteur de radioactivité (type Geiger) avec affichage du nombre de coups ;
  • un chronomètre ;
  • un morceau de granite ;
  • un sachet de 500 g de « sel de régime » sans sodium (chlorure de potassium KCl, en vente libre).

Protocole

Loin de tout échantillon, compter les coups pendant 1 min. Recommencer 5 fois : c'est le bruit de fond.
Poser le compteur contre le granite et faire 5 comptages de 1 min.
Faire de même contre le sachet de sel de potassium.
Se laver les mains après avoir manipulé les échantillons (bonne pratique de laboratoire, même si ces activités sont très faibles).
Coups par minute12345
Bruit de fond
Granite
Sel de potassium
Si tu ne peux pas faire l'expérience

Jeu de données pédagogique Bruit de fond : 22 ; 18 ; 25 ; 20 ; 19. Granite : 41 ; 37 ; 45 ; 39 ; 43. Sel de potassium : 63 ; 58 ; 66 ; 61 ; 60 (coups par minute). Valeurs typiques d'un compteur de lycée ; elles dépendent de l'appareil et du lieu.

D'où vient le signal du sel ?

Le potassium naturel contient une petite proportion (0,012 %) de potassium 40, radioactif. Un de ses modes de désintégration est \({}^{40}_{19}\text{K} \rightarrow {}^{40}_{20}\text{Ca} + {}^{\;\,0}_{-1}\text{e}\) : l'électron émis est détecté par le compteur. Le granite contient, lui, des traces d'uranium, de thorium et de potassium 40.

Q1
Pourquoi les 5 comptages d'un même échantillon ne donnent-ils pas la même valeur ? Pourquoi faut-il mesurer le bruit de fond ?

Les désintégrations se produisent au hasard : on ne peut pas prévoir quand un noyau donné va se désintégrer. Le nombre de coups en 1 min fluctue donc d'une mesure à l'autre ; on fait plusieurs mesures et on calcule une moyenne. Le bruit de fond (rayonnement venant du sol, de l'air, de l'espace) est toujours présent : pour connaître la contribution de l'échantillon seul, il faut le soustraire du comptage.

2
Activité 1 — Le noyau de potassium 40
≈ 10 min · Niveau 1 : variables, condition simple
Ce que fait le programme

À partir de \(Z\) et \(A\), il calcule le nombre de neutrons du noyau et indique s'il contient plus de neutrons que de protons. Comment lire le résultat ? Trois nombres (protons, neutrons, nucléons) et une phrase.

À faire : complète le calcul de N, exécute, puis teste avec le calcium 40 (\(Z = 20\)) et l'uranium 238 (\(Z = 92\)).

Indice 1 — physique. Les nucléons sont les protons et les neutrons : \(A = Z + N\).
Indice 2 — maths. On isole \(N\) : \(N = A - Z\).
Indice 3 — code. N = A - Z
Correction de l'activité 1
nom = "potassium 40"
Z = 19
A = 40

N = A - Z

print(nom, ":", Z, "protons,", N, "neutrons,", A, "nucléons")
if N > Z:
    print("Ce noyau contient plus de neutrons que de protons.")
else:
    print("Ce noyau ne contient pas plus de neutrons que de protons.")

Résultats attendus. Potassium 40 : 19 protons, 21 neutrons. Calcium 40 : 20 protons, 20 neutrons (pas plus de neutrons). Uranium 238 : 92 protons, 146 neutrons.

Interprétation. Le potassium 40 et le calcium 40 ont le même nombre de nucléons : lors de la désintégration, un neutron du potassium s'est transformé en proton, avec émission d'un électron. Les noyaux lourds, comme l'uranium, contiennent beaucoup plus de neutrons que de protons.

Erreurs fréquentes. Écrire N = Z - A : on obtient −21, un nombre de particules négatif, ce qui est absurde.

3
Activité 2 — Repérer les isotopes
≈ 15 min · Niveau 2 : listes, boucle, conditions
Ce que fait le programme

Il parcourt une liste de noyaux présents dans les roches et le sel, calcule leur nombre de neutrons, et signale les isotopes du potassium (\(Z = 19\)). Comment lire le résultat ? Une ligne par noyau ; certaines lignes sont marquées « isotope du potassium ».

À faire : complète le calcul de N dans la boucle, exécute, puis réponds à Q2.

Indice 1 — physique. Pour chaque noyau, \(N = A - Z\).
Indice 2 — code. Le numéro atomique du noyau numéro i est Z[i].
Indice 3 — code. N = A[i] - Z[i]
Correction de l'activité 2
noms = ["K-39", "K-40", "K-41", "Ca-40", "Ar-40", "Th-232", "U-235", "U-238"]
Z = [19, 19, 19, 20, 18, 90, 92, 92]
A = [39, 40, 41, 40, 40, 232, 235, 238]

for i in range(len(noms)):
    N = A[i] - Z[i]
    if Z[i] == 19:
        remarque = "isotope du potassium"
    else:
        remarque = ""
    print(noms[i], ": Z =", Z[i], "| N =", N, "| A =", A[i], "|", remarque)

Résultats attendus. K-39, K-40 et K-41 sont signalés (20, 21 et 22 neutrons). Ca-40 a 20 neutrons, Ar-40 en a 22, Th-232 en a 142, U-235 en a 143 et U-238 en a 146.

Interprétation. Les trois isotopes du potassium ont le même \(Z\) mais des nombres de neutrons différents. U-235 et U-238 sont aussi deux isotopes, de l'uranium cette fois : en modifiant la condition (Z[i] == 92), le programme les repère.

Erreurs fréquentes. Tester A[i] == 40 : on regrouperait K-40, Ca-40 et Ar-40, qui ne sont pas des isotopes (trois éléments différents).

Q2
K-40, Ca-40 et Ar-40 ont le même nombre de nucléons. Sont-ils des isotopes ? Quel lien y a-t-il entre eux ?

Non : ils ont des numéros atomiques différents (19, 20 et 18), ce sont trois éléments différents. Le lien est nucléaire : le potassium 40 se désintègre le plus souvent en calcium 40 (un neutron devient un proton, un électron est émis), et parfois en argon 40 (un proton devient un neutron). Dans les deux cas, le nombre de nucléons \(A = 40\) est conservé.

4
Activité 3 — Comparer les énergies par kilogramme
≈ 15 min · Niveau 3 : boucle, calcul, graphique
Ce que fait le programme

Il compare l'énergie libérée par 1 kg de combustible, de \(1{,}5\times10^{7}\ \text{J}\) (bois) à \(3{,}4\times10^{14}\ \text{J}\) (fusion deutérium-tritium). Pourquoi un logarithme ? Ces valeurs sont trop différentes pour tenir sur un même axe ordinaire : la barre du bois serait invisible. On trace donc \(\log_{10}(E)\), c'est-à-dire, en gros, l'exposant de la puissance de 10 : 7,2 pour \(1{,}5\times10^{7}\). Comment le lire ? Une graduation de plus signifie une énergie 10 fois plus grande.

À faire : complète le calcul de y, exécute, puis compte le nombre de puissances de 10 entre le pétrole et l'uranium.

Indice 1 — physique. On veut le logarithme de l'énergie du combustible numéro i.
Indice 2 — code. Cette énergie est l'élément i de la liste E.
Indice 3 — code. y = math.log10(E[i])
Correction de l'activité 3
import math
import matplotlib.pyplot as plt

noms = ["bois", "charbon", "pétrole", "U 235", "fusion D-T"]
E = [1.5e7, 3.0e7, 4.2e7, 8.2e13, 3.4e14]

for i in range(len(noms)):
    y = math.log10(E[i])
    plt.plot([i, i], [0, y], '-', color='orange', linewidth=18)
    plt.text(i - 0.35, y + 0.6 + 1.2 * (i % 2), noms[i])   # un nom sur deux plus haut : pas de chevauchement
    print(noms[i], ": log10(E) =", round(y, 1))

plt.title("Énergie libérée par 1 kg de combustible")
plt.xlabel("combustible")
plt.ylabel("log10(E en J)")
plt.xlim(-0.8, 5.2)
plt.ylim(0, 18)
plt.grid()
plt.show()

Résultats attendus. \(\log_{10}(E)\) vaut 7,2 (bois), 7,5 (charbon), 7,6 (pétrole), 13,9 (U 235, fission de l'uranium 235) et 14,5 (fusion D-T).

Interprétation. Entre le pétrole et l'uranium, il y a environ 6 graduations, soit un facteur \(10^{6}\) : la fission libère environ 2 millions de fois plus d'énergie par kilogramme que la combustion du pétrole. La fusion D-T fait encore environ 4 fois mieux que la fission. Les trois combustions sont très proches : ce sont toutes des transformations chimiques, qui mettent en jeu quelques eV par molécule, contre des MeV par noyau pour les transformations nucléaires.

Erreurs fréquentes. Tracer directement E[i] au lieu de son logarithme : seules les barres nucléaires seraient visibles, les combustibles chimiques paraîtraient nuls.

5
Activité 4 — Trouver la particule manquante
≈ 20 min · Niveau 4 : fonctions, sommes de listes
Ce que fait le programme

Une équation nucléaire est décrite par quatre listes : les nombres de nucléons \(A\) et les charges \(Z\) des noyaux et particules avant et après la réaction, sauf une particule inconnue. Les lois de conservation donnent :

\(A_X = \sum A_{\text{avant}} - \sum A_{\text{après}}\)
\(Z_X = \sum Z_{\text{avant}} - \sum Z_{\text{après}}\)

La fonction nom (fournie) reconnaît ensuite la particule. En Python, sum(liste) donne la somme des éléments d'une liste. Comment lire le résultat ? Pour chaque réaction : \(A\), \(Z\) et le nom de la particule manquante.

À faire : complète la fonction manquant, exécute, puis réponds à Q3.

Indice 1 — physique. Ce qui manque à droite pour égaler la somme de gauche, c'est la différence entre les deux sommes.
Indice 2 — code. La somme des nombres de nucléons après la flèche s'écrit sum(A_ap).
Indice 3 — code. A = sum(A_av) - sum(A_ap) et Z = sum(Z_av) - sum(Z_ap).
Correction de l'activité 4
def manquant(A_av, Z_av, A_ap, Z_ap):
    A = sum(A_av) - sum(A_ap)
    Z = sum(Z_av) - sum(Z_ap)
    return A, Z

def nom(A, Z):
    if A == 1 and Z == 0:
        return "neutron"
    if A == 1 and Z == 1:
        return "proton"
    if A == 0 and Z == -1:
        return "électron"
    if A == 0 and Z == 1:
        return "positon"
    if A == 4 and Z == 2:
        return "particule alpha (noyau d'hélium)"
    return "noyau de numéro atomique " + str(Z)

# chaque réaction : [nom, A avant, Z avant, A après, Z après]
reactions = [
    ["K-40 -> Ca-40 + ?", [40], [19], [40], [20]],
    ["U-238 -> Th-234 + ?", [238], [92], [234], [90]],
    ["P-30 -> Si-30 + ?", [30], [15], [30], [14]],
    ["H-2 + H-3 -> He-4 + ?", [2, 3], [1, 1], [4], [2]],
    ["n + U-235 -> Ba-141 + Kr-92 + 2 n + ?", [1, 235], [0, 92], [141, 92, 1, 1], [56, 36, 0, 0]],
]
for r in reactions:
    A, Z = manquant(r[1], r[2], r[3], r[4])
    print(r[0], ": A =", A, "; Z =", Z, "->", nom(A, Z))

Résultats attendus.

  • K-40 : \((0, -1)\), électron ;
  • U-238 : \((4, 2)\), particule alpha ;
  • P-30 : \((0, 1)\), positon ;
  • fusion D-T : \((1, 0)\), neutron ;
  • fission : \((1, 0)\), neutron : la réaction libère en tout 3 neutrons.

Interprétation. Deux lois suffisent pour compléter n'importe quelle équation nucléaire : conservation du nombre de nucléons et conservation de la charge. La ligne A, Z = manquant(...) range dans deux variables les deux valeurs renvoyées par la fonction.

Erreurs fréquentes. Oublier de compter les neutrons produits dans la fission : sans les deux 1 dans A_ap, on trouverait \(A = 3\), \(Z = 0\), un « noyau » qui n'existe pas.

Q3
Ajoute un test pour \({}^{14}_{6}\text{C} \rightarrow {}^{14}_{7}\text{N} + ?\) puis pour \({}^{1}_{0}\text{n} + {}^{14}_{7}\text{N} \rightarrow {}^{14}_{6}\text{C} + ?\). Quelles particules trouves-tu ?

manquant([14], [6], [14], [7]) donne \((0, -1)\) : un électron. C'est la désintégration du carbone 14, utilisée pour la datation. manquant([1, 14], [0, 7], [14], [6]) donne \((1, 1)\) : un proton. C'est la réaction qui fabrique le carbone 14 dans la haute atmosphère, quand des neutrons issus du rayonnement cosmique frappent des noyaux d'azote.

6
Activité 5 — Le programme de Malik
≈ 15 min · Niveau 5 : trouver et corriger des erreurs
La situation

Malik veut calculer l'énergie libérée par la fission de 1,0 kg d'uranium 235 (200 MeV par fission, masse d'un noyau \(3{,}90\times10^{-25}\ \text{kg}\)) et la masse de charbon qui libérerait la même énergie (\(3{,}0\times10^{7}\ \text{J}\) par kg). Son programme contient quatre erreurs : deux l'empêchent de fonctionner, deux donnent un résultat faux sans message. Le résultat attendu est celui de l'exercice 7 : environ \(8{,}2\times10^{13}\ \text{J}\) et 2 700 tonnes de charbon.

Indice 1 — méthode. Corrige d'abord ce que Python signale. Puis vérifie chaque ligne avec un ordre de grandeur : un noyau est minuscule, il y en a donc énormément dans 1 kg.
Indice 2 — où chercher. Une parenthèse est-elle restée ouverte ? Le nom de la variable de la ligne 6 est-il bien écrit ? Combien vaut 1 MeV en joules, puissance de 10 comprise ? Pour obtenir un nombre de noyaux, multiplie-t-on ou divise-t-on la masse totale par la masse d'un noyau ?
Indice 3 — les quatre corrections. Fermer la parenthèse du dernier print ; E_fision → E_fission ; 1.60e-13 ; N = m / m_noyau.
Correction de l'activité 5
m = 1.0
m_noyau = 3.90e-25
E_fission = 200 * 1.60e-13     # erreur 3 : 1 MeV = 1,60 × 10^-13 J

N = m / m_noyau                # erreur 4 : on divise la masse totale par celle d'un noyau
E = N * E_fission              # erreur 2 : nom de variable
m_charbon = E / 3.0e7

print("Énergie libérée :", round(E / 1e13, 2), "× 10^13 J")
print("Charbon équivalent :", round(m_charbon / 1000), "tonnes")   # erreur 1

Erreur 1 (bloquante). La parenthèse du dernier print n'est pas fermée : erreur de syntaxe.

Erreur 2 (bloquante). E_fision n'existe pas : NameError.

Erreur 3 (silencieuse). 1.60e13 au lieu de 1.60e-13 : l'énergie d'une fission serait \(3{,}2\times10^{15}\ \text{J}\), autant que la combustion de 100 000 tonnes de charbon, pour un seul noyau !

Erreur 4 (silencieuse). En multipliant, on obtient \(3{,}9\times10^{-25}\) « noyaux » : moins d'un noyau dans 1 kg, ce qui est absurde.

Résultat après correction. Énergie libérée : 8.21 × 10^13 J et Charbon équivalent : 2735 tonnes, en accord avec l'exercice 7.

Q4
Après correction des erreurs 1 et 2, le programme affiche « Énergie libérée : 0.0 × 10^13 J » et « Charbon équivalent : 0 tonnes ». Quels indices montrent que c'est faux ?

On sait qu'un kilogramme de combustible nucléaire libère beaucoup plus d'énergie qu'un kilogramme de charbon (\(3\times10^{7}\ \text{J}\)) : un résultat nul à 10^13 J près (en fait environ un milliardième de joule), et « 0 tonne » de charbon, est en contradiction complète avec le cours. On peut aussi afficher N : une valeur inférieure à 1 pour le nombre de noyaux dans 1 kg montre immédiatement l'erreur de calcul de N.

7
Conclusion et auto-évaluation
≈ 10 min
Q5
Réponds à la problématique : d'où vient la radioactivité détectée, et comment écrire, vérifier et comparer les transformations nucléaires ?

Le compteur détecte en permanence un bruit de fond (environ 20 coups par minute ici), dû au rayonnement du sol, de l'air et de l'espace. Le granite (environ 41 coups par minute) et le sel de potassium (environ 62) augmentent le comptage : ils contiennent des noyaux radioactifs naturels (uranium, thorium, potassium 40). Les désintégrations sont aléatoires, d'où la nécessité de répéter les mesures. Une transformation nucléaire s'écrit avec les symboles \({}^{A}_{Z}\text{X}\) et vérifie la conservation du nombre de nucléons et de la charge : ces deux lois permettent de trouver une particule manquante. Enfin, les transformations nucléaires libèrent environ un million de fois plus d'énergie par kilogramme que les combustions.

Grille d'auto-évaluation

A = je sais faire seul · B = avec un peu d'aide · C = partiellement · D = à retravailler.

CompétenceABCD
Mesurer un comptage et tenir compte du bruit de fond
Déterminer la composition d'un noyau
Reconnaître des isotopes
Comparer des ordres de grandeur d'énergie
Compléter une équation par les lois de conservation
Repérer une erreur par un ordre de grandeur
Clique sur A, B, C ou D pour chaque compétence.
Fiche professeur

Organisation

Durée totale estimée : 110 min. En séance de 1 h 30 : partie expérimentale et activités 1 à 3 ; activités 4 et 5 et conclusion en fin de séance, à la maison ou en séance suivante. Le parcours « à l'aise » (activité 1 facultative) fait gagner environ 10 min.

Préparation

Compteur de radioactivité (type Geiger) vérifié ; échantillon de granite ; sel de régime au chlorure de potassium (vente libre).

Sécurité

Les échantillons proposés sont très faiblement radioactifs (niveau naturel). Se laver les mains après manipulation, ne pas ingérer le sel.

Points de vigilance

Insister sur le caractère aléatoire des désintégrations (fluctuations des comptages) et sur la soustraction du bruit de fond.

Différenciation

Aide : Fournir la table des particules (n, p, e⁻, e⁺, α) pour l'activité 4.

Approfondissement : Faire calculer l'activité nette du sel et discuter l'ordre de grandeur de la dose reçue.

Évaluation (sur 20)

Composition des noyaux et isotopes (activités 1 et 2, 6 pts) ; équations nucléaires (activité 4 + Q3, 6 pts) ; activité 5 (4 pts) ; Q5 (4 pts).

Les corrections détaillées des activités Python et des questions sont dans les encadrés de chaque partie.

TP terminé, bravo !

Pour consolider : exercices 3, 7 et 10, puis le quiz du cours.

Exercices corrigés Retour au cours