Calculation π (Pi) value By Monte Carlo

การคำนวณค่า π โดยใช้วิธีมอนติคาร์โล

ก่อนอื่นต้องขออธิบายเกี่ยวกับวิธีมอนติคาร์โลก่อนนะครับ

วิธีมอนติคาร์โล เป็นการหาคำตอบโดยใช้ความน่าจะเป็นและสถิติ หรือเรียกตัวอย่าง (Sample) ซึ่งจำนวนตัวอย่างจะมีผลต่อคำตอบที่ได้ ถ้าจำนวนตัวอย่างเยอะ คำตอบที่ได้จะใกล้เคียงคำตอบจริงมากเท่านั้น

ในบทความนี้จะยกตัวอย่างง่าย ๆ สำหรับการหาค่าพาย ด้วยวิธีมอนติคาร์โล โดยใช้โปรแกรม excel เป็นตัวอย่าง

อย่างแรก เรามาวิเคราะห์กันก่อนนะครับ ว่าจะหาค่าพายได้อย่างไร

 

Pi1  Pi2

กำหนดให้ วงกลมรัศมี R ดังภาพ ถูกแบ่งเป็น 4 ส่วน แต่ละส่วนมีพื้นที่ Q  และมีทรงสี่เหลี่ยมจัตุรัส ยาวด้านละ R (เส้นประสีแดง)

พื้นที่ของวงกลม คือ

Pi3

ย้ายตัวแปร จะได้

Pi4

นั่นหมายความว่า ค่าพายสามารถหาได้จาก พื้นที่วงกลมต่อพื้นที่สี่เหลี่ยม

นอกจากนี้ พื้นที่ A ยังสามารถหาได้จากพื้นที่ Q คือ

Pi5

ดังนั้น เราจะได้สูตรในการหาค่าพาย คือ

Pi6

เพราะฉะนั้น วิธีมอนติคาร์โล สำหรับหาค่าพายทำได้ ดังนี้

1. สุ่มค่า x และ y โดยให้ x และ y เป็นทศนิยมมีค่าอยู่ระหว่าง 0 ถึง 1
2. ถ้าผลลัพท์ x^2 + y^2 น้อยกว่าหรือเท่ากับ 1 ให้นับ เป็น 1 ถ้าไม่ นับเป็น 0
3. จะได้ 4 * (จำนวนที่นับได้ / จำนวนการสุ่มทั้งหมด)

สำหรับในทางปฏิบัติ ใน excel

1 ตั้งช่อง X และ Y ดังภาพ โดยใส่คำสั่งสุ่มตัวเลขทั้ง X และ Y คือ =1-2*RAND() ดังภาพ

Pi7    Pi8

2 ตั้งช่อง Check X และ Check Y  โดยใช้คำสั่ง =IF((B3^2+C3^2)<1,B3,0) สำหรับ X และ =IF((B3^2+C3^2)<1,C3,0) สำหรับ Y ดังภาพ

Pi9   Pi10

หมายความว่า ถ้า X^2 + Y^2 น้อยกว่าหรือเท่ากับ 1 ให้แสดงค่า X ถ้าไม่ให้แสดง 0 (ศูนย์) ในค่า Y ก็เช่นกัน

3 ตั้งช่อง Q และ R^2

คำสั่งในช่อง Q เป็น =IF((B3^2+C3^2)<1,1,0) หมายความว่า ถ้า X^2 + Y^2 น้อยกว่าหรือเท่ากับ 1 ให้แสดงค่า 1 ถ้าไม่ให้แสดง 0 (ศูนย์) ดังภาพ

Pi11

คำสั่งในช่อง R^2 เป็น =IF((B3^2+C3^2)<1,1,1) หมายความว่า ถ้า X^2 + Y^2 น้อยกว่าหรือเท่ากับ 1 ให้แสดงค่า 1 ถ้าไม่ให้แสดง 1 เช่นกัน ดังภาพ

Pi12

จากข้อ 1 – 3 จะมีส่วนประกอบ ดังภาพ

Pi13

สังเกตุว่า ช่อง Q และ R^2 จะมีตัวเลข (ดังสีแดงหมายเลข 1 และ 2) ซึ่งใช้คำสั่ง sum(….) หมายถึงรวมทุกค่าในช่อง Q และ R^2

จากตัวอย่างใช้ sample ทั้งหมด 20157

4 นำค่าทั้งหมดของ Q หารด้วยค่าทั้งหมดของ R^2 นำคำตอบที่ได้คูณด้วย 4 จะได้ค่าพายออกมา ดังภาพ

Pi14

ดาวน์โหลดไฟล์ excel ประกอบ Monte Carlo of Pi CEAE SNRU

บทความครั้งแต่ไป จะนำเสนอการคำนวณหาค่าแลตทิซพารามิเตอร์ ดังตัวอย่าง อย่าลืมติดตามนะครับ

MD Monte Carlo

 

Ref.

1 https://www.youtube.com/watch?v=UGqUUjoOdFY

2 http://www.eveandersson.com/pi/monte-carlo-circle

3 http://www.meccanismocomplesso.org/en/cluster-e-programmazione-in-parallelo-con-mpi-e-raspberry-pi/

4 staff.cs.psu.ac.th