Winst:
- Mogelijkheid om te vertrouwen op deterministische output, niet op verbaal giswerk, door de AI een fysieke berekening te laten vertalen naar NumPy/SciPy-code en de code zelf uit te voeren
- Vermogen om de betrouwbaarheid van een numerieke code te verifiëren door deze te testen met een eenvoudige situatie waarvan het antwoord bekend is en door de convergentie ervan te controleren.
- Mogelijkheid om de eenheid en het niveau van het resultaat fysiek aan te geven door variabele eenheden in de code weer te geven
Veel problemen in de natuurkunde kunnen niet met de hand worden opgelost: een integraal heeft geen analytische oplossing, de wortel van een stelsel vergelijkingen kan niet in gesloten vorm worden gevonden, of een berekening moet duizenden keren worden herhaald. Dit is waar numerieke methoden een rol gaan spelen: in plaats van een exacte formule berekent de computer stap voor stap met benaderende maar gecontroleerde nauwkeurigheid. In dit onderdeel leer je hoe je kunstmatige intelligentie (AI) kunt gebruiken als codepartner voor computationele natuurkundige berekeningen, hoe je de code die het produceert kunt verifiëren en in welke valkuilen je moet vermijden. De standaardinstrumenten van de natuurkundige hier zullen de Python-taal en NumPy (bibliotheek voor numerieke arrays en snelle wiskunde) zijn, evenals SciPy (bibliotheek voor wetenschappelijk computergebruik; omvat integratie, radicale vondsten, optimalisatie).
Waarom AI + Python, waarom niet met de hand?
Het handmatig uitvoeren van numerieke berekeningen is langzaam en foutgevoelig. AI kan uw fysieke constructie binnen enkele seconden vertalen naar een actieve Python-code. Maar de gouden regel hier is: AI schrijft de code, jij voert de code uit en verifieert het resultaat met natuurkunde. De AI die zegt ‘deze code geeft dat’ is een voorspelling; Het daadwerkelijk uitvoeren van de code en het zien van de uitvoer is een deterministisch feit. Een LLM kan de uitvoer van de code die hij in zijn hoofd heeft geschreven 'berekenen' en een verkeerd getal zeggen; terwijl wanneer dezelfde code wordt uitgevoerd, dit het juiste resultaat oplevert. Vertrouw dus nooit op het numerieke resultaat dat de AI mondeling geeft – voer de code uit.
Fundamentele rekentaken en de rol van AI
Zoektocht
Methode/tool
fysieke verificatie
bepaalde integraal
scipy.integrate.quad
Grenstoestanden, dimensionale analyse
wortel van de vergelijking
scipy.optimize.brentq
Plaats de wortel op zijn plaats en controleer of deze nul is.
Systeem van lineaire vergelijkingen
numpy.linalg.solve
De oplossing terug in het systeem plaatsen
Afgeleide (numeriek)
Centraal verschil of numpy.gradiënt
Vergelijking met analytische afleiding
Bulkvectorberekening
NumPy-arrays
Eenheids- en rangcontrole
AI is erg goed in het suggereren welke van deze tools geschikt is en in het correct krijgen van de syntaxis (regels voor het schrijven van code). Maar u beslist welke methode fysiek zinvol is en de nauwkeurigheid van het resultaat.
Stap voor stap: een controleerbare numerieke berekening
1. Verduidelijk het probleem en de eenheden. Bijvoorbeeld: "Bereken de integraal e^(−x²) van 0 tot oneindig; het resultaat moet √π/2 ≈ 0,8862 zijn." Het herschrijven van het verwachte resultaat (indien aanwezig) maakt de verificatie eenvoudiger.
2. Vraag de AI om de code, maar jij voert de uitvoer uit. Kopieer het codeblok en voer het uit in uw eigen omgeving (Jupyter, Colab, native Python).
3. Test met een bekende situatie. Probeer de code met een eenvoudige situatie waarvan je het antwoord al weet. Test bijvoorbeeld een integrale code met een voorbeeld dat u uit de hand kent, zoals ∫₀¹ x dx = 0,5. Als de code dit correct weergeeft, neemt uw zelfvertrouwen toe.
4. Controleer op convergentie. Als u bij numerieke methoden het aantal stappen vergroot, moet het resultaat een constante waarde benaderen. Als het niet nadert, is de methode niet geschikt.
5. Controleer eenheid en rang. Geef het numerieke resultaat altijd op met de fysieke eenheid en volgorde.
Tip: Wanneer u code van de AI aanvraagt, zeg dan “voeg ook een testregel toe die het resultaat vergelijkt met een bekende analytische waarde.” De code voert dus zowel de berekening uit als test zichzelf in een bekende situatie. Hierdoor worden fouten direct zichtbaar.
drie minikoffers
Geval 1 — Onjuiste mondelinge conclusie. Een student liet AI een integrale code schrijven en AI zei: "deze code geeft ongeveer 1,77." De leerling voerde de code uit: de werkelijke uitvoer was 0,886. De AI had een fout gemaakt bij het voorspellen van de uitvoer van de code; De code klopte. Les: vertrouw op de code, vertrouw niet op de verbale gok.
Geval 2 — Numerieke instabiliteit. Een onderzoeker zocht naar de wortel van een vergelijking met een wortelzoekcode die AI schreef. De code retourneerde een wortel, maar toen de onderzoeker de wortel terug in de vergelijking plaatste, was het resultaat niet nul, maar een heel groot getal. Het probleem was dat het startbereik niet de root bevatte; De AI ging uit van het juiste bereik. De onderzoeker corrigeerde het interval met fysieke informatie en vond de juiste wortel.
Geval 3 — Bevestiging verkregen. Een ingenieur wilde een code die numeriek de doorbuiging van een balk onder belasting berekende. De code werkte, maar het resultaat liet meters doorbuiging zien – onmogelijk voor een stalen balk. De ingenieur onderzocht de eenheden: de AI had gedaan alsof hij de elasticiteitsmodulus in Pa had in plaats van GPa, waarbij hij een factor 10⁹ miste. Met de eenheidscorrectie daalde het resultaat tot millimeters en was het redelijk.
Vier kopieerbare sjablonen
1) Numerieke berekening met validatieregel:
Schrijf Python-code (NumPy/SciPy) die de volgende fysieke berekening uitvoert: [probleem]. Declareer alle variabelen in SI-eenheden en specificeer de eenheid met een commentaarregel. Voeg een controleregel (beweren of afdrukken) toe aan het einde van de code die het resultaat vergelijkt met een bekende analytische/eenvoudige waarde. Ik zal de code uitvoeren; je raadt de uitvoer niet, schrijf gewoon de code en de verwachte rang.
2) Methodekeuzeadvies:
Ik wil het volgende probleem numeriek oplossen: [probleem]. Welke SciPy/NumPy-functie is geschikt en WAAROM? Stel twee alternatieve methoden voor en noteer de voor- en nadelen van elke methode in termen van nauwkeurigheid en stabiliteit. Geef aan welke de voorkeur verdient in welke fysieke situatie.
3) Convergentiecontrole:
Schrijf Python-code die laat zien hoe het resultaat convergeert door het aantal stappen van de volgende numerieke berekening te vergroten (bijvoorbeeld N=10, 100, 1000). Print de resultaten in een tabel. Als er geen convergentie is, leg dan in één zin de fysieke/numerieke reden hiervoor uit. Code: [hier]
4) Eenheidscontrole:
Geef in de onderstaande code commentaar op de SI-eenheid van elke variabele en controleer of de eenheid van het eindresultaat consistent is met de verwachte eenheid (bijvoorbeeld meter, joule). Als er een inconsistentie is, laat dan zien in welke regel deze staat. Code: [hier]
Zwakke prompt/sterke prompt
Zwak: "Zeg het resultaat van deze integraal: ∫₀^∞ x²·e^(−x) dx"
Resultaat: De AI spuugt een getal in zijn hoofd uit (misschien goed, misschien fout); niets uitvoerbaar, niets verifieerbaar.
Strong: "Schrijf Python-code die de integraal ∫₀^∞ x²·e^(−x) dx berekent met scipy.integrate.quad. Voeg een assert-regel toe die het resultaat vergelijkt met de analytische waarde van deze integraal, 2! = 2. Ik zal de code uitvoeren."
Resultaat: Uitvoerbare code, ingebouwde validatie (vergelijking met analytische waarde) en betrouwbaar resultaat.
Veel voorkomende fouten
- Vertrouwend op het verbale numerieke resultaat van de AI. LLM kan de uitvoer van de code in het hoofd verkeerd voorspellen. Voer altijd de code uit.
- Niet testen met bekende situatie. Code die niet test met een eenvoudig voorbeeld waarvan u het antwoord weet, kan verborgen fouten bevatten.
- Er wordt niet gecontroleerd op convergentie. Vasthouden aan een enkele staptelling verhult de vraag of het resultaat numeriek betrouwbaar is.
- Geeft de eenheden in de code niet weer. Het niet becommentariëren van de eenheid van variabelen leidt tot stille 10ⁿ fouten.
- Bibliotheekversie/-aannames negeren. Soms produceert AI een niet-bestaande functienaam of een verouderde syntaxis; Het is merkbaar als je ermee aan de slag gaat.
Let op: Voordat u een numeriek resultaat in een publicatie, opdracht of ontwerp plaatst, test u de code met een onafhankelijk bekend geval en geeft u het resultaat op in eenheden/orders. Zelfs werkende code berekent mogelijk de verkeerde natuurkunde; Het feit dat de code werkt, betekent niet dat de fysica correct is.
Samengevat
AI is een krachtige partner bij het vertalen van fysieke berekeningen naar Python-code; Maar de cijfers die hij mondeling geeft zijn schattingen, geen feiten. De veilige workflow is duidelijk: definieer het probleem met zijn eenheden, laat de AI de code schrijven maar jij voert de uitvoer uit, test de code met een bekende situatie, controleer de convergentie en de eenheid. Wat deterministisch is, is de code die wordt uitgevoerd; Het is geen LLM. In de volgende unit zullen we deze numerieke basis verplaatsen naar de simulatie van tijdsvariërende fysieke systemen.
Applicatie taak
Kies een natuurkundige berekening waarvan je de analytische oplossing kent (bijvoorbeeld de snelheid van een vrij vallend object over een bepaalde periode of een eenvoudige, welomlijnde integraal). Laat de AI een Python-code schrijven met template 1; voer de code zelf uit. Vergelijk het resultaat met de analytische waarde die u kent. Kijk vervolgens hoe het resultaat zich gedraagt door het aantal stappen of een parameter te wijzigen. Noteer in 5-6 zinnen: kwam de uitvoer van de code overeen met de verbale voorspelling, was er een probleem met de eenheid/volgorde?
controlelijst
- [ ] Ik heb het probleem en de eenheid van alle variabelen verduidelijkt.
- [ ] Ik heb de door de AI geschreven code zelf uitgevoerd, ik vertrouwde het verbale resultaat niet.
- [ ] Ik heb de code getest met een eenvoudige situatie waarvan ik het antwoord wist.
- [ ] Ik heb de convergentie of parametergevoeligheid gecontroleerd.
- [ ] Ik heb fysiek de eenheid en volgorde van het resultaat opgegeven.
- [ ] Ik heb geverifieerd dat de bibliotheekfuncties die ik gebruik echt en up-to-date zijn.