Chương 3. Giải bài toán biên phương trình Eliptic bằng phương pháp sai phân
3.1. Sai phân hóa bài toán biên của phương trình Eliptic
3.1.2. Những bước đi chính trong việc sai phân hóa bài toán biên Đirichlê
Bài toán biên (3.2), (3.3) là một bài toán biên vi phân. Để giải bài toán ấy bằng phương pháp sai phân trước hết ta cần phải sai phân hóa nó. Nội dung việc sai phân hóa ấy bao gồm những việc dưới đây:
a) Rời rạc hóa miền G
Ta định trước những độ dài khá bé và kẻ trênG những đường thẳng xm = mh, yn = nl, m và n là những số nguyên nào đó. Các đường thẳng ấy tạo nên một lưới chữ nhật đều. Các giao điểm của đường thẳng ấy được gọi là những điểm lưới. Điểm lưới do các đường thẳng x = mh, y = nl tạo nên gọi là điểm mn. Ta gọi các điểm m±1, n và m, n±1 là những điểm kề của điểm mn. Ta chỉ xét các điểm lưới thuộc G và kí hiệu tập điểm ấy là Gh. Trên Gh ta phân biệt những điểm -
trong, là những điểm mà cả bốn điểm kề đều thuộc Gh, và những điểm biên, là những điểm của Gh mà không phải là điểm - trong. Ta kí hiệu tập điểm trong là Gh, tập điểm biên là Γh Gh∪Γh = Gh
.
Công việc vừa làm kể trên gọi là việc rời rạc hóa miền G. Nó tạo ra trên G tập điểm rời rạc Gh. Hình 3.1 cho thấy miền G đã được rời rạc hóa, các điểm biên được đánh dấu bằng chữ in hoa, các điểm trong bằng dấu • .
Dùng phương pháp sai phân ta sẽ không đi tìm nghiệm u của bài toán (3.2), (3.3) trên khắp miền G, mà sẽ chỉ tìm, một cách gần đúng giá trị của u ở những điểm của Gh. Ta kí hiệu nghiệm gần đúng ấy là U, giá trị của U, u ở điểm mn là Umn, umn. Ta cũng thường dùng chữ P để chỉ một điểm trong, chữ Q để chỉ một điểm biên và chỉ giá trị của U, u ở các điểm P, Q là U(P), u(P), U(Q), u(Q).
b) Sai phân hóa các biên kiện
Đối với mỗi điểm biên Q ta căn cứ vào các biên kiện (3.3) mà định U(Q). Nếu Q ở trên Γ thì ta cho ngay:
U(Q) =u(Q) = ϕ(Q). (3.4) Trường hợp ấy thường xảy ra khi G là miền chữ nhật có cạnh song song với hai trục, vì khi ấy ta dễ chọn h, l để cho các điểm biên đều ở trên Γ. Trường hợp ấy sẽ xảy ra cho các điểm A, B, C ở Hình 3.1.
Nếu Q không ở trên Γ thì ta chọn trên Γ điểm Q0 gần nhất (hoặc khá gần) với Q và lấy:
U(Q) =u(Q0) = ϕ(Q0). (3.5)
Hình 3.1:
Vì nghiệm u liên tục trên G cho nên u(Q) = u(Q0) +O(h+l) thành thử cách lấy U(Q) theo (3.5) mắc sai số:
U(Q)−u(Q) =O(h+l). (3.6) Việc định giá trị của U trên Γh như vừa làm ở trên gọi là sự sai phân hóa các biên kiện.
c) Lập hệ phương trình sai phân
Ta xét một điểm - trongmn. Theo (3.2) ở điểm ấy u(x, y) thỏa mãn phương trình
Lumn : = amn ∂2umn
∂x2 +bmn ∂2umn
∂y2 +cmn ∂umn
∂x +dmn ∂umn
∂y + gmnumn
= fmn. (3.7)
Ta sẽ lập cho U một phương trình tương tự với (3.7). Việc ấy có thể làm bằng nhiều cách; dưới đây là một cách thường dùng.
Ta giả thiết u(x, y) có đạo hàm liên tục theo x, y đến cấp 4. Từ cách khai triển Taylor:
um±1,n =
1±h ∂
∂x + 1
2h2 ∂2
∂x2 ± 1 6h3 ∂3
∂x3 + 1
24h4 ∂4
∂x4
umn +O h5 ,
um,n±1 =
1±l ∂
∂y + 1 2l2 ∂2
∂y2 ± 1 6l3 ∂3
∂y3 + 1 24l4 ∂4
∂y4
umn +O l5 ta dễ dàng nhận thấy:
1
h2 (um−1,n−2umn +um+1,n) = ∂2umn
∂x2 +O h2
, (3.8)
1
l2 (um,n−1 −2umn+ um,n+1) = ∂2umn
∂y2 +O l2
, (3.9)
1
2h (um+1,n −um−1,n) = ∂umn
∂x +O h2
, (3.10)
1
2l (um,n+1−um,n−1) = ∂umn
∂y +O l2
. (3.11)
Nếu h, l khá bé thì ta có thể lấy các tỉ sai phân ở các vế trái để thay gần đúng các đạo hàm tương ứng ở các vế phải. Vậy ta có thể lập cho Umn một biểu thức tương tự như Lumn bằng cách giữ nguyên các amn, ..., gmn và thay các đạo hàm trong Lumn bằng các vế trái tương ứng của (3.8) - (3.11). Ta gọi biểu thức thu được như vậy là toán tử sai phân tương ứng với toán tử vi phân L, và kí hiệu nó là Lh. Ta có:
LhUmn = amn
1
h2 (Um−1,n−2Umn+ Um+1, n) +bmn1
l2 (Um,n−1 −2Umn+Um,n+1) +cmn 1
2h (Um+1,n −Um−1,n) +dmn 1
2l (Um,n+1−Um,n−1) +gmnUmn. (3.12) Vì biểu thức này gần đúng với Lumn cho nên ta hãy cho nó bằng vế phải của (3.7), ta được phương trình:
LhUmn = fmn. (3.13)
Để khử mẫu số ta thường viết (3.13) dưới dạng:
h2LhUmn = h2fmn. (3.14)
Ta gọi (3.14) là phương trình sai phân hay sơ đồ sai phân của điểm mn. Sơ đồ sai phân (3.14) còn gọi là sơ đồ năm điểm, bởi vì người ta đã huy động vào đấy giá trị U ở năm điểm (điểm mn và bốn điểm kề của nó).
Ta viết cho mỗi điểm - trong phương trình sai phân của nó và gộp các phương trình ấy lại thành một hệ phương trình. Ta gọi hệ này là hệ phương trình sai phân của bài toán biên Đirichlê. Theo (3.14) và (3.12) dễ dàng nhận thấy rằng hệ ấy viết cụ thể là:
αmnUmn +αTmnUm−1,n+ αĐmnUm+1,n +αNmnUm,n−1 +αBmnUm,n+1
= h2fmn,[(mn) ∈ Gh], (3.15) trong đó:
αmn := −2amn −2r2bmn +h2gmn, αTmn := amn − 1
2hcmn, αĐmn := amn + 1
2hcmn, αNmn := r2bmn − 1
2rhdmn, αBmn := r2bmn + 1
2rhdmn, r := h/l = const.
(3.16)
(Các chỉ số T, Đ, N, B trên đây ứng với các giá trị U ở các điểm kề phía Tây, Đông, Nam, Bắc của điểm mn).
Tóm lại, qua các bước a), b), c) trên đây ta đã thay bài toán biên Đirichlê
Lu(x, y) = f(x, y),[(x, y) ∈ G]
u(x, y) = ϕ(x, y),[(x, y) ∈ Γ]
bằng bài toán biên sai phân Đirichlê
h2LhUmn = h2fmn,[(mn) ∈ Gh] Umn cho trước trên Γh.
(3.17)
Bài toán này được viết dưới dạng hệ phương trình sai phân (3.15).
d) Giải hệ phương trình sai phân
Ta giải hệ (3.15) và thu được các giá trị của U ở mỗi điểm - trong mn. Như vậy là bằng phương pháp sai phân ta đã tìm được giá trị bằng số U = {Umn} để thay cho hàm u(x, y), nhưng chỉ tìm được nó trên tập điểm rời rạc Gh của miền G. Vì h, l chọn khá bé, cho nên tập điểm Gh khá dày đặc để tập giá trị Umn cho ta “hình dung được một cách tạm đủ” hàm u(x, y) trên G.
Hệ phương trình sai phân (3.15) là một hệ phương trình đại số tuyến tính mà số phương trình vừa vặn bằng số ẩn. Vì số ấy rất lớn (hàng chục đến hàng vạn ẩn) cho nên việc giải các hệ phương trình ấy mất nhiều công sức, ngay cả với máy tính điện tử. Vấn đề giải các hệ ấy sẽ được nói rõ ở phần 3.2.