Печалби:
- Възможност да се разчита на детерминистичен изход, а не на словесни предположения, като накарате AI да преведе физическо изчисление в NumPy/SciPy код и да изпълни самия код
- Възможност за проверка на надеждността на цифров код чрез тестването му с проста ситуация, чийто отговор е известен и проверка на неговата конвергенция.
- Възможност за физическо предоставяне на единица и ниво на резултата чрез отразяване на променливи единици в кода
Много проблеми във физиката не могат да бъдат решени на ръка: интегралът няма аналитично решение, коренът на система от уравнения не може да бъде намерен в затворена форма или изчислението трябва да се повтаря хиляди пъти. Тук влизат в действие числените методи: вместо точна формула, компютърът изчислява стъпка по стъпка с приблизителна, но контролирана точност. В този модул ще научите как да използвате изкуствения интелект (AI) като кодов партньор за изчислителни физични изчисления, как да проверите кода, който произвежда, и в какви капани трябва да избягвате да попадате. Стандартните инструменти на физика тук ще бъдат езикът Python и NumPy (библиотека за числови масиви и бърза математика), както и SciPy (библиотека за научни изчисления; включва интеграция, радикално намиране, оптимизация).
Защо AI + Python, защо не на ръка?
Извършването на числени изчисления на ръка е едновременно бавно и податливо на грешки. AI може да преведе физическата ви конструкция в работещ код на Python за няколко секунди. Но златното правило тук е: AI пише кода, вие изпълнявате кода и проверявате резултата с физика. Казването на AI "този код дава това" е прогноза; Всъщност изпълнението на кода и виждането на изхода е детерминистичен факт. LLM може да "изчисли" изхода от кода, който е написал в главата си, и да каже грешно число; докато когато се изпълнява същия код, той дава правилния резултат. Така че никога не се доверявайте на числения резултат, който изкуственият интелект дава вербално – стартирайте кода.
Основни изчислителни задачи и ролята на AI
Мисия
Метод/инструмент
физическа проверка
определен интеграл
scipy.integrate.quad
Гранични състояния, размерен анализ
корен на уравнението
scipy.optimize.brentq
Поставете корена на място и проверете дали е нула.
Система от линейни уравнения
numpy.linalg.solve
Връщане на решението обратно в системата
Производна (числова)
Централна разлика или numpy.gradient
Сравнение с аналитично извеждане
Масово векторно изчисление
NumPy масиви
Контрол на единици и ранг
AI е много добър в предлагането кой от тези инструменти е подходящ и в правилния синтаксис (правилата за писане на код). Но вие решавате кой метод има физически смисъл и точността на резултата.
Стъпка по стъпка: проверимо числено изчисление
1. Изяснете проблема и единиците. Например: "Изчислете интеграла e^(−x²) от 0 до безкрайност; резултатът трябва да бъде √π/2 ≈ 0,8862." Пренаписването на очаквания резултат (ако има такъв) улеснява проверката.
2. Попитайте AI за кода, но стартирайте изхода. Копирайте кодовия блок и го стартирайте във вашата собствена среда (Jupyter, Colab, собствен Python).
3. Тест с позната ситуация. Опитайте кода с проста ситуация, на която вече знаете отговора. Например, тествайте интегрален код с пример, който знаете на ръка, като ∫₀¹ x dx = 0,5. Ако кодът дава това правилно, вашата увереност се увеличава.
4. Проверете за конвергенция. При числените методи, когато увеличавате броя на стъпките, резултатът трябва да се доближава до постоянна стойност. Ако не се приближи, методът не е подходящ.
5. Проверете единица и ранг. Винаги предоставяйте числения резултат с физическата единица и ред.
Съвет: Когато изисквате код от AI, кажете „също включете тестова линия, която сравнява резултата с известна аналитична стойност“. По този начин кодът едновременно извършва изчислението и се тества в известна ситуация. Това прави грешките веднага видими.
три мини калъфа
Случай 1 — Неправилно устно заключение. Студент накара AI да напише интегрален код и AI каза, че "този код дава около 1,77." Студентът пусна кода: действителният резултат беше 0,886. AI беше направил грешка при предвиждането на изхода на кода; Кодът беше правилен. Урок: доверете се на кода, не вярвайте на устното предположение.
Случай 2 — Числена нестабилност. Изследовател потърси корена на уравнение с код за намиране на корен, написан от AI. Кодът върна корен, но когато изследователят постави корена обратно в уравнението, резултатът не беше нула, а много голямо число. Проблемът беше, че началният диапазон не съдържаше корена; AI прие подходящия диапазон. Изследователят коригира интервала с физическа информация и намери правилния корен.
Случай 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“
Резултат: AI изплюва число в главата си (може би правилно, може би грешно); нищо изпълнимо, нищо проверимо.
Силно: "Напишете код на Python, който изчислява интеграла ∫₀^∞ x²·e^(−x) dx с scipy.integrate.quad. Добавете assert ред, който сравнява резултата с аналитичната стойност на този интеграл, 2! = 2. Ще стартирам кода."
Резултат: Изпълним код, вградено валидиране (сравнение с аналитична стойност) и надежден резултат.
Често срещани грешки
- Разчитайки на вербалния цифров резултат на AI. LLM може неправилно да предвиди изхода на кода в главата. Винаги изпълнявайте кода.
- Не се тества с известна ситуация. Кодът, който не тества с прост пример, на който знаете отговора, може да съдържа скрити грешки.
- Не се проверява за конвергенция. Придържането към преброяване на една стъпка прикрива дали резултатът е числено надежден.
- Не отразява единиците в кода. Некоментирането на единицата от променливи води до тихи грешки от 10ⁿ.
- Пренебрегване на версията/предположенията на библиотеката. Понякога AI може да създаде несъществуващо име на функция или остарял синтаксис; Забелязва се, когато го пуснете.
Внимание: Преди да поставите числов резултат в публикация, задание или дизайн, тествайте кода с независим известен случай и предоставете резултата в единици/поръчки. Дори работещият код може да изчислява грешна физика; Това, че кодът работи, не означава, че физиката е правилна.
В обобщение
AI е мощен партньор в превода на физически изчисления в код на Python; Но числата, които дава устно, са оценки, а не факти. Безопасният работен процес е ясен: дефинирайте проблема с неговите единици, накарайте AI да напише кода, но вие стартирайте изхода, тествайте кода с известна ситуация, проверете конвергенцията и единицата. Това, което е детерминирано, е кодът, който се изпълнява; Това не е LLM. В следващия раздел ще преместим тази числена основа към симулацията на променящи се във времето физически системи.
Задача за приложение
Изберете физично смятане, за което знаете аналитичното решение (например скоростта на свободно падащ обект за определен период от време или прост определен интеграл). Накарайте AI да напише код на Python с шаблон 1; стартирайте кода сами. Сравнете резултата с аналитичната стойност, която знаете. След това наблюдавайте как се държи резултатът, като промените броя на стъпките или параметър. Забележка в 5-6 изречения: резултатът от кода съвпадна ли с вербалната прогноза, имаше ли проблем с единица/поръчка?
контролен списък
- [ ] Изясних проблема и единицата на всички променливи.
- [] Стартирах кода, написан от AI лично, не се доверих на вербалния резултат.
- [ ] Тествах кода с проста ситуация, за която знаех отговора.
- [ ] Проверих конвергенцията или чувствителността на параметрите.
- [ ] Физически предоставих единицата и реда на резултата.
- [ ] Проверих, че библиотечните функции, които използвам, са реални и актуални.