Zyski:
- Możliwość polegania na deterministycznych danych wyjściowych, a nie na werbalnych domysłach, poprzez zlecanie sztucznej inteligencji tłumaczenia obliczeń fizycznych na kod NumPy/SciPy i uruchamianie samego kodu
- Umiejętność sprawdzenia wiarygodności kodu numerycznego poprzez przetestowanie go na prostej sytuacji, której odpowiedź jest znana i sprawdzenie jej zbieżności.
- Możliwość fizycznego podania jednostki i poziomu wyniku poprzez odzwierciedlenie zmiennych jednostek w kodzie
Wielu problemów w fizyce nie da się rozwiązać ręcznie: całka nie ma rozwiązania analitycznego, pierwiastka układu równań nie można znaleźć w postaci domkniętej, a obliczenia trzeba powtarzać tysiące razy. Tutaj z pomocą przychodzą metody numeryczne: zamiast dokładnego wzoru komputer oblicza krok po kroku z przybliżoną, ale kontrolowaną dokładnością. W tej części dowiesz się, jak wykorzystać sztuczną inteligencję (AI) jako partnera kodowego w obliczeniach z zakresu fizyki obliczeniowej, jak zweryfikować generowany przez nią kod i w jakie pułapki należy unikać. Standardowymi narzędziami fizyka będą tutaj język Python i NumPy (biblioteka tablic numerycznych i szybkiej matematyki), a także SciPy (biblioteka do obliczeń naukowych; obejmuje integrację, radykalne znajdowanie, optymalizację).
Dlaczego AI + Python, dlaczego nie ręcznie?
Ręczne wykonywanie obliczeń numerycznych jest powolne i podatne na błędy. Sztuczna inteligencja może w ciągu kilku sekund przetłumaczyć Twoją fizyczną konstrukcję na działający kod Pythona. Ale złota zasada brzmi: AI pisze kod, Ty uruchamiasz kod i sprawdzasz wynik za pomocą fizyki. Sztuczna inteligencja mówiąca „ten kod to daje” jest przewidywaniem; Właściwie uruchomienie kodu i obejrzenie wyniku jest faktem deterministycznym. LLM może „obliczyć” wynik kodu, który napisał w głowie i podać złą liczbę; natomiast uruchomienie tego samego kodu daje poprawny wynik. Dlatego nigdy nie ufaj wynikowi liczbowemu, który sztuczna inteligencja podaje ustnie — uruchom kod.
Podstawowe zadania obliczeniowe i rola AI
Zadanie
Metoda/narzędzie
weryfikacja fizyczna
Całka oznaczona
scipy.integrate.quad
Stany graniczne, analiza wymiarowa
pierwiastek równania
scipy.optimize.brentq
Umieść pierwiastek na miejscu i sprawdź, czy wynosi zero.
Układ równań liniowych
numpy.linalg.solve
Wprowadzanie rozwiązania z powrotem do systemu
Pochodna (numeryczna)
Różnica centralna lub numpy.gradient
Porównanie z wyprowadzeniem analitycznym
Obliczenia wektorów masowych
Tablice NumPy
Kontrola jednostek i rang
Sztuczna inteligencja bardzo dobrze radzi sobie z sugerowaniem, które z tych narzędzi jest odpowiednie i poprawną składnią (zasadami pisania kodu). Ale Ty decydujesz, która metoda ma sens fizyczny i dokładność wyniku.
Krok po kroku: weryfikowalne obliczenia numeryczne
1. Wyjaśnij problem i jednostki. Na przykład: „Oblicz całkę e^(−x²) od 0 do nieskończoności; wynik powinien wynosić √π/2 ≈ 0,8862”. Przepisanie oczekiwanego wyniku (jeśli taki istnieje) ułatwia weryfikację.
2. Poproś sztuczną inteligencję o kod, ale uruchom wynik. Skopiuj blok kodu i uruchom go we własnym środowisku (Jupyter, Colab, natywny Python).
3. Przetestuj w znanej sytuacji. Wypróbuj kod z prostą sytuacją, na którą znasz już odpowiedź. Na przykład przetestuj kod całkowy na przykładzie, który znasz ręcznie, takim jak ∫₀¹ x dx = 0,5. Jeśli kod podaje to poprawnie, Twoja pewność wzrasta.
4. Sprawdź zbieżność. W metodach numerycznych po zwiększeniu liczby kroków wynik powinien zbliżać się do wartości stałej. Jeśli się nie zbliża, metoda nie jest odpowiednia.
5. Sprawdź jednostkę i rangę. Zawsze podawaj wynik liczbowy z jednostką fizyczną i kolejnością.
Wskazówka: żądając kodu od sztucznej inteligencji, powiedz „dołącz także linię testową, która porównuje wynik ze znaną wartością analityczną”. Zatem kod zarówno wykonuje obliczenia, jak i testuje się w znanej sytuacji. Dzięki temu błędy są natychmiast widoczne.
trzy mini etui
Przypadek 1 – Nieprawidłowy wniosek ustny. Uczeń poprosił sztuczną inteligencję o napisanie kodu całkowego, a sztuczna inteligencja powiedziała „ten kod daje około 1,77”. Uczeń uruchomił kod: rzeczywisty wynik wyniósł 0,886. Sztuczna inteligencja popełniła błąd, przewidując wynik kodu; Kod był poprawny. Lekcja: zaufaj kodowi, nie ufaj werbalnym domysłom.
Przypadek 2 — Niestabilność numeryczna. Badacz szukał pierwiastka równania za pomocą kodu znajdowania pierwiastków napisanego przez sztuczną inteligencję. Kod zwrócił pierwiastek, ale kiedy badacz ponownie umieścił pierwiastek w równaniu, wynikiem nie było zero, ale bardzo duża liczba. Problem polegał na tym, że zakres początkowy nie zawierał pierwiastka; AI założyła odpowiedni zasięg. Badacz skorygował przedział za pomocą informacji fizycznych i znalazł właściwy pierwiastek.
Przypadek 3 – Uzyskane potwierdzenie. Inżynier potrzebował kodu, który obliczałby numerycznie ugięcie belki pod obciążeniem. Kod zadziałał, ale wynik pokazał metry ugięcia – niemożliwe w przypadku stalowej belki. Inżynier sprawdził jednostki: sztuczna inteligencja udawała, że ma moduł sprężystości w Pa zamiast GPa, pomijając współczynnik 10⁹. Po korekcie jednostkowej wynik spadł do milimetrów i był rozsądny.
Cztery szablony do kopiowania
1) Obliczenia numeryczne z linią walidacyjną:
Napisz kod w języku Python (NumPy/SciPy), który wykona następujące obliczenia fizyczne: [problem]. Zadeklaruj wszystkie zmienne w jednostkach SI i określ jednostkę za pomocą linii komentarza. Dodaj linię kontrolną (potwierdź lub wydrukuj) na końcu kodu, która porównuje wynik ze znaną wartością analityczną/prostą. Uruchomię kod; nie zgadujesz wyniku, po prostu napisz kod i oczekiwaną rangę.
2) Konsultacje dotyczące wyboru metody:
Chcę rozwiązać numerycznie następujący problem: [problem]. Która funkcja SciPy/NumPy jest odpowiednia i DLACZEGO? Zaproponuj 2 alternatywne metody, zapisz zalety i wady każdej z nich pod względem dokładności i stabilności. Określ, który z nich powinien być preferowany w jakiej sytuacji fizycznej.
3) Kontrola zbieżności:
Napisz kod w języku Python, który pokaże, w jaki sposób wynik jest zbieżny, zwiększając liczbę kroków poniższego obliczenia numerycznego (np. N=10, 100, 1000). Wydrukuj wyniki w tabeli. Jeśli nie ma zbieżności, wyjaśnij w jednym zdaniu fizyczny/liczbowy powód tego zjawiska. Kod: [tutaj]
4) Sterowanie jednostką:
W poniższym kodzie skomentuj jednostkę SI każdej zmiennej i sprawdź, czy jednostka wyniku końcowego jest zgodna z jednostką oczekiwaną (np. metr, dżul). Jeśli jest niespójność, pokaż, w którym wierszu się ona znajduje. Kod: [tutaj]
Słaba zachęta/silna zachęta
Słabe: „Powiedz wynik tej całki: ∫₀^∞ x²·e^(−x) dx”
Wynik: sztuczna inteligencja wypluwa w myślach liczbę (może ma rację, może nie); nic wykonywalnego, nic sprawdzalnego.
Strong: „Napisz kod w Pythonie, który obliczy całkę ∫₀^∞ x²·e^(−x) dx za pomocą scipy.integrate.quad. Dodaj linię potwierdzenia, która porównuje wynik z wartością analityczną tej całki, 2! = 2. Uruchomię kod.”
Wynik: Kod wykonywalny, wbudowana walidacja (porównanie z wartością analityczną) i wiarygodny wynik.
Typowe błędy
- Opieranie się na słownym wyniku liczbowym AI. LLM może błędnie przewidzieć wynik kodu w nagłówku. Zawsze uruchamiaj kod.
- Nie testuję w znanej sytuacji. Kod, który nie jest testowany na prostym przykładzie, na który znasz odpowiedź, może zawierać ukryte błędy.
- Nie sprawdzam zbieżności. Trzymanie się liczby pojedynczych kroków zaciemnia to, czy wynik jest liczbowo wiarygodny.
- Nie odzwierciedla jednostek w kodzie. Niekomentowanie jednostki zmiennych powoduje ciche błędy 10ⁿ.
- Ignorowanie wersji/założeń biblioteki. Czasami sztuczna inteligencja może wygenerować nieistniejącą nazwę funkcji lub przestarzałą składnię; Jest to zauważalne po uruchomieniu.
Uwaga: Przed umieszczeniem wyniku liczbowego w publikacji, zadaniu lub projekcie przetestuj kod na niezależnym znanym przypadku i podaj wynik w jednostkach/rzędach. Nawet działający kod może obliczać niewłaściwą fizykę; To, że kod działa, nie oznacza, że fizyka jest prawidłowa.
Podsumowując
Sztuczna inteligencja jest potężnym partnerem w tłumaczeniu obliczeń fizycznych na kod Pythona; Liczby, które podaje ustnie, są szacunkami, a nie faktami. Bezpieczny przepływ pracy jest jasny: zdefiniuj problem za pomocą jego jednostek, poproś sztuczną inteligencję o napisanie kodu, ale uruchom wynik, przetestuj kod ze znaną sytuacją, sprawdź zbieżność i jednostkę. Deterministyczny jest kod, który jest wykonywany; To nie jest LLM. W następnej części przeniesiemy te podstawy numeryczne do symulacji układów fizycznych zmieniających się w czasie.
Zadanie aplikacji
Wybierz rachunek fizyczny, dla którego znasz rozwiązanie analityczne (na przykład prędkość swobodnie spadającego obiektu w czasie lub prostą całkę oznaczoną). Niech sztuczna inteligencja napisze kod Pythona z szablonem 1; uruchom kod samodzielnie. Porównaj wynik ze znaną wartością analityczną. Następnie obserwuj, jak zachowuje się wynik, zmieniając liczbę kroków lub parametr. Uwaga w 5–6 zdaniach: czy wynik kodu był zgodny z przewidywaniami słownymi, czy wystąpił problem z jednostką/zamówieniem?
lista kontrolna
- [ ] Wyjaśniłem problem i jednostkę wszystkich zmiennych.
- [ ] Sam uruchomiłem kod napisany przez AI, nie ufałem wynikowi werbalnemu.
- [ ] Przetestowałem kod w prostej sytuacji, na którą znałem odpowiedź.
- [ ] Sprawdziłem zbieżność lub czułość parametrów.
- [ ] Fizycznie podałem jednostkę i kolejność wyniku.
- [ ] Sprawdziłem, czy funkcje biblioteczne, których używam, są prawdziwe i aktualne.