Câștiguri:
- Abilitatea de a se baza pe rezultate deterministe, nu pe presupuneri verbale, punând AI să traducă un calcul fizic în cod NumPy/SciPy și să ruleze codul în sine
- Capacitatea de a verifica fiabilitatea unui cod numeric testându-l cu o situație simplă al cărei răspuns este cunoscut și verificând convergența acestuia.
- Abilitatea de a furniza fizic unitatea și nivelul rezultatului prin reflectarea unităților variabile în cod
Multe probleme din fizică nu pot fi rezolvate manual: o integrală nu are soluție analitică, rădăcina unui sistem de ecuații nu poate fi găsită în formă închisă sau un calcul trebuie repetat de mii de ori. Aici intră în joc metodele numerice: în loc de o formulă exactă, computerul calculează pas cu pas cu o precizie aproximativă, dar controlată. În această unitate, veți învăța cum să utilizați inteligența artificială (AI) ca partener de cod pentru calculele de fizică computațională, cum să verificați codul pe care îl produce și în ce capcane ar trebui să evitați să cazați. Instrumentele standard ale fizicianului vor fi limbajul Python și NumPy (biblioteca pentru matrice numerice și matematică rapidă), precum și SciPy (biblioteca pentru calcul științific; include integrare, găsire radicală, optimizare).
De ce AI + Python, de ce nu manual?
Efectuarea manuală a calculelor numerice este atât lentă, cât și predispusă la erori. AI vă poate traduce construcția fizică într-un cod Python care rulează în câteva secunde. Dar regula de aur aici este: AI scrie codul, tu rulezi codul și verifici rezultatul cu fizica. AI care spune „acest cod dă asta” este o predicție; De fapt, rularea codului și vizualizarea rezultatului este un fapt determinist. Un LLM ar putea „calcula” rezultatul codului pe care l-a scris în cap și să spună un număr greșit; în timp ce atunci când se rulează același cod, acesta dă rezultatul corect. Așa că nu aveți încredere niciodată în rezultatul numeric pe care AI o dă verbal - rulați codul.
Sarcini de calcul de bază și rolul AI
Căutare
Metoda/instrument
verificare fizică
integrală definită
scipy.integrate.quad
Stări limită, analiză dimensională
rădăcina ecuației
scipy.optimize.brentq
Pune rădăcina la loc și verifică dacă este zero.
Sistem de ecuații liniare
numpy.linalg.solve
Introducerea soluției înapoi în sistem
Derivată (numerică)
Diferența centrală sau numpy.gradient
Comparație cu derivarea analitică
Calcul vectorial în vrac
tablouri NumPy
Controlul unității și gradului
AI este foarte bun să sugereze care dintre aceste instrumente este adecvat și să obțină corectă sintaxa (regulile de scriere a codului). Dar tu decizi ce metodă are sens fizic și acuratețea rezultatului.
Pas cu pas: un calcul numeric verificabil
1. Clarificați problema și unitățile. De exemplu: „Calculați integrala e^(−x²) de la 0 la infinit; rezultatul ar trebui să fie √π/2 ≈ 0,8862.” Rescrierea rezultatului așteptat (dacă există) face verificarea mai ușoară.
2. Cereți codul AI-ului, dar rulați ieșirea. Copiați blocul de cod și rulați-l în propriul mediu (Jupyter, Colab, Python nativ).
3. Testați cu o situație cunoscută. Încercați codul cu o situație simplă la care știți deja răspunsul. De exemplu, testați un cod integral cu un exemplu pe care îl cunoașteți manual, cum ar fi ∫₀¹ x dx = 0,5. Dacă codul oferă acest lucru corect, încrederea dvs. crește.
4. Verificați convergența. În metodele numerice, atunci când creșteți numărul de pași, rezultatul ar trebui să se apropie de o valoare constantă. Dacă nu se apropie, metoda nu este potrivită.
5. Verificați unitatea și rangul. Furnizați întotdeauna rezultatul numeric cu unitatea fizică și ordinea.
Sfat: când solicitați cod de la AI, spuneți „includeți și o linie de test care compară rezultatul cu o valoare analitică cunoscută”. Astfel, codul efectuează atât calculul, cât și se testează singur într-o situație cunoscută. Acest lucru face erorile vizibile imediat.
trei mini cutii
Cazul 1 – Concluzie orală incorectă. Un student a cerut AI să scrie un cod integral, iar AI a spus „acest cod dă aproximativ 1,77”. Studentul a rulat codul: ieșirea reală a fost 0,886. AI făcuse o greșeală în a prezice rezultatul codului; Codul a fost corect. Lecție: aveți încredere în cod, nu aveți încredere în presupunerea verbală.
Cazul 2 — Instabilitate numerică. Un cercetător a căutat rădăcina unei ecuații cu un cod de găsire a rădăcinii pe care l-a scris AI. Codul a returnat o rădăcină, dar când cercetătorul a pus rădăcina înapoi în ecuație, rezultatul nu a fost zero, ci un număr foarte mare. Problema era că intervalul de pornire nu conținea rădăcina; AI a asumat intervalul adecvat. Cercetătorul a corectat intervalul cu informații fizice și a găsit rădăcina corectă.
Cazul 3 — Confirmare obținută. Un inginer a vrut un cod care să calculeze numeric deformarea unei grinzi sub sarcină. Codul a funcționat, dar rezultatul a arătat metri de deformare – imposibilă pentru o grindă de oțel. Inginerul a examinat unitățile: AI se prefăcuse că are modulul elastic în Pa în loc de GPa, lipsind un factor de 10⁹. Odată cu corecția unității, rezultatul a scăzut la milimetri și a fost rezonabil.
Patru șabloane copiabile
1) Calcul numeric cu linie de validare:
Scrieți codul Python (NumPy/SciPy) care efectuează următorul calcul fizic: [problemă]. Declarați toate variabilele în unități SI și specificați unitatea cu o linie de comentariu. Adăugați o linie de verificare (afirmare sau imprimare) la sfârșitul codului care compară rezultatul cu o valoare analitică/simple cunoscută. Voi rula codul; nu ghiciți rezultatul, scrieți doar codul și rangul așteptat.
2) Consultare pentru alegerea metodei:
Vreau să rezolv numeric următoarea problemă: [problemă].Care funcție SciPy/NumPy este adecvată și DE CE? Sugerează 2 metode alternative, notează argumentele pro/contra fiecăreia în ceea ce privește acuratețea și stabilitatea. Spuneți care ar trebui să fie preferat în ce situație fizică.
3) Verificarea convergenței:
Scrieți codul Python care arată cum converge rezultatul prin creșterea numărului de pași din următorul calcul numeric (de exemplu, N=10, 100, 1000). Imprimați rezultatele într-un tabel. Dacă nu există convergență, explicați motivul fizic/numeric pentru aceasta într-o singură propoziție. Cod: [aici]
4) Controlul unității:
În codul de mai jos, comentați unitatea SI a fiecărei variabile și verificați dacă unitatea rezultatului final este în concordanță cu unitatea așteptată (de exemplu, metru, joule). Dacă există o inconsecvență, arătați în ce linie se află. Cod: [aici]
Prompt slab / Prompt puternic
Slab: „Spuneți rezultatul acestei integrale: ∫₀^∞ x²·e^(−x) dx”
Rezultat: AI scuipă un număr în cap (poate corect, poate greșit); nimic executabil, nimic verificabil.
Strong: „Scrieți codul Python care calculează integrala ∫₀^∞ x²·e^(−x) dx cu scipy.integrate.quad. Adăugați o linie de afirmare care compară rezultatul cu valoarea analitică a acestei integrale, 2! = 2. Voi rula codul."
Rezultat: Cod executabil, validare încorporată (comparație cu valoarea analitică) și rezultat fiabil.
Greșeli comune
- Bazându-se pe rezultatul numeric verbal al AI. LLM poate prezice incorect rezultatul codului din cap. Rulați întotdeauna codul.
- Nu se testează cu situația cunoscută. Cod care nu testează cu un exemplu simplu la care știi că răspunsul poate conține erori ascunse.
- Nu se verifică convergența. A rămâne cu un singur număr de pași ascunde dacă rezultatul este fiabil din punct de vedere numeric.
- Nu reflectă unitățile din cod. Necomentarea unității de variabile provoacă erori 10ⁿ.
- Ignorarea versiunii/ipotezelor bibliotecii. Uneori AI poate produce un nume de funcție inexistent sau o sintaxă învechită; Se observă când îl rulezi.
Atenție: înainte de a introduce un rezultat numeric într-o publicație, o misiune sau un design, testați codul cu un caz cunoscut independent și furnizați rezultatul în unități/comenzi. Chiar și codul de lucru poate calcula o fizică greșită; Doar pentru că codul funcționează nu înseamnă că fizica este corectă.
În concluzie
AI este un partener puternic în traducerea calculelor fizice în cod Python; Dar cifrele pe care le dă verbal sunt estimări, nu fapte. Fluxul de lucru sigur este clar: definiți problema cu unitățile sale, puneți AI-ul să scrie codul, dar executați rezultatul, testați codul cu o situație cunoscută, verificați convergența și unitatea. Ceea ce este determinist este codul care este executat; Nu este un LLM. În unitatea următoare vom muta această bază numerică la simularea sistemelor fizice care variază în timp.
Sarcina de aplicare
Alegeți un calcul fizic pentru care cunoașteți soluția analitică (de exemplu, viteza unui obiect în cădere liberă pe o perioadă de timp sau o integrală simplă definită). Puneți AI să scrie un cod Python cu șablonul 1; rulați singur codul. Comparați rezultatul cu valoarea analitică pe care o cunoașteți. Apoi observați cum se comportă rezultatul schimbând numărul de pași sau un parametru. Notă în 5-6 propoziții: rezultatul codului se potrivește cu predicția verbală, a existat o problemă de unitate/ordine?
lista de verificare
- [ ] Am clarificat problema și unitatea tuturor variabilelor.
- [ ] Am rulat chiar eu codul scris de AI, nu am avut încredere în rezultatul verbal.
- [ ] Am testat codul cu o situație simplă pentru care știam răspunsul.
- [ ] Am verificat convergența sau sensibilitatea parametrilor.
- [ ] Am furnizat fizic unitatea și ordinea rezultatului.
- [ ] Am verificat că funcțiile bibliotecii pe care le folosesc sunt reale și actualizate.