Добивки:
- Способност да се потпрете на детерминистички излез, а не на вербални нагаѓања, со тоа што вештачката интелигенција ќе преведе физичка пресметка во NumPy/SciPy код и ќе го изврши самиот код
- Способност да се потврди веродостојноста на нумеричкиот код преку негово тестирање со едноставна ситуација чиј одговор е познат и проверка на неговата конвергенција.
- Способност физички да се обезбеди единицата и нивото на резултатот со рефлексија на променливите единици во кодот
Многу проблеми во физиката не можат да се решат со рака: интегралот нема аналитичко решение, коренот на системот од равенки не може да се најде во затворена форма или пресметката мора да се повтори илјадници пати. Тука влегуваат во игра нумеричките методи: наместо точна формула, компјутерот пресметува чекор по чекор со приближна, но контролирана точност. Во оваа единица, ќе научите како да ја користите вештачката интелигенција (ВИ) како партнер за код за пресметки на пресметковната физика, како да го потврдите кодот што го произведува и во кои замки треба да избегнете да паднете. Стандардните алатки на физичарот овде ќе бидат јазикот на Python и NumPy (библиотека за нумерички низи и брза математика) како и SciPy (библиотека за научни пресметки; вклучува интеграција, радикално наоѓање, оптимизација).
Зошто AI + Python, зошто не со рака?
Вршењето нумерички пресметки со рака е бавно и склоно кон грешки. Вештачката интелигенција може да ја преведе вашата физичка конструкција во активен Python код за неколку секунди. Но, златното правило овде е: вештачката интелигенција го пишува кодот, вие го извршувате кодот и го потврдувате резултатот со физика. Вештачката интелигенција која вели „овој код го дава тоа“ е предвидување; Всушност, водење на кодот и гледање на излезот е детерминистички факт. LLM може да го „пресмета“ излезот од кодот што го напишал во главата и да каже погрешен број; додека кога се работи истиот код го дава точниот резултат. Затоа, никогаш не верувајте во нумеричкиот резултат што вештачката интелигенција вербално го дава - извршете го кодот.
Основни пресметковни задачи и улогата на ВИ
Потрага
Метод/алатка
физичка верификација
определен интеграл
scipy.интегрира.quad
Гранични состојби, димензионална анализа
коренот на равенката
scipy.optimize.brentq
Ставете го коренот на место и проверете дали е нула.
Систем на линеарни равенки
numpy.linalg.реши
Враќање на растворот во системот
Извод (нумерички)
Централна разлика или вцепенен.градиент
Споредба со аналитичко изведување
Пресметка на масовно вектор
NumPy низи
Контрола на единицата и рангирањето
Вештачката интелигенција е многу добра во сугерирање која од овие алатки е соодветна и прави синтакса (правила за пишување код). Но, вие одлучувате кој метод има физичка смисла и точноста на резултатот.
Чекор по чекор: проверлива нумеричка пресметка
1. Разјаснете го проблемот и единиците. На пример: "Пресметај го интегралот e^(−x²) од 0 до бесконечност; резултатот треба да биде √π/2 ≈ 0,8862." Препишувањето на очекуваниот резултат (ако го има) ја олеснува верификацијата.
2. Прашајте ја ВИ за кодот, но вие го стартувате излезот. Копирајте го блокот со кодови и стартувајте го во вашата сопствена околина (Јупитер, Колаб, мајчин Python).
3. Тест со позната ситуација. Пробајте го кодот со едноставна ситуација на која веќе го знаете одговорот. На пример, тестирајте интегрален код со пример што го знаете рачно, како што е ∫₀¹ x dx = 0,5. Ако кодот го дава ова правилно, вашата доверба се зголемува.
4. Проверете дали има конвергенција. Во нумеричките методи, кога го зголемувате бројот на чекори, резултатот треба да се приближи до константна вредност. Ако не се приближи, методот не е соодветен.
5. Проверете ја единицата и рангирањето. Секогаш давајте го нумеричкиот резултат со физичката единица и редоследот.
Совет: кога барате код од вештачката интелигенција, кажете „вклучете и тест линија што го споредува резултатот со позната аналитичка вредност“. Така, кодот и ја врши пресметката и се тестира себеси во позната ситуација. Ова ги прави грешките веднаш видливи.
три мини футроли
Случај 1 - Неточен усен заклучок. Еден студент побара ВИ да напише интегрален код и вештачката интелигенција рече „овој код дава околу 1,77“. Студентот го истрча кодот: вистинскиот излез беше 0,886. ВИ направи грешка во предвидувањето на излезот на кодот; Кодот беше точен. Поука: верувајте во кодот, не верувајте во вербалното погодување.
Случај 2 - Нумеричка нестабилност. Истражувач го барал коренот на равенката со код за наоѓање корен што го напишал вештачката интелигенција. Кодот врати корен, но кога истражувачот го врати коренот во равенката, резултатот не беше нула, туку многу голем број. Проблемот беше што почетниот опсег не го содржи коренот; ВИ го презеде соодветниот опсег. Истражувачот го коригирал интервалот со физички информации и го нашол точниот корен.
Случај 3 - Добиена е потврда. Еден инженер сакал код кој нумерички го пресметува отклонувањето на зракот под оптоварување. Шифрата функционираше, но резултатот покажа метри отклон - невозможно за челичен зрак. Инженерот ги испитал единиците: вештачката интелигенција се преправала дека има модул на еластичност во Pa наместо GPa, пропуштајќи фактор од 10⁹. Со корекција на единицата, резултатот се намали на милиметри и беше разумен.
Четири шаблони за копирање
1) Нумеричка пресметка со линија за валидација:
Напишете Python (NumPy/SciPy) код кој ја врши следната физичка пресметка: [проблем]. Декларирајте ги сите променливи во единиците SI и специфицирајќи ја единицата со линија за коментари. Додадете линија за проверка (потврдете или печатете) на крајот од кодот што го споредува резултатот со позната аналитичка/едноставна вредност. Ќе го извршам кодот; не го погодувате излезот, само напишете го кодот и очекуваниот ранг.
2) Консултации за избор на метод:
Сакам да го решам следниот проблем нумерички: [проблем]. Која функција SciPy/NumPy е соодветна и ЗОШТО? Предложете 2 алтернативни методи, запишете ги добрите / лошите страни на секој во однос на точноста и стабилноста. Наведете кој треба да се претпочита во која физичка ситуација.
3) Проверка на конвергенција:
Напишете Python код кој покажува како резултатот се конвергира со зголемување на бројот на чекори од следната нумеричка пресметка (на пр. N=10, 100, 1000). Испечатете ги резултатите во табела. Ако нема конвергенција, објаснете ја физичката/нумеричката причина за ова во една реченица. Код: [тука]
4) Контрола на единицата:
Во кодот подолу, коментирајте ја единицата SI на секоја променлива и проверете дали единицата на конечниот резултат е конзистентна со очекуваната единица (на пр. метар, џул). Ако има недоследност, покажете во која линија е. Код: [тука]
Слаб промпт / Силен промпт
Слабо: „Кажете го резултатот од овој интеграл: ∫₀^∞ x²·e^(−x) dx“
Резултат: ВИ плука број во главата (можеби правилен, можеби погрешен); ништо извршно, ништо проверливо.
Strong: "Напишете Python код кој го пресметува интегралот ∫₀^∞ x²·e^(−x) dx со scipy.integrate.quad. Додадете линија за тврдење што го споредува резултатот со аналитичката вредност на овој интеграл, 2! = 2. Ќе го извршам кодот."
Резултат: Извршен код, вградена валидација (споредба со аналитичка вредност) и сигурен резултат.
Вообичаени грешки
- Потпирајќи се на вербалниот нумерички резултат на АИ. LLM може погрешно да го предвиди излезот на кодот во главата. Секогаш стартувајте го кодот.
- Не се тестира со позната ситуација. Код кој не тестира со едноставен пример на кој го знаете одговорот може да содржи скриени грешки.
- Не се проверува за конвергенција. Придржувањето до броењето на еден чекор го замаглува дали резултатот е нумерички сигурен.
- Не ги одразува единиците во кодот. Некоментирањето на единицата на променливи предизвикува тивки 10ⁿ грешки.
- Игнорирање на верзијата/претпоставките на библиотеката. Понекогаш вештачката интелигенција може да произведе непостоечко име на функција или застарена синтакса; Тоа е забележливо кога ќе го стартувате.
Внимание: Пред да ставите нумерички резултат во публикација, задача или дизајн, тестирајте го кодот со независен познат случај и обезбедете го резултатот во единици/наредби. Дури и работниот код може да пресметува погрешна физика; Само затоа што кодот работи не значи дека физиката е точна.
Сумирано
AI е моќен партнер во преведувањето на физичките пресметки во кодот на Python; Но, бројките што ги дава вербално се проценки, а не факти. Безбедниот работен тек е јасен: дефинирајте го проблемот со неговите единици, вештачката интелигенција нека го напише кодот, но вие го стартувате излезот, тестирајте го кодот со позната ситуација, проверете ја конвергенцијата и единицата. Она што е детерминистичко е кодот што се извршува; Тоа не е LLM. Во следната единица ќе ја преместиме оваа нумеричка основа на симулација на временски различни физички системи.
Задача за апликација
Изберете физичко калкулус за кое го знаете аналитичкото решение (на пример, брзината на објект што слободно паѓа во одреден временски период или едноставен дефинитивен интеграл). Оставете ја вештачката интелигенција да напише Python код со шаблон 1; извршете го кодот сами. Споредете го резултатот со аналитичката вредност што ја знаете. Потоа набљудувајте како се однесува резултатот со менување на бројот на чекори или параметар. Забелешка во 5-6 реченици: дали излезот од кодот се совпаѓа со вербалното предвидување, дали има проблем со единицата/редот?
листа за проверка
- [ ] Го разјаснив проблемот и единицата на сите променливи.
- [ ] Ја користев шифрата напишана од самата вештачка интелигенција, не верував во вербалниот резултат.
- [ ] Го тестирав кодот со едноставна ситуација за која го знаев одговорот.
- [ ] Ја проверив конвергенцијата или чувствителноста на параметарот.
- [ ] Физички ја дадов единицата и редоследот на резултатот.
- [ ] Потврдив дека функциите на библиотеката што ги користам се реални и ажурирани.