วันอังคารที่ 12 กันยายน พ.ศ. 2560

การคำนวณเชิงตัวเลข (๑๗) เปรียบเทียบการแก้ Stiff equation ด้วยระเบียบวิธี Runge-Kutta และ Adam-Bashforth MO Memoir : Tuesday 12 September 2560

Memoir ฉบับนี้จัดทำขึ้นเพื่อเป็นตัวอย่างประกอบการสอนเรื่องเทคนิคการคำนวณเชิงตัวเลขให้กับนิสิตวิศวกรรมเคมีชั้นปีที่ ๓

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

ในการแก้ปัญหาสมการอนุพันธ์สามัญ ปัญหาเงื่อนไขค่าเริ่มต้นด้วยการคำนวณเชิงตัวเลขนั้น ระเบียบวิธีรุงเก-คุตตาอันดับ 4 (4th order Runge-Kutta หรือพวกที่ได้รับการพัฒนาโดยใช้ระเบียบวิธีนี้เป็นตัวตั้งต้น) มักจะเป็นตัวแรกที่ได้รับการแนะนำให้ใช้ เนื่องด้วยการที่มันให้คำตอบที่มีความถูกต้องสูงได้รวดเร็ว และยังมีช่วง stability limit ของการอินทิเกรตที่จัดว่ากว้าง แต่นั่นไม่ได้หมายความว่าระเบียบวิธีรุงเก-คุตตาอันดับ 4 จะใช้การได้ดีทุกกรณี สำหรับระบบสมการขนาดใหญ่ การได้มาซึ่งคำตอบที่มีความถูกต้องสูง ด้วยการใช้เวลาคำนวณที่เหมาะสมถือว่าเป็นสิ่งที่ควรต้องพิจารณา (ความเร็วในการคำนวณในที่นี้พิจารณาจากการได้คำตอบที่มีความถูกต้องในระดับเดียวกัน ณ ตำแหน่งตัวแปรอิสระเดียวกัน ระเบียบวิธีที่มีการคำนวณฟังก์ชันในแต่ละขั้นตอนน้อยกว่า และ/หรือสามารถใช้ช่วงก้าวการอินทิเกรต (step size) ที่กว้างกว่า จะใช้เวลาในการคำนวณที่น้อยกว่า)
 
Stiff equation เป็นสมการหรือระบบสมการที่ประกอบด้วยพจน์ (ในกรณีของสมการเดียว) หรือสมการ (ในกรณีที่มีตั้งแต่สองสมการขึ้นไป) ที่มีระดับการเปลี่ยนแปลงที่แตกต่างกันมาก คือจะมีอย่างน้อยหนึ่งพจน์หรือหนึ่งสมการที่มีการเปลี่ยนแปลงอย่างรวดเร็วมากเมื่อเทียบกับพจน์หรือสมการอื่นที่เหลือ ตัวอย่างของระบบสมการเช่นนี้ได้แก่ระบบสมการที่ประกอบด้วยสมการพีชคณิต (Algebraic equation) และสมการอนุพันธ์ (Differential equation) รวมกันอยู่ ที่เรียกว่าเป็นระบบสมการ Differential-Algebraci Equations หรือย่อว่า DAE โดยตัวสมการพีชคณิตนั้นทำหน้าที่เป็นเสมือนสมการอนุพันธ์ที่มีการเปลี่ยนแปลงที่รวดเร็วมากจนเสมือนกับว่าเข้าสู่สภาวะคงตัว (steady state) ในทันทีทันใด ในขณะที่สมการอนุพันธ์อื่นที่เหลือค่อย ๆ มีการเปลี่ยนแปลงอย่างช้า ๆ
 
ปัญหาของ Stiff equation คือพจน์หรือสมการที่มีการเปลี่ยนแปลงอย่างรวดเร็วนั้นเป็นตัวกำหนดช่วงก้าว (step size) ของการคำนวณ ด้วยการที่มันมีการเปลี่ยนแปลงที่รวดเร็วทำให้ต้องใช้ช่วงก้าวที่สั้นมากในการเริ่มต้นการคำนวณ แต่เมื่อค่าของพจน์หรือสมการที่มีการเปลี่ยนแปลงอย่างรวดเร็วนั้นแทบจะไม่มีผลกระทบอะไรต่อคำตอบแล้ว ถ้าคำนวณโดยใช้ระเบียบวิธี Singel step method (คือใช้จุดเริ่มต้นในการคำนวณเพียงจุดเดียว) ที่อยู่ในกลุ่ม Explicit method จะพบว่าจะไม่สามารถเพิ่มความยาวช่วงก้าวของการคำนวณเพื่อเร่งการคำนวณได้ จำเป็นต้องใช้ช่วงก้าวที่แคบมากนั้นไปตลอดการคำนวณ ทำให้เสียเวลาการคำนวณมาก ตัวอย่างของปัญหาประเภทนี้เช่นการเกิดปฏิกิริยาคายความร้อนใน fixed-bed tubular reactor ที่อัตราการไหลและ/หรือความเข้มข้นของสารตั้งต้นนั้นสามารถเปลี่ยนแปลงจากค่าหนึ่งไปยังอีกค่าหนึ่งได้อย่างรวดเร็ว (จนอาจสมมุติได้ว่าเป็นแบบ step change) ในขณะที่การเปลี่ยนแปลงอุณหภูมิภายใน fixed-bed นั้นจะเปลี่ยนแปลงช้ากว่า
 
กรณีเช่นนี้การใช้ระเบียบวิธีพวก Multi step method จะเหมาะสมมากกว่า แม้ว่าระเบียบวิธีพวก Multi step method จะมีข้อเสียคือไม่สามารถเริ่มต้นการคำนวณด้วยตัวเองได้ จำเป็นต้องเริ่มต้นด้วยการใช้ระเบียบวิธีพวก Single step ก่อน จากนั้นจึงค่อยเปลี่ยนมาใช้ระเบียบพวก Multi step method ในบรรดาระเบียบวิธี Multi step method นั้น ระเบียบวิธีอาดามส์-แบชฟอร์ทอันดัน 4 (4th order Adams-Bashforth หรือพวกที่ได้รับการพัฒนาโดยใช้ระเบียบวิธีนี้เป็นตัวตั้งต้น) เป็นหนึ่งในวิธีการที่นิยมใช้กัน โดยในระเบียบวิธีอาดามส์-แบชฟอร์ทอันดัน 4 นี้จะมีการใช้ข้อมูลย้อนหลังจากตำแหน่งปัจจุบันไปอีก 3 ตำแหน่งในการทำนายค่าจุดถัดไป








สำหรับคนทึ่คิดว่าในเมื่อมันมีโปรแกรม MATLAB ให้ใช้ แล้วทำไมเรายังต้องเรียนรู้เรื่องแบบนี้อีก หรือคนที่ต้องทำงานกับนักวิจัยที่ทำ simulation ก็ขอแนะนำให้ไปอ่าน Memoir ปีที่ ๙ ฉบับที่ ๑๔๐๑ วันพฤหัสบดีที่ ๖ กรกฎาคม ๒๕๖๐ เรื่อง "รู้ทันนักวิจัย (๖) บน simulation ทุกอย่างเป็นไปได้หมด (ภาค ๒)" เพิ่มเติมได้ครับ

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