Chương 1 là một ví dụ. Chính vì vậy việc nghiên cứu các phương pháp giải gần đúng phương trình đạo hàm riêng là một trong những vấn đề quan trọng của toán học lý thuyết nói chung và toán học tính toán nói riêng. Do nhu cầu của thực tiễn và sự phát triển của lý thuyết toán học, các nhà toán học đã tìm ra rất nhiều các phương pháp giải gần đúng phương trình đạo hàm riêng. Có thể kể đến hai lớp phương pháp truyền thống, được sử dụng phổ biến và rộng rãi trong việc giải gần đúng phương trình đạo hàm riêng là phương pháp sai phân hay còn gọi là phương pháp lưới và phương pháp phần tử hữu hạn.
Nhìn chung, cả hai phương pháp này đều có những ưu điểm và nhược điểm riêng khác nhau tùy theo các lớp phương trình đạo hàm riêng khác nhau. Có thể đối với nhiều phương trình đạo hàm riêng thì phương pháp sai phân có có ưu thế hơn so với phương pháp phần tử hữu và ngược lại. Đối với bài toán ô nhiễm khí quyển nói riêng thì cả hai lớp phương pháp phần tử hữu hạn và phương pháp sai phân đều đã được xây dựng. Cụ thể, trong luận án tiến sĩ của Supot Witayangkurn năm 2002 (xem [12]), tác giả đã xây dựng phương pháp phần tử hữu hạn cho các bài toán ô nhiễm không khí.
Trước đó, năm 1994 trong kết quả của Đặng Quang Á, Ngô Văn lược (xem [7]), các tác giả đã xây dựng phương pháp sai phân cho bài toán ô nhiễm khí quyển dừng. Trong khuôn khổ của luận văn ta không xét đến phương pháp phần tử hữu hạn mà chỉ xét đến phương pháp sai phân cho bài toán ô nhiễm khí quyển. Phần trình bày này dựa trên kết quả của Đặng Quang Á và Ngô Văn Lược (xem [7]). Trong phần tiếp theo, trước khi trình bày về phương pháp sai phân giải phương trình truyền tải - khuếch tán dừng, chúng ta sẽ trình bày một cách sơ lược về phương pháp sai phân giải phương trình đạo hàm riêng.2 Giới thiệu sơ lược về phương pháp sai phân giải phương trình đạo hàm riêng Ý tưởng chính của các phương pháp sai phân là rời rạc hóa các đạo hàm xuất hiện trong phương trình vi phân bằng các công thức sai phân và thay thế các hàm số (liên tục) xuất hiện trong phương trình bằng các hàm số rời rạc xác định trên các nút lưới.
Khi đó, bài toán vi phân được rời rạc hóa thành bài toán sai phân. Việc tìm nghiệm số gần đúng lúc này dẫn đến việc giải hệ phương trình đại số tuyến tính. Việc nghiên cứu các phương pháp giải các hệ đại số tuyến tính nhận được từ việc rời rạc hóa các phương trình đạo hàm riêng cũng là một vấn đề quan trọng được các nhà toán học hết sức quan tâm ([10], [11]). Để minh họa cho việc sử dụng phương pháp sai phân giải các phương trình đạo hàm riêng ta xét hai ví dụ đơn giản sau đây.
Xét bài toán vi phân đơn giản: Tìm hàm u(x) xác định trên đoạn [0, 1] thỏa mãn phương trình vi phân −u00 (x) = f (x), 0 < x < 1, (2.1) với các điều kiện biên u(0) = µ0 , u(1) = µ1 .2) được gọi là bài toán biên hai điểm đối với phương trình vi phân cấp hai. Các kết quả liên quan tới sự tồn tại duy nhất nghiệm và tính chất của nghiệm của bài toán (2.2) được trình bày trong tất cả các giáo trình về phương trình vi phân. Trong ví dụ này ta giả sử bài toán (2.2) có nghiệm duy nhất xác định trên đoạn [0, 1]. Để giải gần đúng hay cụ thể hơn là tìm nghiệm số của bài toán (2.2), đầu tiên ta rời rạc hóa trục thời gian bằng phân hoạch (không nhất thiết đều) π = {0 = x0 < x1 < x2 <.
Các giá trị hn = xn+1 − xn được gọi là bước lưới. Để đơn giản ta xét bước đều, tức là hn = hn+1 = h với mọi n = 1, N − 1. Chúng ta xẽ tìm cách xây 16 dựng các giá trị xấp xỉ vn ≈ u(xn ) ≡ un tại các nút lưới t0 , t1 ,. Ta n=N gọi các giá trị vn n=0 nghiệm số xấp xỉ, hay ngắn gọn là nghiệm số của phương pháp trên lưới π.
v0 vk ≈ u(xk ) vk+2 ≈ u(xk+2) vN x0 xk xk+1 xN xk+2 Hình 2.1: Nghiệm số xấp xỉ trên lưới Với mục tiêu này xuất phát từ phương trình vi phân (2.3) Bây giờ, ta xấp xỉ u00 (xi ) bằng các công thức sai phân. Chẳng hạn, ta sử dụng công thức sai phân sau để xấp xỉ đạo hàm cấp hai ([1], [3], [10]) u(xi−1 ) − 2u(xi ) + u(xi+1 ) u00 (xi ) ≈ , h2 ký hiệu ui = u(xi ) thì ta có ui−1 − 2ui + ui+1 u00 (xi ) ≈ .3) ta nhận được hệ phương trình sai phân sau u −2u +u − i−1 h2i i+1 ≈ f (xi ), i = 1, N − 1, (2. Ký hiệu vi ≈ ui , fi = f (xi ) ta có hệ phương trình đại số tuyến tính xác định vi v −2v +v − i−1 h2i i+1 = fi , i = 1, N − 1 (2.5) v0 = µ0 , v N = µ1 Hệ phương trình sai phân (2.5) được gọi là lược đồ sai phân cho bài toán (2. Ta chú ý rằng hệ (2.5) là hệ phương trình đại số tuyến tính dạng ba đường chéo ([1]).
17 Chúng ta xét bài toán (2.2) trong trường hợp cụ thể với hàm π f (x) = −(x + sin πx), µ0 = 0, µ1 =. 6 Khi đó bài toán (2.2) có nghiệm chính xác x3 sin πx u(x) = −. 6 π2 Nghiệm chính xác của bài toán trong trường hợp này được biểu diễn trong hình 2.2: Nghiệm chính xác (x) = −(x + sin πx), µ0 = 0, µ1 = 6 Ta viết lại lược đồ sai phân (2.5) cho bài toán dưới dạng −vi−1 + 2vi − vi+1 = h2 fi , i = 1, N − 1, (2. Ta cần xác định v1 , .6) được viết trong dạng tường minh 18 2v1 − v2 = h2 f1 + µ0 , −v1 + 2v2 − v3 = h2 f2 , −v2 + 2v3 − v4 = h2 f3 , .
−vn−2 + 2vn−1 = h2 fN −1 + µ1 , hay được viết dưới dạng ma trận Av = F , trong đó h2 fi + µ0 v1 2 −1 0. vn−1 0 0 0 2 h2 fN −1 + µ1 Bây giờ, để xác định nghiệm rời rạc thu được từ lược đồ sai phân ta cần giải hệ đại số tuyến tính thu được từ việc rời rạc hóa phương trình vi phân. Việc nghiên cứu các phương pháp giải hệ phương trình đại số tuyến tính nói chung và các hệ phương trình đại số tuyến tính thu được từ việc rời rạc hóa các phương trình đạo hàm riêng là một trong những vấn đề quan trọng được nhiều nhà toán học quan tâm. Như chúng ta đã biết, người ta phân biệt các phương pháp giải hệ phương trình đại số tuyến tính (trường hợp tổng quát) làm hai loại phương pháp, đó là 1.
Các phương pháp trực tiếp: là những phương pháp cho nghiệm đúng của hệ phương trình đại số tuyến tính sau hữu hạn bước. Với các giả thiết không có sai số làm tròn, chẳng hạn, phương pháp khử Gauss, phương pháp Gauss cải biên, phương pháp phân tích LU , phương pháp Cholesky, phương pháp trực giao hóa. Phương pháp trực tiếp thường sử dụng để giải hệ kích thước nhỏ với các số liệu {A, b} cho đúng. Trong trường hợp còn lại, các phương pháp lặp lại có ưu thế hơn.
Các phương pháp lặp: là phương pháp xây dựng một dãy vô hạn các xấp xỉ x(k) mà giới hạn của dãy là nghiệm đúng của hệ. Phương pháp này 19 thường sử dụng để giải hệ có kích thước lớn và số liệu chỉ biết gần đúng. Trong thực hành ta buộc phải dừng lại tại một bước k cụ thể nào đó và xem x(k) là nghiệm gần đúng của hệ với sai số có thể ước lượng được. Ngoài ra còn một số phương pháp hiệu chỉnh giải hệ đại số tuyến tính điều kiện xấu.
Đối với các hệ phương trình đại số tuyến tính thu được từ việc rời rạc hóa các phương trình vi phân đạo hàm riêng thì cần một số các phương pháp hiệu quả hơn dành riêng cho các hệ loại này. Ví dụ, phương pháp Gradient liên hợp cho hệ phương trình với ma trận đối xứng xác định dương, các phương pháp giải hệ phương trình với ma trận thưa. Đối với ví dụ ta đang xét, hệ phương trình đại số tuyến tính nhận được có ma trận hệ số là ma trận dạng ba đường chéo. Một trong những phương pháp giải quyết hiệu quả hệ ba đường chéo là phương pháp truy đuổi ([1]).
2 Khối lượng tính toán của phương pháp truy đuổi chỉ là cỡ 8n (so với n3 3 của phương pháp khử Gauss). Định lý về tính khả thi và ổn định của phương pháp truy đuổi giải hệ ba đường chéo được trình bày trong chi tiết trong (xem [1], Định lý 1, Trang 24). Ta dễ dàng kiểm tra được rằng: Trong trường hợp này hệ ba đường chéo trong trường hợp này thỏa mãn định lý về tính khả thi và ổn định của phương pháp truy đuổi. Sau đây ta xét một vài trường hợp với bước lưới cụ thể.
Đầu tiên, với bước lưới h = 0.1 nghiệm số thu được từ lược đồ sai phân (2.5) được biểu diễn trong hình 2. Tiếp theo, bước lưới h = 0.01, nghiệm số xấp xỉ thu được từ lược đồ sai phân (2.5) được biểu diễn trong hình 2.001 nghiệm số xấp xỉ thu được biểu diễn trong hình 2. So sánh nghiệm số xấp xỉ trong hình 2.5 với nghiệm chính xác trong hình 2.2 chúng ta thấy rằng khi h càng nhỏ (h → 0) thì nghiệm số càng gần với nghiệm chính xác. Lấy các bước lưới nhỏ hơn nữa, tức là lấy lưới mịn hơn thì ta hình dung được rằng nghiệm số gần như trùng với nghiệm chính xác.
Để thấy rõ hơn điều này ta sẽ xét đến sai số tuyệt đối |ui − vi |, i = 1,. Đồ thị của sai số tương ứng với các trường hợp h = 0.001 được biểu diễn trong các hình 2. Ở đây ta kí hiệu e = max {|ui = vi |} .3: Nghiệm số với h = 0.4: Nghiệm số với h = 0.5: Nghiệm số với h = 0.001 −3 x 10 1 do thi cua sai so, h = 0.6: Sai số với h = 0.