วิทย์ม.ต้น: เขียนโปรแกรมไพธอนหาว่าพาราโบลาตัดแกน x ที่ไหน, วิธีหาคำตอบโดย Bisection Method

สัปดาห์ที่ผ่านมาผมให้เด็กๆไปค้นคว้ามาว่ากราฟพาราโบลาหน้าตาเป็นอย่างไรครับ

ผมแนะนำให้เด็กดูคลิปเหล่านี้ จะเห็นว่าถ้าเราตัดกรวยด้วยมุมต่างๆเราจะได้วงกลม วงรี พาราโบลา ไฮเปอร์โบลาครับ:

ส่วนต่างๆของพาราโบลา:

พาลาโบลาทุกอันเป็นตัวเดียวกัน ต่างกันแค่เลื่อนไปมา หมุนไปมา และซูมเข้าซูมออก (เหมือนกับที่วงกลมทุกวงเป็นตัวเดียวกัน ต่างกันแค่เลื่อนไปมาและซูมเข้าซูมออก):

ต่อไปเด็กๆก็รู้จักสูตรควอดราติก (quadratic formula) ที่บอกว่าพาราโบลาตัดแกน x ที่ไหนครับ

เราเขียนโปรแกรมไพธอนเพื่อหาค่าตามสูตรข้างบน:

ผมเล่าให้เด็กๆฟังว่าพาราโบลาเป็นสมการที่มีกำลังสองเพราะตัวแปรยกกำลังมากที่สุดคือกำลังสอง และเรามีสูตรหาได้ว่าสมการนี้เท่ากับศูนย์เมื่อไร เมื่อสักประมาณ 400-500 ปีมาแล้วนักคณิตศาสตร์รู้จักสูตรสำหรับสมการกำลังสามและกำลังสี่ด้วย แต่ไม่มีใครหาสูตรสำหรับกำลังห้าได้ จนเวลาผ่านมาอีกเกือบๆสามร้อยปีถึงมีคนพิสูจน์ได้ว่าโดยทั่วไปสมการกำลังห้าหรือมากกว่าจะไม่มีสูตรหาว่ามันมีค่าเท่ากับศูนย์เมื่อไร

สำหรับสมการที่ไม่มีสูตรแก้ เราต้องใช้วิธีทางตัวเลข (numerical method) ประมาณค่าดู วันนี้เราคุยกันเรื่องวิธี Bisection ครับ (bisection method) โดยไอเดียหลักก็คือวาดกราฟดูก่อนว่าฟังก์ชั่นเรามีค่าเท่ากับศูนย์แถวๆช่วงไหน แล้วเราก็แบ่งครึ่งช่วงนั้นเป็นสองช่วงที่เล็กลงครึ่งหนึ่ง แล้วดูว่าฟังก์ชั่นเราเท่ากับศูนย์ในช่วงที่เล็กลงช่วงไหน แล้วทำอย่างนี้วนไปเรื่อยๆ ช่วงที่ล้อมรอบคำตอบเราก็จะเล็กลงเรื่อยๆทีละครึ่งจนช่วงเล็กพอให้เราประมาณค่าในช่วงนั้นเป็นคำตอบ

ตัวอย่างวิธี bisection แบบเรียกตัวเอง (recursion)
ตัวอย่างวิธี bisection ที่ไม่เรียกตัวเอง และทำการเทียบบัญญัติไตรยางค์ในช่วงที่ถูกบีบให้เล็กๆ เพื่อให้ได้คำตอบที่ถูกต้องมากยิ่งขึ้น

สามารถโหลดโค้ดต่างๆใน Jupyter Notebook นี้หรือดูออนไลน์ที่ https://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2019/06/2019-06-28_G8-9.ipynb นะครับ

ทริกช็อตลูกแก้ว, คลื่นลูกตุ้ม, จรวดโฟม Nerf

ผมไปทำกิจกรรมวิทย์กับเด็กๆมาครับ เด็กประถมหัดคิดแบบวิทย์โดยพยายามอธิบายมายากล ประถมต้นได้หัดเล่นทริกช็อตเอาลูกแก้วมาชนกันและถ้าเรียงลูกแก้วสองลูกให้ติดกันไว้ แล้วกลิ้งลูกที่สามมาชน เราสามารถวางลูกแก้วสองลูกแรกใ้ห้เล็งไปที่ไหนก็ได้ ประถมปลายช่วยกันสร้างลูกตุ้มความยาวต่างๆกันมาเรียงให้แกว่งกันเป็นคลื่นลูกตุ้ม อนุบาลสามได้เล่นจรวดกระสุนโฟม Nerf กันครับ

(อัลบั้มบรรยากาศกิจกรรมอยู่ที่นี่นะครับ กิจกรรมประถมคราวที่แล้วเรื่อง “เครื่องมือที่ใช้เสียงความถี่สูง, วัดคาบลูกตุ้มแกว่ง, จรวด Nerf” ครับ ลิงก์รวมทุกกิจกรรมอยู่ที่นี่นะครับ)

ก่อนอื่นเด็กประถมต้นได้ดูมายากลนี้ครับ ดูเฉพาะตอนแรกที่เป็นกล ยังไม่ดูส่วนเฉลยตอนหลัง แล้วดูเฉลยหลังจากได้พยายามคิดพยายามอธิบายว่ากลแต่ละกลทำอย่างไรกันก่อนครับ กลวันนี้คือกลบ้านตุ๊กตาผีสิง

