Јединица 3 / 11

Симулација физичких система

Добици:

  • Способност симулације динамичког физичког система са решавачима као што је солве_ивп и верификовање валидности симулације праћењем укупне енергије или очувања момента
  • Способност разликовања нумеричких артефаката од стварне физике одабиром величине корака помоћу теста конвергенције
  • Способност тестирања резултата симулације упоређивањем са познатим аналитичким ситуацијама и физичким граничним стањима

Велики део физике бави се системима који варирају у времену: осцилирајуће клатно, планета у орбити, тело које се хлађење, шири талас. Већина ових система је описана диференцијалним једначинама—то јест, једначинама које повезују брзину промене величине (положаја, температуре) са самом том величином. Ове једначине често немају аналитичко (формулано егзактно) решење; уместо тога симулирамо: кретање система напред у малим временским корацима и нумерички праћење његовог понашања. У овој јединици ћете научити како да користите вештачку интелигенцију (АИ) за прављење симулационог кода и – што је најважније – како да проверите са законима очувања да ли симулација тачно одражава физику.

Основна идеја симулације и улога АИ

Симулација се састоји од овог циклуса: узмите тренутно стање, примените једначину промене, померите се напред за мали Δт, поновите. АИ веома брзо гради ову петљу, бирајући прави решавач — алгоритам који решава диференцијалну једначину корак по корак и уређује код. Стандардни алат физичара је сципи.интеграте.солве_ивп (функција СциПи која решава проблеме почетних вредности). Али пре него што верујете симулацији коју је креирала вештачка интелигенција, питање које морате да поставите је следеће: Да ли ова симулација чува физичке величине (енергија, импулс, угаони момент) које треба да се сачувају?

Систем

Тип једначине

Критеријуми за валидацију

клатно, опруга

ОДЕ другог степена

Константност укупне енергије

орбита планете

Њутнов гравитациони ОДЕ

Угаони момент + очување енергије

Охладити/загрејати

ОДЕ првог степена

Конвергенција до равнотежне температуре

радиоактивни распад

Експоненцијални ОДЕ

Контрола полуживота

Монте Карло (насумично)

статистички

Конвергенција према познатој средини/дистрибуцији

Напомена: ОДЕ је скраћеница од „обична диференцијална једначина“ — једначина која укључује извод у односу на једну променљиву (обично време).

Корак по корак: поуздана симулација

1. Појаснити физику и почетне услове. Шта је једначина система? Која је почетна позиција, брзина, температура? Које су јединице? Дајте ово експлицитно АИ.

2. Изаберите одговарајући решавач и величину корака. Превелик временски корак чини симулацију нестабилном (резултат експлодира или се физика ломи); Премали корак непотребно успорава. АИ може да предлаже, али контролише одлуку.

3. Придржавајте се закона о очувању у коду. Израчунајте и одштампајте укупну енергију (или импулс) током симулације. Ако се помера за величину која треба да остане константна, симулација је непоуздана.

4. Упореди са познатим решењем. На пример, период клатна мале амплитуде познат је по формули Т = 2π√(Л/г); Упоредите период дат симулацијом са овим.

5. Промените параметар, понашање теста. Да ли је осцилација пригушена када се дода трење? Да ли се орбита мења како се очекивало када се маса повећава? Тестирајте са физичком интуицијом.

Савет: Додајте „праћење енергије“ свакој симулацији: израчунајте укупну енергију на сваком кораку и нацртајте је као однос према почетној енергији. У систему без трења, овај однос треба да остане константан близу 1. Одступање од више од 1% је знак да треба да смањите величину корака или промените решавач.

три мини кофера

Случај 1 — Експлозија енергије. Студент је симулирао планетарну орбиту једноставном Ојлеровом методом (најпримитивнија метода корака) коју је написао АИ. Орбита се временом постепено ширила и планета је „одлетела“. Док је ученик пратио укупну енергију, видео је да се она стално повећава – позната мана Ојлерове методе. Тражио је од АИ решавач који боље чува енергију (прикладнији метод са солве_ивп) и орбита се сместила у стабилну елипсу.

Случај 2 — Погрешна јединица, погрешан период. Наставник је открио да је период 0,2 с у симулацији клатна, али је очекивана вредност била 2 с. Када га је испитао, схватио је да је АИ унео дужину у центиметре и користио је као метар у формули. Уз јединичну корекцију, симулација се слагала са аналитичком вредношћу Т = 2π√(Л/г).

Случај 3 — Монте Карло верификација. Истраживач је од АИ затражио код који насумично узоркује (Монте Карло — статистичка симулација са насумичним бројевима) честице које ударе у детектор. Да би потврдио резултат, покренуо је једноставан аналитички познат случај (нпр. процењивање π односом површине круга) истом методом; Када је код тачно предвидео π, повећало се његово поверење у стварну симулацију. Такође је приметио да како се број узорака повећавао, резултат се сужавао и приближавао реалној вредности.

Четири шаблона за копирање

1) Симулација праћена очувањем:

Напишите Питхон код који симулира следећи физички систем помоћу солве_ивп: [систем, једначина, почетни услови, јединице]. Током симулације, израчунајте укупну енергију (и импулс, ако постоји) у сваком кораку и нацртајте њен однос према почетној вредности током времена. Имајте на уму да у случају без трења, овај однос треба да остане константан ~1.

2) Аналитичко поређење:

Додајте код који упоређује резултат следеће симулације са познатим аналитичким решењем овог система ([формула]). Нацртајте их оба на исти графикон и одштампајте максималну разлику између нумеричке и аналитичке. Код симулације: [овде]

3) Величина корака / тест стабилности:

Напишите код који покреће следећу симулацију са различитим временским корацима (нпр. дт = 0,1, 0,01, 0,001) и показује како се резултати мењају. Одредите након које величине корака се резултат стабилизује (конвергира). Шифра: [овде]

4) Испитивање физичког граничног стања:

Предложите 3 теста физичког граничног стања за следећу симулацију: (нпр. енергија треба да се сачува када је трење нула, брзо застој када је трење велико, како би период требало да се промени када се маса удвостручи). Очекивани резултат сваког теста напишите у једној реченици. Шифра: [овде]

Слаби промпт / Јаки промпт

Слабо: "Напишите симулацију клатна."
Резултат: код без јединица, без валидације, без провера очувања; Нејасно је да ли одражава физику или не.
Снажан: „Напишите солве_ивп код који симулира једноставно клатно дужине Л = 1 м, почетни угао 10°, са г = 9,81 м/с² у трајању од 10 секунди. Пратите укупну енергију на сваком кораку и нацртајте однос према почетку. Упоредите измерени период са формулом мале амплитуде√ и одштампајте разлику Т = 2πг.“
Резултат: Поуздана симулација са јединицама, праћење очувања и поређење са аналитичком вредношћу.

Уобичајене грешке

  • Не поштујући закон очувања. Ако енергија или замах лебде, симулација је погрешна; Веровати резултату, а да не видите ово је најчешћа грешка.
  • Произвољно бирање величине корака. Превелик корак ствара неодлучност, премали корак ствара непотребне трошкове; Тестирање конвергенције је неопходно.
  • Не правити аналитичка поређења. Без поређења са познатим посебним случајем (мала амплитуда, стање без трења), симулација остаје без надзора.
  • Грешка нумеричка грешка за физику. Понашање као што је експанзија орбите често је мана методе, а не права физика.
  • Фиксирање броја узорака у насумичној симулацији. Погрешно је повећавати број узорака у Монте Карлу и ослањати се на један резултат без конвергенције.
Опрез: Само зато што симулација производи „леп графикон“ не значи да је тачна. Визуелно је убедљиво, али варљиво. Пре него што верујете симулацији, обавезно следите закон о очувању и упоредите га са познатом ситуацијом. Непроверена симулација није физички доказ.

Укратко

Симулација је моћан начин да се разумеју динамички физички системи којима недостају аналитичка решења и који брзо гради код симулације вештачке интелигенције. Али вредност симулације зависи од тога да ли тачно одражава физику. Начин да се то осигура је да се поштују закони очувања, да се изабере одговарајућа величина корака тестирањем конвергенције, упореди резултат са познатим аналитичким случајевима и тестира физички гранични случајеви. У следећој јединици ћемо померити фокус са генерисаних података на анализу стварних експерименталних података.

Задатак апликације

Изаберите једноставан динамички систем (клатно, слободан пад + отпор ваздуха или хлађење). Са шаблоном 1, одштампајте и покрените симулациони код који укључује проверу очувања или баланса у АИ. Проверите да ли се надгледана количина (енергија или температура) понаша према очекивањима. Затим промените параметар (трење, масу, величину корака) и погледајте да ли се промена понашања слаже са вашом физичком интуицијом. Запиши у 5-6 реченица.

контролна листа

  • [ ] Појаснио сам једначину, почетне услове и јединице система.
  • [ ] Пратио сам закон одржања (енергија/момент) у симулацији.
  • [ ] Проверио сам величину корака тестом конвергенције.
  • [ ] Упоредио сам резултат са познатом аналитичком ситуацијом.
  • [ ] Обавио сам најмање један тест физичког граничног стања.
  • [ ] Разликовао сам нумеричке дефекте од стварне физике.