วันจันทร์ที่ 27 สิงหาคม พ.ศ. 2561

การคำนวณเชิงตัวเลข (๒๓) การแก้ปัญหาสมการเชิงอนุพันธ์สามัญปัญหาเงื่อนไขค่าเริ่มต้นด้วยระเบียบวิธี Bogacki-Shampine และ Predictor-Evaluator-Corrector-Evaluator (PECE) MO Memoir : Monday 27 August 2561

ผมมักจะตั้งคำถามนิสิตที่ทำวิจัยโดยมีการสร้างแบบจำลองทางคณิตศาสตร์เสมอว่า วัตถุประสงค์ของการสร้างแบบจำลองนั้นคืออะไร เพราะมันใช้เกณฑ์ในการพิจารณาความเหมาะสมที่แตกต่างกัน ในกรณีของแบบจำลองที่นำไปใช้เพื่อการออกแบบหรือจำลองกระบวนการจริงเพื่อการศึกษานั้น จะให้ความสำคัญไปที่ความถูกต้องของคำตอบที่ได้ แต่ถ้าวัตถุประสงค์เป็นเพื่อการควบคุมกระบวนการในเวลาจริง จะให้ความสำคัญไปที่ความเร็วในการคำนวณ กล่าวคืออย่างน้อยจะต้องได้คำตอบโดยประมาณว่ากำลังจะเกิดอะไรขึ้น โดยต้องมีเวลาเหลือพอสำหรับให้ระบบควบคุมทำการปรับแก้
 
ในการแก้ปัญหาระบบสมการอนุพันธ์สามัญ ปัญหาเงื่อนไขค่าเริ่มต้นนั้น คงปฏิเสธไม่ได้ว่าระเบียบวิธีหลักที่ใช้กันส่วนใหญ่ในการแก้ปัญหาคือระเบียบวิธีในกลุ่มรุงเก-คุตตาอันดับ ๔ (4th order Runge-Kutta) ที่พัฒนาโดยใช้ระเบียบวิธีนี้เป็นพื้นฐาน ด้วยเหตุผลหลายประการได้แก่ การที่มันเป็นระเบียบวิธีที่สามารถเริ่มต้นการคำนวณด้วยตนเองได้ (เป็น single step method) เป็นระเบียบวิธีโดยแจ้ง (เป็น explicit method) ทำให้ไม่มีปัญหากับสมการที่ไม่เป็นเชิงเส้น (non-linear) ให้ความถูกต้องของคำตอบสูง และมีค่า step size ของการอินทิเกรตที่ค่อนข้างกว้าง แต่ในกรณีที่ต้องการความรวดเร็วสูงในการคำนวณโดยความถูกต้องของคำตอบเป็นรอง ระเบียบวิธีในกลุ่มนี้ก็ไม่ใช่ตัวเลือกที่ดีนัก หรือในกรณีของสมการที่มีปัญหาเรื่อง stiffness หรือไวสูงต่อการสะสมค่าความคลาดเคลื่อนในการคำนวณ ก็อาจจะใช้การไม่ได้เลย
 
ด้วยเหตุนี้แม้แต่ในโปรแกรมสำเร็จรูปเช่น MATLAB ที่นิยมใช้กันอยู่ในขณะนี้ ก็ยังมีระเบียบวิธีสำหรับการแก้ปัญหาระบบสมการอนุพันธ์สามัญ ปัญหาเงื่อนไขค่าเริ่มต้น ให้เลือกเกือบสิบระเบียบวิธี โดย ODE45 ที่ใช้ระเบียบวิธีที่พัฒนาโดยอิงจากรุงเก-คุตตาอันดับ ๔ เป็นฐาน ก็เป็นเพียงแค่ตัวเลือกหนึ่งเท่านั้นเอง
 
วันนี้จะลองกลับมาพิจารณาตัวอย่างที่เคยยกมาใน Memoir ฉบับวันพุธที่ ๑๕ สิงหาคมและวันอาทิตย์ที่ ๑๙ สิงหาคมที่ผ่านมา โดยจะทดลองใช้ระเบียบวิธีอื่นในการแก้ปัญหาดูบ้าง
 

ไม่มีความคิดเห็น: