หน่วย
1. ปัญญาประดิษฐ์เบื้องต้นในฟิสิกส์: บทบาท ขอบเขต การตรวจสอบความถูกต้องของหน่วยและผลลัพธ์ จริยธรรม 2. วิธีการคำนวณและตัวเลขด้วย Python 3. การจำลองระบบทางกายภาพ 4. การวิเคราะห์ข้อมูลการทดลองและการปรับเส้นโค้ง 5. ความไม่แน่นอน การแพร่กระจายของข้อผิดพลาด และการวิเคราะห์การวัด 6. ฟิสิกส์เชิงสัญลักษณ์: การได้มาของแบบจำลองและการแก้ปัญหาเชิงวิเคราะห์ 7. การวิเคราะห์มิติ การแปลงหน่วย และการตรวจสอบผลลัพธ์ 8. การสร้างภาพทางวิทยาศาสตร์ 9. การทบทวนวรรณกรรม การตรวจสอบแหล่งที่มา และการเขียนเชิงวิทยาศาสตร์ 10. การสอนฟิสิกส์และความเข้าใจผิด 11. ภาพหลอน จริยธรรม การรักษาความลับ และความซื่อสัตย์ทางวิทยาศาสตร์
หน่วย 2 / 11

วิธีการคำนวณและตัวเลขด้วย Python

กำไร:

  • ความสามารถในการพึ่งพาผลลัพธ์ที่กำหนด ไม่ใช่การคาดเดาด้วยวาจา โดยให้ AI แปลการคำนวณทางกายภาพเป็นโค้ด NumPy/SciPy และรันโค้ดเอง
  • ความสามารถในการตรวจสอบความน่าเชื่อถือของรหัสตัวเลขโดยการทดสอบกับสถานการณ์ง่ายๆ ที่ทราบคำตอบและตรวจสอบการบรรจบกัน
  • ความสามารถในการจัดเตรียมหน่วยและระดับของผลลัพธ์ทางกายภาพโดยการสะท้อนหน่วยตัวแปรลงในโค้ด

ปัญหาหลายอย่างในฟิสิกส์ไม่สามารถแก้ไขได้ด้วยมือ เช่น อินทิกรัลไม่มีวิธีแก้ปัญหาเชิงวิเคราะห์ รากของระบบสมการไม่สามารถพบได้ในรูปแบบปิด หรือต้องคำนวณซ้ำหลายพันครั้ง นี่คือจุดที่วิธีการเชิงตัวเลขเข้ามามีบทบาท: แทนที่จะใช้สูตรที่แน่นอน คอมพิวเตอร์จะคำนวณทีละขั้นตอนด้วยความแม่นยำโดยประมาณแต่ได้รับการควบคุม ในหน่วยการเรียนรู้นี้ คุณจะได้เรียนรู้วิธีใช้ปัญญาประดิษฐ์ (AI) เป็นคู่รหัสสำหรับการคำนวณฟิสิกส์เชิงคำนวณ วิธีตรวจสอบรหัสที่สร้างขึ้น และกับดักที่คุณควรหลีกเลี่ยงการตกไปอยู่ในนั้น เครื่องมือมาตรฐานของนักฟิสิกส์ที่นี่คือภาษา Python และ NumPy (ไลบรารีสำหรับอาร์เรย์ตัวเลขและคณิตศาสตร์เร็ว) รวมถึง SciPy (ไลบรารีสำหรับการคำนวณทางวิทยาศาสตร์ รวมถึงการบูรณาการ การค้นหาแบบรุนแรง การเพิ่มประสิทธิภาพ)

ทำไมต้อง AI + Python ทำไมไม่ทำด้วยมือ?

