SakNgoi

Tag: Mathematica

มาใช้ Mathematica ในการเรียนการสอนกัน ด้วยคำสั่ง Manipulate 1

ผมจะมาเล่าให้ฟังครับว่าเราจะใช้โปรแกรมที่ชื่อ Mathematica ในการเรียนการสอนได้อย่างไร ด้วยคำสั่ง Manipulate แต่ก่อนจะไปถึงตอนนั้น ผมขอแนะนำว่าคนที่ไม่รู้ว่า Mathematica คืออะไรแล้วมันใช้ทำอะไรได้บ้างลองดูจากวีดีโอแนะนำนี้ดูครับ  QuickTour ส่วนใครที่กำลังเริ่มต้นเรียนรู้ใช้งานสามารถอ่านคำแนะนำการใช้งานเบื้องต้นของท่านอ.พงศกร สายเพ็ชร์ ได้ครับหรือจะไปพูดคุยสอบถามการใช้งาน Mathematica ได้ที่ http://mpec.sc.mahidol.ac.th/forums/ ครับ ตัวอย่างจากการใช้คำสั่ง Manipulate ในการสร้างapplicationแบบต่างๆมีตัวอย่างมากมายที่ http://demonstrations.wolfram.com/ ต้องติดตั้ง Wolfram CDF Player ก่อนนะครับถึงจะเปิดดูพวกตัวอย่างนั้นได้  เจ้าตัว CDF Player นี้เองที่เราจะเปิดอ่านไฟล์พวก .nb หรือ .cdf ได้แต่จะไม่สามารถแก้ไขได้ครับ ต้องใช้ Mathematica อย่างเดียวครับ ถ้าจะสร้างหรือแก้ไฟล์ .nb  ส่วนไฟล์ .cdf นั้น Mathematica เปิดดูได้อย่างเดียวครับจะไม่สามารถแก้ไขตัว application ได้ครับ ต่อตอนสองครับ(http://www.sakngoi.com/?p=290)

การใส่สีพื้นหลังของกราฟจากคำสั่ง Plot

การใส่สีพื้นหลังของกราฟจากคำสั่ง Plot มีหลายวิธีครับ ด้านล่างนี้เป็นตัวอย่างครับ Plot[Sin[x], {x, 0, 4 \[Pi]}, PlotStyle -> Red, Background -> Gray]   Graphics[Inset[ Plot[Sin[x], {x, 0, 4 \[Pi]}, PlotStyle -> White, Frame -> {True, True, False, False}, FrameStyle -> Directive[White, 12]]], Background -> Gray]   bg = Graphics[ Polygon[{{0, 0}, {1, 0}, {1, 1}, {0, 1}}, VertexColors -> {Black, Black, White, […]

เขียน Mathematica package แบบง่ายๆ

มาลองเขียน Mathematica package แบบง่ายๆกันครับ Mathematica package คืออะไร Mathematica package ก็คือชุดคำสั่งหรือโปรแกรมที่ถูกเขียนขึ้นเพื่อใช้ในการคำนวณเฉพาะด้าน ซึ่งจะมีสกุล .m โดยถ้าเปิดไฟล์ .m ด้วย text editor อย่างเช่น notepad หรือ Mathematica เองเราจะเห็น code ข้างในมีคำสั่งหลักๆดังนี้ เช่น BeginPackage[ “ชื่อpackage`”] คำสั่ง1::usage = “คำสั่ง1[ x] คำอธิบายการใช้คำสั่ง1” Begin[ “Private`”] คำสั่ง1[ x_] :=  …. End[] EndPackage[] การเรียกใช้งาน package ใน Mathematica เพียงใช้คำสั่ง Get หรือเครื่องหมาย << เช่น ถ้าpackage เราชื่อ MyPackage ก็เพียงพิมพ์ Get[MyPackage`] หรือ […]

เกี่ยวกับ AppendTo Sow Reap

ดูเหมือนว่าการใช้ AppendTo ในการเก็บค่าของตัวแปรที่สนใจจะทำให้การคำนวณช้าลงเมื่อ list ของตัวแปรมีขนาดใหญ่ขึ้นเรื่อย ๆ แนะนำว่าควรจะใช้ Sow และ Reap ช่วยจะดีกว่า ซึ่งก็ช่วยได้ เร็วขึ้นมาจริง (รู้สึกได้) ถ้าต้องการจะใช้ Sow แบบ Parallel ก็ทำแบบนี้ได้ครับ SetSharedFunction[ParallelSow] ParallelSow[expr_]:=Sow[expr]

อ่าน input file โดยใช้ Mathematica

จากตัวอย่างเกี่ยวกับการหาคำแรกหรือชื่อตัวแปรจาก input file http://www.sakngoi.com/?p=69 เราสามารถเขียนโดยใช้ Mathematica ได้เช่น ExtractVal[txtin_List, keyword_String] := Module[{pos, val}, (* extract the value of the keyword from the input file *) (* txtin = Import[inputfile,”Table”]; *) pos = Select[Position[ToLowerCase /@ txtin, keyword], #[[2]] == 1 &]; If[Length@pos == 1, val = txtin[[pos[[1, 1]], 2]];]; val ]; โดยที่ keyword ใน function ExtractVal นั้นก็เป็นชื่อตัวแปรที่เราต้องการนำไปใช้ […]

การรวมMS Excel sheets ไว้ในหน้าเดียวกันด้วย Mathematica

นักสถิติคนหนึ่งส่งไฟล์ข้อมูลที่เก็บใน Excel มาให้ เพราะต้องการให้รวมข้อมูลที่มีหลาย sheets โดยที่แต่ล่ะ sheet จะมี header เหมือนกันไว้ใน sheet เดียวกันเพื่อความสะดวกในการนำไปใช้ในโปรแกรมสถิติตัวอื่นเช่น STATA หรือ R วิธีที่ผมทำก็ง่ายมากเลยครับ ผมก็ให้ Mathematica อ่านข้อมูลเข้ามาทีล่ะ sheet ด้วยคำสั่ง Import เอามาต่อๆกันแล้วก็ Export มันออกมาเป็นไฟล์ใหม่ครับ ดูตัวอย่างด้านล่างครับ (* เปลี่ยนFolderไปที่ไฟล์ข้อมูลเก็บอยู่ เช่นที่ d:/works*) SetDirectory[“d:/works”]; (*อ่านข้อมูลทั้งหมดเข้ามาใน Mathematica พร้อมกับใช้ Flatten เพื่อเรียงข้อมูลใหม่*) dat = Flatten[Import[“data.xlsx”, {“Data”}],1]; (* จากนั้นก็สร้างไฟล์ใหม่ขึ้นมา  *) Export[“newdata.xlsx”, dat,”XLSX”] การอ่านไฟล์ Excel (.XLS, .XLSX) ด้วยคำสั่ง Import นั้นสามารถที่จะระบุตำแหน่งใน sheet และหมายเลขหรือชื่อของ sheet ได้ครับ สะดวกมากๆ […]

Back to top
%d bloggers like this: