SakNgoi

Tag: Wolfram Language

Wolfram animation in Jupyter

หลังๆมานี้ตั้งแต่ Wolfram Engine มันใช้ได้ฟรี ผมก็มักจะแนะนำให้คนโน่นคนนี้ใช้มันอยู่เรื่อยๆ หลายคนที่ก็ชอบ ส่วนอีกหลายคนก็ยังรู้สึกอึดอัดเพราะมันยังไม่ชินหรือไม่ก็เพราะ UI มันไม่มีไม่น่าใช้ ยิ่งแนะนำให้ใช้กับ Jupyter ยิ่งหนักเลยเพราะยังทำ Animation ไม่ได้หรือพวก 3D ทั้งหลายก็หมุนไม่ได้ zoom ก็ไม่ได้ ยิ่งคำสั่งพวก Manipulate ที่ถือได้ว่าเป็นสิ่งหลักที่ถูกใช้ในหลายๆงานก็ใช้ไม่ได้เลย ส่วนตัวผมก็ยังถือว่ามันไม่ได้แย่ขนาดนั้น เพราะทางWolframเองก็คงเข้าใจว่าถ้าเอาWolfram engine ไปใช้โดยไม่มีUI ที่เหมือน Mathematica notebook คนคงมาใช้งานมันน้อยแน่ๆ เขาเลยเอา WolframPlayer ติดมาด้วยกับ Wolfram engine ซึ่งนั่นหมายความว่าผู้ใช้ก็ต้อง Export สิ่งที่ต้องการอย่าง 3D, Animation อื่น ๆมาอยู่ในรูปแบบ notebook (.nb) หรือ .cdf แล้วเปิดในตัว player แทน ซึ่งถ้าใช้ตัว Jupyter กับ Wolfram ก็สามารถที่จใช้คำสั่ง RunProcess เรียกตัว […]

แสดงผลลัพธ์จาก wolfram script แบบกราฟฟิค