การคำนวณตัวเลขด้วยมือทั้งช้าและเกิดข้อผิดพลาดได้ง่าย AI สามารถแปลโครงสร้างทางกายภาพของคุณให้เป็นโค้ด Python ที่กำลังรันอยู่ได้ภายในไม่กี่วินาที แต่กฎทองที่นี่คือ: AI เขียนโค้ด คุณรันโค้ดและตรวจสอบผลลัพธ์ด้วยหลักฟิสิกส์ AI ที่บอกว่า "โค้ดนี้ให้สิ่งนั้น" เป็นการคาดเดา การรันโค้ดและการดูผลลัพธ์นั้นเป็นข้อเท็จจริงที่กำหนดได้จริง LLM อาจ "คำนวณ" ผลลัพธ์ของโค้ดที่เขาเขียนไว้ในหัวและพูดตัวเลขผิด ในขณะที่เมื่อรันโค้ดเดียวกันมันจะให้ผลลัพธ์ที่ถูกต้อง ดังนั้นอย่าเชื่อถือผลลัพธ์เชิงตัวเลขที่ AI ให้มาด้วยวาจา — รันโค้ด

งานคำนวณขั้นพื้นฐานและบทบาทของ AI

ภารกิจ

วิธีการ/เครื่องมือ

การตรวจสอบทางกายภาพ

อินทิกรัลที่แน่นอน

scipy.integrate.quad

สถานะจำกัด การวิเคราะห์มิติ

รากของสมการ

scipy.optimize.brentq

ใส่รูทเข้าที่แล้วตรวจดูว่าเป็นศูนย์หรือไม่

ระบบสมการเชิงเส้น

numpy.linalg.แก้ปัญหา

นำสารละลายกลับเข้าสู่ระบบ

อนุพันธ์ (ตัวเลข)

ผลต่างกลางหรือ numpy.gradient

เปรียบเทียบกับอนุพันธ์เชิงวิเคราะห์

การคำนวณเวกเตอร์จำนวนมาก

อาร์เรย์ NumPy

การควบคุมหน่วยและยศ

AI เก่งมากในการแนะนำว่าเครื่องมือใดต่อไปนี้เหมาะสมและทำให้ไวยากรณ์ (กฎการเขียนโค้ด) ถูกต้อง แต่คุณเป็นผู้ตัดสินใจว่าวิธีใดที่สมเหตุสมผลและแม่นยำของผลลัพธ์

ทีละขั้นตอน: การคำนวณเชิงตัวเลขที่ตรวจสอบได้

1. ชี้แจงปัญหาและหน่วยงาน ตัวอย่างเช่น: "คำนวณอินทิกรัล e^(−x²) จาก 0 ถึงอนันต์ ผลลัพธ์ควรเป็น √π/2 data 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 — ได้รับการยืนยัน วิศวกรคนหนึ่งต้องการโค้ดที่คำนวณการโก่งตัวของลำแสงภายใต้ภาระเป็นตัวเลข รหัสใช้งานได้ แต่ผลลัพธ์แสดงให้เห็นว่ามีการโก่งตัวเป็นเมตร ซึ่งเป็นไปไม่ได้สำหรับคานเหล็ก วิศวกรตรวจสอบหน่วยต่างๆ: 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 ฉันจะรันโค้ด"
ผลลัพธ์: โค้ดที่ปฏิบัติการได้ การตรวจสอบความถูกต้องในตัว (เปรียบเทียบกับค่าการวิเคราะห์) และผลลัพธ์ที่เชื่อถือได้

ข้อผิดพลาดทั่วไป

  • อาศัยผลตัวเลขทางวาจาของ AI LLM อาจทำนายผลลัพธ์ของโค้ดในส่วนหัวไม่ถูกต้อง รันโค้ดเสมอ
  • ไม่ได้ทดสอบกับสถานการณ์ที่ทราบ โค้ดที่ไม่ได้ทดสอบด้วยตัวอย่างง่ายๆ ที่คุณทราบคำตอบอาจมีข้อผิดพลาดที่ซ่อนอยู่
  • ไม่ได้ตรวจสอบการบรรจบกัน การนับก้าวเพียงก้าวเดียวจะทำให้ไม่ชัดเจนว่าผลลัพธ์จะเชื่อถือได้ในเชิงตัวเลขหรือไม่
  • ไม่สะท้อนหน่วยในโค้ด การไม่แสดงความคิดเห็นในหน่วยของตัวแปรทำให้เกิดข้อผิดพลาด 10ⁿ แบบเงียบ
  • ละเว้นเวอร์ชัน/สมมติฐานของไลบรารี บางครั้ง AI อาจสร้างชื่อฟังก์ชันที่ไม่มีอยู่จริงหรือไวยากรณ์ที่ล้าสมัย จะสังเกตเห็นได้ชัดเจนเมื่อคุณเรียกใช้
ข้อควรระวัง: ก่อนที่จะใส่ผลลัพธ์ที่เป็นตัวเลขลงในสิ่งพิมพ์ การมอบหมายงาน หรือการออกแบบ ให้ทดสอบโค้ดด้วยกรณีที่ทราบเป็นอิสระ และระบุผลลัพธ์เป็นหน่วย/คำสั่งซื้อ แม้แต่โค้ดที่ใช้งานได้ก็อาจคำนวณฟิสิกส์ที่ผิด เพียงเพราะโค้ดใช้งานได้ไม่ได้หมายความว่าฟิสิกส์ถูกต้อง

โดยสรุป

AI เป็นพันธมิตรที่ทรงพลังในการแปลการคำนวณทางกายภาพเป็นโค้ด Python แต่ตัวเลขที่เขาให้ด้วยวาจาเป็นเพียงการประมาณการ ไม่ใช่ข้อเท็จจริง ขั้นตอนการทำงานที่ปลอดภัยมีความชัดเจน: กำหนดปัญหากับหน่วยต่างๆ ให้ AI เขียนโค้ด แต่คุณเรียกใช้เอาต์พุต ทดสอบโค้ดด้วยสถานการณ์ที่ทราบ ตรวจสอบการลู่เข้าและหน่วย สิ่งที่กำหนดไว้คือโค้ดที่ถูกดำเนินการ มันไม่ใช่ LLM ในหน่วยถัดไป เราจะย้ายรากฐานเชิงตัวเลขนี้ไปสู่การจำลองระบบทางกายภาพที่แปรผันตามเวลา

งานสมัคร

เลือกแคลคูลัสทางฟิสิกส์ที่คุณทราบวิธีแก้ปัญหาเชิงวิเคราะห์ (เช่น ความเร็วของวัตถุที่ตกลงอย่างอิสระในช่วงเวลาหนึ่งหรืออินทิกรัลจำกัดเขตอย่างง่าย) ให้ AI เขียนโค้ด Python ด้วยเทมเพลต 1; รันโค้ดด้วยตัวเอง เปรียบเทียบผลลัพธ์กับค่าวิเคราะห์ที่คุณทราบ จากนั้นสังเกตว่าผลลัพธ์มีลักษณะอย่างไรโดยการเปลี่ยนจำนวนขั้นตอนหรือพารามิเตอร์ หมายเหตุใน 5-6 ประโยค: ผลลัพธ์ของโค้ดตรงกับการคาดเดาด้วยวาจาหรือไม่ มีปัญหาเกี่ยวกับหน่วย/ลำดับหรือไม่

รายการตรวจสอบ

  • [ ] ฉันชี้แจงปัญหาและหน่วยของตัวแปรทั้งหมดแล้ว
  • [ ] ฉันรันโค้ดที่ AI เขียนเอง ฉันไม่ไว้ใจผลลัพธ์ทางวาจา
  • [ ] ฉันทดสอบโค้ดด้วยสถานการณ์ง่ายๆ ซึ่งฉันรู้คำตอบ
  • [ ] ฉันตรวจสอบการลู่เข้าหรือความไวของพารามิเตอร์
  • [ ] ฉันได้เตรียมหน่วยและลำดับของผลลัพธ์ไว้แล้ว
  • [ ] ฉันได้ตรวจสอบแล้วว่าฟังก์ชันไลบรารีที่ฉันใช้นั้นมีอยู่จริงและเป็นปัจจุบัน