วันอาทิตย์ที่ 8 ตุลาคม พ.ศ. 2560

การคำนวณเชิงตัวเลข (๑๙) ระเบียบวิธี Implicit Euler และ Crank-Nicholson กับ Stiff equation MO Memoir : Sunday 8 October 2560

การหาคำตอบระบบสมการเชิงอนุพันธ์สามัญ ปัญหาเงื่อนไขค่าเริ่มต้น (Ordinary differential equation : Initial value problem หรือที่ย่อว่า ODE-IVP) นั้น มันเริ่มจากการที่เราทราบค่า x และ y ณ จุดหนึ่ง แล้วเราต้องการทราบว่าที่ตำแหน่ง x +Δx ค่า y ณ ตำแหน่งนั้น (คือ y +Δy) จะมีค่าเท่าใด โดยหลักการของวิธีการที่ใช้กันอยู่ก็คือ มันเปรียบเสมือนกับว่าเราจะลากเส้นตรงออกจากจุด (x,y) ด้วยความชันเท่าไรไปจนถึงตำแหน่ง x +Δx เพื่อที่จะได้ทราบค่า y
  
ความแตกต่างของระเบียบวิธีต่าง ๆ อยู่ตรงการคำนวณหาค่าความชันนี้ บางเทคนิคก็ใช้ความชัน ณ ตำแหน่ง x เป็นหลัก (วิธีการพวกโดยชัดแจ้งหรือ explicit method) บางเทคนิคก็ใช้ความชัน ณ ตำแหน่ง x +Δx เป็นหลัก (วิธีการพวกโดยนัยหรือ implicit method) บางเทคนิคก็ใช้ความชัด ณ ทั้งตำแหน่ง x และ x +Δx (วิธีการพวก semi-implicit method) บางเทคนิคก็ใช้ข้อมูล ณ จุดใดจุดหนึ่งเพียงจุดเดียวเป็นหลัก (วิธีการพวก single step method) ในขณะที่บางเทคนิคก็มีการใช้จุดข้อมูลหลายจุด (เป็นได้ทั้งจุดข้อมูลในอดีตและจุดที่ต้องการทราบคำตอบ) มาใช้ในการคำนวณ (วิธีการพวก multi-step method) และก็ยังมีวิธีการที่ใช้การทำนายค่าแล้วทำการปรับแก้ตาม (วิธีการพวก predictor-corrector method) ส่วนที่ว่าวิธีการไหนจะอยู่ในกลุ่มไหนนั้น ขึ้นอยู่กับว่าเรากำลังพิจารณาเรื่องอะไรอยู่
  
ระเบียบวิธี Implicit Euler (หรือออยเลอร์โดยนัย จัดอยู่ในพวก implicit method) และระเบียบวิธี Crank-Nicholson (ที่จัดอยู่ในพวก semi-implicit method) นั้น ไม่พบการใช้งานมากเหมือนระเบียบวิธี Runge-Kutta ทั้งนี้เป็นเพราะสำหรับปัญหาส่วนใหญ่แล้ว ที่ระดับความถูกต้องของคำตอบเท่ากัน (คือเปรียบเทียบที่เมื่อต้องการความถูกต้องที่ระดับเลขนัยสำคัญเท่ากัน) ระเบียบวิธี Runge-Kutta จะใช้ค่า step size ที่กว้างกว่า ทำให้ทำการคำนวณไปข้างหน้าได้รวดเร็วกว่า และยังไม่มีปัญหาในกรณีที่สมการอนุพันธ์นั้นเป็นฟังก์ชันไม่เชิงเส้น (non-linear fuction) กับตัวแปร y ด้วย (คือไม่ต้องทำการ root finding เพื่อหาค่า y)
 
แต่ถ้าเป็นกรณีของโจทย์ที่ค่อนข้างจะ "ไว" (หรือ sensitive) ต่อการสะสมของค่าความคลาดเคลื่อน (error) ที่เกิดขึ้นในระหว่างการคำนวณแต่ละขั้นแล้ว (เช่นระบบสมการพวก stiff หรือ very stiff หรือระบบสมการผสมอนุพันธ์-พีชคณิตที่เรียกว่า Differential-Algebraic equation - DAE) ระเบียบวิธี Runge-Kutta (หรือพวก multi step แบบ Adam-Bashforth) ก็มีสิทธิ์พังไม่เป็นท่าได้ง่าย ๆ เพราะไม่สามารถควบคุมการสะสมของค่าความคลาดเคลื่อนเอาไว้ได้ ในกรณีเช่นนี้ระเบียบวิธีพวก semi-implicit และ fully implicit จะเข้ามามีบทบาททันที เพราะพวกมันมีความสามารถในการควบคุมค่าความคลาดเคลื่อนไม่ให้สะสมจนขยายตัวได้ดีกว่า

ดาวน์โหลดบทความฉบับ pdf ได้ที่นี่








 

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