ตั้งแต่ Wolfram Engine สามารถใช้ได้ฟรีนี่ทำให้ผมมีอะไรได้ลองเล่นเยอะเลย ถึงแม้จะมี Wolfram Mathematica อยู่แล้วนะเนี้ย ตัว Wolfram Engine ที่เราสามารถโหลดมาใช้ได้ฟรี(http://www.wolfram.com/engine/) นี้จะเป็นแบบ text mode ไม่มี UI มาให้ ก็อาจจะทำให้ลำบากหน่อยถ้าอยากจะดูผลลัพธ์ที่เป็นกราฟฟิค เพราะอาจต้อง Export เป็นไฟล์ไปก่อนแล้วค่อยเปิดดู แต่ถ้าอยากจะให้ตัว Wolfram Engine มันแสดงผลกราฟฟิคให้ดูเราก็สามารถที่จะใช้ตัวแพ็กเกจ JavaGraphics ช่วยได้ครับวิธีก็เพียงโหลด <<JavaGraphics` ก่อนที่จะให้มันแสดงผลลัพธ์กราฟฟิคของคำสั่งที่ต้องการ ตัวอย่างครับ หรือถ้าใครสนใจจะใช้ผ่าน UI อย่าง jupyter ก็ลองดูที่ projects ตามนี้ดูนะครับ https://github.com/Ludwiggle/JWLS https://github.com/mmatera/iwolfram https://github.com/WolframResearch/WolframLanguageForJupyter สวนตัวแนะนำ WolframLanguageForJupyter ครับ วิธการติดตั้งที่อยากแนะนำก็คือลง Anaconda พอลงเสร็จก็รัน Anaconda prompt แล้วรัน wolframscript จากนั้นก็ติดตั้ง WolframLanguageForJupyter ตามวิธีที่เขาแนะนำไว้ครับ

เขียนcodeแก้ปัญหาจากpantipเล่น

https://pantip.com/topic/38221485/ code สำหรับปัญหานี้ https://www.wolframcloud.com/objects/sompob/test/pantip_01Nov18.nb Manipulate[ Show[   Graphics[{EdgeForm[Pink], FaceForm[Blue],     Rectangle[{1 – Cos[-15 Degree], 0}, {x,       x – (1 – Cos[-15 Degree])}]}],   Graphics[{EdgeForm[LightBlue], FaceForm[Black],     Rotate[Rectangle[{0, 0}], -15 Degree, {1, 0}],     PlotRange -> {{-2, 2}, {-2, 2}} }],   Graphics[    Text[“Area of the Big Square:” <>      ToString[(x – (1. – Cos[15 Degree]))^2/(0.5*Sin[15 Degree]*          Cos[15 Degree])], {0.25, […]

Mathematica package รวบรวมคำสั่งเมีย

ศรีภรรยาผมขอบมีคำถามเกี่ยวกับคอมพิวเตอร์แปลกๆมาถามเสมอ เช่นไอ้โน้น ไอ้นี่ทำไง สุดท้ายผมก็ต้องทำอยู่ดีขัดคำสั่งไม่ได้ โดยแต่ล่ะคำถามก็จะไปจบที่ผมต้องเขียนโปรแกรมเพื่อแก้ปัญหาให้ ซึ่งส่วนใหญ่ผมจะเขียนโดยใช้ภาษา Wolfram ครับ โดยทุกวันนี้เริ่มมีจำนวนคำสั่งมากขึ้นเรื่อย ตอนนี้ก็น่าจะประมาณ 20 คำสั่งได้ ผมก็เลยคิดว่าถ้าเช่นนั้นผมก็เอามารวมเป็น package เลยแล้วกันเผื่อว่าใครอยากจะใช้ด้วย โดยคำสั่งส่วนมากจะเกี่ยวกับปัญหาทางด้าน bioinformatics ครับ ซึ่งมันอาจจะมี package หรือโปรแกรมภาษาอื่นทำในสิ่งที่ผมเขียนไว้นี้ไว้หมดแล้วก็ได้ แต่ผมไม่ได้เช็คนะครับเพราะไม่มีเวลาค้นดูและเวลามันจำกัดครับ ช้าไม่ได้เพราะผมอาจถึงแก่ชีวิตได้ ใครสนใจลองดูที่ https://github.com/slphyx/Nao ผมจะทยอยเพิ่มจำนวนคำสั่งเรื่อยๆครับ  

ปัญหาเข็มของบึฟฟองBuffon’s Needle

เห็นมีคนพูดถึงปัญหานี้ในกลุ่มผู้ใช้ R ของไทยเราเลยเอามาเขียนโปรแกรมทำบ้างแต่ใช้ภาษา Wolfram แทนเพราะจะเขียนได้สั้นมาก โปรแกรมที่เขียนนี้จะวาดเส้นแนวนอนที่มีระยะห่างตามที่กำหนดและก็สุ่มวางเข็มตามขนาดและจำนวนที่ต้องการลงไปแล้วนับดูว่าที่กี่เล่มที่ทับเส้น จากนั้นก็คำนวณประมาณค่า pi จากสูตรที่เขียนไว้ที่ https://en.wikipedia.org/wiki/Buffon%27s_needle ซึ่งก็คือ โดย l คือความยาวเข็ม, n  คือจำนวนเข็ม, t คือระยะห่างระหว่างเส้นบรรทัด และ h คือจำนวนเข็มที่ทับเส้นบรรทัด สำหรับวาดเส้นของเข็มและเส้นบรรทัด สำหรับประมาณค่า pi สำหรับ simulation ทดลองเล่นดู โดยใช้เข็ม 100 เล่ม และกำหนดให้มีเส้นบรรทัด 10 เส้น โดยระยะห่างระหว่างบรรทัดกับความยาวเข็มเท่ากัน สำหรับmathematica notebook สามารถdownloadได้จากhttps://github.com/slphyx/Buffon-s-Needle

ตัวอย่างการใช้ InputField ใน Manipulate

ตัวอย่างการใช้ InputField ใน Manipulate ของ Mathematica ครับ ใน Manipulate นอกเหนือจาก พวก Slider และ Menu ต่าง ๆแล้ว เราสามารถที่จะใช้ InputField เพื่อรับค่าจาก users ได้โดยตรงครับ รายละเอียดการใช้งานต่างๆ สามารถดูเพิ่มเติมได้ที่ http://reference.wolfram.com/language/ref/InputField.html ครับ    

คำแนะนำสำหรับการทำ GUI ใน Mathematica

พอดีไปเจอ slides http://library.wolfram.com/infocenter/Conferences/7977/ แนะนำการทำ GUI ใน Mathematica โดย Faisal Whelpley and Lou D`Andria ที่presentในงาน wolfram technology conference 2011 มีการรวบรวม tips & tricks ที่น่าสนใจเยอะ โดยเฉพาะการใช้พวก Dynamics, DynamicsModule เดี่ยวถ้าว่างๆจะมาสรุปให้ฟัง 🙂  

Back to top
%d bloggers like this: