2025-05-12 08:31:36
โพสต์นี้เป็นส่วนหนึ่งของชุดบทความเกี่ยวกับวิธีผลต่างจำกัด (Finite Difference Method) โดยโพสต์อื่นๆ ในชุดนี้กล่าวถึง:
ในบทความก่อนหน้านี้ ชุดของสมการเชิงเส้นถูกจัดให้อยู่ในรูปของสมการเมทริกซ์สามแนวทแยง การแก้สมการนี้ทำให้สามารถคำนวณค่าที่จุดตารางภายใน (interior grid points) ได้ โดยระบบสมการนี้จะต้องถูกแก้ในทุกๆ ก้าวเวลา (time step) ซึ่งชัดเจนว่าวิธีนี้ใช้ทรัพยากรมากกว่าวิธีชัดแจ้งในแต่ละก้าวเวลา อย่างไรก็ตาม วิธีปริยายสามารถใช้ก้าวเวลาที่ใหญ่ขึ้นได้มาก ทำให้มีข้อได้เปรียบในระยะยาว
วิธีที่ใช้ในการแก้สมการเมทริกซ์นี้คืออัลกอริธึมของ Llewellyn Thomas หรือที่รู้จักกันในชื่อ Tridiagonal Matrix Algorithm (TDMA) ซึ่งโดยพื้นฐานแล้วคือการประยุกต์ใช้การกำจัดแบบเกาส์ (Gaussian Elimination) กับเมทริกซ์ที่มีโครงสร้างแบบแถบ (banded structure)
สมการตั้งต้นสามารถเขียนได้ในรูปแบบ:
aiui−1n+1+biuin+1+ciui+1n+1=di
สำหรับ i=1,2,...,N−2
อัลกอริธึมเริ่มต้นโดยสร้างสัมประสิทธิ์ใหม่ ci′ และ di′ แทนที่ ai,bi,ci และ di ดังนี้:
สำหรับ i=1:
c1′=b1c1,d1′=b1d1
สำหรับ i=2,3,...,N−2:
ci′=bi−aici−1′ci
di′=bi−aici−1′di−aidi−1′
ด้วยสัมประสิทธิ์ใหม่เหล่านี้ ระบบสมการสามารถเขียนใหม่ในรูป:
uin+1=ci′ui+1n+1+di′,สำหรับ i=1,2,...,N−2
เมื่อคำนวณ ci′ และ di′ ครบแล้ว สามารถหาค่า uin+1 ถอยหลังจาก i=N−2 ลงมาถึง i=1 ได้ดังนี้:
ตั้งต้นที่:
uN−2n+1=dN−2′
ถอยกลับ:
uin+1=ci′ui+1n+1+di′,สำหรับ i=N−3,...,1
ในขั้นตอนนี้ อัลกอริธึมสำหรับหาค่าที่แต่ละจุดตารางในแต่ละก้าวเวลาได้ถูกอธิบายเรียบร้อยแล้ว ขั้นตอนสุดท้ายในการนำไปใช้จริงคือการเขียนโปรแกรมเพื่อประมวลผลตามอัลกอริธึม ซึ่งจะเป็นหัวข้อในบทความถัดไป
อ้างอิง : Tridiagonal Matrix Solver via Thomas Algorithm
จาก https://www.quantstart.com/articles/Tridiagonal-Matrix-Solver-via-Thomas-Algorithm/
2025-01-10 10:12:01
2024-06-10 03:19:31
2024-05-31 03:06:49
2024-05-28 03:09:25
บทความที่น่าสนใจอื่นๆยังมีอีกมากลองเลืือกดูจากด้านล่างนี้ได้นะครับ
2024-01-03 11:07:20
2024-10-28 04:18:20
2024-09-04 01:03:32
2024-09-17 02:19:52
2023-10-04 05:50:47
2023-10-02 04:54:18
2024-09-27 09:53:41
2023-11-03 10:19:40
2023-11-21 09:19:13