หน้าแรกคลังความรู้Numerical MethodsAdaptive Simpson: แบ่งละเอียดเฉพาะที่จำเป็น
EP 07 · ขั้นสูง

Adaptive Simpson: แบ่งละเอียดเฉพาะที่จำเป็น

ไม่แบ่งทุกช่วงเท่ากัน แต่ใช้ error ตัดสินว่าบริเวณใดควรแบ่งต่อ

สถานะ: เนื้อหาพร้อม · รอเพิ่มคลิปบทความฉบับเต็มเพิ่มคลิปภายหลังได้
พื้นที่สำหรับคลิป YouTube แนวตั้งเขียนเนื้อหาบทเรียนให้เสร็จก่อนได้ แล้วค่อยใส่ VIDEO_ID ภายหลัง

ภาพรวมของบทเรียน

Adaptive Simpson ใช้ค่าหยาบและค่าละเอียดเปรียบเทียบกัน หากช่วงใดยังคลาดเคลื่อนมาก ระบบจะแบ่งเฉพาะช่วงนั้นต่อ

เป้าหมาย: ให้ผู้อ่านเห็นทั้งภาพรวมทางเรขาคณิต ที่มาของสูตร และเหตุผลว่าค่าประมาณดีขึ้นได้อย่างไร

แนวคิดสำคัญ

  • เริ่มจาก Simpson ครอบทั้งช่วง
  • แบ่งครึ่งและคำนวณใหม่
  • ใช้ผลต่างเป็นตัวประเมิน error
  • ทำซ้ำแบบ recursive เฉพาะช่วงที่ยังไม่ผ่าน

Adaptive Simpson เกิดจากข้อสังเกตว่าไม่ใช่ทุกบริเวณของกราฟต้องการความละเอียดเท่ากัน ช่วงที่เรียบมากอาจใช้ช่วงกว้างได้ แต่ช่วงที่โค้งเร็วหรือเปลี่ยนทิศแรงควรแบ่งย่อยมากขึ้น

วิธีนี้เริ่มจากคำนวณ Simpson ครอบช่วงใหญ่หนึ่งครั้ง แล้วแบ่งช่วงครึ่งหนึ่งเพื่อคำนวณ Simpson บนซ้ายและขวา ถ้าผลรวมแบบละเอียดต่างจากแบบหยาบน้อยพอ ก็ยอมรับช่วงนั้น ถ้ายังต่างมากก็แบ่งต่อ

แก่นของ adaptive: ใช้ error estimate ตัดสินใจว่าจะลงทุนคำนวณเพิ่มตรงไหน แทนการเพิ่มจำนวนช่วงทั้งโดเมนพร้อมกัน

สูตรที่ใช้

\[\left|S_{\text{fine}}-S_{\text{coarse}}\right|<\varepsilon\]

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

ให้ \(S_{\text{coarse}}\) คือ Simpson บนช่วง \([a,b]\) ทั้งช่วง และ \(S_{\text{fine}}=S(a,m)+S(m,b)\) เมื่อ \(m=\dfrac{a+b}{2}\) ความต่าง \(|S_{\text{fine}}-S_{\text{coarse}}|\) ใช้เป็นสัญญาณว่าเส้นโค้งที่ fit ครั้งแรกยังหยาบเกินไปหรือไม่

\[E\approx\frac{|S_{\text{fine}}-S_{\text{coarse}}|}{15}\]

ตัวหาร 15 มาจากการที่ error หลักของ Simpson มีลำดับ \(h^4\) เมื่อแบ่งครึ่งช่วง error หลักจะลดตามอัตราที่นำไปสู่ตัวประกอบ \(2^4-1=15\) ใน Richardson-style correction

ตัวอย่างทีละขั้น

ใช้กราฟที่ด้านหนึ่งโค้งมากกว่าด้านอื่น เพื่อให้เห็นการแบ่งช่วงไม่สม่ำเสมออย่างชัดเจน

  1. กำหนดฟังก์ชันและช่วงที่ต้องการประมาณ
  2. เลือกจำนวนช่วงหรือระดับการคำนวณ
  3. หาค่าฟังก์ชันที่จุดสำคัญ
  4. แทนค่าลงในสูตรโดยแสดงทุกบรรทัด
  5. เปรียบเทียบกับค่าจริงหรือวิธีอื่นถ้ามี

พิจารณา \(f(x)=\dfrac{1}{1+x^2}\) บน \([0,2]\) เริ่มคำนวณ Simpson ทั้งช่วงได้ \(S_{\text{coarse}}=1.066667\) แล้วแบ่งเป็น \([0,1]\) และ \([1,2]\) ได้ผลรวม \(S_{\text{fine}}=1.105128\)

\[E\approx\frac{|1.105128-1.066667|}{15}=0.002564\]

ถ้ากำหนด tolerance เป็น \(10^{-4}\) ช่วงนี้ยังไม่ผ่าน จึงต้องแบ่งต่อ แต่เมื่อดูรายช่วงจะพบว่า \([0,1]\) มี error ประมาณ \(0.000137\) ขณะที่ \([1,2]\) มี error ประมาณ \(0.000003\) ดังนั้นช่วงซ้ายควรถูกแบ่งต่อมากกว่าช่วงขวา

ช่วงcoarsefineestimated error
[0,2]1.0666671.1051280.002564
[0,1]0.7833330.7853920.000137
[1,2]0.3217950.3217480.000003

สิ่งที่ควรสังเกตจากภาพ

ส่วนนี้ใช้สำหรับแทรกภาพนิ่งจาก Manim หรือภาพเปรียบเทียบสำคัญ เช่น จุดตัวอย่าง พื้นที่ที่ประมาณเกิน–ขาด ตารางค่า หรือเส้นทางของ error

IMAGE SLOT: เพิ่มภาพจากคลิปภายหลัง พร้อม alt text และคำอธิบายใต้ภาพ

ข้อควรระวัง

  • อย่าใช้สูตรโดยไม่ตรวจเงื่อนไขจำนวนช่วง
  • อย่าปัดเศษเร็วเกินไปในขั้นกลาง
  • ต้องแยก “ค่าประมาณ” ออกจาก “ค่าจริง” ให้ชัด
  • ควรอธิบายว่า error ที่กล่าวถึงวัดจากอะไร
อย่าลืม budget: ต้องกำหนดจำนวนรอบลึกสุดหรือจำนวน evaluation สูงสุด เพื่อป้องกันการแบ่งไม่จบในฟังก์ชันที่ยากมาก

tolerance ควรถูกแบ่งให้ช่วงย่อยอย่างมีเหตุผล เช่นให้ครึ่งหนึ่งกับซ้ายและครึ่งหนึ่งกับขวา ไม่เช่นนั้นผลรวม error ทั้งโดเมนอาจเกินเป้าหมายรวม อีกข้อคือบริเวณมี singularity หรือชันมากอาจทำให้ error estimate หลอกได้ ต้องตรวจกราฟและโดเมนก่อนใช้

สรุป

Adaptive Simpson ใช้ค่าหยาบและค่าละเอียดเปรียบเทียบกัน หากช่วงใดยังคลาดเคลื่อนมาก ระบบจะแบ่งเฉพาะช่วงนั้นต่อ

เมื่อมีคลิปแล้ว ให้วางคลิปด้านบนเพื่อใช้ภาพเคลื่อนไหวอธิบาย intuition ส่วนหน้านี้เก็บที่มา สูตร การคำนวณ และรายละเอียดที่คลิปสั้นใส่ไม่หมด