ggplot vs Mathematica

หลังๆมานี้ผมใช้งาน ggplot เยอะพอสมควรด้วยความที่มัน plot แล้วลงสีค่าตัวแปรที่ผมต้องการได้ง่าย อย่างเช่นในตัวอย่างนี้ จากชุดข้อมูล iris ผม plot จุดโดยแกน x คือ sepal length และ y คือ sepal width แล้วให้ลงสีตาม species เพื่อที่เราจะได้เห็นว่าแต่ล่ะ species แต่กต่างกันอย่างไร ใน ggplot ผมเพียงแค่บอกว่า แกน x y คือค่าอะไร และลงสีโดยอาศัยค่าจากตัวแปลใด ซึ่งมันดูง่ายมากครับ

กลับมาที่ตัว Mathematica ที่ผมใช้อยู่ประจำต้องบอกเลยครับการจะทำแบบที่ ggplot ทำได้นั้นมันก็ไม่ยากเลยแต่ต้องเขียน code เพิ่มนิดหน่อยในการที่ให้ได้ list ของจุดในแต่ล่ะ species แล้ว plot รวมกันหรือจะแยก plot คนล่ะสีแล้วใช้คำสั่ง Show เอามาซ้อนๆกันได้ ซึ่งผมเองดูแล้วมันก็ค่อนข้างยุ่งพอสมควร แต่ผมก็มาพบด้วยความบังเอิญว่า เราสามารถใช้ Dataset กับคำสั่งพวก plot กราฟ ต่างๆได้ และมันก็ลงสีให้อัตโนมัติด้วย เช่นเพื่อให้ได้กราฟแบบที่ ggplot ทำได้ผมก็แค่ group มันด้วย species ก่อนแล้วเลือก แกนที่จะนำมา plot เช่น

มันทำให้ผมประหลาดใจมาครับที่ Mathematica ทำแบบนี้ได้ตั้งนานแล้ว และผมเองก็เพิ่งรู้ 555

3,4,7,8 ทำยังไงให้ได้ ผลลัพธ์เท่ากับ10 ใช้ได้แค่เครื่องหมาย + – × ÷ ()

3,4,7,8 ทำยังไงให้ได้ ผลลัพธ์เท่ากับ10 ใช้ได้แค่เครื่องหมาย + – × ÷ () – Pantip

wolfram notebook v.13.1.0

ค่อนข้างตกใจที่ Wolfram Notebook ใน Mathematica 13.1.0 นั้นมีหน้าตาเปลี่ยนไป จากที่ใช้มาหลายปี แต่มันก็ช่วยได้เยอะเลย ดูใช้ง่ายขึ้น

ประมาณหาค่ารากที่สองของจำนวนที่ต้องการ

วิธีที่จะพูดถึงนี้คือวิธีที่เรียกว่า Newton method หรือ Newton-Raphson method ที่ใช้สำหรับหารากของ function f(x) หรือค่า x ที่ทำให้ f(x) =0 ครับ โดยที่ วิธีการหาก็เพียงทำซ้ำๆตามสูตรนี้เลยครับ

โดยที่เราเพียงเดาใส่ค่าเริ่มต้นครับ

ซึ่งรากที่สองของจำนวนที่เราต้องการ a ก็เป็นเพียงคำตอบของสมการ

x^2-a = 0

หรือในกรณีของ Newton method นั้น เราจะได้ว่า

f(x) = x^2-a

ดังนั้นเราสามารถที่จะเขียน code เพื่อประมาณหา sqrt(2) ในภาษาWolfram ได้ง่ายๆว่า

f[x_]:=x^2-2;
ans = NestWhileList[(# - f[#]/f'[#]) &, 1.0, Abs[#1 - #2] > 10^-6 &, 
   2] // Last

ใน code ตัวอย่างนี้ผมให้มันหยุดถ้าผลต่างจำนวนสองตัวหลังสุดต่างกันน้อยกว่า 10^{-6}

หรือจะเขียนเป็น function เพื่อสำหรับหาค่ารากที่สองของ 1-100

ลองเล่นดูครับ

%d bloggers like this: