Jednotka 3 / 11

Simulace fyzikálních systémů

zisky:

  • Schopnost simulovat dynamický fyzikální systém pomocí řešitelů, jako je solve_ivp, a ověřit platnost simulace sledováním celkové energie nebo zachování hybnosti
  • Schopnost odlišit numerické artefakty od skutečné fyziky výběrem velikosti kroku pomocí testu konvergence
  • Schopnost testovat výsledek simulace porovnáním se známými analytickými situacemi a fyzikálními mezními stavy

Velká část fyziky se zabývá časově proměnnými systémy: oscilující kyvadlo, obíhající planeta, chladící těleso, šířící se vlna. Většina těchto systémů je popsána diferenciálními rovnicemi – tedy rovnicemi, které dávají do souvislosti rychlost změny veličiny (polohy, teploty) a této veličiny samotné. Tyto rovnice často nemají analytické (vzorce-přesné) řešení; místo toho simulujeme: posun systému vpřed v malých časových krocích a numerické sledování jeho chování. V této lekci se naučíte, jak používat umělou inteligenci (AI) k sestavení simulačního kódu a – co je nejdůležitější – jak ověřit pomocí zákonů zachování, zda simulace přesně odráží fyziku.

Základní myšlenka simulace a role AI

Simulace se skládá z tohoto cyklu: vezměte aktuální stav, použijte rovnici změny, posuňte se vpřed o malé Δt, opakujte. Umělá inteligence je velmi rychlá při vytváření této smyčky, výběru správného řešiče – algoritmu, který řeší diferenciální rovnice krok za krokem, a úpravě kódu. Standardním nástrojem fyzika je scipy.integrate.solve_ivp (funkce SciPy, která řeší počáteční úlohy). Než však důvěřujete simulaci vytvořené umělou inteligencí, musíte si položit tuto otázku: Zachovává tato simulace fyzikální veličiny (energie, hybnost, moment hybnosti), které je třeba zachovat?

Systém

Typ rovnice

Kritéria validace

kyvadlo, pružina

ODR druhého stupně

Stálost celkové energie

oběžné dráze planety

Newtonovská gravitační ODR

Moment hybnosti + zachování energie

Chladit/ohřívat

ODR prvního stupně

Konvergence k rovnovážné teplotě

radioaktivní rozpad

Exponenciální ODR

Kontrola poločasu rozpadu

Monte Carlo (náhodné)

statistický

Konvergence ke známému průměru/rozdělení

Poznámka: ODE je zkratka pro „obyčejnou diferenciální rovnici“ — rovnici, která zahrnuje derivaci s ohledem na jednu proměnnou (obvykle čas).

Krok za krokem: spolehlivá simulace

1. Objasněte fyziku a počáteční podmínky. Jaká je rovnice systému? Jaká je výchozí poloha, rychlost, teplota? Jaké jsou jednotky? Dejte je výslovně AI.

2. Vyberte vhodný řešič a velikost kroku. Příliš velký časový krok způsobuje nestabilitu simulace (výsledek exploduje nebo se fyzika rozbije); Příliš malý krok zbytečně zpomaluje. AI může navrhovat, ale kontrolovat rozhodnutí.

3. Dodržujte zákon zachování v kódu. Vypočítejte a vytiskněte celkovou energii (nebo hybnost) v průběhu simulace. Pokud driftuje o velikost, která by měla zůstat konstantní, simulace je nespolehlivá.

4. Porovnejte se známým řešením. Například perioda kyvadla s malou amplitudou je známá vzorcem T = 2π√(L/g); Porovnejte období dané simulací s tímto.

5. Změňte parametr, otestujte chování. Je kmitání tlumeno, když se přidá tření? Mění se oběžná dráha podle očekávání, když se zvyšuje hmotnost? Test s fyzickou intuicí.

Tip: Přidejte ke každé simulaci „sledovač energie“: vypočítejte celkovou energii v každém kroku a vykreslete ji jako poměr k počáteční energii. V systému bez tření by tento poměr měl zůstat konstantní blízko 1. Drift větší než 1 % je známkou toho, že musíte zmenšit velikost kroku nebo změnit řešič.

tři mini pouzdra

Případ 1 – Výbuch energie. Student simuloval oběžnou dráhu planety jednoduchou Eulerovou metodou (nejprimitivnější kroková metoda) napsanou AI. Oběžná dráha se postupem času postupně rozšiřovala a planeta „odletěla“. Když student sledoval celkovou energii, viděl, že se neustále zvyšuje – známá chyba Eulerovy metody. Požádal AI o řešič, který lépe šetří energii (vhodnější metoda s resolve_ivp) a oběžná dráha se ustálila do stabilní elipsy.

Případ 2 — Špatná jednotka, nesprávné období. Učitel zjistil při simulaci kyvadla periodu 0,2 s, ale očekávaná hodnota byla 2 s. Když to zkoumal, uvědomil si, že AI zadala délku v centimetrech a použila ji jako metr ve vzorci. S jednotkovou korekcí simulace souhlasila s analytickou hodnotou T = 2π√(L/g).

