ต่อจากครั้งที่แล้วครับ(http://www.sakngoi.com/?p=143)
คำสั่ง Manipulate นี้ Mathematica เพิ่มเข้ามาตั้งแต่ version 6 เป็นคำสั่งที่สามารถทำให้เราสามารถดูได้ครับว่ารูปแบบของกราฟหรือค่าจากการคำนวณอะไรบางอย่างที่เราสนใจจะเปลี่ยนไปอย่างไรถ้าหากเราเพิ่มหรือลดค่าที่เราสนใจที่เป็นส่วนหนึ่งในการคำนวณนั้น
เช่น อยากรู้ว่ากราฟของ
ที่plot ตั้งแต่
เท่ากับ
จะเปลี่ยนไปอย่างไรถ้าค่า
ค่อยเพิ่มขึ้นจาก
หรือ อย่างปัญหาในฟิสิกส์อยากรู้ว่าจะต้องยิงวัตถุจากจุดยอดของทรงกลมรัศมีขนาดหนึ่งด้วยมุมและอัตราเร็วเท่าใดวัตถุนั้นจึงจะเฉียดผิวของทรงกลมนี้พอดี และปัญหาอื่นๆอีกมากมาย สามารถดูตัวอย่างได้ที่ http://demonstrations.wolfram.com/
รูปแบบของคำสั่ง Manipulate ก็ตามที่แสดงด้านล่างนี้ครับ
รูปแบบคำสั่งนี้เป็นแบบ “จัดเต็ม”ครับ 🙂 แต่เราก็สามารถใส่แบบสั้นๆได้ครับ เช่นในการกำหนดตัวแปร อยากจะใส่เพียง {ตัวแปร,ค่าน้อยสุด,ค่ามากสุด} ก็ได้ครับ step ก็เป็นค่าอย่างเช่นจาก 1 ถึง 10 เราจะให้ค่าค่อยเพิ่มขึ้นครั้งล่ะเท่าไหร่จาก 1 ไปจนถึง 10 ส่วน options ก็จะเกี่ยวข้องกับการแสดงผลที่เกี่ยวข้องกับ slider หรือตัวควบคุมอื่นๆ เช่น Animator, Checkbox, ColorSetter, ColorSlider, InputField, Manipulator, PopupMenu, RadioButton หรือ RadioButtonBar, Setter หรือ SetterBar, Slider2D, Trigger and VerticalSlider ซึ่งเดี๋ยวจะพูดถึงทีหลังครับ
อันนี้เป็นตัวอย่างของกราฟ โดย Manipulate จะสร้าง slider สำหรับการเปลี่ยนค่า
มาให้
Manipulate[
Plot[Sin[
],{
}]
,{
}
]
ส่วนอันนี้ก็เป็นการใช้ PolarPlot กับ โดย
ค่อยๆเพิ่มจาก 0.01 ถึง
Manipulate[
PolarPlot[Cos[9], {
, 0, T},
PlotRange -> {{-1, 1}, {-1, 1}}],
{{T, 0.01, “(radian)”}, 0.01,
, Appearance -> “Labeled”}]
หรือจะลอง plot กราฟของฟังชั่นทางตรีโกนมิติ เช่น
Manipulate[
Plot[amp fun[freq x], {x, 0, 10}, PlotRange -> {-3, 3},
PlotStyle -> color, PlotLabel -> fun], {freq, 1, 5}, {amp, 1,
5}, {fun, {Sin, Cos, Tan, Csc, Sec, Cot}}, {{color,
Red}, {Purple -> “Purple”, Green -> “Green”, Blue -> “Blue”, Yellow -> “Yellow”}}]
ส่วนอันนี้ก็เป็นการเอาไปประยุกต์กับปัญหาฟิสิกส์ที่ว่าจะต้องยิงวัตถุจากจุดยอดของทรงกลมรัศมีขนาดหนึ่งด้วยมุมและอัตราเร็วเท่าใดวัตถุนั้นจึงจะเฉียดผิวของทรงกลมนี้พอดี(http://mpec.sc.mahidol.ac.th/forums/index.php/topic,345.0.html)
Manipulate[
Show[{Graphics[Circle[{0, 0}, r, {0, Pi}], Axes -> True],
Plot[Tan[theta] x – (9.8/(2 u^2 Cos[theta]^2)) x^2 + r, {x, 0,
r + 10}, PlotStyle -> Red,
PlotRange -> {{-r – 10, r + 10}, {0, r + 10}}]}],
{{u, 4.95, “initial speed(m/s)”}, 0.01, 50, 0.0001, Appearance -> “Labeled”},
{{theta, 0.5236, “launch angle(radian)”}, 0, Pi/2, 0.0001, Appearance -> “Labeled”},
{{r, 5, “circle radius(m)”}, 1, 10, Appearance -> “Labeled”}]
ส่วนอันนี้เป็น demonstration project ที่ผมลองทำส่งไปที่เวบ Wolfram ครับ
http://demonstrations.wolfram.com/AModelOfPlasmodiumFalciparumPopulationDynamicsInAPatientDuri/
2 thoughts on “มาใช้ Mathematica ในการเรียนการสอนกัน ด้วยคำสั่ง Manipulate 2”
Comments are closed.