กิจกรรมนี้ฝีกเด็กๆให้คิดแบบวิทยาศาสตร์ครับ มีการสังเกต การตั้งสมมุติฐานเพื่ออธิบายสิ่งที่สังเกตมา การตรวจสอบสมมุติฐานกับข้อมูลที่สังเกตมา การตั้งสมมุติฐานใหม่เมื่อสมมุติฐานเดิมขัดกับข้อมูล นอกจากนี้เราพยายามให้เด็กๆมีความกล้าคิดและออกความเห็นครับ

สำหรับเด็กประถมต้น ผมสอนทริกช็อตดีดลูกแก้วกันครับ

ถ้าเอาลูกแก้วขนาดเท่ากันสองลูกมาวางเรียงให้ติดกัน ถ้าเราชนลูกแก้วลูกหนึ่งที่ไหนก็ได้ ลูกแก้วอีกลูกจะกระเด็นออกไปในแนวเส้นตรงที่ลากผ่านจุดศูนย์กลางของลูกแก้วทั้งสอง

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

พอผมแสดงให้เด็กๆดูว่าทำอย่างไร เด็กๆก็แยกย้ายไปเล่นกันครับ

สำหรับเด็กประถมปลาย ผมให้ช่วยกันสร้างลูกตุ้ม 15 อันที่มีความยาวต่างๆกัน โดยให้อันยาวที่สุดแกว่ง 51 ครั้งต่อนาที อันยาวอันดับสองแกว่ง 52 ครั้งต่อนาที อันต่อไป 53 ครั้งต่อนาที ไปเรื่อยๆจนอันที่สั้นที่สุดแกว่ง 65 ครั้งต่อนาทีครับ เราใช้ข้อมูลที่เราวัดสัปดาห์ที่แล้วมาคำนวณว่าแต่ละอันต้องยาวเท่าไร ได้ผลแบบนี้ครับ:

เด็กๆแบ่งงานกันทำ

พอเราปล่อยลูกตุ้มทั้งหลายพร้อมกัน มันก็แกว่งหน้าตาแบบนี้:

ถ้าเราควบคุมขนาดความยาวได้เป๊ะๆ มันจะแกว่งสวยมากแบบนี้ครับ:

สำหรับเด็กอนุบาลสามทับสองบ้านพลอยภูมิ ผมให้เอากระสุนโฟมปืน Nerf มาใส่ปากหลอดฉีดยาให้แน่นพอประมาณแล้วกดหลอดฉีดยา อากาศในหลอดจะเล็กลงจนความดันภายในสูงพอที่จะทำให้กระสุนโฟมหลุดกระเด็นออกไป แล้วก็ให้เขาพยายามยิงให้โดนเป้าต่างๆครับ เป็นการเล่นกับความดันอากาศต่อจากคราวก่อน

Self-Serving Bias, ค่าเบี่ยงเบนมาตรฐาน, ฝีมือหรือโชค

วันนี้เด็กๆเรียนเรื่อง self-serving bias จากหนังสือ The Art of Thinking Clearly โดยคุณ Rolf Dobelli  ที่เรามักจะคิดว่าตัวเราดีหรือเก่งมากกว่าเป็นจริง เวลาประสบความสำเร็จต่างๆมักให้เครดิตความสามารถตัวเอง เวลาประสบความล้มเหลวมักโทษปัจจัยภายนอก และไม่เข้าใจผลกระทบจากโชคและสิ่งรอบตัวที่ไม่ได้ควบคุมหรือควบคุมไม่ได้ครับ

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

จากนั้นเด็กๆก็วัดคาบการแกว่งลูกตุ้มความยาว 25, 100, 225 เซ็นติเมตรครับ โดยทำการจับเวลากันหลายๆคนพร้อมๆกัน ให้เด็กๆเห็นว่าการวัดต่างๆของเราจะมีความคลาดเคลื่อนบ้างเสมอๆ และหัดคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของสิ่งที่เราวัดมาครับ

หน้าตากระดานเราวันนี้ครับ

ข้อมูลคาบที่เราวัดกันมา (รวมข้อมูล 400 ซ.ม. จากสัปดาห์ที่แล้วด้วย)

ความยาวลูกตุ้ม (ซ.ม.)คาบ (วินาที)
251.01 ± 0.03
1002.01 ± 0.02
2253.00 ± 0.02
4004.01 ± 0.02

จากคาบที่วัดได้ เรามาหาค่า g (ค่าความเร่งจากแรงโน้มถ่วงที่ผิวโลก) ได้ 9.83 ± 0.01 ซึ่งคลาดเคลื่อนจากค่ามาตรฐานที่วัดในประเทศไทยประมาณครึ่งเปอร์เซ็นต์ครับ

ค่า g จากการทดลองของเราเท่ากับประมาณ 9.82 ± 0.01 เมตรต่อวินาทีกำลังสองครับ

เด็กๆได้เห็นความสัมพันธ์คาบกำลังสองแปรผันกับความยาวลูกตุ้มด้วยครับ คือถ้าคาบเพิ่มขึ้นสองเท่าความยาวจะเพิ่มขึ้นสี่เท่า ถ้าคาบเพิ่มขึ้นสามเท่าความยาวจะเพิ่มขึ้นเก้าเท่า ถ้าคาบเพิ่มขึ้นสี่เท่าความยาวจะเพิ่มขึ้นสิบหกเท่าครับ

อัลบั้มบรรยากาศกิจกรรมวิทย์อยู่ที่นี่นะครับ

บันทึกกิจกรรมวิทยาศาสตร์สำหรับเด็กๆ อยากให้คุณพ่อคุณแม่คุณครูเอาไปประยุกต์เล่นกับเด็กๆเยอะๆครับ :-)