Případ 3 – Ověření Monte Carlo. Výzkumník požádal AI ​​o kód, který náhodně odebírá (Monte Carlo — statistická simulace s náhodnými čísly) částice narážející na detektor. Pro ověření výsledku provedl jednoduchý případ známý analyticky (např. odhad π poměrem plochy kruhu) stejnou metodou; Když kód správně předpověděl π, zvýšila se jeho důvěra ve skutečnou simulaci. Pozoroval také, že jak se počet vzorků zvyšoval, výsledek se zužoval a konvergoval ke skutečné hodnotě.

Čtyři kopírovatelné šablony

1) Simulace monitorovaná ochranou:

Napište Python kód, který simuluje následující fyzikální systém pomocí solve_ivp: [systém, rovnice, počáteční podmínky, jednotky]. V průběhu simulace vypočítejte celkovou energii (a hybnost, pokud existuje) v každém kroku a vykreslete její poměr k počáteční hodnotě v průběhu času. Všimněte si, že v případě bez tření by tento poměr měl zůstat konstantní ~1.

2) Analytické srovnání:

Přidejte kód, který porovnává výsledek následující simulace se známým analytickým řešením tohoto systému ([vzorec]). Zakreslete je do stejného grafu a vytiskněte maximální rozdíl mezi numerickým a analytickým. Simulační kód: [zde]

3) Test velikosti kroku / stability:

Napište kód, který spustí následující simulaci s různými časovými kroky (např. dt = 0,1, 0,01, 0,001) a ukáže, jak se výsledky mění. Určete, po jaké velikosti kroku se výsledek stabilizuje (konverguje). Kód: [zde]

4) Zkoušky fyzikálního mezního stavu:

Navrhněte 3 testy fyzikálních mezních stavů pro následující simulaci: (např. energie by se měla šetřit, když je tření nulové, rychle se zastavit, když je tření velké, jak by se měla změnit perioda, když se hmotnost zdvojnásobí). Napište očekávaný výsledek každého testu jednou větou. Kód: [zde]

Slabá výzva / Silná výzva

Slabý: "Napište simulaci kyvadla."
Výsledek: kód bez jednotek, bez ověření, bez konzervačních kontrol; Není jasné, zda odráží fyziku nebo ne.
Strong: "Napište kód solve_ivp, který simuluje jednoduché kyvadlo o délce L = 1 m, počáteční úhel 10°, s g = 9,81 m/s² po dobu 10 sekund. Sledujte celkovou energii v každém kroku a zakreslete poměr k začátku. Porovnejte naměřenou periodu se vzorcem pro malou amplitudu T = 2π√ a vytiskněte rozdíl (L/g)."
Výsledek: Spolehlivá simulace s jednotkami, monitorování konzervace a porovnání s analytickou hodnotou.

Časté chyby

  • Nedodržování zákona zachování. Pokud se energie nebo hybnost unáší, simulace je špatná; Důvěřovat výsledku, aniž byste to viděli, je nejčastější chyba.
  • Volba velikosti kroku libovolně. Příliš velký krok vytváří nerozhodnost, příliš malý krok vytváří zbytečné náklady; Testování konvergence je nezbytné.
  • Neprovádět analytická srovnání. Bez porovnání se známým speciálním případem (malá amplituda, stav bez tření) zůstává simulace bez dozoru.
  • Záměna numerické chyby za fyziku. Chování, jako je orbitální expanze, je často chybou metody, nikoli skutečné fyziky.
  • Stanovení počtu vzorků v náhodné simulaci. Je zavádějící zvyšovat počet vzorků v Monte Carlu a spoléhat se na jediný výsledek, aniž bychom viděli konvergenci.
Pozor: To, že simulace vytváří „hezký graf“, neznamená, že je správná. Vizuální stránka je přesvědčivá, ale klamná. Než důvěřujete simulaci, ujistěte se, že dodržujete zákon zachování a porovnejte jej se známou situací. Neověřená simulace není fyzickým důkazem.

V souhrnu

Simulace je účinný způsob, jak porozumět dynamickým fyzickým systémům, které postrádají analytická řešení, a rychle vytváří simulační kód AI. Ale hodnota simulace závisí na tom, zda přesně odráží fyziku. Způsob, jak to zajistit, je dodržovat zákony zachování, vybrat vhodnou velikost kroku testováním konvergence, porovnat výsledek se známými analytickými případy a otestovat fyzikální limitní případy. V další části se přesuneme od generovaných dat k analýze skutečných experimentálních dat.

Aplikační úkol

Zvolte jednoduchý dynamický systém (kyvadlo, volný pád + odpor vzduchu nebo chlazení). Pomocí šablony 1 vytiskněte a spusťte simulační kód, který obsahuje kontrolu konzervace nebo vyvážení v AI. Zkontrolujte, zda se sledovaná veličina (energie nebo teplota) chová podle očekávání. Poté změňte parametr (tření, hmotnost, velikost kroku) a sledujte, zda změna chování souhlasí s vaší fyzickou intuicí. Napište to 5-6 větami.

kontrolní seznam

  • [ ] Objasnil jsem rovnici, počáteční podmínky a jednotky soustavy.
  • [ ] Při simulaci jsem se řídil zákonem zachování (energie/hybnost).
  • [ ] Velikost kroku jsem ověřil testem konvergence.
  • [ ] Výsledek jsem porovnal se známou analytickou situací.
  • [ ] Provedl jsem alespoň jeden fyzikální limitní stavový test.
  • [ ] Rozlišoval jsem numerické vady od reálné fyziky.