Добици:
- Способност да се ослања на детерминистички излаз, а не на вербално нагађање, тако што ће АИ превести физички прорачун у НумПи/СциПи код и покренути сам код
- Способност да се провери поузданост нумеричког кода тестирањем једноставном ситуацијом чији је одговор познат и провером његове конвергенције.
- Способност да се физички обезбеди јединица и ниво резултата одражавањем променљивих јединица у коду
Многи проблеми у физици се не могу решити ручно: интеграл нема аналитичко решење, корен система једначина се не може наћи у затвореном облику или се прорачун мора поновити хиљадама пута. Овде у игру ступају нумеричке методе: уместо тачне формуле, рачунар израчунава корак по корак са приближном, али контролисаном тачношћу. У овој јединици ћете научити како да користите вештачку интелигенцију (АИ) као партнера кода за прорачуне рачунарске физике, како да проверите код који производи и у које замке треба да избегавате да упаднете. Стандардни алати физичара овде ће бити језик Питхон и НумПи (библиотека за нумеричке низове и брзу математику) као и СциПи (библиотека за научно рачунарство; укључује интеграцију, радикално проналажење, оптимизацију).
Зашто АИ + Питхон, зашто не ручно?
Извођење нумеричких прорачуна ручно је споро и подложно грешкама. АИ може да преведе вашу физичку конструкцију у активни Питхон код за неколико секунди. Али овде је златно правило: АИ пише код, ви покрећете код и проверавате резултат помоћу физике. АИ која каже „овај код даје оно“ је предвиђање; Заправо покретање кода и гледање излаза је детерминистичка чињеница. ЛЛМ може "израчунати" излаз кода који је написао у својој глави и рећи погрешан број; док када се покрене исти код даје тачан резултат. Зато никада не верујте нумеричком резултату који АИ вербално даје - покрените код.
Основни рачунски задаци и улога АИ
Куест
Метода/алатка
физичка верификација
одређени интеграл
сципи.интеграте.куад
Гранична стања, димензионална анализа
корен једначине
сципи.оптимизе.брентк
Ставите корен на место и проверите да ли је нула.
Систем линеарних једначина
нумпи.линалг.солве
Враћање решења у систем
Извод (нумерички)
Централна разлика или нумпи.градиент
Поређење са аналитичким извођењем
Булк векторски прорачун
НумПи низови
Контрола јединица и ранга
АИ је веома добар у сугерисању који је од ових алата прикладан и да исправи синтаксу (правила писања кода). Али ви одлучујете који метод има физички смисао и тачност резултата.
Корак по корак: проверљива нумеричка калкулација
1. Појасните проблем и јединице. На пример: „Израчунајте интеграл е^(−к²) од 0 до бесконачности; резултат би требало да буде √π/2 ≈ 0,8862.“ Преписивање очекиваног резултата (ако га има) олакшава верификацију.
2. Питајте АИ за код, али ви покрећете излаз. Копирајте блок кода и покрените га у свом окружењу (Јупитер, Цолаб, изворни Питхон).
3. Тест са познатом ситуацијом. Испробајте код са једноставном ситуацијом на коју већ знате одговор. На пример, тестирајте интегрални код помоћу примера који знате руком, као што је ∫₀¹ к дк = 0,5. Ако код даје ово исправно, ваше самопоуздање се повећава.
4. Проверите конвергенцију. У нумеричким методама, када повећате број корака, резултат треба да се приближи константној вредности. Ако се не приближи, метода није прикладна.
5. Проверите јединицу и чин. Увек наведите бројчани резултат са физичком јединицом и редоследом.
Савет: Када тражите код од АИ, реците „такође укључите тестну линију која упоређује резултат са познатом аналитичком вредношћу“. Дакле, код обавља прорачун и тестира се у познатој ситуацији. Ово чини грешке одмах видљивим.
три мини кофера
Случај 1 — Нетачан усмени закључак. Ученик је натерао АИ да напише интегрални код и АИ је рекао „овај код даје око 1,77“. Ученик је покренуо код: стварни резултат је био 0,886. АИ је направио грешку у предвиђању излаза кода; Шифра је била тачна. Поука: верујте шифри, не вербалном нагађању.
Случај 2 — Нумеричка нестабилност. Истраживач је тражио корен једначине са кодом за проналажење корена који је написао АИ. Код је вратио корен, али када је истраживач вратио корен у једначину, резултат није био нула већ веома велики број. Проблем је био у томе што почетни опсег није садржао корен; АИ је претпоставио одговарајући домет. Истраживач је исправио интервал физичким информацијама и пронашао тачан корен.
Случај 3 — Потврда добијена. Инжењер је желео код који нумерички израчунава отклон греде под оптерећењем. Шифра је функционисала, али резултат је показао метре отклона - немогуће за челичну греду. Инжењер је испитао јединице: АИ се претварао да има модул еластичности у Па уместо у ГПа, недостаје фактор од 10⁹. Са корекцијом јединице, резултат се смањио на милиметре и био је разуман.
Четири шаблона за копирање
1) Нумерички прорачун са линијом за валидацију:
Напишите Питхон (НумПи/СциПи) код који обавља следеће физичке прорачуне: [проблем]. Декларисајте све променљиве у СИ јединицама и наведите јединицу са линијом за коментар. Додајте линију за проверу (потврдите или одштампајте) на крају кода који упоређује резултат са познатом аналитичком/једном вредношћу. Ја ћу покренути код; не погађате излаз, само напишите код и очекивани ранг.
2) Консултације о избору методе:
Желим нумерички да решим следећи проблем: [проблем]. Која је СциПи/НумПи функција прикладна и ЗАШТО? Предложите 2 алтернативне методе, запишите предности/против сваке у смислу тачности и стабилности. Наведите који би требало да буде префериран у којој физичкој ситуацији.
3) Провера конвергенције:
Напишите Питхон код који показује како се резултат конвергира повећањем броја корака следећег нумеричког израчунавања (нпр. Н=10, 100, 1000). Одштампајте резултате у табели. Ако нема конвергенције, објасните физички/нумерички разлог за ово у једној реченици. Шифра: [овде]
4) Контрола јединице:
У коду испод, коментаришите СИ јединицу сваке променљиве и проверите да ли је јединица коначног резултата у складу са очекиваном јединицом (нпр. метар, џул). Ако постоји недоследност, покажите у ком се реду налази. Шифра: [овде]
Слаби промпт / Јаки промпт
Слабо: "Реците резултат овог интеграла: ∫₀^∞ к²·е^(−к) дк"
Резултат: АИ испљуне број у своју главу (можда тачан, можда погрешан); ништа извршно, ништа проверљиво.
Снажан: „Напишите Питхон код који израчунава интеграл ∫₀^∞ к²·е^(−к) дк помоћу сципи.интеграте.куад. Додајте линију за потврду која упоређује резултат са аналитичком вредношћу овог интеграла, 2! = 2. Покренућу код.“
Резултат: Извршни код, уграђена валидација (поређење са аналитичком вредношћу) и поуздан резултат.
Уобичајене грешке
- Ослањајући се на вербални бројчани резултат АИ. ЛЛМ може погрешно предвидети излаз кода у глави. Увек покрените код.
- Не тестирање са познатом ситуацијом. Код који се не тестира једноставним примером за који знате одговор може да садржи скривене грешке.
- Не проверава конвергенцију. Задржавање броја само једног корака замагљује да ли је резултат нумерички поуздан.
- Не одражава јединице у коду. Некоментарисање јединице променљивих изазива тихе грешке од 10ⁿ.
- Занемаривање верзије/претпоставки библиотеке. Понекад АИ може произвести непостојеће име функције или застарелу синтаксу; Приметно је када га покренете.
Опрез: Пре него што ставите нумерички резултат у публикацију, задатак или дизајн, тестирајте код са независним познатим случајем и наведите резултат у јединицама/наредбама. Чак и радни код можда израчунава погрешну физику; Само зато што код ради не значи да је физика тачна.
Укратко
АИ је моћан партнер у превођењу физичких прорачуна у Питхон код; Али бројке које усмено износи су процене, а не чињенице. Безбедан ток посла је јасан: дефинишите проблем са његовим јединицама, нека АИ напише код, али ви покренете излаз, тестирајте код са познатом ситуацијом, проверите конвергенцију и јединицу. Оно што је детерминистичко је код који се извршава; То није ЛЛМ. У следећој целини ћемо ову нумеричку основу померити на симулацију временски променљивих физичких система.
Задатак апликације
Изаберите рачун из физике за који знате аналитичко решење (на пример, брзина слободног падајућег објекта током одређеног временског периода или једноставан дефинитивни интеграл). Нека АИ напише Питхон код са шаблоном 1; покрените код сами. Упоредите резултат са аналитичком вредношћу коју знате. Затим посматрајте како се резултат понаша променом броја корака или параметра. Напомена у 5-6 реченица: да ли је излаз кода одговарао вербалном предвиђању, да ли је било проблема са јединицом/редом?
контролна листа
- [ ] Појаснио сам проблем и јединицу свих варијабли.
- [ ] Покренуо сам код који је лично написао АИ, нисам вербалном резултату.
- [ ] Тестирао сам код са једноставном ситуацијом за коју сам знао одговор.
- [ ] Проверио сам конвергенцију или осетљивост параметара.
- [ ] Ја сам физички обезбедио јединицу и редослед резултата.
- [ ] Проверио сам да су библиотечке функције које користим стварне и ажурне.