ขอต้อนรับ ผู้มาเยือน กรุณา ล็อกอิน หรือ สมัครสมาชิก

ล็อกอินด้วยชื่อผู้ใช้ รหัสผ่่าน และระยะเวลาใช้งาน

มีน้ำใจ ไม่อวดตัว มั่วไม่ทำ
 
Advanced search

40659 Posts in 5988 Topics- by 5684 Members - Latest Member: ด.ช.ปรัตถกร พรมลี
Pages: 1   Go Down
Print
Author Topic: คำสั่ง Dynamic  (Read 4385 times)
0 Members and 1 Guest are viewing this topic.
krirkfah
SuperHelper
*****
Offline Offline

Posts: 629


« on: October 14, 2014, 08:35:48 PM »

ผมอยากทราบว่าคำสั่งนี้มันใช้ทำอะไรได้บ้าง แล้วมันใช้ยังไงบ้าง ผมอ่านแล้วไม่ค่อยเข้าใจเท่าไรครับ แล้วพอจะมีคำสั่งไหนที่นับรอบของการวนไหมครับ หมายถึง สมมติหมุนไป 2\pi แล้วก็มีตัวนับว่าเป็น 1 รอบ  Smiley
« Last Edit: October 14, 2014, 11:36:30 PM by krirkfah » Logged
Bright
neutrino
*
Offline Offline

Posts: 212

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« Reply #1 on: October 17, 2014, 02:12:53 PM »

เป็นเรื่องใหญ่เลยนะครับเนี้ยสำหรับคำสั่ง Dynamic รายละเอียดมันเยอะมากครับ  buck2 เอาคร่าวๆก่อนนะครับ
ถ้าเคยใช้คำสั่ง Manipulate มา ก็อยากจะบอกว่าคำสั่ง Dynamic นี่เป็นแหละครับผู้อยู่เบื้องหลังของคำสั่ง Manipulate

การใช้งาน Dynamic มีเพียงว่า อะไรก็ตามที่ Mathematica สามารถคำนวณหรือวาด(เช่น กราฟ)ให้ได้และคุณต้องการที่จะให้ผลลัพธ์นั้นมีการเปลี่ยนแปลงหรือให้แสดงผลทันที ถ้าตัวแปรหรือพารามิเตอร์ที่เกี่ยวข้องในการคำนวณหรือการวาดนั้นมีการเปลี่ยนไป เราสามารถใช้คำสั่ง Dynamic ช่วยได้ครับ เช่น ผมต้องการดูว่ากราฟ sin(a x)^2 โดย x  เริ่มจาก 0 ถึง 4Pi จะมีการเปลี่ยนแปลงอย่างไรถ้าค่าของ a มีการเพิ่มขึ้น ผมสามารถใช้ Dynamic ทำได้ตามนี้ครับ


แต่ถ้าขี้เกียจพิมพ์ค่า a เราก็สามารถประยุกต์ใช้ slider ได้ครับ ตามนี้


จากคำสั่งSlider[ x] จะแสดงslider โดยที่ตำแหน่งของตัวเลื่อนจะอยู่ที่ค่า x บนแกนเลื่อน ถ้าเราเลื่อนตัวเลื่อน ค่า x ก็จะเปลี่ยนไปด้วย ดังนั้นถ้าเราจะใช้ประโยชน์จากslider ซึ่งในกรณีนี้ก็คือค่า a เราต้องใช้ Dynamic กับค่าของ a ที่จะเปลี่ยนไปตามตัวเลื่อนนี้ด้วยครับ

ส่วนนี่ก็เป็นอีกตัวอย่างครับ ผมวาดรูปวงกลมรัศมีขนาด1หน่วยและมีลูกศรขนาด1หน่วยเช่นกันที่หางเริ่มจากจุดศูนย์กลางวงกลมและปลายหัวลูกศรอยู่บนเส้นรอบวง โดยที่ลูกศรจะทำมุมกับแนวระนาบขึ้นกับขนาดของมุม theta ครับ


ส่วนคำสั่งนับจำนวนรอบอะไรนั่น ผมว่าเราประยุกต์คำสั่ง Quotient หรือ QuotientRemainder มาใช้ได้ครับ เช่น
QuotientRemainder[4.5Pi,2Pi] จะได้คำตอบ {2, 1.5708} ซึ่งก็คือ 2Pi หาร 4.5Pi ได้ 2 เหลือเศษ 1.5708
 
Logged
krirkfah
SuperHelper
*****
Offline Offline

Posts: 629


« Reply #2 on: October 25, 2014, 07:40:46 PM »

ขอบคุณมากครับ ขออภัยที่มาตอบช้าครับ  ถ้ามีอะไรสงสัยขอรบกวนอีกนะครับ  แล้วมีหนังสือการใช้โปรแกรมแนำนำบ้างไหมอะครับ ในตัวโปรแกรมเองมีข้อมูลให้อยู่ก็จริงแต่ บางคำสั่งผมอ่านแล้วไม่ค่อยรู้เรื่องอะครับ  Smiley  ผมอีกปัญหาครับ สมมติกราฟของผมมันวนรอบ quadrant ทั้ง 4 หลายๆรอบ ซึ่งถ้าแค่ว่ากราฟใช้ Plot เราจะไม่สามารถรู็ได้ว่ามันวนทั้งหมดกี่รอบ พอจะมีคำสั่งไหนช่วยนับได้ไหมครับ คำสั่งที่ใช้หาผลหาร ผมคิดว่าไม่น่าจะใช้กับงานนี้ได้  Cry แล้วมีคำสั่งที่ใช้ Plot พวกกราฟที่มาจาก Implicit function บ้างไหมครับ เช่น พวกสมการวงกลมที่เขียนแบบ Cartesian เช่น x^2+y^2=9 แบบนี้อะครับ
« Last Edit: October 25, 2014, 08:17:28 PM by krirkfah » Logged
Bright
neutrino
*
Offline Offline

