SakNgoi

Category: Mathematica

Indivaria

Indivaria เป็น Mathematica package ที่ผมเขียนในช่วง 2009-2011 ซึ่งเป็นช่วงที่ผมเริ่มทำงานที่ MORU และก็กำลังเรียนป.เอกที่ OU ไปด้วย โดยปัญหาที่สนใจทำช่วงนั้นก็คือการดื้อยาของอาร์ทิมิสนินที่ยังไม่มีใครรู้เรื่องกลไกลของมันเลยว่าเกิดขึ้นได้อย่างไร แบบจำลองที่ทำก็เป็นแบบคร่าวๆที่จะช่วยอธิบายจากข้อมูลที่มี ซึ่งแบบจำลองนั้นก็มีหลากหลาย โดยผมก็ได้เขียนรวบรวมบางส่วนไว้เป็น package ในภาษา C#, R, และ Mathematica ที่เขียนไว้หลายภาษาก็เพราะว่าผมต้องหาวิธีการ fit ข้อมูลกับแบบจำลองที่คิดขึ้นมา แต่สุดท้ายแล้วก็ต้องไปจบที่ Mathematica เป็นหลัก เพราะไม่มีเวลาที่ดูต่อแล้วเพราะต้องรีบเรียนให้จบป.เอกให้ทันกำหนดเวลาที่มี และ Mathematica เองก็ง่ายมากสำหรับในการ run แบบขนานในการ fit ข้อมูล ผมได้แชร์ code ของ Indivaria สำหรับ Mathematica ไว้ที่ https://github.com/slphyx/Indivaria โดยผมตั้งใจว่าจะทำมันต่อถ้ามีเวลา โดยจะรวบรวม model ต่างๆที่เกี่ยวข้องมารวบรวมไว้ให้มากที่สุด หวังว่าจะมีคนเอาไปศึกษาต่อ

Metapopulation ของโรคไข้เลือดออก

พอดีว่าได้มีโอกาสไปร่วมทำงานวิจัยเรื่องการวางแผนการจัดการโรคไข้เลือดออกด้วยยุงติดเชื้อ Wolbachia ที่สถาบันข้อมูลขนาดใหญ่ (Big data institute) ที่มหาวิทยาลัยอ๊อกซ์ฟอร์ด โดยทางผมได้เสนอแบบจำลองคณิตศาสตร์ที่มีการใช้ข้อมูลแผนที่ต่างๆ อย่างเช่น การกระจายตัวของประชากร ที่อยู่อาศัยหรือการกระจายตัวของยุง แผนที่ที่คาดว่ายุงสามารถอยู่อาศัยได้ และแผนที่ของการเกิดโรคไข้เลือดออก เพื่อทำนายการกระจายตัวของโรคไข้เลือดออก และการวางแผนการปล่อยยุงที่ติดเชื้อ wolbachia รูปร่างหน้าตาของแบบจำลองคร่าวๆ ที่ให้ดูได้ก็จะประมาณนี้ครับ ไอเดียก็ประมาณว่าถ้าในบริเวณไหนมียุงติดเชื้อ wolbachia บริเวณนั้น็จะไม่มีไข้เลือดออกเลย การกระจายของยุงและเชื้อไข้เลือดออกก็ขึ้นกับว่าบริเวณนั้นและบริเวณใกล้เคียงมียุง หรือยุงอาศัยได้หรือไม่ มีคนอาศัยอยู่หรือเปล่า จากงานนี้เราจะสามารถวางแผนได้ว่าจะปล่อยยุงติดเชื้อนี้อย่างไร ตรงไหนถึงจะคุ้มค่า ในช่วงระยะเวลาที่จำกัดได้

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 เรียกตัว […]

หาขนาดของมุม CAD

เห็นมีคนถามคำถามนี้ที่ pantip (https://pantip.com/topic/39436894) เลยทำให้ดูเป็นตัวอย่างโดยการใช้ภาษา Wolfram ครับ ตาม link นี้ครับ https://www.wolframcloud.com/obj/sompob/Published/tri_pantip.nb

จำกัดช่วงของเลขสุ่มใน Stan

ถ้าจะจำกัดช่วงของเลขที่สุ่มจาก distribution ใดๆสามารถที่จะช่วงที่ต้องการได้โดยใช้ truncation function T ตามนี้ อย่างเช่น ถ้าอยากให้ y สุ่มมาจาก normal ที่ค่าอยู่ในช่วง -0.2 ถึง 1.5 สามารถพิมพ์ได้ตามนี้ครับ หรือจะพิมพ์แบบนี้ก็ได้ครับ แต่ถ้าทำในภาษา Wolfram ก็พิมพ์แบบนี้ได้ครับ

เขาว่าโจทย์เลขป.4

ดูแล้วเด็กก็คงต้องเขียนโปรแกรมช่วยแล้วล่ะครับ 555 ผมลองเขียนโปรแกรมด้วยภาษา Wolfram สำหรับปัญหานี้ตามนี้ครับ คำตอบที่ได้ก็จะประมาณนี้ครับ หรือให้แสดงผลสวย ๆ ก็จะได้

Back to top
%d bloggers like this: