วิทย์ม.ต้น: ให้คอมพิวเตอร์แก้ปัญหาสมการเชิงเส้นให้เรา

ผมให้แบบฝึกหัดเด็กม.ต้นที่หัดเขียนโปรแกรมไพธอนโดยให้กลับไปคิดและเขียนโปรแกรมแก้ปัญหาที่ต้องทำด้วยมือในวิชาคณิตศาสตร์กันครับ ถ้าสั่งให้คอมพิวเตอร์ทำงานให้ได้ก็แสดงว่าเข้าใจหลักการต่างๆแล้ว นอกจากนี้คอมพิวเตอร์สามารถแก้ปัญหาใหญ่ๆที่เราทำด้วยมือไม่ไหวด้วย

คราวนี้ผมให้แบบฝึกหัดเด็กๆไปหัดเขียนฟังก์ชันว่าเส้นตรงสองเส้นตัดกันตรงไหน หน้าตาจะออกมาประมาณนี้ครับ:

การหาว่าเส้นตรงสองเส้นตัดกันตรงไหนเป็นวิธีแก้ปัญหาสมการเชิงเส้นในสองตัวแปรครับ ถ้ามีตัวแปรมากกว่าสองตัว รูปแบบคำตอบจะดูยุ่งยาก ผมให้เด็กๆรู้จักเข้าไปใช้ Wolfram Alpha หาคำตอบพวกนั้น (ยกตัวอย่างเช่นสามตัวแปรเป็นอย่างนี้)

ปัญหาที่น่าสนใจจะมีตัวแปรเยอะกว่าที่ทำด้วยมือในโรงเรียนมากครับ ตัวแปรจะเป็นร้อยเป็นพันถึงเป็นล้านตัว ต้องให้คอมพิวเตอร์ช่วยทำ ผมให้เด็กๆเห็นวิธีตรงไปตรงมาเหมาะกับให้คอมพิวเตอร์ทำชื่อ Gaussian Elimination (หรืออีกชื่อว่า Gauss -Jordan Elimination) หาคำตอบแทนสูตรสำเร็จรูป ดูตัวอย่างได้ที่คลิปนี้ หรือ คลิปนี้

ถ้าเด็กๆสนใจ ก็สามารถใช้ไพธอนช่วยแก้ปัญหาพวกนี้ได้ด้วย numpy.linalg.solve() ครับ หน้าตาอาจเป็นแบบนี้ครับ:

ผมบันทึกตัวอย่างเหล่านี้ไว้ให้เด็กๆและผู้สนใจเข้ามาดูทบทวนโดยสามารถโหลด Jupyter Notebook ได้ที่นี่ หรือดูออนไลน์ได้ที่นี่นะครับ

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.