Le meme code que tu ecris en classe - boucles, listes, graphiques - photographie des trous noirs, replie des proteines et fait atterrir des robots sur Mars. Voici ou ca se passe pour de vrai.
Aucune des decouvertes ci-dessous n'aurait ete possible sans des programmes. Pas des logiciels magiques venus d'ailleurs : des boucles, des listes, des fonctions et des graphiques, exactement les briques de notre cours, mais assemblees a tres grande echelle.
Astrophysique - 2019
La premiere photo d'un trou noir
Huit radiotelescopes repartis sur la planete forment un telescope grand comme la Terre. Le code a fusionne 5 petaoctets de donnees (plus que ce qui tient sur un avion de disques durs) pour reconstruire un seul disque lumineux.
Image : EHT Collaboration, CC BY 4.0 - Wikimedia Commons
Biologie - 2020
AlphaFold replie les proteines
Predire la forme 3D d'une proteine etait un probleme ouvert depuis 50 ans. Un programme l'a quasi resolu, et a publie la forme de presque 200 millions de proteines - un cadeau a toute la recherche medicale.
Image : structure de la myoglobine - Wikimedia Commons
Climat - aujourd'hui
Simuler l'atmosphere entiere
Les modeles climatiques decoupent l'atmosphere et les oceans en millions de petites cases et font avancer le temps pas a pas - exactement la methode d'Euler du diaporama, mais sur des super-ordinateurs. C'est la base des rapports du GIEC.
Image : NASA, Apollo 17 (Blue Marble), domaine public - Wikimedia Commons
Exploration - 2021
Se poser seul sur Mars
Pendant l'atterrissage de Perseverance, aucun humain ne peut piloter : le signal met 11 minutes a venir de Mars. Le robot analyse le sol et choisit ou se poser tout seul, en quelques secondes, grace a son programme de bord.
Image : NASA - Valles Marineris, domaine public - Wikimedia Commons
Physique - 2015
Entendre deux trous noirs
Einstein avait predit les ondes gravitationnelles en 1915. Cent ans plus tard, le detecteur LIGO en capte une : un minuscule signal en forme de chirp (ci-dessus), extrait du bruit par traitement du signal. Deux trous noirs venaient de fusionner a un milliard d'annees-lumiere.
Signal redessine d'apres l'evenement GW150914 (LIGO)
Le point commun
Dans chaque cas : on recolte des donnees, on les analyse avec des statistiques, on simule un phenomene, et on trace le resultat. Les quatre gestes que tu apprends ce trimestre.
Bonne nouvelle : tu utilises deja les petits cousins de ces outils. matplotlib et statistics, vus en classe, sont exactement ceux des laboratoires - juste a plus petite echelle. Voici la trousse du scientifique programmeur en Python.
Outil
A quoi il sert
Tu connais deja...
NumPy
Calculer sur des tableaux geants de nombres, des milliers de fois plus vite qu'une boucle Python
les listes
pandas
Charger, filtrer et resumer des tableaux de donnees (comme un Excel programmable)
lire un fichier, les listes
Matplotlib
Tracer des graphiques scientifiques
deja vu en classe
statistics / SciPy
Moyenne, mediane, ecart-type, et des maths avancees (integrales, equations)
deja vu en classe
Jupyter
Le calepin ou l'on melange code, texte et graphiques
tu es dedans
Fortran
Vieux langage (1957) toujours roi des simulations climat et physique tres lourdes
les boucles, les variables
Autrement dit : ce que tu apprends n'est pas une version « scolaire » de la programmation scientifique. C'en est la fondation reelle.
Le diaporama affirme qu'une chute de 100 m dure environ 4,5 s sur Terre, 7,4 s sur Mars et 11 s sur la Lune. Plutot que de te croire sur parole, lache les trois objets et observe : moins il y a de gravite, plus la chute est lente.
Lacher de 100 m - temps simule accelere 2x
Terre
g = 9.8 m/s2
0.0 s
Mars
g = 3.7 m/s2
0.0 s
Lune
g = 1.6 m/s2
0.0 s
Le calcul derriere l'animation est exactement celui du diaporama : altitude = altitude - vitesse * pas, repete dans une boucle.
Une simulation ne sert pas qu'a regarder : elle sert a explorer des scenarios. Change la planete, la vitesse et l'angle de tir, et observe comment la trajectoire reagit. Sans gravite forte, le projectile va beaucoup plus loin.
Simulateur de trajectoire (sans frottement de l'air)
Portee :-
Hauteur max :-
Temps de vol :-
L'angle qui envoie le plus loin est 45° - un resultat que les artilleurs connaissaient bien avant les ordinateurs, et que tu peux verifier ici en deux clics.
Margaret Hamilton et le code d'Apollo - Wikimedia Commons
Margaret Hamilton (nee en 1936)
Sur la photo, la pile de papier aussi haute qu'elle, c'est le code source du programme de vol d'Apollo, qu'elle a dirige au MIT. Le 20 juillet 1969, quelques minutes avant l'alunissage, l'ordinateur de bord se met a saturer d'alarmes. Le logiciel de Hamilton, concu pour donner la priorite aux taches vitales, ignore le superflu et garde le controle. Sans lui, Armstrong et Aldrin n'auraient peut-etre jamais touche la Lune.
C'est elle qui a popularise l'expression « genie logiciel » (software engineering), pour faire reconnaitre que programmer est un vrai metier d'ingenieur. En 2016, le president des Etats-Unis lui a remis la plus haute distinction civile du pays.
Autre figure du domaine : Katherine Johnson, la mathematicienne de la NASA dont les calculs de trajectoire ont rendu possibles les premiers vols habites americains - l'histoire racontee dans le film Les figures de l'ombre. Quand la NASA a remplace les calculs a la main par un ordinateur, c'est elle que John Glenn a exige pour verifier les chiffres de la machine avant d'accepter de decoller.
Tu as maintenant les memes gestes que les equipes ci-dessus, en plus petit : analyser un jeu de mesures, le resumer, le tracer, simuler un phenomene et explorer des scenarios. C'est exactement ce que demande le Projet 3 - Mission Espace, le programme integrateur de la semaine.
import statistics
import matplotlib.pyplot as plt
# Des mesures, comme une vraie sonde
temperatures = [-18, -12, 5, 22, 30, 14]
print("Moyenne :", statistics.mean(temperatures))
print("Ecart-type :", statistics.stdev(temperatures))
plt.plot(temperatures)
plt.title("Tu fais deja de la science")
plt.show()