Κέρδη:
- Δυνατότητα να βασίζεστε σε ντετερμινιστική έξοδο, όχι σε λεκτική εικασία, ζητώντας από το AI να μεταφράσει έναν φυσικό υπολογισμό σε κώδικα NumPy/SciPy και να εκτελέσει τον ίδιο τον κώδικα
- Δυνατότητα επαλήθευσης της αξιοπιστίας ενός αριθμητικού κώδικα δοκιμάζοντας τον με μια απλή κατάσταση της οποίας η απάντηση είναι γνωστή και ελέγχοντας τη σύγκλιση του.
- Δυνατότητα φυσικής παροχής της μονάδας και του επιπέδου του αποτελέσματος αντανακλώντας μεταβλητές μονάδες στον κώδικα
Πολλά προβλήματα στη φυσική δεν μπορούν να λυθούν με το χέρι: ένα ολοκλήρωμα δεν έχει αναλυτική λύση, η ρίζα ενός συστήματος εξισώσεων δεν μπορεί να βρεθεί σε κλειστή μορφή ή ένας υπολογισμός πρέπει να επαναληφθεί χιλιάδες φορές. Εδώ μπαίνουν στο παιχνίδι οι αριθμητικές μέθοδοι: αντί για έναν ακριβή τύπο, ο υπολογιστής υπολογίζει βήμα προς βήμα με κατά προσέγγιση αλλά ελεγχόμενη ακρίβεια. Σε αυτή την ενότητα, θα μάθετε πώς να χρησιμοποιείτε την τεχνητή νοημοσύνη (AI) ως συνεργάτη κώδικα για υπολογισμούς υπολογιστικής φυσικής, πώς να επαληθεύετε τον κώδικα που παράγει και σε ποιες παγίδες δεν πρέπει να πέσετε. Τα τυπικά εργαλεία του φυσικού εδώ θα είναι η γλώσσα Python και η NumPy (βιβλιοθήκη για αριθμητικούς πίνακες και γρήγορα μαθηματικά) καθώς και η SciPy (βιβλιοθήκη για επιστημονικούς υπολογισμούς, περιλαμβάνει ολοκλήρωση, ριζική εύρεση, βελτιστοποίηση).
Γιατί AI + Python, γιατί όχι με το χέρι;
Η εκτέλεση αριθμητικών υπολογισμών με το χέρι είναι αργή και επιρρεπής σε σφάλματα. Το AI μπορεί να μεταφράσει τη φυσική σας κατασκευή σε κώδικα Python που εκτελείται σε λίγα δευτερόλεπτα. Αλλά ο χρυσός κανόνας εδώ είναι: Η τεχνητή νοημοσύνη γράφει τον κώδικα, εσείς εκτελείτε τον κώδικα και επαληθεύετε το αποτέλεσμα με τη φυσική. Το AI που λέει "αυτός ο κώδικας το δίνει αυτό" είναι μια πρόβλεψη. Στην πραγματικότητα, η εκτέλεση του κώδικα και η προβολή της εξόδου είναι ένα ντετερμινιστικό γεγονός. Ένας LLM μπορεί να "υπολογίσει" την έξοδο του κώδικα που έγραψε στο κεφάλι του και να πει έναν λάθος αριθμό. ενώ όταν εκτελείται ο ίδιος κώδικας δίνει το σωστό αποτέλεσμα. Επομένως, μην εμπιστεύεστε ποτέ το αριθμητικό αποτέλεσμα που δίνει προφορικά το AI — εκτελέστε τον κώδικα.
Βασικές υπολογιστικές εργασίες και ο ρόλος του AI
Αναζήτηση
Μέθοδος/εργαλείο
φυσική επαλήθευση
οριστικό ολοκλήρωμα
scipy.ενσωματώνω.τετράγωνος
Οριακές καταστάσεις, ανάλυση διαστάσεων
ρίζα της εξίσωσης
scipy.optimize.brentq
Βάλτε τη ρίζα στη θέση του και ελέγξτε αν είναι μηδέν.
Σύστημα γραμμικών εξισώσεων
numpy.linalg.solve
Επαναφορά της λύσης στο σύστημα
Παράγωγο (αριθμητικό)
Κεντρική διαφορά ή numpy.gradient
Σύγκριση με αναλυτική παραγωγή
Μαζικός διανυσματικός υπολογισμός
Πίνακες NumPy
Έλεγχος μονάδων και κατάταξης
Το AI είναι πολύ καλό στο να προτείνει ποιο από αυτά τα εργαλεία είναι κατάλληλο και να κάνει σωστή τη σύνταξη (κανόνες γραφής κώδικα). Αλλά εσείς αποφασίζετε ποια μέθοδος έχει φυσική λογική και την ακρίβεια του αποτελέσματος.
Βήμα προς βήμα: επαληθεύσιμος αριθμητικός υπολογισμός
1. Διευκρινίστε το πρόβλημα και τις μονάδες. Για παράδειγμα: "Υπολογίστε το ολοκλήρωμα e^(−x²) από το 0 στο άπειρο, το αποτέλεσμα θα πρέπει να είναι √π/2 ≈ 0,8862." Η επανεγγραφή του αναμενόμενου αποτελέσματος (αν υπάρχει) διευκολύνει την επαλήθευση.
2. Ζητήστε από το AI τον κωδικό, αλλά εκτελείτε την έξοδο. Αντιγράψτε το μπλοκ κώδικα και εκτελέστε το στο δικό σας περιβάλλον (Jupyter, Colab, native Python).
3. Δοκιμή με μια γνωστή κατάσταση. Δοκιμάστε τον κωδικό με μια απλή κατάσταση στην οποία γνωρίζετε ήδη την απάντηση. Για παράδειγμα, δοκιμάστε έναν ολοκληρωμένο κώδικα με ένα παράδειγμα που γνωρίζετε με το χέρι, όπως ∫₀1 x dx = 0,5. Εάν ο κωδικός το δίνει σωστά, η εμπιστοσύνη σας αυξάνεται.
4. Ελέγξτε για σύγκλιση. Στις αριθμητικές μεθόδους, όταν αυξάνετε τον αριθμό των βημάτων, το αποτέλεσμα πρέπει να προσεγγίζει μια σταθερή τιμή. Εάν δεν πλησιάσει, η μέθοδος δεν είναι κατάλληλη.
5. Ελέγξτε τη μονάδα και την κατάταξη. Παρέχετε πάντα το αριθμητικό αποτέλεσμα με τη φυσική μονάδα και τη σειρά.
Συμβουλή: Όταν ζητάτε κωδικό από το AI, πείτε "συμπεριλάβετε επίσης μια δοκιμαστική γραμμή που συγκρίνει το αποτέλεσμα με μια γνωστή αναλυτική τιμή". Έτσι, ο κώδικας εκτελεί τον υπολογισμό και δοκιμάζει τον εαυτό του σε μια γνωστή κατάσταση. Αυτό κάνει τα σφάλματα αμέσως ορατά.
τρεις μίνι θήκες
Περίπτωση 1 — Εσφαλμένο προφορικό συμπέρασμα. Ένας μαθητής έβαλε το AI να γράψει έναν ολοκληρωμένο κώδικα και το AI είπε "αυτός ο κωδικός δίνει περίπου 1,77." Ο μαθητής έτρεξε τον κωδικό: η πραγματική έξοδος ήταν 0,886. Το AI είχε κάνει λάθος στην πρόβλεψη της εξόδου του κώδικα. Ο κωδικός ήταν σωστός. Μάθημα: εμπιστεύσου τον κώδικα, μην εμπιστεύεσαι τη λεκτική εικασία.
Περίπτωση 2 — Αριθμητική αστάθεια. Ένας ερευνητής αναζήτησε τη ρίζα μιας εξίσωσης με έναν κώδικα εύρεσης ρίζας που έγραψε το AI. Ο κώδικας επέστρεψε μια ρίζα, αλλά όταν ο ερευνητής έβαλε ξανά τη ρίζα στην εξίσωση, το αποτέλεσμα δεν ήταν μηδέν αλλά ένας πολύ μεγάλος αριθμός. Το πρόβλημα ήταν ότι το εύρος εκκίνησης δεν περιείχε τη ρίζα. Το AI έλαβε το κατάλληλο εύρος. Ο ερευνητής διόρθωσε το διάστημα με φυσικές πληροφορίες και βρήκε τη σωστή ρίζα.
Περίπτωση 3 — Επιβεβαίωση. Ένας μηχανικός ήθελε έναν κωδικό που να υπολογίζει αριθμητικά την εκτροπή μιας δοκού υπό φορτίο. Ο κώδικας λειτούργησε, αλλά το αποτέλεσμα έδειξε μέτρα απόκλισης - αδύνατο για μια χαλύβδινη δοκό. Ο μηχανικός εξέτασε τις μονάδες: το AI είχε προσποιηθεί ότι είχε το μέτρο ελαστικότητας σε Pa αντί για GPa, χάνοντας έναν παράγοντα 10⁹. Με τη διόρθωση μονάδας, το αποτέλεσμα μειώθηκε στα χιλιοστά και ήταν λογικό.
Τέσσερα πρότυπα με δυνατότητα αντιγραφής
1) Αριθμητικός υπολογισμός με γραμμή επικύρωσης:
Γράψτε κώδικα Python (NumPy/SciPy) που εκτελεί τον ακόλουθο φυσικό υπολογισμό: [πρόβλημα]. Δηλώστε όλες τις μεταβλητές σε μονάδες SI και προσδιορίστε τη μονάδα με μια γραμμή σχολίου. Προσθέστε μια γραμμή ελέγχου (διαβεβαίωση ή εκτύπωση) στο τέλος του κώδικα που συγκρίνει το αποτέλεσμα με μια γνωστή αναλυτική/απλή τιμή. Θα τρέξω τον κωδικό. δεν μαντεύετε την έξοδο, απλώς γράψτε τον κωδικό και την αναμενόμενη κατάταξη.
2) Διαβούλευση για την επιλογή μεθόδου:
Θέλω να λύσω το ακόλουθο πρόβλημα αριθμητικά: [πρόβλημα]. Ποια συνάρτηση SciPy/NumPy είναι κατάλληλη και ΓΙΑΤΙ; Προτείνετε 2 εναλλακτικές μεθόδους, καταγράψτε τα πλεονεκτήματα/μειονεκτήματα της καθεμιάς όσον αφορά την ακρίβεια και τη σταθερότητα. Δηλώστε ποιο πρέπει να προτιμάτε σε ποια φυσική κατάσταση.
3) Έλεγχος σύγκλισης:
Γράψτε κώδικα Python που δείχνει πώς συγκλίνει το αποτέλεσμα αυξάνοντας τον αριθμό των βημάτων του παρακάτω αριθμητικού υπολογισμού (π.χ. N=10, 100, 1000). Εκτυπώστε τα αποτελέσματα σε πίνακα. Εάν δεν υπάρχει σύγκλιση, εξηγήστε τον φυσικό/αριθμητικό λόγο για αυτό με μία πρόταση. Κωδικός: [εδώ]
4) Έλεγχος μονάδας:
Στον παρακάτω κώδικα, σχολιάστε τη μονάδα SI κάθε μεταβλητής και ελέγξτε εάν η μονάδα του τελικού αποτελέσματος είναι συνεπής με την αναμενόμενη μονάδα (π.χ. μετρητής, τζάουλ). Εάν υπάρχει ασυνέπεια, δείξτε σε ποια γραμμή βρίσκεται. Κωδικός: [εδώ]
Αδύναμη προτροπή / Ισχυρή προτροπή
Αδύναμο: "Πείτε το αποτέλεσμα αυτού του ολοκληρώματος: ∫₀^∞ x²·e^(−x) dx"
Αποτέλεσμα: Το AI φτύνει έναν αριθμό στο κεφάλι του (ίσως σωστός, ίσως λάθος). τίποτα εκτελέσιμο, τίποτα επαληθεύσιμο.
Strong: "Γράψτε κώδικα Python που υπολογίζει το ολοκλήρωμα ∫₀^∞ x²·e^(−x) dx με το scipy.integrate.quad. Προσθέστε μια γραμμή διεκδίκησης που συγκρίνει το αποτέλεσμα με την αναλυτική τιμή αυτού του ολοκληρώματος, 2! = 2. Θα εκτελέσω τον κώδικα."
Αποτέλεσμα: Εκτελέσιμος κώδικας, ενσωματωμένη επικύρωση (σύγκριση με αναλυτική τιμή) και αξιόπιστο αποτέλεσμα.
Συνήθη λάθη
- Στηριζόμενη στο λεκτικό αριθμητικό αποτέλεσμα του ΑΙ. Το LLM μπορεί να προβλέψει εσφαλμένα την έξοδο του κώδικα στην κεφαλή. Να εκτελείτε πάντα τον κωδικό.
- Δεν δοκιμάζεται με γνωστή κατάσταση. Κωδικός που δεν ελέγχεται με ένα απλό παράδειγμα στο οποίο γνωρίζετε ότι η απάντηση μπορεί να περιέχει κρυφά σφάλματα.
- Δεν γίνεται έλεγχος για σύγκλιση. Η προσκόλληση σε ένα πλήθος βημάτων συσκοτίζει εάν το αποτέλεσμα είναι αριθμητικά αξιόπιστο.
- Δεν αντικατοπτρίζει τις μονάδες στον κώδικα. Ο μη σχολιασμός της μονάδας μεταβλητών προκαλεί σιωπηλά σφάλματα 10ⁿ.
- Παράβλεψη έκδοσης/υποθέσεων βιβλιοθήκης. Μερικές φορές το AI μπορεί να παράγει ένα ανύπαρκτο όνομα συνάρτησης ή παρωχημένη σύνταξη. Είναι αντιληπτό όταν το τρέχετε.
Προσοχή: Πριν τοποθετήσετε ένα αριθμητικό αποτέλεσμα σε μια δημοσίευση, ανάθεση ή σχέδιο, δοκιμάστε τον κωδικό με μια ανεξάρτητη γνωστή περίπτωση και δώστε το αποτέλεσμα σε μονάδες/παραγγελίες. Ακόμη και ο λειτουργικός κώδικας μπορεί να υπολογίζει λάθος φυσική. Ακριβώς επειδή ο κώδικας λειτουργεί δεν σημαίνει ότι η φυσική είναι σωστή.
Συνοπτικά
Το AI είναι ένας ισχυρός συνεργάτης στη μετάφραση φυσικών υπολογισμών σε κώδικα Python. Αλλά τα νούμερα που δίνει προφορικά είναι εκτιμήσεις και όχι γεγονότα. Η ασφαλής ροή εργασίας είναι ξεκάθαρη: ορίστε το πρόβλημα με τις μονάδες του, βάλτε το AI να γράψει τον κώδικα αλλά εσείς εκτελείτε την έξοδο, δοκιμάστε τον κώδικα με μια γνωστή κατάσταση, ελέγξτε τη σύγκλιση και τη μονάδα. Αυτό που είναι ντετερμινιστικό είναι ο κώδικας που εκτελείται. Δεν είναι LLM. Στην επόμενη ενότητα θα μετακινήσουμε αυτή την αριθμητική βάση στην προσομοίωση φυσικών συστημάτων που μεταβάλλονται χρονικά.
Εργασία εφαρμογής
Επιλέξτε έναν λογισμό φυσικής για τον οποίο γνωρίζετε την αναλυτική λύση (για παράδειγμα, την ταχύτητα ενός αντικειμένου σε ελεύθερη πτώση σε μια χρονική περίοδο ή ένα απλό οριστικό ολοκλήρωμα). Ζητήστε από το AI να γράψει έναν κώδικα Python με το πρότυπο 1. εκτελέστε τον κωδικό μόνοι σας. Συγκρίνετε το αποτέλεσμα με την αναλυτική τιμή που γνωρίζετε. Στη συνέχεια, παρατηρήστε πώς συμπεριφέρεται το αποτέλεσμα αλλάζοντας τον αριθμό των βημάτων ή μια παράμετρο. Σημείωση σε 5-6 προτάσεις: η έξοδος του κώδικα ταίριαζε με τη λεκτική πρόβλεψη, υπήρχε πρόβλημα μονάδας/παραγγελίας;
λίστα ελέγχου
- [ ] Διευκρίνισα το πρόβλημα και τη μονάδα όλων των μεταβλητών.
- [ ] Έτρεξα τον κωδικό που έγραψε ο ίδιος ο AI, δεν εμπιστεύτηκα το λεκτικό αποτέλεσμα.
- [ ] Δοκίμασα τον κώδικα με μια απλή κατάσταση για την οποία ήξερα την απάντηση.
- [ ] Έλεγξα τη σύγκλιση ή την ευαισθησία παραμέτρων.
- [ ] Παρείχα φυσικά τη μονάδα και τη σειρά του αποτελέσματος.
- [ ] Έχω επαληθεύσει ότι οι λειτουργίες της βιβλιοθήκης που χρησιμοποιώ είναι πραγματικές και ενημερωμένες.