Gains :
- Capacité à simuler un système physique dynamique avec des solveurs tels que solve_ivp et à vérifier la validité de la simulation en surveillant la conservation de l'énergie totale ou de la quantité de mouvement
- Capacité à distinguer les artefacts numériques de la physique réelle en sélectionnant la taille du pas avec un test de convergence
- Capacité à tester le résultat de la simulation en le comparant avec des situations analytiques et des états limites physiques connus
Une grande partie de la physique traite de systèmes variables dans le temps : un pendule oscillant, une planète en orbite, un corps en refroidissement, une onde qui se propage. La plupart de ces systèmes sont décrits par des équations différentielles, c'est-à-dire des équations qui relient le taux de changement d'une quantité (position, température) à cette quantité elle-même. Ces équations n'ont souvent pas de solution analytique (formule exacte) ; au lieu de cela, nous simulons : faire avancer le système par petits pas de temps et surveiller numériquement son comportement. Dans cette unité, vous apprendrez à utiliser l'intelligence artificielle (IA) pour créer du code de simulation et, surtout, à vérifier à l'aide des lois de conservation si la simulation reflète fidèlement la physique.
L'idée de base de la simulation et le rôle de l'IA
Une simulation se compose de ce cycle : prendre l'état actuel, appliquer l'équation du changement, avancer d'un petit Δt, répéter. L’IA construit très rapidement cette boucle, choisit le bon solveur – l’algorithme qui résout l’équation différentielle étape par étape et édite le code. L'outil standard du physicien est scipy.integrate.solve_ivp (la fonction SciPy qui résout les problèmes de valeur initiale). Mais avant de faire confiance à la simulation créée par l’IA, la question que vous devez vous poser est la suivante : cette simulation préserve-t-elle les grandeurs physiques (énergie, élan, moment cinétique) qui doivent être préservées ?
Système
Type d'équation
Critères de validation
pendule, ressort
ODE du deuxième degré
Constance de l'énergie totale
orbite de la planète
ODE gravitationnelle newtonienne
Moment angulaire + conservation de l'énergie
Refroidir/chauffer
ODE du premier degré
Convergence vers la température d'équilibre
désintégration radioactive
ODE exponentielle
Contrôle de la demi-vie
Monte-Carlo (aléatoire)
statistique
Convergence vers une moyenne/distribution connue
Remarque : ODE signifie « équation différentielle ordinaire » — une équation qui implique une dérivée par rapport à une seule variable (généralement le temps).
Pas à pas : une simulation fiable
1. Clarifier la physique et les conditions initiales. Quelle est l'équation du système ? Quelle est la position de départ, la vitesse, la température ? Quelles sont les unités ? Donnez-les explicitement à l'IA.
2. Sélectionnez le solveur et la taille de pas appropriés. Un pas de temps trop grand rend la simulation instable (le résultat explose ou la physique se casse) ; Un pas trop petit ralentit inutilement. L'IA peut suggérer, mais contrôler la décision.
3. Suivez la loi de conservation dans le code. Calculez et imprimez l'énergie totale (ou l'élan) tout au long de la simulation. S’il dérive d’une ampleur qui devrait rester constante, la simulation n’est pas fiable.
4. Comparez avec une solution connue. Par exemple, la période d'un pendule de petite amplitude est connue par la formule T = 2π√(L/g) ; Comparez la période donnée par la simulation avec celle-ci.
5. Modifier le paramètre, tester le comportement. L'oscillation est-elle amortie lorsque la friction est ajoutée ? L'orbite change-t-elle comme prévu lorsque la masse augmente ? Testez avec l’intuition physique.
Astuce : Ajoutez un "suivi d'énergie" à chaque simulation : calculez l'énergie totale à chaque étape et tracez-la sous forme de rapport à l'énergie initiale. Dans un système sans friction, ce rapport doit rester constant, proche de 1. Une dérive supérieure à 1 % est le signe que vous devez réduire la taille du pas ou changer de solveur.
trois mini-cases
Cas 1 – Explosion d’énergie. Un étudiant a simulé une orbite planétaire avec une simple méthode d'Euler (la méthode par étapes la plus primitive) écrite par l'IA. L'orbite s'est progressivement élargie au fil du temps et la planète « s'est envolée ». Tandis que l'étudiant surveillait l'énergie totale, il constatait qu'elle augmentait constamment – un défaut connu de la méthode d'Euler. Il a demandé à l'IA un solveur qui conserve mieux l'énergie (une méthode plus adaptée avec solve_ivp) et l'orbite s'est installée dans une ellipse stable.
Cas 2 — Mauvaise unité, mauvaise période. Un enseignant a trouvé que la période était de 0,2 s dans une simulation de pendule, mais la valeur attendue était de 2 s. Lorsqu'il l'a examiné, il s'est rendu compte que l'IA avait saisi la longueur en centimètres et l'avait utilisée comme mètre dans la formule. Avec correction d'unité, la simulation concordait avec la valeur analytique de T = 2π√(L/g).
Cas 3 — Vérification Monte Carlo. Un chercheur a demandé à l'IA un code qui échantillonne de manière aléatoire (Monte Carlo — simulation statistique avec des nombres aléatoires) les particules frappant un détecteur. Pour vérifier le résultat, il a exécuté un cas simple connu analytiquement (par exemple estimer π par le rapport de l'aire d'un cercle) par la même méthode ; Lorsque le code prédit correctement π, sa confiance dans la simulation réelle augmente. Il a également observé qu’à mesure que le nombre d’échantillons augmentait, le résultat se rétrécissait et convergeait vers la valeur réelle.
Quatre modèles copiables
1) Simulation surveillée par la conservation :
Écrivez du code Python qui simule le système physique suivant avec solve_ivp : [système, équation, conditions initiales, unités]. Tout au long de la simulation, calculez l'énergie totale (et l'élan, le cas échéant) à chaque étape et tracez son rapport à sa valeur initiale au fil du temps. Notez que dans le cas sans friction, ce rapport doit rester constant ~1.
2) Comparaison analytique :
Ajoutez du code qui compare le résultat de la simulation suivante à la solution analytique connue de ce système ([formule]). Tracez-les tous les deux sur le même graphique et imprimez la différence maximale entre numérique et analytique. Code de simulation : [ici]
3) Test de taille de pas/stabilité :
Écrivez du code qui exécute la simulation suivante avec différents pas de temps (par exemple dt = 0,1, 0,01, 0,001) et montre comment les résultats changent. Spécifiez après quelle taille de pas le résultat se stabilise (converge). Code : [ici]
4) Tests aux états limites physiques :
Suggérez 3 tests aux états limites physiques pour la simulation suivante : (par exemple, l'énergie doit être conservée lorsque le frottement est nul, le calage rapide lorsque le frottement est important, comment la période doit changer lorsque la masse double). Écrivez le résultat attendu de chaque test en une phrase. Code : [ici]
Invite faible/Invite forte
Faible : "Écrivez une simulation de pendule."
Résultat : code sans unités, sans validation, sans contrôle de conservation ; On ne sait pas si cela reflète ou non la physique.
Strong : "Écrivez un code solve_ivp qui simule un simple pendule de longueur L = 1 m, angle de départ 10°, avec g = 9,81 m/s² pendant 10 secondes. Surveillez l'énergie totale à chaque étape et tracez le rapport jusqu'au début. Comparez la période mesurée avec la formule de petite amplitude T = 2π√(L/g) et imprimez la différence."
Résultat : Une simulation fiable avec les unités, le suivi de la conservation et la comparaison avec la valeur analytique.
Erreurs courantes
- Ne respecte pas la loi de conservation. Si l’énergie ou l’élan dérive, la simulation est fausse ; Faire confiance au résultat sans le voir est l’erreur la plus courante.
- Choisir arbitrairement la taille du pas. Un pas trop grand crée de l'indécision, un pas trop petit crée des coûts inutiles ; Les tests de convergence sont essentiels.
- Ne pas faire de comparaisons analytiques. Sans la comparer à un cas particulier connu (faible amplitude, état sans frottement), la simulation reste non supervisée.
- Confondre un défaut numérique avec de la physique. Un comportement tel que l’expansion orbitale est souvent un défaut de la méthode et non de la vraie physique.
- Fixation du nombre d'échantillons en simulation aléatoire. Il est trompeur d’augmenter le nombre d’échantillons à Monte Carlo et de se fier à un seul résultat sans constater de convergence.
Attention : Ce n'est pas parce qu'une simulation produit un « joli graphique » qu'il est correct. Le visuel est convaincant mais trompeur. Avant de faire confiance à la simulation, veillez à suivre une loi de conservation et à la comparer à une situation connue. Une simulation non vérifiée ne constitue pas une preuve physique.
En résumé
La simulation est un moyen puissant de comprendre les systèmes physiques dynamiques dépourvus de solutions analytiques et de créer rapidement du code de simulation d’IA. Mais la valeur de la simulation dépend de sa capacité à refléter fidèlement la physique. La façon de garantir cela est de suivre les lois de conservation, de sélectionner la taille de pas appropriée par des tests de convergence, de comparer le résultat avec des cas analytiques connus et de tester les cas limites physiques. Dans l'unité suivante, nous passerons des données générées à l'analyse des données expérimentales réelles.
Tâche de candidature
Choisissez un système dynamique simple (pendule, chute libre + résistance de l'air ou refroidissement). Avec le modèle 1, imprimez et exécutez un code de simulation qui inclut une vérification de conservation ou de solde dans l'IA. Vérifiez si la grandeur surveillée (énergie ou température) se comporte comme prévu. Modifiez ensuite un paramètre (frottement, masse, taille de pas) et voyez si le changement de comportement est en accord avec votre intuition physique. Écrivez-le en 5 à 6 phrases.
liste de contrôle
- [ ] J'ai clarifié l'équation, les conditions initiales et les unités du système.
- [ ] J'ai suivi une loi de conservation (énergie/impulsion) dans la simulation.
- [ ] J'ai vérifié la taille du pas avec un test de convergence.
- [ ] J'ai comparé le résultat avec une situation analytique connue.
- [ ] J'ai effectué au moins un test aux états limites physiques.
- [ ] J'ai distingué les défauts numériques de la physique réelle.