Posts: 212

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« Reply #3 on: October 26, 2014, 11:02:08 PM »

ลองประยุกต์ใช้คำสั่ง ContourPlot ดูนะครับสำหรับ plot สมการ x^2+y^2=9
Manipulate[
 ContourPlot[x^2 + y^2 == r^2, {x , -10, 10}, {y, -10, 10}], {r, 0, 10,
   Appearance -> "Labeled"}]


ส่วนเรื่องนับจำนวนรอบ ฟังก์ชั่นที่ว่านั้นขึ้นกับเวลา หรือระยะทาง ยังไงหรือครับ ผมว่าอาจต้องเขียนคำสั่งช่วยนับ
Logged
krirkfah
SuperHelper
*****
Offline Offline

Posts: 629


« Reply #4 on: October 27, 2014, 06:04:53 PM »

ขอบคุณครับ  Smiley ผมต้องการที่จะทำการ mapping Complex function อะครับ โดยสัมประสิทธิ์ของ Complex function เป็น Real number หลังจาก mapping ผมจำนับจำนวนครั้งที่กราฟผ่านจุด (0,0) ครับ เพื่อที่จะได้รู้จำนวนรากที่เป็นคำตอบของสมการ และทำไปใช้วิเคราะห์ fundamental theorem of algebra ต่อได้อะครับ แต่ผมไม่รู็จะทำมันยังไง ลองเขียนพวกคำสั่งฟังก์ชันต่างๆก็แล้ว แต่ก็ไม่สำเร็จครับ  Cry รบกวนช่วยแนะนำด้วยครับ  Smiley
ปล. ผมสังสัยอีกอย่างหนึ่ง ถ้าตอนตั้งต้นเราไม่ใช่ คำสั่ง Dynamic แล้ว พอต้องการปรับค่า ค่อยมาใส่ Dynamic ของค่าที่ต้องการปรับทำไมมันถึงใช้ไม่ได้หรอครับ เช่น
                             
                  Plot[Sin[a x]^2 , {x, 0, 4}]

                  Slider[Dynamic[a] , {0, 10} , Appearance -> "Labeled"  ]
« Last Edit: October 27, 2014, 06:19:34 PM by krirkfah » Logged
Bright
neutrino
*
Offline Offline

Posts: 212

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« Reply #5 on: October 28, 2014, 09:12:55 AM »

อ๋อถ้าอย่างนั้นลองใช้วิธีดูที่เครื่องหมายของคู่อันดับดีไหมครับ เช่น ผมมี list ของจุดที่วนเป็นวงกลมตามนี้

จากนั้นก็ลองดูว่ามีจุดในอยู่ quadrant ที่เป็นบวกทั้งคู่ โดยเปลี่ยนแต่ล่ะจุดเป็น 1 ถ้าอยู่ใน quadrant ที่ว่า หรือเป็น 0
ถ้าอยู่ในquadrant อื่น จากนั้นก็จะดูว่า list ของ 1,0 ที่ได้มานี้มีการเปลี่ยนจาก 0 ไปเป็น 1 กี่ครั้ง (ซึ่งก็คือการนับรอบ)
อันนี้เป็นตัวอย่างคำสั่งที่ลองเขียนขึ้นมาครับ

ส่วนอันนี้ก็ลองเอาไปใช้นับดู  ผมใส่ตัวอย่างคำสั่งที่ใช่พวกpattern มาช่วยหาว่ามันเปลี่ยนจาก0->1 ตรงไหนบ้างให้ดูด้วย หวังพอเป็นแนวทางบ้านะครับ


ส่วนการใช้Dynamicคุณก็ดูว่าอยากให้อะไรมันเปลี่ยนคุณก็ใช้กับอันนั้นครับ ถ้าไม่ใช้มันก็ไม่เปลี่ยนให้ครับถึงแม้ว่าตัวแปรที่เกี่ยวข้องมันเปลี่ยน (งงดีไหมครับ  Smiley)


Logged
krirkfah
SuperHelper
*****
Offline Offline

Posts: 629


« Reply #6 on: November 25, 2014, 08:15:28 PM »

ผมขอถามเพิ่มเติมหน่อยครับ ผมจะplotกราฟที่เป็นcomplex numberยังไงหรอครับ ผมอยากplot กราฟ ของ complex function เช่น  f(z)=z^2 แบบนี้อะครับ  buck2
Logged
Pages: 1   Go Up
Print
Jump to:  

คุณสมบัติของเด็กดี

ไม่ฟังเวลามีการนินทากัน ไม่มองหาข้อด้อยของผู้อื่น ไม่พูดนินทาเหยีบบย่ำผู้อื่น