4 Phương pháp cho các phương trình vi phân đạo hàm riêng
4.1.3 Phương pháp ADI
Một ma trận được gọi là ma trận chéo bậc ba nếu có tất cả các giá trị khác không trên đường chéo chính và trên các đường nghiêng song song ngay trên hay dưới đường chéo. Trong trường hợp này rút gọn Gauss là đặc biệt đơn giản.
Đây nâng phương trình chưa biết nghiệm của bài toán cho phương trình Laplace hay Poisson có thể đạt được từ một hệ với các hệ số ma trận là chéo bậc ba. Câu trả lời ở đây là được, và phương pháp phổ biến loại này, được gọi là phương pháp ADI (phương pháp biến đổi ẩn trực tiếp) được đưa ra bởi Peaceman và Rachford. ý tưởng như sau, trong (4.13) diễn tả rằng ta có thể đạt được ma trận chéo bậc ba nếu chỉ có 3 điểm trong một dòng (hay ba điểm trong một cột) với đề xuất này ta viết (4.15) trong dạng
ui−1,j−4uij +ui+1,j =−ui,j−1−ui+1,j (4.18) để vế trái phụ thuộc vào dòng y j và vế phải phụ thuộc cột x i. Ta có thể viết (4.15) trong dạng
ui,j−1−4uij +ui,j+1 =−ui−1,j−ui+1,j (4.19) để vế trái phụ thuộc cộtivà vế phải phụ thuộc hàng j. Trong phương pháp ADI ta
biểu diễn lặp. Tại mọi điểm của mắt lưới ta chọn một giá trị đầu bất kì u0
ij. Trong mỗi bước ta tính giá trị mới tại tất cả các mắt lưới. Trong mỗi bước ta dùng kết quả biểu thức lặp từ (4.18). Tỉ mĩ hơn, ta giã sử xấp xỉ um
ij đã tính được thì ta sẽ đạt được xấp xỉ tiếp theo um+1
ij , ta thế um
ij ở vế phải của (4.18) và giải cho um+1
ij ở vế trái, ta dùng
u(i−m1+1),j −4u(ijm+1)+u(im+1+1),j =−u(i,jm−)1−u(i,jm+1) (4.20) Ta dùng ở đây cho j cố định, tức là cố định dòng j, và cho tất cả các mắt lưới bên
trong hàng này. Điều này cho hệ đại số tuyến tính gồmN phương trình (N=số các mắt lưới trên một dòng) trong N phương trình chưa biết, xấp xỉ mới của u là các mắt lưới. Chú ý rằng (4.20) giải không chỉ tính xấp xĩ trong bước tiếp theo mà còn giá trị biên. Ta giải (4.20) (cố địnhj) bằng phương pháp khử Gauss. Rồi ta đi đến
hàng tiếp theo, đạt được hệ N phương trình khác và giải nó bằng Gauss, đến khi tất cả các hàm được làm. Trong bước tiếp ta luân phiên trực tiếp, ta tính xấp xỉ tiếp theo u(ijm+2) cột bằng cột từ u(ijm+1) và các giá trị biên đã cho, dùng biểu thức đạt được từ (4.19) bằng cách thay vào bên phải
u(i,jm−+2)1 −4u(ijm+2)+ui,j(m+1+2) =−u(i−m1+1),j −u(i+1m+1),j (4.21) Cho i cố định, cho mỗi cột, đây là hệ gồm M phương trình (M = số mắt lưới trên mỗi cột) trong đóu chưa biết, ta giải bằng phương pháp khử Gauss. Rồi ta làm đến các cột tiếp theo đến khi tất cả các cột được làm.
Ví dụ 4.2. Bài toán Dirichlet. Phương pháp ADI
Làm rõ quy trình và các biểu thức của phương pháp ADI trong bài toán ví dụ 4.1, dùng lưới tương tự và các giá trị đầu 100,100,100,100
Giải: Trong quá trình làm, ta giữ một mắt lưới trên hình 6b và các giá trị biên cho trước. Ta đạt được các xấp xỉ thứ nhất u(1)11, u(1)12, u21(1), u(2)22 từ (4.20) với m = 0. Ta viết các giá trị biên chứa trong (4.20) không chứa chỉ số trên, chứa nhiều thông tin và ngắn gọn hơn các giá trị đã cho vẫn còn giống nhau trong suốt quá trình lặp đi lặp lại. Từ (4.20) với m= 0 ta cho j = 1 hàng thứ nhất hệ
(i= 1) u01−4u(1)11 +u(1)21 = −u10−u(0)12
(i= 2) u(1)11 −4u21(1)+u31 = −u20−u(0)22
Nghiệm là u(1)11 =u(1)21 = 100. Cho j = 2 (hàng thứ hai) từ (4.20) ta đạt được hệ
(i= 1) u02−4u(1)12 +u(1)22 = −u(0)11 +u13
(i= 2) u(1)12 −4u22(1)+u32 = −u(0)21 −u23 Nghiệm là u(1)12 =u(1)22 = 66.667
Xấp xỉ thứ hai u(2)11, u(2)21, u12(2), u(2)22 đạt được từ (4.21) với m = 1 bằng cách dùng xấp xỉ thứ nhất để tính và dùng điều kiện biên. Cho i = 1 cột thứ nhất ta đạt từ
(4.21) hệ
(j = 1) u10−4u(2)11 +u(2)12 = −u01−u(1)21
(j = 2) u(2)11 −4u(2)12 +u13 = −u02−u(1)22.
Nghiệm là u(2)11 = 91.11, u(2)12 = 64.44. Cho i = 2 (cột thứ hai) ta đạt được từ
(4.21) hệ
(j = 1) u20−4u(2)21 +u(2)22 = −u(1)11 −u31
(j = 2) u(2)21 −4u(2)22 +u23 = −u(1)12 −u32. Nghiệm u(2)21 = 91.11, u(2)22 = 64.44
Cải tiến sự quy tụ.Sự cải tiến bổ sung của sự quy tụ của kết quả của phương pháp ADI từ ý tưởng thú vị. Giới thiệu tham số p, ta có thể viết (4.15) trong dạng
ui−1,j−(2 +p)uij +ui+1,j =−ui,j−1+ (2−p)uij −ui,j−1 (4.22a)
ui,j−1−(2 +p)uij +ui,j+1 =−ui−1,j+ (2−p)uij −ui−1,j. (4.22b) Điều này cho các hàm lặp ADI chung hơn
u(im−1+1),j −(2 +p)u(ijm+1)+u(i+1m+1),j =−ui,j(m−)1+ (2−p)uij(m)−u(i,jm−)1 (4.23a)
ui,j(m−+2)1 −(2 +p)uij(m+2)+u(i,jm+1+2) =−u(i−m1+1),j + (2−p)uij(m+1)−u(im−1+1),j . (4.23b) Cho p= 2, đây là (4.20), (4.21). Tham số P có thể được dùng cho sự cải thiện quy tụ. Thật vậy, có thể diễn tả phương pháp ADI hội tụ cho số dương p, và giá trị tối
ưu cho giá trị mật độ của hội tụ là
p0 = 2 sin π
K (4.24)
ở đâyK có độ lớn M+ 1và N+ 1. Thậm chí kết quả tốt hơn có thể đạt được bằng việc cho p thay đổi rất lớn theo các bước.