SakNgoi

Category: Mathematica

My Green Apple

ทดลองเล่น WolframCloud เจ๋งมากกกกกก เขียนสั้น deploy ก็ง่าย (เชียร์ให้คนมาใช้กันเยอะๆ 555)   

NetChain กับ NetGraph

เวลาสร้าง neural network ใน Mathematica นั้นมันจะมีสองคำสั่งที่ใช้กันหลักๆก็คือ NetChain กับ NetGraph แต่สองคำสั่งนี้จะต่างกันตรงที่ NetChain มันจะเรียงแต่ล่ะ layer ต่อๆกันเป็น linear เลยในขณะที่ NetGraph มันจะยืดหยุ่นมากกว่าโดยที่เราสามารถที่จะบอกได้ว่าแต่ล่ะ layer ต่อกันยังไง เช่น

แสดง output จาก ggplot ใน Mathematica

ลองดูตัวอย่างที่ผมเขียนนี้ครับ  ไอเดียก็คือว่าให้มันเขียนภาพเป็นไฟล์ pdf ด้วยคำสั่ง ggsave แล้วเรียกกลับมาใน Mathematica ด้วย Import  โค้ดที่เขียนนี้ดัดแปลงมาจาก https://mathematica.stackexchange.com/questions/16726/how-to-get-a-plot-generated-by-r-returned-in-an-output-cell      

วาดกราฟ exponential sums

พอดีว่าไปเห็นกราฟที่วาดจาก Exponential sums จากเวบ https://www.maths.unsw.edu.au/about/exponential-sums แล้วดูว่าสวยดีเลยอยากลองทำดูบ้างด้วย Mathematica การวาดกราฟจาก exponential sums หรือที่เขียนอยู่ในรูปแบบ ที่ทำนี้ก็คือถ้าเราค่อยๆบวกเข้าไปทีละเทอมและเอาค่าที่ได้มาพล็อตกราฟใน complex plane โดยที่แกนนอนคือจำนวนจริงและแกนตั้งคือจำนวนจินตภาพ ลองดูที่โค้ดน่าจะเข้าใจมากขึ้นครับ fn[n_] := Log[n]^4 NP = 5000; ls = Accumulate[Table[Exp[2 \[Pi] I fn[n]] // N, {n, 1, NP}]]; Manipulate[ ListPlot[{Re@#, Im@#}\[Transpose] &@(ls[[1 ;; np]]), Joined -> True, AspectRatio -> Full, PlotStyle -> Black, PlotRange -> {{-5, 70}, {-60, 20}}] , {np, […]

มาลองทำให้โค้ดMathematicaรันเร็วขึ้น

โค้ดที่เขียนด้วยMathematicaหรือภาษา Wolfram นั้นมันจะมีวิธีที่ช่วยให้มันรันได้เร็วขึ้นอยู่หลายวิธีครับ ขึ้นกับปัญหาและวิธีการเขียน ที่จะโชว์ให้ดูนี้ผมก็ใช้เทคนิคง่ายๆด้วยการทำ parallel ด้วยคำสั่ง ParallelTable และ compile ด้วยคำสั่ง Compile ครับ  โค้ดตัวอย่างที่จะเอามาลองนี้เป็นโค้ดที่ใช้วาดรูป Mandelbrot set ครับ แบบที่ 1 เป็นโค้ดเริ่มต้นที่ยังไม่มีการทำให้มันเร็วครับเขียนโดยใช้ loop จากคำสั่ง Table AbsoluteTiming[ test1 = Block[{i, x, p}, Table[i = 0; x = 0. I; p = r + I c; While[Abs@x <= Sqrt[2] && i < 9^3, x = x^2 + p; ++i]; […]

external packages / tools / resources ของ Mathematica ที่สนใจ

แนะนำ Link นี้ครับสำหรับผู้สนใจใช้งาน Mathematica ขุมทรัพย์อีกแห่งเลยครับ 🙂 https://stackoverflow.com/questions/4198961/what-is-in-your-mathematica-tool-bag เทคนิคเจ๋งๆเพียบเลยครับ    

รวมชีทไฟล์ XLSX แบบง่ายๆ

เนื่องจากว่ามีคนเข้ามาใช้บริการฟรีนี้กันเยอะ ผมเลยต้องขอหยุดให้บริการนะเพราะมันเล่นกิน cloud credit ของผมจนเกลี้ยงเลย 555 ถ้าบริษัทหรือห้างร้านใดสนใจอยากจะใช้งานขอมาเป็นสปอนเซอร์สนับสนุนจ่ายค่า cloud crditได้นะครับ ผมจะเปิดกลับให้ใช้เหมือนเดิม ตอนนี้ขอปิดบริการไปก่อน เห็นมีคนเข้ามาดูโพสท์ที่ผมเขียน เกี่ยวกับการรวมชีท Excel ที่มีheader เหมือนกัน (https://www.sakngoi.com/2011/01/23/การรวมms-excel-sheets-ไว้ในหน้าเดียว/) เยอะพอสมควร ก็เลยคิดว่าเขียนแบบง่ายๆไว้ให้ใช้กันแบบออนไลน์ก็คงดี ผมก็เลยเขียนแบบง่ายไว้ให้ครับที่ (แต่ขอเตือนนะครับว่า ไม่ควรเป็นข้อมูลที่ sensitive นะครับ เพราะผมจะไม่รับผิดชอบใดๆทั้งสิ้นหากมีปัญหาการรั่วไหลของข้อมูลขึ้นมา) https://www.wolframcloud.com/objects/cae100b5-7a2d-41ed-bed4-da1b86a5f67d เพียงลากไฟล์ xlsx ไปปล่อยหรือคลิกเลือกแล้วกด submit ครับ เช่นถ้าผมมีไฟล์xlsx ที่แต่ล่ะชีทเป็นตามนี้ ผลที่ได้ก็คือ จะมีแค่ชีทเดียวที่รวมทุกชีกเข้าไว้ด้วยกัน บ้างครั้งมันอาจจะขึ้น error ว่า “The supplied object cannot be interpreted as a file of type XLSX.” ก็ให้ลองกดรีเพรชหน้านั้นใหม่นะครับแล้วลองคลิกโหลดไฟล์ใหม่ครับ

Back to top
%d bloggers like this: