Birlik 2 / 11

Python bilan hisoblash va raqamli usullar

Daromadlar:

  • AI jismoniy hisobni NumPy/SciPy kodiga tarjima qilish va kodni o'zi ishga tushirish orqali og'zaki taxminlarga emas, balki deterministik natijalarga tayanish qobiliyati
  • Raqamli kodning ishonchliligini javobi ma'lum bo'lgan oddiy vaziyatda sinab ko'rish va uning yaqinlashishini tekshirish orqali tekshirish qobiliyati.
  • Kodda o'zgaruvchan birliklarni aks ettirish orqali natijaning birligi va darajasini jismoniy ta'minlash qobiliyati

Fizikadagi ko‘p masalalarni qo‘lda yechish mumkin emas: integralning analitik yechimi yo‘q, tenglamalar tizimining ildizini yopiq shaklda topib bo‘lmaydi yoki hisob minglab marta takrorlanishi kerak. Bu erda raqamli usullar kuchga kiradi: aniq formula o'rniga, kompyuter taxminiy, ammo boshqariladigan aniqlik bilan bosqichma-bosqich hisoblab chiqadi. Ushbu bo'limda siz sun'iy intellektdan (AI) hisoblash fizikasi hisob-kitoblari uchun kod hamkori sifatida qanday foydalanishni, u ishlab chiqaradigan kodni qanday tekshirishni va qanday tuzoqlarga tushib qolmaslik kerakligini bilib olasiz. Bu erda fizikning standart vositalari Python tili va NumPy (raqamli massivlar va tez matematika uchun kutubxona) hamda SciPy (ilmiy hisoblash uchun kutubxona; integratsiya, radikal topilmalar, optimallashtirishni o'z ichiga oladi) bo'ladi.

Nega AI + Python, nega qo'lda emas?

Raqamli hisoblarni qo'lda bajarish ham sekin, ham xatoga yo'l qo'ymaydi. AI bir necha soniya ichida jismoniy konstruksiyangizni ishlaydigan Python kodiga tarjima qilishi mumkin. Ammo bu erda oltin qoida: AI kodni yozadi, siz kodni ishga tushirasiz va natijani fizika bilan tasdiqlaysiz. AIning "bu kod buni beradi" degani bashoratdir; Aslida kodni ishlatish va chiqishni ko'rish deterministik haqiqatdir. LLM o'z boshida yozgan kodning chiqishini "hisoblashi" va noto'g'ri raqam aytishi mumkin; holbuki bir xil kod ishga tushirilsa, u to'g'ri natija beradi. Shunday qilib, AI og'zaki ravishda beradigan raqamli natijaga hech qachon ishonmang - kodni ishga tushiring.

Asosiy hisoblash vazifalari va AIning roli

Kvest

Usul / vosita

jismoniy tekshirish

aniq integral

scipy.integrate.quad

Limit holatlari, o'lchovli tahlil

tenglamaning ildizi

scipy.optimize.brentq

Ildizni joyiga qo'ying va uning nol ekanligini tekshiring.

Chiziqli tenglamalar tizimi

numpy.linalg.hal qilish

Yechimni tizimga qaytarish

Hosil (raqamli)

Markaziy farq yoki numpy.gradient

Analitik hosila bilan taqqoslash

Ommaviy vektorni hisoblash

NumPy massivlari

Birlik va darajani nazorat qilish

AI ushbu vositalardan qaysi biri mos kelishini taklif qilishda va sintaksisni (kod yozish qoidalari) to'g'ri olishda juda yaxshi. Ammo qaysi usul jismoniy ma'noga ega ekanligini va natijaning aniqligini o'zingiz hal qilasiz.

Bosqichma-bosqich: tasdiqlangan raqamli hisoblash

1. Masala va birliklarga aniqlik kiriting. Masalan: "0 dan cheksizgacha bo'lgan e^(−x²) integralini hisoblang; natija √p/2 ≈ 0,8862 bo'lishi kerak." Kutilgan natijani qayta yozish (agar mavjud bo'lsa) tekshirishni osonlashtiradi.

2. AIdan kodni so'rang, lekin siz chiqishni ishga tushirasiz. Kod blokidan nusxa oling va uni o'zingizning muhitingizda ishga tushiring (Jupyter, Colab, mahalliy Python).

3. Ma'lum vaziyat bilan sinovdan o'ting. Javobini allaqachon bilgan oddiy vaziyat bilan kodni sinab ko'ring. Masalan, ∫₀¹ x dx = 0,5 kabi qo'lda bilgan misol bilan integral kodni sinab ko'ring. Agar kod buni to'g'ri bersa, ishonchingiz ortadi.

4. Konvergentsiyani tekshiring. Raqamli usullarda, qadamlar sonini ko'paytirganda, natija doimiy qiymatga yaqinlashishi kerak. Agar u yaqinlashmasa, usul mos kelmaydi.

5. Birlik va darajani tekshiring. Har doim raqamli natijani jismoniy birlik va tartib bilan taqdim eting.

Maslahat: AIdan kod so'raganda, "shuningdek, natijani ma'lum analitik qiymat bilan taqqoslaydigan sinov chizig'ini ham qo'shing" deb ayting. Shunday qilib, kod ham hisob-kitobni amalga oshiradi, ham ma'lum vaziyatda o'zini sinab ko'radi. Bu xatolar darhol ko'rinadigan qiladi.

uchta mini holat

1-holat - noto'g'ri og'zaki xulosa. Talaba AIga integral kod yozishni buyurdi va AI "bu kod taxminan 1,77 ni beradi" dedi. Talaba kodni ishga tushirdi: haqiqiy chiqish 0,886 edi. AI kodning chiqishini bashorat qilishda xatoga yo'l qo'ydi; Kod to'g'ri edi. Dars: kodga ishoning, og'zaki taxminga ishonmang.

2-holat - Raqamlarning beqarorligi. Tadqiqotchi AI yozgan ildiz topish kodi bilan tenglamaning ildizini qidirdi. Kod ildizni qaytardi, ammo tadqiqotchi ildizni tenglamaga qaytarganida, natija nolga teng emas, balki juda katta raqam edi. Muammo shundaki, boshlang'ich diapazonda ildiz mavjud emas edi; AI tegishli diapazonni qabul qildi. Tadqiqotchi jismoniy ma'lumotlar bilan intervalni tuzatdi va to'g'ri ildizni topdi.

3-holat - Tasdiqlash olindi. Muhandis yuk ostida nurning og'ishini raqamli hisoblaydigan kodni xohladi. Kod ishladi, lekin natijada metrlar burilish ko'rsatdi - po'lat nur uchun mumkin emas. Muhandis birliklarni ko'zdan kechirdi: AI 10⁹ koeffitsientini yo'qotib, GPa o'rniga Pa elastik moduliga ega deb ko'rsatdi. Birlikni to'g'rilash bilan natija millimetrga kamaydi va oqilona bo'ldi.

To'rt nusxa ko'chirish shablonlari

1) tasdiqlash chizig'i bilan raqamli hisoblash:

Quyidagi jismoniy hisobni amalga oshiradigan Python (NumPy/SciPy) kodini yozing: [muammo]. Barcha o'zgaruvchilarni SI birliklarida e'lon qiling va birlikni sharh qatori bilan belgilang. Natijani ma'lum analitik/oddiy qiymat bilan solishtiradigan kod oxirida tekshirish chizig'ini qo'shing (tasdiqlash yoki chop etish). Men kodni ishga tushiraman; siz natijani taxmin qilmaysiz, shunchaki kodni va kutilgan darajani yozing.

2) Usul tanlash bo'yicha maslahat:

Men quyidagi masalani raqamli hal qilmoqchiman: [muammo]. Qaysi SciPy/NumPy funksiyasi mos va NEGA? 2 ta muqobil usulni taklif qiling, aniqlik va barqarorlik nuqtai nazaridan har birining ijobiy/yomon tomonlarini yozing. Qaysi jismoniy vaziyatda qaysi birini afzal ko'rish kerakligini ayting.

3) Konvergentsiyani tekshirish:

Quyidagi sonli hisoblashning qadamlar sonini oshirish orqali natija qanday birlashishini ko'rsatadigan Python kodini yozing (masalan, N=10, 100, 1000). Natijalarni jadvalga chop eting. Agar konvergentsiya bo'lmasa, buning jismoniy/raqamli sababini bitta jumla bilan tushuntiring. Kod: [bu yerda]

4) Birlik boshqaruvi:

Quyidagi kodda har bir o'zgaruvchining SI birligini izohlang va yakuniy natija birligi kutilgan birlikka (masalan, metr, joule) mos kelishini tekshiring. Agar nomuvofiqlik boʻlsa, qaysi qatorda ekanligini koʻrsating. Kod: [bu yerda]

Zaif taklif / Kuchli taklif

Zaif: "Ushbu integralning natijasini ayting: ∫₀^∞ x²·e^(−x) dx"
Natija: AI o'z boshida bir raqamni tupuradi (balki to'g'ri, balki noto'g'ri); hech narsa bajarilmaydi, hech narsa tekshirilmaydi.
Kuchli: "Scipy.integrate.quad bilan ∫₀^∞ x²·e^(−x) dx integralini hisoblaydigan Python kodini yozing. Natijani ushbu integralning analitik qiymati bilan solishtiruvchi assert qatorini qo'shing, 2! = 2. Men kodni ishga tushiraman."
Natija: bajariladigan kod, o'rnatilgan tekshirish (analitik qiymat bilan taqqoslash) va ishonchli natija.

Umumiy xatolar

  • AIning og'zaki raqamli natijasiga tayanish. LLM boshdagi kodning chiqishini noto'g'ri taxmin qilishi mumkin. Har doim kodni ishga tushiring.
  • Ma'lum vaziyat bilan sinovdan o'tkazilmaydi. Javobini biladigan oddiy misol bilan sinovdan o'tmagan kodda yashirin xatolar bo'lishi mumkin.
  • Konvergentsiya tekshirilmaydi. Bitta qadamni hisoblash natijaning raqamli jihatdan ishonchli yoki yo'qligini yashiradi.
  • Koddagi birliklarni aks ettirmaydi. O'zgaruvchilar birligiga izoh bermaslik jim 10ⁿ xatolarni taklif qiladi.
  • Kutubxona versiyasi/taxminlariga e'tibor bermaslik. Ba'zida AI mavjud bo'lmagan funksiya nomini yoki eskirgan sintaksisini ishlab chiqishi mumkin; Uni ishga tushirganingizda seziladi.
Diqqat: Nashr, topshiriq yoki dizaynga raqamli natija qo'yishdan oldin kodni mustaqil ma'lum holat bilan sinab ko'ring va natijani birliklar/buyurtmalar bilan taqdim eting. Hatto ishchi kod noto'g'ri fizikani hisoblashi mumkin; Kodning ishlashi fizikaning to'g'ri ekanligini anglatmaydi.

qisqa bayoni; yakunida

AI jismoniy hisoblarni Python kodiga tarjima qilishda kuchli hamkordir; Ammo u og'zaki keltirgan raqamlar fakt emas, taxminlardir. Xavfsiz ish jarayoni aniq: muammoni uning birliklari bilan aniqlang, AI kodni yozsin, lekin siz chiqishni ishga tushirasiz, kodni ma'lum vaziyat bilan sinab ko'ring, konvergentsiya va birlikni tekshiring. Deterministik bo'lgan narsa bajariladigan koddir; Bu LLM emas. Keyingi bo'limda biz ushbu raqamli asosni vaqt bo'yicha o'zgaruvchan jismoniy tizimlarni simulyatsiya qilishga o'tkazamiz.

Ilova vazifasi

Analitik yechimini biladigan fizika hisobini tanlang (masalan, ma’lum vaqt oralig‘idagi erkin tushayotgan jismning tezligi yoki oddiy aniq integral). AI 1-shablon bilan Python kodini yozsin; kodni o'zingiz ishga tushiring. Natijani o'zingiz bilgan analitik qiymat bilan solishtiring. Keyin qadamlar sonini yoki parametrni o'zgartirish orqali natija qanday harakat qilishini kuzating. 5-6 jumlaga e'tibor bering: kodning chiqishi og'zaki bashoratga mos keldimi, birlik/tartib muammosi bormi?

nazorat ro'yxati

  • [ ] Men muammoni va barcha o'zgaruvchilar birligini aniqladim.
  • [ ] Men AI tomonidan yozilgan kodni o'zim ishlatdim, og'zaki natijaga ishonmadim.
  • [ ] Men javobni bilgan oddiy vaziyat bilan kodni sinab ko'rdim.
  • [ ] Men konvergentsiya yoki parametr sezgirligini tekshirdim.
  • [ ] Men jismonan natijaning birligi va tartibini taqdim etdim.
  • [ ] Men foydalanadigan kutubxona funksiyalari haqiqiy va dolzarb ekanligini tasdiqladim.