หน้าแรกคลังความรู้Numerical MethodsAdaptive Simpson ทำงานจริงทีละขั้น
EP 08 · ขั้นสูง

Adaptive Simpson ทำงานจริงทีละขั้น

คำนวณ coarse, fine, error และ tolerance จนเห็นว่าช่วงไหนต้องแบ่งต่อ

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

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

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

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

แนวคิดสำคัญ

  • คำนวณช่วงซ้ายและขวาแยกกัน
  • เปรียบเทียบ error กับ tolerance
  • อธิบายว่าทำไมบางช่วงผ่านก่อน
  • สรุปข้อดีด้านความแม่นและงานคำนวณ

บทนี้เน้น “เดินเครื่องจริง” ของ Adaptive Simpson โดยติดตามตัวแปรในแต่ละช่วง ได้แก่ ช่วงที่กำลังพิจารณา ค่า Simpson แบบหยาบ ค่า Simpson หลังแบ่งครึ่ง ค่า error estimate และ tolerance ที่ช่วงนั้นได้รับ

สิ่งสำคัญคือเราไม่ได้แบ่งซ้ายขวาเท่ากันไปเรื่อย ๆ แบบตายตัว แต่ให้ผลคำนวณเป็นคนบอกว่าช่วงใดควรหยุด ช่วงใดต้องลงรายละเอียดเพิ่ม

ลำดับคิด: coarse → fine → error → เทียบ tolerance → accept หรือ split

สูตรที่ใช้

\[x_{\text{interval}}\;\longrightarrow\;S_{\text{coarse}},S_{\text{fine}},E,\varepsilon\]

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

สำหรับช่วง \([a,b]\) ให้ \(m=(a+b)/2\) แล้วคำนวณ \(S(a,b)\), \(S(a,m)\), \(S(m,b)\) จากสูตร Simpson พื้นฐาน จากนั้นกำหนด

\[S_{\text{fine}}=S(a,m)+S(m,b),\qquad E=\frac{|S_{\text{fine}}-S(a,b)|}{15}\]

ถ้า \(E\le\varepsilon\) ยอมรับค่าช่วงนั้น โดยบางตำราใช้ค่าปรับแก้ \(S_{\text{fine}}+\dfrac{S_{\text{fine}}-S_{\text{coarse}}}{15}\) เพื่อชดเชย error หลัก แต่ในบทเรียนนี้เน้นการตัดสินใจแบ่งช่วงก่อน

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

ใช้ f(x)=1/(1+x²) บน [0,2] และแสดงหนึ่งช่วงผ่าน อีกช่วงต้องแบ่งต่อ

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

ใช้ \(f(x)=\dfrac{1}{1+x^2}\) บน \([0,2]\) และตั้ง tolerance รวมคร่าว ๆ \(10^{-4}\) รอบแรกได้ \(E=0.002564\) จึงต้องแบ่งเป็น \([0,1]\) และ \([1,2]\)

ช่วงcoarsefineerrorตัดสินใจ
[0,1]0.7833330.7853920.000137แบ่งต่อถ้า tolerance ย่อยเข้ม
[1,2]0.3217950.3217480.000003มักยอมรับได้
[0,0.5]0.4637250.4636530.000005ยอมรับได้ง่ายขึ้น
[0.5,1]0.3216670.3217450.000005ยอมรับได้ง่ายขึ้น

ตารางนี้แสดงภาพการทำงานจริง: ช่วงใหญ่ไม่ผ่าน แต่หลังแบ่งย่อย error ลดลงมาก เพราะแต่ละช่วงมีความโค้งที่ Simpson จับได้ง่ายขึ้น

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

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

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

ข้อควรระวัง

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

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

สรุป

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

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