ว่ากันด้วยเรื่องของ Bug

ว่ากันด้วยเรื่องของ Bug

สำหรับการพัฒนาโปรแกรมใดๆก็ตามแต่ หากไม่พบเจอกับสิ่งที่เรียกว่า Bug ก็ไม่น่าจะเรียกว่า ได้พัฒนาโปรแกรม แต่ถ้ามีเยอะมากเกินไป ก็คงไม่ไหว

สำหรับโปรแกรมทดสอบคำนวณ FullMoon ในรอบนี้ก็เช่นกัน ซึ่ง Bug ของเรื่องนี้ เกิดขึ้นจากตรรกะที่ปรากฏอยู่เฉพาะในตำราฝั่งบ้านเรา ไม่ปรากฏในต้นทาง

อาจเป็นเพราะความยาวนาน และเป็นแต่จำกฎเกณฑ์กัน ทำตามๆกันมา โดยไม่มีคนอธิบายหลักการให้ทราบ จึงทำให้การคำนวณนั้นเกิดปัญหา

สุดท้าย ผู้เขียนจึงแก้ปัญหาด้วยการปรับใช้วิธีการของต้นทาง คือ ปรับเป็นสมผุสอาทิตย์บวก 180 องศา ลบสมผุสจันทร์ หารด้วย ภูจันทร์ เสีย เป็นอันจบเรื่องกัน

อันที่จริง ยังมีวิธีการเทียบบัญญัติไตรยางศ์ อีกด้วย แต่ไม่ได้ใช้ เนื่องจากต้องปรับสูตรและตัวแปรใหม่ทั้งหมด เรื่องเลยจบลงที่การใช้สูตรต้นทางเสียจะดีกว่า(เป็นวิธีการที่ไม่กระทบต่อโครงสร้างของโปรแกรมมากนัก)

จากรูปที่ให้ไว้นี้ พบว่า เกิดปัญหา Bug ทางตรรกะ ที่เดือน 10 หรือตุลาคม นี่เอง

โดยพบว่า เมื่อคำนวณโดยใช้คัมภีร์ ค่าที่ได้ออกมาเป็นค่าประหลาด

จากการตรวจสอบโดยละเอียด พบว่าค่าที่ได้เกิดจากตรรกะที่ไม่เป็นไปตามสูตรที่คล้ายกับต้นทางนัก จึงได้ทำการปรับปรุง เพื่อให้สามารถคำนวณเวลา FullMoon ได้ใกล้เคียงกับทางสากล

ข้อสังเกต เมื่อตรวจสอบค่าของดิถี(Thiti) ตามสูตรที่ปรับปรุงแล้ว จึงพบว่า ดิถีที่ได้อยู่ในช่วงของค่าขั้นต่ำสุดของการเกิดเป็นวันเพ็ญ คือ ประมาณ 14.3 กว่าๆ

ไม่แปลกใจเลยที่ตรรกะในคัมภีร์ส่วนนั้น จะตรวจหาไม่พบ แต่ถ้าใช้สูตรหาดิถีของสุริยุปราคา เพียงแต่เปลี่ยนค่าคงที่จาก 21600(360 องศา) มาเป็น 10800(180 องศา) ค่าที่ได้ก็ดูจะใกล้เคียงกับที่คำนวณได้นี้เช่นกัน แต่มีส่วนที่ต้องแปลงกลับ เพราะมุมมองของการคิด คิดกันอยู่คนละฟาก เมื่อปรับมาอยู่ในฟากเดียวกันแล้ว จึงได้คำตอบที่ออกมาใกล้เคียงกันกับวิธีการแบบบัญญัติไตรยางศ์

สำหรับคำตอบที่ได้นั้น แสดงไว้แล้วตามรูป ตัวเลขที่ออกมาจะอยู่ใกล้เคียงกับทั้งตัวเลขของ Jean Meeus สูตรปัจจุบันและสูตร J1900 แต่ก็ยังไม่ทราบอยู่ดี ว่า ควรใช้ตัวไหนเป็นหลักกันแน่ ต้องหาค่าอื่นๆจากแหล่งข้อมูลอื่นๆมาสอบทานซ้ำอีกรอบอยู่ดีนะครับ

สำหรับเรื่องของ Bugs และการแก้ไข ก็ขอจบลงแต่เพียงเท่านี้ แล้วพบกันใหม่ สวัสดี.

 













 

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

รวบรวมสมการสุริยยาตร์ ตอนที่ 2 ภาคสมการสมผุส

Julian Date หรรษา

กรณีศึกษา การทดสอบใช้สมการสุริยยาตร์ หาสมผุสดาวพฤหัสบดี และ ดาวเสาร์