Technology

การแก้เมทริกซ์สามแนวทแยงด้วยอัลกอริธึมของโธมัส (Thomas Algorithm)

2025-05-12 08:31:36


โพสต์นี้เป็นส่วนหนึ่งของชุดบทความเกี่ยวกับวิธีการอนุพันธ์จำกัด โพสต์อื่นในซีรีส์นี้มุ่งเน้นไปที่การประมาณอนุพันธ์ การแก้สมการการแพร่กระจายอย่างชัดเจน และวิธี Crank-Nicholson แบบปริยาย:

  • การประมาณอนุพันธ์ด้วยวิธีผลต่างจำกัด
  • การแก้สมการการแพร่แบบชัดแจ้ง (Explicit)
  • วิธี Crank-Nicholson แบบปริยาย
  • การแก้ระบบเมทริกซ์สามแนวทแยงด้วยอัลกอริธึมของโธมัส



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


วิธีการที่ใช้ในการแก้ระบบเมทริกซ์นี้เป็นของ Llewellyn Thomas และรู้จักกันในชื่อว่า Tridiagonal Matrix Algorithm (TDMA) มันเป็นการประยุกต์ใช้การกำจัดแก๊สเซียนกับโครงสร้างแถบของเมทริกซ์ ระบบเดิมถูกเขียนเป็น:


[b1c100...0a2b2c20...00a3b3c300........ck10000akbk][f1f2f3...fk]=[d1d2d3...dk]


วิธีการเริ่มต้นโดยการสร้างสัมประสิทธิ์ ci และ di แทนที่ ai, bi และ ci ดังนี้:


ci={c1b1;i=1cibici1ai;i=2,3,...,k1


di={d1b1;i=1didi1aibici1ai;i=2,3,...,k1




ด้วยสัมประสิทธิ์ใหม่เหล่านี้ สมการเมทริกซ์สามารถเขียนใหม่ได้ว่า:


[1c100...001c20...0001c300........ck1000001][f1f2f3...fk]=[d1d2d3...dk]


อัลกอริธึมสำหรับการแก้สมการเหล่านี้ตอนนี้เรียบง่ายและทำงาน 'ย้อนกลับ':


fk=dk,fi=dkcixi+1,i=k1,k2,...,2,1


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




อ้างอิง : Tridiagonal Matrix Solver via Thomas Algorithm

จาก https://www.quantstart.com/articles/Tridiagonal-Matrix-Solver-via-Thomas-Algorithm/

ร่วมเเสดงความคิดเห็น :

บทความอื่นๆที่น่าสนใจ

บทความที่น่าสนใจอื่นๆยังมีอีกมากลองเลืือกดูจากด้านล่างนี้ได้นะครับ