การคำนวณค่า pi
มาลองทำตัวอย่างคลาสสิกกัน นั่นคือการประมาณค่า \(\pi\)
ลองนึกภาพสี่เหลี่ยมจัตุรัสที่มีด้านยาว \(2\) โดยมีจุดกำเนิด \((0, 0)\) เป็นจุดศูนย์กลาง และมุมทั้งสี่อยู่ที่พิกัด \((1, 1), (1, -1), (-1, 1), (-1, -1)\) สี่เหลี่ยมนี้มีพื้นที่ \(2\times 2 = 4\) จากนั้นลองนึกภาพวงกลมรัศมี \(1\) ที่มีจุดศูนย์กลางอยู่ที่จุดกำเนิด และพอดีอยู่ภายในสี่เหลี่ยมนั้น วงกลมนี้มีพื้นที่ \(\pi \times \text{radius}^2 = \pi\)
ในการประมาณค่า \(\pi\) เราจะสุ่มจุดหลายจุดภายในสี่เหลี่ยม แล้วหาสัดส่วนของจุดที่อยู่ภายในวงกลม (\(x^2 + y^2 <= 1\)) จากนั้นนำสัดส่วนนี้คูณด้วย \(4\) ก็จะได้ค่าประมาณของ \(\pi\)
หลังจากทำแบบฝึกหัดนี้ คุณจะเข้าใจวิธีใช้การจำลองสถานการณ์เพื่อการคำนวณมากขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองทางสถิติด้วย Python
คำแนะนำการฝึกหัด
- ตรวจสอบค่าที่แท้จริงของ \(\pi\) โดยใช้
np.piใน console จากนั้นกำหนดค่าsimsเป็น 10000 และcircle_pointsเป็น 0 - ภายใน
forloop ให้สร้างจุด (พิกัด x และ y) โดยใช้np.random.uniform()ในช่วง -1 ถึง 1 โดยกำหนดsize=2 - ตรวจสอบว่าจุดนั้นอยู่ภายในวงกลมหนึ่งหน่วยหรือไม่ด้วยสมการ \(x^2 + y^2 <= 1\) แล้วกำหนดผลลัพธ์ให้กับ
within_circleและเพิ่มค่าcircle_pointsตามผลที่ได้ - แสดงค่าประมาณของ \(\pi\) ในชื่อ
pi_simซึ่งมีค่าเท่ากับ 4 เท่าของสัดส่วนจุดที่อยู่ภายในวงกลม
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize sims and circle_points
sims, circle_points = ____, ____
for i in range(sims):
# Generate the two coordinates of a point
point = ____
# if the point lies within the unit circle, increment counter
within_circle = point[0]**2 + point[1]**2 <= 1
if ____ == True:
circle_points +=1
# Estimate pi as 4 times the avg number of points in the circle.
pi_sim = ____
print("Simulated value of pi = {}".format(pi_sim))