Unità 3 / 11

Simulazione di sistemi fisici

Guadagni:

  • Capacità di simulare un sistema fisico dinamico con solutori comesolve_ivp e verificare la validità della simulazione monitorando la conservazione dell'energia totale o della quantità di moto
  • Capacità di distinguere gli artefatti numerici dalla fisica reale selezionando la dimensione del passo con un test di convergenza
  • Capacità di testare il risultato della simulazione confrontandolo con situazioni analitiche e stati limite fisici noti

Gran parte della fisica si occupa di sistemi variabili nel tempo: un pendolo oscillante, un pianeta orbitante, un corpo che si raffredda, un’onda che si propaga. La maggior parte di questi sistemi sono descritti da equazioni differenziali, ovvero equazioni che mettono in relazione la velocità di variazione di una quantità (posizione, temperatura) con quella quantità stessa. Queste equazioni spesso non hanno una soluzione analitica (esatta dalla formula); simuliamo invece: facendo avanzare il sistema in piccoli passi temporali e monitorandone numericamente il comportamento. In questa unità imparerai come utilizzare l'intelligenza artificiale (AI) per creare codice di simulazione e, cosa più importante, come verificare con le leggi di conservazione se la simulazione riflette accuratamente la fisica.

L’idea di base della simulazione e il ruolo dell’IA

Una simulazione consiste in questo ciclo: prendi lo stato attuale, applica l'equazione del cambiamento, vai avanti di un piccolo Δt, ripeti. L'intelligenza artificiale è molto veloce nel costruire questo ciclo, scegliendo il giusto risolutore, l'algoritmo che risolve l'equazione differenziale passo dopo passo, e modificando il codice. Lo strumento standard del fisico è scipy.integrate.solve_ivp (la funzione SciPy che risolve i problemi sui valori iniziali). Ma prima di fidarti della simulazione creata dall’intelligenza artificiale, la domanda che devi porti è questa: questa simulazione preserva le quantità fisiche (energia, quantità di moto, momento angolare) che devono essere preservate?

Sistema

Tipo di equazione

Criteri di validazione

pendolo, molla

ODE di secondo grado

Costanza dell'energia totale

orbita del pianeta

ODE gravitazionale newtoniana

Momento angolare + conservazione dell'energia

Raffreddare/riscaldare

ODE di primo grado

Convergenza alla temperatura di equilibrio

decadimento radioattivo

ODE esponenziale

Controllo dell'emivita

Monte Carlo (casuale)

statistico

Convergenza a media/distribuzione nota

Nota: ODE sta per "equazione differenziale ordinaria" - un'equazione che coinvolge una derivata rispetto a una singola variabile (solitamente il tempo).

Passo dopo passo: una simulazione affidabile

1. Chiarire la fisica e le condizioni iniziali. Qual è l'equazione del sistema? Qual è la posizione iniziale, la velocità, la temperatura? Quali sono le unità? Forniscili esplicitamente all'IA.

2. Selezionare il risolutore e la dimensione del passo appropriati. Un passo temporale troppo grande rende la simulazione instabile (il risultato esplode o la fisica si rompe); Un passo troppo piccolo rallenta inutilmente. L’intelligenza artificiale può suggerire, ma controllare la decisione.

3. Seguire la legge di conservazione prevista dal codice. Calcola e stampa l'energia totale (o la quantità di moto) durante la simulazione. Se varia di una grandezza che dovrebbe rimanere costante, la simulazione è inaffidabile.

4. Confrontare con una soluzione nota. Ad esempio, il periodo di un pendolo di piccola ampiezza è noto con la formula T = 2π√(L/g); Confronta il periodo fornito dalla simulazione con questo.

5. Modificare i parametri e testare il comportamento. L'oscillazione viene smorzata quando viene aggiunto l'attrito? L'orbita cambia come previsto quando la massa aumenta? Prova con l'intuizione fisica.

Suggerimento: aggiungi un "inseguitore di energia" a ciascuna simulazione: calcola l'energia totale in ogni passaggio e tracciala come rapporto con l'energia iniziale. In un sistema privo di attrito, questo rapporto dovrebbe rimanere costante vicino a 1. Una deriva superiore all'1% indica che è necessario ridurre la dimensione del passo o modificare il risolutore.

tre mini custodie

Caso 1 – Esplosione di energia. Uno studente ha simulato un'orbita planetaria con un semplice metodo di Eulero (il metodo a passi più primitivo) scritto dall'intelligenza artificiale. L'orbita si allargò gradualmente nel tempo e il pianeta "volò via". Mentre lo studente monitorava l'energia totale, vide che era in costante aumento, un noto difetto del metodo di Eulero. Ha chiesto all'IA un risolutore che conservasse meglio l'energia (un metodo più adatto consolve_ivp) e l'orbita si è stabilizzata in un'ellisse stabile.

Caso 2: unità sbagliata, periodo sbagliato. Un insegnante ha riscontrato che il periodo era di 0,2 s in una simulazione del pendolo, ma il valore atteso era di 2 s. Quando lo esaminò, si rese conto che l'IA aveva inserito la lunghezza in centimetri e lo usò come metro nella formula. Con la correzione unitaria, la simulazione concordava con il valore analitico di T = 2π√(L/g).

Caso 3 — Verifica Monte Carlo. Un ricercatore ha chiesto all’intelligenza artificiale un codice che campiona casualmente (Monte Carlo – simulazione statistica con numeri casuali) le particelle che colpiscono un rilevatore. Per verificare il risultato, ha eseguito un caso semplice noto analiticamente (ad esempio stimando π in base al rapporto tra l'area di un cerchio) con lo stesso metodo; Quando il codice prevedeva correttamente π, la sua fiducia nella simulazione effettiva aumentava. Osservò anche che all’aumentare del numero di campioni, il risultato si restringeva e convergeva al valore reale.

Quattro modelli copiabili

1) Simulazione monitorata dalla conservazione:

Scrivi codice Python che simula il seguente sistema fisico consolve_ivp: [sistema, equazione, condizioni iniziali, unità]. Durante la simulazione, calcola l'energia totale (e la quantità di moto, se presente) in ogni passaggio e traccia il suo rapporto con il suo valore iniziale nel tempo. Si noti che nel caso senza attrito, questo rapporto dovrebbe rimanere costante ~1.

2) Confronto analitico:

Aggiungi codice che confronti il ​​risultato della seguente simulazione con la soluzione analitica nota di questo sistema ([formula]). Tracciali entrambi sullo stesso grafico e stampa la massima differenza tra numerico e analitico. Codice di simulazione: [qui]

3) Misura del gradino/test di stabilità:

Scrivi il codice che esegue la seguente simulazione con diversi passaggi temporali (ad esempio dt = 0,1, 0,01, 0,001) e mostra come cambiano i risultati. Specificare dopo quale dimensione del passo il risultato si stabilizza (converge). Codice: [qui]

4) Prove agli stati limite fisici:

Suggerire 3 test agli stati limite fisici per la seguente simulazione: (ad esempio, l'energia dovrebbe essere conservata quando l'attrito è pari a zero, lo stallo rapido quando l'attrito è elevato, come dovrebbe cambiare il periodo quando la massa raddoppia). Scrivi il risultato atteso di ciascun test in una frase. Codice: [qui]

Prompt debole / Prompt forte

Debole: "Scrivi una simulazione del pendolo".
Risultato: codice senza unità, senza validazione, senza controlli di conservazione; Non è chiaro se rifletta la fisica o meno.
Forte: "Scrivi un codicesolve_ivp che simula un pendolo semplice di lunghezza L = 1 m, angolo iniziale 10°, con g = 9,81 m/s² per 10 secondi. Monitora l'energia totale ad ogni passo e traccia il rapporto con l'inizio. Confronta il periodo misurato con la formula di piccola ampiezza T = 2π√(L/g) e stampa la differenza."
Risultato: una simulazione affidabile con unità, monitoraggio della conservazione e confronto con il valore analitico.

Errori comuni

  • Non seguendo la legge di conservazione. Se l’energia o la quantità di moto vanno alla deriva, la simulazione è sbagliata; Fidarsi del risultato senza vederlo è l'errore più comune.
  • Scegliere arbitrariamente la dimensione del passo. Un passo troppo grande crea indecisione, un passo troppo piccolo crea costi inutili; Il test di convergenza è essenziale.
  • Non fare confronti analitici. Senza confrontarla con un caso speciale noto (piccola ampiezza, stato senza attrito), la simulazione rimane non supervisionata.
  • Confondere un difetto numerico per la fisica. Comportamenti come l'espansione orbitale sono spesso un difetto del metodo, non la vera fisica.
  • Fissare il numero di campioni nella simulazione casuale. È fuorviante aumentare il numero di campioni a Monte Carlo e fare affidamento su un unico risultato senza vedere la convergenza.
Attenzione: solo perché una simulazione produce un "bel grafico" non significa che sia corretta. La grafica è convincente ma ingannevole. Prima di fidarsi della simulazione, assicurati di seguire una legge di conservazione e confrontarla con una situazione nota. Una simulazione non verificata non è una prova fisica.

In sintesi

La simulazione è un modo efficace per comprendere i sistemi fisici dinamici privi di soluzioni analitiche e per creare rapidamente codice di simulazione AI. Ma il valore della simulazione dipende dal fatto che rifletta accuratamente la fisica. Il modo per garantire ciò è seguire le leggi di conservazione, selezionare la dimensione del passo appropriata mediante test di convergenza, confrontare il risultato con casi analitici noti e testare casi limite fisici. Nella prossima unità spostiamo l'attenzione dai dati generati all'analisi dei dati sperimentali effettivi.

Compito dell'applicazione

Scegli un sistema dinamico semplice (pendolo, caduta libera + resistenza dell'aria o raffreddamento). Con il modello 1, stampa ed esegui un codice di simulazione che include un controllo di conservazione o equilibrio nell'IA. Controlla se la grandezza monitorata (energia o temperatura) si comporta come previsto. Quindi modifica un parametro (attrito, massa, dimensione del passo) e verifica se il cambiamento nel comportamento concorda con la tua intuizione fisica. Scrivilo in 5-6 frasi.

lista di controllo

  • [ ] Ho chiarito l'equazione, le condizioni iniziali e le unità del sistema.
  • [ ] Nella simulazione ho seguito una legge di conservazione (energia/momento).
  • [ ] Ho verificato la dimensione del passo con un test di convergenza.
  • [ ] Ho confrontato il risultato con una situazione analitica nota.
  • [ ] Ho eseguito almeno una prova agli stati limite fisici.
  • [ ] Ho distinto i difetti numerici dalla fisica reale.