Category Archives: Mathematica

วัดความถี่เสียงด้วยไมโครโฟน คอมพิวเตอร์ และโปรแกรม Spectrum Analyzer และเล่นแก้วน้ำร้องเพลงกับเด็กอนุบาล

 

อัลบั้มภาพการเรียนการสอนอยู่ที่นี่ครับ

ถ้าสงสัยว่าไม่เห็นรูปหรือวิดีโอ เข้าไปดูที่เว็บ http://witpoko.com/ นะครับ ส่วนใหญ่ถ้าอ่านในเมล์จะไม่เห็นวิดีโอครับ

(คราวที่แล้วเรื่อง “ดูการ์ตูนการแกว่งลูกตุ้ม ดูสะพานแขวนพัง และเล่นแก้วน้ำร้องเพลง” ครับ)

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

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

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

ดูการ์ตูนการแกว่งลูกตุ้ม ดูสะพานแขวนพัง และเล่นแก้วน้ำร้องเพลง

 

อัลบั้มภาพการเรียนการสอนอยู่ที่นี่ครับ

ถ้าสงสัยว่าไม่เห็นรูปหรือวิดีโอ เข้าไปดูที่เว็บ http://witpoko.com/ นะครับ ส่วนใหญ่ถ้าอ่านในเมล์จะไม่เห็นวิดีโอครับ

(คราวที่แล้วเรื่อง “(พยายาม)ติดตั้งลูกตุ้มความยาวต่างๆให้มันแกว่งสวยๆ” ครับ)

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

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

วิดีโอข้างบนคือภาพลูกตุ้มความยาวขนาดต่างๆกันที่แกว่ง 51, 52, 53, … , 65 คร้้งต่อหน่วยเวลาใช้คำสั่ง Mathematica วาดดังนี้ครับ:

Animate[
 Show[
  Graphics[Line[{{-Pi/10, 0}, {Pi/10,0}, {Pi/10, -0.4}, {-Pi/10, -0.4}, {-Pi/10,0}}]],
  Graphics[Flatten[
    Table[{Disk[9.8/(2 Pi k/60)^2 {Sin[Pi/10 Cos[2 Pi k/60 t]], -Cos[Pi/10 Cos[2 Pi k/60 t]]},0.01],
      Line[{{0, 0},9.8/(2 Pi k/60)^2 {Sin[Pi/10 Cos[2 Pi k/60 t]], -Cos[Pi/10 Cos[2 Pi k/60 t]]}}]}, {k, 51, 65}]]
   ]
  ]
 , {t, 0, 60}]

เนื่องจากเราสามารถสั่งให้คอมพิวเตอร์วาดให้ดูได้ง่ายๆ เราก็เลยเพิ่มจำนวนลูกตุ้มเป็น 70 ลูกเสียเลย: Continue reading ดูการ์ตูนการแกว่งลูกตุ้ม ดูสะพานแขวนพัง และเล่นแก้วน้ำร้องเพลง

สร้าง Bifurcation Diagram แบบง่ายๆ


พอดีมีนักเรียนตั้งกระทู้ถามเรื่องการวาดรูปเรื่อง Bifurcation Diagram เมื่อคืน ผมเลยทดลองวาดบน Mathematica เห็นว่าวิธีวาดง่ายดี เลยมาบันทึกไว้เผื่อมีใครค้นหาอีกในอนาคต ถ้าจะลองก็คัดลอกเอาไปลองได้เลย แล้วเปลี่ยนนู่นเปลี่ยนนี่เล่นดูเอง


(* กำหนด mapping ที่เราสนใจ อันนี้เรียกว่า logistic map *)
f[r_, x_] := r x (1 – x)

(* ทำการ iterate ด้วย ‘r’ ไป ‘iterations’ ครั้ง เริ่มด้วย ‘x0’ แล้วตัดมาดู ‘count’ ตัว *)
longtermValues[r_, count_, iterations_, x0_] :=
Map[{r, #} &, Take[NestList[f[r, #] &, x0, iterations], -count]]

(* เราเปลี่ยน r ตั้งแต่ 2.6 ไปจนถึง 4 โดยขยับทีละ 0.001 สำหรับแต่ละ r เรา iterate 500 ครั้งแล้วเอา 200 ตัวสุดท้่ายมาใช้ เราต้องใช้ Flatten[…,1] เพื่อให้คู่ลำดับทั้งหมดอยู่ในลิสท์ระดับเดียวกัน *)
allValues = Flatten[Table[longtermValues[r, 200, 500, 0.2], {r, 2.6, 4, 0.001}], 1];

(* วาดรูป *)
ListPlot[allValues, PlotStyle -> PointSize[0.001]]