Semaine 3 - Jour 1 - 420-SN1

APPLICATIONS SCIENTIFIQUES

Assembler tous nos outils pour faire de la vraie science

On a tous les outils - on les assemble

Au fil des semaines on a acquis tous les briques fondamentales. Maintenant on les COMBINE pour realiser les deux grandes taches du scientifique :

(1) ANALYSER des donnees recoltees sur le terrain ou en laboratoire.

(2) SIMULER un phenomene naturel pour predire ce qui va se passer.

  • Variables et expressions
  • Boucles (for, while)
  • Fonctions et parametres
  • Listes et tableaux
  • Fichiers (lecture/ecriture)
  • Graphiques (matplotlib)
PARTIE A

Analyser des donnees

Une sonde spatiale collecte des mesures. Comment en tirer un sens ? On commence par les resumer en quelques chiffres cles, puis on les visualise pour voir la tendance d'un coup d'oeil.

Resumer des mesures : les statistiques

temperatures = [-18, -12, 5, 22, 30, 14] moyenne = sum(temperatures) / len(temperatures) minimum = min(temperatures) maximum = max(temperatures) etendue = maximum - minimum

Des temperatures relevees par une sonde spatiale. On connait deja sum, len, min, max - ils suffisent pour calculer les quatre indicateurs fondamentaux.

  • moyenne : la valeur typique
  • minimum / maximum : les extremes
  • etendue : l'amplitude totale

Le milieu et l'eparpillement

import statistics statistics.mean(temperatures) # la moyenne statistics.median(temperatures) # la mediane statistics.stdev(temperatures) # l'ecart-type

La mediane est la valeur du milieu une fois la liste triee. Elle n'est pas influencee par les valeurs extremes.

L'ecart-type mesure a quel point les valeurs s'eloignent de la moyenne.

Petit ecart-type = valeurs serrees. Grand ecart-type = valeurs tres dispersees.

Un graphique vaut mille nombres

import matplotlib.pyplot as plt plt.plot(temperatures) plt.title("Temperature relevee par la sonde") plt.xlabel("Releve") plt.ylabel("Temperature (C)") plt.show()

On a vu matplotlib au jour S2.5. Le rappel est rapide : plot() trace la courbe, title/xlabel/ylabel l'habillent, show() l'affiche.

Tracer la courbe revele la tendance d'un coup d'oeil - tendance que les chiffres bruts cachaient.

PARTIE B

Simulation numerique

Quand on ne peut pas faire l'experience pour de vrai - trop dangereux, trop loin, trop long - on fait tourner un mini-univers dans l'ordinateur, pas a pas dans une boucle.

Faire tourner le temps dans l'ordinateur

Simuler = modeliser un phenomene avec des regles simples et le faire avancer pas a pas dans une boucle.

On predit ce qui va se passer sans le faire pour de vrai. Pas besoin de lancer une vraie fusee pour tester une trajectoire.

Metaphore : un mini-univers qu'on fait avancer image par image, comme un film en accelere ou l'on choisit les lois physiques.

Simuler une chute, pas a pas

gravite = 9.8 # m/s2 sur Terre altitude = 100.0 # metres vitesse = 0.0 temps = 0.0 pas = 0.1 # seconde while altitude > 0: vitesse = vitesse + gravite * pas altitude = altitude - vitesse * pas temps = temps + pas print("Touche le sol apres", temps, "secondes")

A chaque tour de boucle, le temps avance d'un petit pas et on recalcule vitesse et altitude.

La boucle s'arrete quand l'objet touche le sol (altitude tombe sous zero).

C'est la methode d'Euler : l'approche la plus simple pour resoudre des equations differentielles par ordinateur.

Et sur une autre planete ?

graviteLune = 1.6 # m/s2 graviteMars = 3.7 # m/s2 graviteTerre = 9.8 # m/s2

Il suffit de changer la valeur de gravite pour rejouer la meme simulation ailleurs dans le systeme solaire. La meme chute de 100 m dure environ 4,5 s sur Terre, 7,4 s sur Mars et 11 s sur la Lune : moins de gravite = chute plus lente.

C'est la force de la simulation : explorer des scenarios sans bouger de sa chaise.

Analyser sa simulation

altitudes = [] while altitude > 0: vitesse = vitesse + gravite * pas altitude = altitude - vitesse * pas altitudes.append(altitude) plt.plot(altitudes) plt.title("Altitude au fil du temps") plt.show()

On stocke chaque valeur d'altitude dans une liste avec append().

Apres la boucle, plt.plot() trace toute la trajectoire d'un coup.

Simulation + listes + graphiques = la combinaison complete du scientifique programmeur.

Tout se rejoint

ANALYSER

  • donnees recoltees
  • statistiques (mean, median, stdev)
  • graphique matplotlib
  • tendance visible d'un coup d'oeil

SIMULER

  • modele avec regles simples
  • boucle pas a pas (while)
  • liste des resultats
  • graphique de la trajectoire

C'est exactement ce que demande le Projet 3 - le programme integrateur Mission Espace. On combine tout ce qu'on a appris pour resoudre un vrai probleme scientifique.

AU TRAVAIL !

code.experimentations.xyz/visualisateur/graphiques/
En savoir plus : code.experimentations.xyz/en-savoir-plus/applications-scientifiques/
Seance 3-1 : analyse un jeu de mesures, simule une chute sur une autre planete
⤺ Refermer le diaporama