บทความนี้ยังอยู่ใน ปฐมบท การสร้างแบบจำลอง และการจำลองโดยใช้ฟังก์ชั่น ใน Excel อยุ่นะครับ โดยในการจำลองต่างๆจะอาศัยเทคนิคหรือแนวคิดของการจำลองมอนติคาโล เป็นพื้นฐานครับ กล่าวคือการจำลองมอนติคาโล เป็นเทคนิคทางคณิตศาสตร์ที่ใช้คาดการณ์ผลลัพธ์ที่เป็นไปได้ของเหตุการณ์ต่างๆที่ไม่แน่นอน ซึ่งปัจจุบันเรามีคอมพิวเตอร์ที่ความเร็วสูงมาช่วยในการคำนวณ โดยอาจจะอาศัยข้อมูลในอดีต มาทำนายอนาคต ตามความน่าจะเป็นที่จะเกิดขึ้นได้ ดังนั้นใน Content นี้ จึงจะยกตัวอย่างการใช้เทคนิคการจำลองมอนติคาโล มาให้ท่านผู้อ่านได้ทำความเข้าใจเพื่อนำไปประยุกต์ใช้การจำลองสำหรับแก้ปัญหาในด้านต่างๆในชีวิตจริง เช่น Business Finance เกมส์ออนไลน์ Engineering เป็นต้น
เรามาศึกษา Classic Problem สำหรับการจำลองมอนติคาโล กันครับ นั่นคือ การประมาณค่า PI ซึ่งเรารู้กันแล้วว่า ค่า PI ที่ใช้ เป็นจำนวน อตรรกยะ นั่นคือ เป็นจำนวนที่ไม่สามารถเขียนเป็นเศษส่วนของจำนวนเต็มได้ หรือค่าเป็นทศนิยมไม่รู้จบ นั่นเอง โดยหากจะใช้กันในทางวิศวกรรม ก็อาจจะใช้ PI = 3.14159...... เป็นต้น เรามาดูแนวคิดการประมาณค่า PI กันวิธีหนึ่งครับ พิจารณารูป สี่เหลี่ยมจัตุรัส กว้าง 2R หน่วย ภายในบรรจุวงกลม รัศมี R หน่วย
เราจะสร้างแบบจำลอง สัดส่วนของ พื้นที่วงกลมต่อ พื้นที่สี่เหลี่ยม (RA) โดย
RA = PI*R^2/(2R)^2 = PI/4
RA = PI/4
ดังนั้น
PI = RA*4
เราจะจำลองเหตุการณ์ โดยสุ่มจุดในพิกัด x, y ในขอบเขต สี่เหลี่ยมจัตตุรัสขึ้นมา และจะพิจารณาว่าจุดที่สุ่มขึ้นมาอยู่ในวงกลมหรือไม่ และเมื่อสร้างเหตุการณ์สุ่มจุดต่างๆขึ้นมาเป็นจำนวนมาก เราจะพบว่า
สัดส่วนของจุดที่อยู่ในวงกลม (พื้นที่) ต่อ จุดทั้งหมดที่อยู่ในสี่เหลี่ยม คูณด้วย 4 จะมีค่าเข้าใกล้ค่า PI มากขึ้น มาดูการใช้ Excel ช่วยการจำลองมอนติคาโลกันเลยครับ
สมมุติ เรากำหนด R = 0.5 หน่วย จุดศูนย์กลางอยู่ในพิกัด 0,0
เราจะสุ่มจุดพิกัด x ,y ขึ้นมาโดยใช้ฟังก์ชั่น RAND ตามที่เคยได้อธิบายใน
Link นี้นะครับ
โดยเราจะสุ่มให้พิกัด x , y อยู่รหว่าง -0.5 ถึง 0.5 เขียนเป็นสูตร Excel ได้ดังนี้ครับ
พิกัด x = (0.5+0.5)*RAND()-0.5
พิกัด y = (0.5+0.5)*RAND()-0.5
การตรวจสอบพิกัด x,y ว่าอยู่ในวงกลมหรือไม จะเขียนสูตร Excel ได้ดังนี้
IF(SQRT(x^2+y^2)<= 0.5 , true,false)
ผลการจำลองแสดงดังภาพ
ขั้นตอนต่อไปเราจะเริ่มจำลองเหตุการณ์ การสุ่มพิกัด x ,y โดยในตัวอย่างขอ จำลองการสุ่มทั้งหมด 10,000 ครั้ง สร้างตัวเลข Trial ในหลัก G ตั้งแต่ G7:G10006 และกำหนดให้
ผลการตรวจสอบพิกัด x,y ว่าอยู่ในวงกลมหรือไม่ ใน H6 = F4
กำหนดพิกัด x ใน I6 = C4
กำหนดพิกัด y ใน J6 = D4
ใช้คำสั่ง Data table ในการช่วยสุ่มพิกัด x , y จำนวน 10,000 เหตุการณ์ โดยเลือก G6:J10006
ในหน้าต่าง Data table ให้คลิกเลือก Cell ช่องว่าง นอกพื้นที่ที่เราเลือก เนื่องจาก ไม่ได้มีการเปลี่ยนแปลงค่าในสูตรคำนวณอื่นๆ ผลการคำนวณด้วย Data Table แสดงได้ดังภาพ
เราจะเขียนสูตร Excel เพื่อช่วยแยกจุดที่อยู่ในวงกลม โดยเขียนสูตรไว้ดังนี้
K7 = IF(H7=TRUE , I7 , 0)
L7 = IF(H7=TRUE . L7,0)
นับจำนวนจุดที่อยู่ในวงกลมได้โดยเขียนสูตร Excel ได้ดังนี้
N5 = COUNTIF($H$7:$H$10006,TRUE)
เราสามารถประมาณค่า PI ได้ ตามสูตรดังนี้
PI = N6 = 4*N5/10000
ผลการจำลองแสดงได้ดังภาพ
และเราสามารถนำพิกัด x,y ที่จำลองได้ไปพล๊อตกราฟ เพื่อตรวจสอบความถูกต้องได้ดังภาพครับ
ถ้าเราสุ่มพิกัด x,y มากขึ้น ค่า PI ที่ประมาณก็จะมีความถูกต้องมากขึ้นครับ
ในบทความต่อๆไป เราจะนำเสนอการนำ การจำลองมอนติคาโล มาช่วยแก้ปัญหาต่างๆในชีวิตประจำวันของเรากันต่อครับ