SakNgoi

Tag: Mathematica

แสดงผลลัพธ์จาก 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 ตามวิธีที่เขาแนะนำไว้ครับ

เรื่อง plane geometry ใน Mathematica 12

Wolfram Mathematica 12 ที่เพิ่งจะเปิดตัวไปมีความสามารถเพิ่มขึ้นมาเยอะพอสมควรเลย และหนึ่งจากหลายความสามารถที่เพิ่มเข้ามานี้ที่ผมชอบมากก็คือความสามารถในเรื่องเรขาคณิตที่เรียกว่า Synthetic Geometry เจ้า Synthetic Geometry ก็เป็นสาขาที่ศึกษาเรขาคณิตที่หาข้อสรุปจากการใช้เรื่องสัจพจน์หรือข้อความคาดการณ์ต่างๆเป็นเครื่องมือหลักในการแก้ปัญหา ลองดูความหมายเพิ่มเติมที่ https://en.wikipedia.org/wiki/Synthetic_geometry  นะครับ ใน Mathematica 12 นี้เราสามารถที่จะสร้างไดอะแกรมของปัญหาได้จากคำสั่ง GeometricScene เช่น ถ้ามีสามเหลี่ยมที่มีมุมทั้งสามมุมอยู่ที่ จุด (0,0),(1,0),(0,1) หรือสามเหลี่ยมมุมฉากที่มีฐานและความสูงคือ 1 หน่วย เราก็สามารถสร้างได้แบบนี้ครับ จากคำสั่งด้านบน GeometricScene เราเพียงแต่บอกว่าเรามีจุดอะไรบ้าง ซึ่งในที่นี้ก็คือจุด a,b,c ที่อยู่ที่ {0,0},{1,0},{0,1} ตามลำดับ และก็บอกว่าให้สร้าง สามเหลี่ยมโดยใช้จุดที่กำหนดไว้ จากนั้นผมทดลองหาพื้นที่ของสามเหลี่ยมนี้ ซึ่งก็ผลลัพธ์ที่ได้ก็คือ 1/2 มาลองทำอะไรที่มันดูซับซ้อนขึ้นมาอีกหน่อยครับ  สมมุติว่าผมต้องการหาพื้นที่ของสามเหลี่ยมที่มีเหลี่ยมทั้งสามที่จุด k,l,n และมีวงกลมที่ผ่านจุดทั้งสามนี้ โดยผมกำหนดให้ว่าระยะระหว่างจุด k และ n  คือ 3 หน่วย และมีจุด m อีก หนึ่งจุดที่อยู่ด้านนอกวงกลม […]

เขียน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, […]

My Green Apple

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

แสดง 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      

มาลองทำให้โค้ด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 เทคนิคเจ๋งๆเพียบเลยครับ    

ใช้งาน gcc ที่มากับ Rtools ใน Mathematica

ใน Rtools จะมี compiler ของ gcc (mingw) มาด้วยแล้วทั้งที่เป็นแบบ 32 bits และ 64 bits หากอยากจะเอาไปใช้ใน Mathematica ก็ต้องเรียกผ่าน CCompilerDriver`GenericCCompiler` ครับ แล้วเพียงเซ็ต Path ของ gcc จาก Rtools นี้ให้ถูก เช่น Needs[“CCompilerDriver`GenericCCompiler`”] ทดลองเรียกใช้งาน greeter = CreateExecutable[StringJoin[ “#include <stdio.h>\n”, “int main(){\n”, ” printf(\”Hello MinGW-w64 world.\\n\”);\n”, “}\n”], “helloworld”, “Compiler” -> GenericCCompiler, “CompilerInstallation” -> “C:/Rtools/mingw_64”, “CompilerName” -> “x86_64-w64-mingw32-gcc.exe”] Import[“!\””<>greeter<>”\””,”Text”] Hello MinGW-w64 world. ที่นี้ถ้าอยากจะให้ […]

Back to top
%d bloggers like this: