Tải bản đầy đủ (.pdf) (79 trang)

Phương pháp sai phân giải bài toán ô nhiễm khí quyển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.7 MB, 79 trang )

Header Page 1 of 133.

MỤC LỤC
MỞ ĐẦU ......................................................................................................................... 1
CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN CỦA LƯỢC ĐỒ SAI PHÂN ....................3
1.1 LƯỚI VÀ CÁC BƯỚC LƯỚI: ............................................................................3
1.2 XẤP XỈ SAI PHÂN CÁC TOÁN TỬ VI PHÂN ĐƠN GIẢN ............................ 6
1.4 THIẾT LẬP MỘT BÀI TOÁN SAI PHÂN ....................................................... 14
1.5 VỀ SỰ HỘI TỤ VÀ ĐỘ CHÍNH XÁC CỦA CÁC LƯỢC ĐỒ SAI PHÂN........17
1.6. PHƯƠNG PHÁP XẤP XỈ CÁC ĐIỀU KIỆN BIÊN VÀ ĐIỀU KIỆN BAN
ĐẦU ........................................................................................................................... 19
1.7 CÁC VÍ DỤ VỀ LƯỢC ĐỒ SAI PHÂN ỔN ĐỊNH VÀ KHÔNG ỔN ĐỊNH ........21
1.8 VỀ KHÁI NIỆM TÍNH ĐÚNG ĐẮN CỦA BÀI TOÁN SAI PHÂN ................23
CHƯƠNG 2: PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ
QUYỂN ......................................................................................................................... 25
2.1 MÔ HÌNH TOÁN HỌC CỦA QUÁ TRÌNH LAN TRUYỀN KHÍ THẢI (VẬT
CHẤT) TRONG MÔI TRƯỜNG KHÍ (NƯỚC)....................................................... 25
2.2 GIỚI THIỆU BÀI TOÁN ....................................................................................25
2.3 GIỚI THIỆU HÀM DELTA DIRACT ................................................................ 27
2.4 PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ QUYỂN ...........27
2.4.1 XÂY DỰNG LƯỢC ĐỒ SAI PHÂN ....................................................... 28
2.4.2 NGHIÊN CỨU LƯỢC ĐỒ SAI PHÂN (3.2.12)-(3.2.15) ............................ 30
2.4.3 MỘT VÀI KẾT QUẢ BỔ TRỢ ....................................................................30
2.4.4 TÍNH GIẢI ĐƯỢC ........................................................................................ 33
2.4.5 TÍNH ỔN ĐỊNH ............................................................................................ 34
2.4.6 PHƯƠNG PHÁP GIẢI CHO HỆ (3.2.12)-(3.2.15) ......................................34
CHƯƠNG 3: KẾT QUẢ TÍNH TOÁN THỬ NGHIỆM ..............................................37
KẾT LUẬN ...................................................................................................................41
TÀI LIỆU THAM KHẢO ............................................................................................. 42
PHỤ LỤC ...................................................................................................................... 43


Footer Page 1 of 133.


Header Page 2 of 133.

LỜI CAM ĐOAN
Tôi xin cam đoan : Luận văn này là công trình nghiên cứu thực sự của cá
nhân, được thực hiện dưới sự hướng dẫn khoa học của Tiến sĩ Nguyễn Công
Điều. Tôi xin chịu trách nhiệm về nghiên cứu của mình.
Học viên

Lưu Xuân Trường

Footer Page 2 of 133.

Thang Long University Libraty


Header Page 3 of 133.

DANH MỤC CÁC HÌNH VẼ
Hình 1: Form chính của chương trình. ..........................................................................38
Hình 2: Form dữ liệu của chương trình. .......................................................................38
Hình 3: Form nghiệm của chương trình. .......................................................................39
Hình 4: Form vẽ đồ thị của hàm mật độ  theo trục x. ................................................39
Hình 5: Form vẽ đồ thị của hàm mật độ  theo trục z. ................................................40

Footer Page 3 of 133.



Header Page 4 of 133.

MỞ ĐẦU
Nhiều bài toán thực tiễn dẫn đến việc nghiên cứu những bài toán biên của
phương trình vật lý toán, giải các bài toán đó đến đáp số bằng số là một yêu cầu
quan trọng của thực tiễn.
Trong một số ít trường hợp, thật đơn giản việc đó có thể làm được nhờ
vào nghiệm tường minh của bài toán dưới dạng các công thức sơ cấp, các tích
phân hoặc các chuỗi hàm. Còn trong đại đa số trường hợp khác, đặc biệt là các bài
toán có hệ số biến thiên, các bài toán phi tuyến, các bài toán trên miền bất kỳ thì
nghiệm tường minh của bài toán không có, hoặc nếu có nhưng rất phức tạp. Trong
những trường hợp đó việc tính nghiệm phải dựa vào các phương pháp gần đúng.
Thế giới đang phải đối mặt với việc môi trường đang bị ô nhiễm ngày
càng nghiêm trọng. Trên thế giới đã xảy ra rất nhiều trận mưa axit, khí hậu nóng
lên làm cho băng tan dẫn đến mực nước biển dâng lên đe dọa các vùng đồng
bằng ven biển, hiện tượng nước mặn xâm nhập sâu vào đất liền…
Với việc công nghiệp hóa và hiện đại hóa với tốc độ ngày càng nhanh, các
nhà máy mọc lên không chỉ là ở những khu công nghiệp xa dân cư mà còn được
xây dựng ở những vùng đông dân. Khói độc từ các nhà máy thải ra gây hại cho
người dân sống xung quanh.
Luận văn này tập trung vào giải quyết bài hoán ô nhiễm khí quyển do nhà
máy thải ra bằng “phương pháp sai phân” nhằm mục đích có thể dự đoán trước
được ảnh hưởng và mật độ của các chất gây ô nhiễm để hạn chế tác hại của nó.
Luận văn gồm phần mở đầu và ba chương, sau cùng là tài liệu dẫn và
phần phụ lục. Chương một trình bày các kiến thức cơ bản của lược đồ sai phân
nhằm phục vụ cho chương hai. Chương hai là phần chính của khóa luận, trong
đó trình bày bài toán ô nhiễm khí quyển do các nhà máy thải ra từ ống khói và
xây dựng thuật toán để giải nó. Chương ba đưa ra kết quả tính toán thử nghiệm
của một bài toán thực tiễn nhằm minh họa cho thuật toán đã xây dựng ở chương
hai. Phần phụ lục là toàn văn chương trình được lập trình trên ngôn ngữ C++.

1
Footer Page 4 of 133.

Thang Long University Libraty


Header Page 5 of 133.

Em xin chân thành cảm ơn TS Nguyễn Công Điều – Viện Công nghệ
Thông tin đã tận tình hướng dẫn em trong thời gian em làm khóa luận, đồng thời
em xin cảm ơn các thầy cô giáo trong khoa Toán và các bạn cùng lớp đã nhiệt
tình giúp đỡ em làm khóa luận này.
Do thời gian và kiến thức của bản thân em còn hạn chế nên chắc chắn
luận văn còn những thiếu sót, rất mong được sự đóng góp ý kiến của các thầy cô
và các bạn.

2
Footer Page 5 of 133.


Header Page 6 of 133.

CHƯƠNG 1

CÁC KIẾN THỨC CƠ BẢN CỦA LƯỢC ĐỒ SAI PHÂN
Trong chương này sẽ trình bày các kiến thức cơ sở cần thiết được sử dụng trong
chương hai để nghiên cứu lược đồ sai phân ẩn của bài toán ô nhiễm khí quyển.
1.1 LƯỚI VÀ CÁC BƯỚC LƯỚI:
Để viết được lược đồ sai phân tìm nghiệm số xấp xỉ cho một bài toán vật lý
của một phương trình vi phân đã cho cần thực hiện hai bước:

Thay miền biến thiên liên tục của biến số bởi miền biến thiên rời rạc của nó,
toán tử vi phân bởi một toán tử sai phân nào đó, xác định các biểu thức sai phân
đối với điều kiện biên và điều kiện ban đầu.
Sau đó sẽ nhận được một hệ các phương trình đại số dẫn đến việc xác
định nghiệm của bài toán đối với một phương trình vi phân đã cho được đưa về
tìm nghiệm của một hệ phương trình đại số nhận được. Khi giải một số bài toán
nào đó, ta không thể xác lập lại các giá trị của nghiệm sai phân khi biến số biến
đổi liên tục trong một miền nào đó của không gian Euclid. Vì vậy ta cần chọn
trong miền này một tập hợp hữu hạn các điểm nào đó và chỉ tìm nghiệm tại các
điểm này. Tập hợp những điểm này gọi là lưới. Hàm được xác định tại các nút
lưới được gọi là hàm lưới.
Như vậy miền biến thiên liên tục của đối số được thay bởi lưới, tức là
miền biến thiên rời rạc của đối số. Và như vậy, chúng ta xấp xỉ không gian
nghiệm của các phương trình vi phân bởi không gian các hàm lưới.
Các tính chất của nghiệm sai phân và đặc biệt là xấp xỉ của nó đối với
nghiệm chính xác phụ thuộc vào việc chọn lưới.
Ta xét một vài ví dụ về lưới.

3
Footer Page 6 of 133.

Thang Long University Libraty


Header Page 7 of 133.

Ví dụ 1: Lưới đều trên một đoạn thẳng.
Chia đoạn đơn vị

[0,1]


ra N phần bằng nhau, khoảng các giữa các nút lân

cận bằng x1i  i1.h1 , i1  1, 2,... được gọi là bước lưới, các điểm chia Xi=ih (i = 0,1,...,N)
1

được gọi là các nút lưới, tập tất cả các nút lưới: h  xi  ih : i  1,..., N1 lập
thành một lưới.
Có thể xem x 0 = 0 , x N = 1 là những nút lưới.
Ký hiệu:
 h  xi  ih : i  0,1...., N

Trên đoạn [0,1], thay cho hàm của biến số liên tục y(x) được xét hàm của
biến số rời rạc yh  xi  , giá trị của hàm này được tính từ các nút lưới. Còn bản
thân hàm phụ thuộc bước lưới h như phụ thuộc vào một tham số.
Ví dụ 2: Lưới đều trên mặt phẳng. Xét tập các hàm hai biến u(x,t). Để đơn
giản xét miền xác định là hình chữ nhật:
G  0  x  1,0  t  T 

Chia các đoạn [0,1] và [0,T] lần lượt thành N1,N2 phần bằng nhau. Giả sử

h

1
1
, 
N1
N2

Qua các điểm chia ta vạch ra các đường song song với trục tọa độ tương ứng. Giao của

các đường thẳng này là những nút lưới:



 hr   xi , t j  : xi  ih, t j  j , i  0,...., N1 ; j  0,...., N 2 ; h 



1
T 
, 

N1
N2 

Ta có các bước lưới h và  tương ứng với hai trục x và t . Các nút lân cận là các
nút cùng nằm trên một đường thẳng và có khoảng cách là các bước lưới h hoặc  .
Ví dụ 3: Lưới trong miền hai chiều
Giả sử trên mặt phẳng x = (x1,x2), cho miền G dạng tùy ý với biên G .
Ta vạch ra các đường thẳng:
x1i1  i1.h1 , i1  0, 1, 2,...

x2i2  i2 .h 2 , i2  0, 1, 2,...

trong đó hi  0, i  1, 2 . Do đó trên mặt phẳng  x1 , x2  ta có một lưới với các nút
4
Footer Page 7 of 133.


Header Page 8 of 133.


 i1h1 , i2h2  , i1 , i2  0, 1, 2,...
Lưới này đều theo mỗi hướng riêng biệt (Oxì,Ox2). Ta chỉ cần chú ý các nút
thuộc miền G  G  G . Các nút nằm trong miền G được gọi là các nút trong, lập
h

thành lưới

. Những điểm giao của các đường

x1i1  i1.h1 , i1



x2i2  i2 .h 2 , i2  0, 1, 2,... với biên G được gọi là những nút biên. Ký hiệu tập hợp

các nút biên là yh . Ta thấy có những nút biên mà khoảng cách đến các nút trong
gần nhất nhỏ hơn h hay h2 . Như vậy, lưới trên mặt phẳng đều theo các hướng x1 , x1
nhưng lưới  h  h   h đối với miền G không đều ở lân cận biên.
Như vậy miền G của biến x được thay bởi lưới h , tức là một tập hữu hạn các
điểm xi  ( xi 1 , xi 2 )  G . Thay cho hàm u(x) của biến liên tục x  G ta sẽ xét hàm
1

2

lưới y ( xi ) , nghĩa là hàm của các nút lưới xi  . Hàm lưới y ( xi ) có thể viết dưới
dạng vecto. Nếu đánh số lại nút theo một thứ tự nào đó: x1 , x2 ,..., xN thì giá trị của
hàm lưới tại các nút này có thể xem như các thành phần của một vecto cột:
yT  ( y1 , y2 ,..., yN )


Nếu miền G hữu hạn, thì chiều N của vecto y cũng hữu hạn. Nếu G vô hạn, thì
lưới có vô số nút lưới, và số chiều của vecto y cũng vô hạn.
Người ta thường xét tập hợp các lưới h  phụ thuộc vào bước lưới h như một
tham số. Vì vậy, các hàm lưới yh ( x) cũng phụ thuộc vào tham số h (hoặc vào số
nút lưới đều ).
Nếu lưới h không đều thì phải xem h như một vecto h  (h1 , h2 ,..., hN ) với các
phần tử h1 , h2 ,..., hN . Cũng tương tự như vậy, với trường hợp miền G nhiều chiều:
x = (x,,x2,...,xp), khi đó h  (h1 , h2 ,..., hp ) , nếu lưới h đều theo mỗi hướng
xi (i  1,..., p) .

Hàm u(x) của biến số liên tục x  G là các phần tử của một không gian
hàm H 0 nào đó. Tập các hàm lưới yh(x) lập thành một không gian H h . Như vậy,
khi sử dụng phương pháp sai phân hữu hạn, người ta đã thay không gian H 0 bởi
không gian H h của các hàm lưới yh(x).
5
Footer Page 8 of 133.

Thang Long University Libraty


Header Page 9 of 133.

Khi xét tập hợp các lưới h  ta có tập hợp H h  của các không gian các
hàm lưới phụ thuộc vào tham số h . Trong không gian tuyến tính H h đưa vào
chuẩn ||.|| là tương tự lưới của || .||0 chuẩn trong không gian xuất phát H 0 .
Giả sử u(x) là nghiệm của bài toán liên tục đang xét u  H 0 , yh là nghiệm
của bài toán sai phân ( xấp xỉ ), yh  H h .
Điều chính yếu trong giải gần đúng là đánh giá độ xấp xỉ của yh so với u .
Giả sử || .||0 là chuẩn trong H 0 , đương nhiên đòi hỏi || . ||h xấp xỉ || . ||0 theo nghĩa
sau:

lim || uh ||h || u ||0
h 0

Với mọi vecto u trong H 0 .
1.2 XẤP XỈ SAI PHÂN CÁC TOÁN TỬ VI PHÂN ĐƠN GIẢN
Giả sử cho một toán tử vi phân L tác động lên một hàm v=v(x). Khi
nghiên cứu sự xấp xỉ sai phân một toán tử L thường người ta chỉ xét một cách
địa phương tức là tại một lân cận nào đó của điểm X cố định bất kỳ của không
gian và nếu v(x) liên tục thì xem vh (x) = v(x). Tổng quát:
vh  Ph v  H , v  H 0 , Ph : H 0  H h

Sau đó cần chọn khuôn lưới, tức là chỉ rõ tập các nút lân cận với các nút x
mà tại đó các giá trị của hàm lưới v(x) và các hệ số khác của toán tử L có thể
được dùng để xấp xỉ toán tử L .
Thay các đạo hàm của v và các đại lượng khác của toán tử bởi các biểu
thức sai phân Lh vh , thay cho toán tử Lv. Đó là một tổ hợp tuyến tính các giá trị
của hàm lưới vk trên khuôn lưới:
Lh vh ( x) 



Ah ( x,  )vh ( )



Ah ( xi , x j )vh (x j )

 U h ( xi )

Hoặc:

( Lh vh )i 
6
Footer Page 9 of 133.

xi U h ( xi )


Header Page 10 of 133.

Trong đó Ah ( x,  ) là hệ số, h là bước lưới, U h ( x) là khuôn lưới tại nút x. Việc
thay gần đùng toán tử vi phân Lv bởi biểu thức sai phân Lh vh như vậy được
gọi là sự xấp xỉ toán tử vi phân bởi toán tử sai phân.
Ta xét vài ví dụ xấp xỉ sai phân của một vài toán tử sai phân đơn giản.

Lv 

Ví dụ 1:

dv
.
dx

Cố định một điểm nào đó của trục Ox và lấy các điểm x-h và x+h với h>0.
Khai triển v(x) công thức Taylor tại x ta có:
h2
v( x  h)  v( x)  hv '( x)  v "( x)  0(h3 )
2!

(1.2.1)


h2
v "( x)  0(h3 )
2!

(1.2.2)

v( x  h)  v( x)  hv '( x) 

Để có khái niệm này ta đã giả thiết rằng v(x) là hàm đủ trơn trong một lân
cận nào đó của điểm x : ( x  h0 , x  h0 ) với h< h0 , h0 là một số cố định. Từ (1.2.1),
(1.2.2) ta có:
v '( x) 

v ( x  h)  v ( x ) h
 v ''( x)  0(h 2 )
h
2

Để xấp xỉ Lv ta dùng một trong các biểu thức sau:
L h v 

v ( x  h)  v ( x )
 vx
h

(1.2.3)

L h v 

v ( x  h)  v ( x )

 vx
h

(1.2.4)

L h v được gọi là hàm sai phân phải và L h v được gọi là hàm sai phân trái, hay

còn gọi là đạo hàm sai phân tiến và lùi tương ứng.
Các biểu thức sai phân L h v và L h v được xác định tại các ô nút hai điểm
( x,x+h ) và ( x,x-h). Ngoài ra việc tính xấp xỉ sai phân của đạo hàm

dv
có thể
dx

lấy tổ hợp tuyến tính của các biểu thức ( 1.2.3 ) và ( 1.2.4 ) như sau:
L(h ) v   vx  (1   )vx
7
Footer Page 10 of 133.

Thang Long University Libraty


Header Page 11 of 133.

Khi   0,5 ta có đạo hàm sai phân trung tâm.
v0x 

1
v ( x  h)  v ( x  h)

(v x  v x ) 
2
2h

(1.2.5)

Như vậy có thể xấp xỉ vô số các biểu thức sai phân xấp xỉ toán tử Lv=v. Khi
thay toán tử vi phân Lv bởi toán tử sai phân Lh v ta đã phạm một sai số nào đó.
Đại lượng  ( x)  Lhv( x)  Lv( x) được gọi là sai số xấp xỉ toán tử Lv tại điểm x.
Theo công thức khải triển Taylor ta có thể viết:
vx 

v ( x  h)  v ( x )
h
 v '( x)  v "( x)  0(h 2 )
h
2

vx 

v ( x )  v ( x  h)
h
 v '( x)  v "( x)  0(h 2 )
h
2

v0 

v ( x  h)  v ( x  h)
 v '( x)  0(h 2 ) .

2h

x

Ta thấy rõ ràng:
 ( x)  vx  v '( x)  0(h), ( x)  vx  v '( x)  0h , ( x)  vx  v '( x)  0(h2 )

Ta nói rằng toán tử sai phân Lh xấp xỉ toán tử vi phân L với bậc m>0 tại điểm x nếu:
 ( x)  vx  v '( x)  0(h), ( x)  Lhv( x)  Lv( x)  0(hm )

Ví dụ 2:

Lv  v n 

d 2v
dx 2

Để miêu tả xấp xỉ sai phân đạo hàm bậc hai ta cũng xét một điểm nút x cố
định bất kỳ của lưới và lấy thêm hai điểm lân cận x-h và x+h. Ta xuất phát từ
định nghĩa, đạo hàm bậc hai là đạo hàm của đạo hàm bậc nhất rồi dùng các biểu
thức gần đúng của đạo hàm bậc nhất ở trên, ta có:
Lv 

d 2v d dv
 ( )  Lh v  (vx ) x
dx 2 dx dx

v ( x  h)  v ( x ) v ( x )  v ( x  h)

vx ( x )  v x ( x  h )

v( x  h)  2v( x)  v( x  h)
h
h


h
h
h2

Mặt khác lại có:
8
Footer Page 11 of 133.


Header Page 12 of 133.
v ( x  h)  v x ( x )
(v x ) x  x

h

v ( x  h)  v ( x ) v ( x )  v ( x  h )

v( x  h)  2v( x)  v( x  h)
h
h

h
h2

Từ đó suy ra:

Lh v  (vx ) x  (vx ) x  vxx 

1
[v( x  h)  2v( x)  v( x  h)]
h2

Khai triển hàm v(x) theo công thức Taylor ta được:
v( x  h)  v( x)  hv '( x) 

h2
h3
h4
h5
v "( x)  v '''( x)  v (4) ( x)  v (5) ( x)  0(h 6 )
2!
3!
4!
5!

v( x  h)  v( x)  hv '( x) 

h2
h3
h4
h5
v "( x)  v '''( x)  v (4) ( x)  v (5) ( x)  0(h 6 )
2!
3!
4!
5!


1 2
h 4 (4)
h 2 (4)
6
vxx  2 [h v "( x)  v ( x)  0(h )]  v "( x)  v ( x)  0(h 4 )
h
12
12

Vậy sai số xấp xỉ có dạng:
 ( x)  Lhv  Lv  0(h2 ) .

Ví dụ 3:

Lv 

v  2 v

, v  ( x, t )
t x 2

Cho (x,t) là một điểm cố định trên mặt phẳng (x,t), h>0,  >0 là hai bước
lưới theo các trục Ox, Ot tương ứng. Đặt:
v  v( x, t ), vˆ  v( x, t   ), v  v( x, t   )

Trước tiên ta xét xấp xỉ đơn giản nhất trên khuôn 4 điểm:
( x  h, t ), ( x, t ), ( x  h, t ), ( x, t   )

Ta có:

v
v ( x   )  v ( x, t )
 v  0( ) 
 0( )
t


 2v
1
 vxx  0(h 2 )  2 [v( x  h, t )  2v( x, t )  v( x  h, t )]  0( h 2 )
2
x
h
2
2
v v
Lv  2  2
t
x

Ký hiệu:
L(0)
h v  vt  vxx

Trong cấu trúc của L(0)
h v chúng ta đã lấy vxx ở thời điểm t lớp dưới. Tương tự, ta
có thể lấy vxx ở thời điểm t+  , tức lớp sau như sau:
9
Footer Page 12 of 133.


Thang Long University Libraty


Header Page 13 of 133.

ˆ
L(1)
h v  vt  vxx

Lấy tổ hợp tuyến tính L(h ) v  vt  [ vˆxx  (1   )vˆxx ] và L(1)h v ta được một họ tham số
của toán tử sai phân
L(h ) v  vt  [ vˆxx  (1   )vˆxx ]

Họ này với   0,   1 được xác định trên khuôn lưới 6 điểm:
(x-h,t), (x,t), (x+h,t), (x-h,t+ ), (x,t+ ), (x+h,t+  )
Bây giờ ta tính sai số của các xấp xỉ trên. Theo khai triển Taylor ta có:
vt 

v( x, t )   2v( x, t )
v( x, t )

 0( 2 ) 
 0( )
2
t
2 t
t

vxx 


 2 v ( x, t ) h  4 v ( x, t )
 2 v ( x, t )
4

0(h
)

 0(h 2 ) .
2
4
2
x
12 x
x

 2 v ( x, t )
H (t ) 
x 2

Ký hiệu:

Theo khai triển Taylor ta có:


H (t  )  H (t )  H '(t ) 
2

( / 2) 2
H "(t )  0( 3 )
2!


Mà:

H (t )  H [(t   / 2)   / 2]  H (t   / 2)  ( / 2) H '(t   / 2)  0(h3 )

Nên:

 2v( x, t )  2v(t   / 2)   3v( x, t   / 2)


 0( 2 )
2
2
2
x
x
2
x t

Vì:

H '(t ) 
vxx 

 3 v ( x, t )
. Vậy suy ra:
x 2t

 2 v( x, t   / 2)   3v( x, t   / 2)


 0(h 2   2 ) .
2
2
x
2
x t

Tương tự, ta xét ở lớp thời gian sau t+ . Đặt:
 2 v ( x, t   )
 3v ( x, t   )
G (t   ) 
 G '(t   ) 
x 2
x 2t





2

2

Mà G ( x, t   )  G ( x, t   ) , nên ta có:
 2 v ( x, t   )
vˆxx 
 0(h 2 )
2
x






2

2

Theo khai triển Taylor tương tự hàm G ( x, t   ) ta được:

10
Footer Page 13 of 133.


Header Page 14 of 133.

vˆxx 

 2v( x, t   )   3v( x, t   / 2)

 0(h 2   2 )
2
2
x
2
x t

Từ đó ta có:
v( x, t )  2v( x, t )
L v  vt  vxx 


 0(h 2   2 )  Lv( x, t )  0(h 2   )
2
t
x
(0)
h

ˆ
L(1)
h v  vt  vxx 

v( x, t   )  2v( x, t   )

 0(h 2   )  Lv( x, t   )  0(h 2   )
t
x 2

ˆ
Với   0,5 ta có L(0,5)
h v  vt  (0,5vxx  0,5vxx )



v( x, t   / 2)  2v( x, t   / 2)

 0(h 2   2 )  Lv( x, t   / 2)  0( h 2   2 )
t
x 2


Vậy:
 0  0(h2   )  L(0)
h v  Lv( x, t )
1  0(h2   )  L(1)
h v  Lv( x, t   )

   0(h2   2 )  L(h )v  Lv( x, t   / 2) ,   0,5

Ví dụ 4:

 2v  2v
Lv  2  2
t
x

Trong trường hợp này, để viết toán tử sai phân Lh v  vtt  vxx cần phải sử
dụng giá trị của hàm lưới tại ba thời điểm t- , t, t+ . Ta thấy khuôn lưới ít nhất
là 5 điểm.
Một trong những phép tính gần đúng khả dĩ khi dùng giá trị vxx tại lớp
trung bình t có dạng:
Lh v  vtt  vxx

(1.2.7)

Trong đó:
vtt ( x, t ) 

v( x, t   )  2v( x, t )  v( x, t   )

2


Tương tự, có thể viết biểu thức của toán tử:
Lh v  vtt  vˆxx

(1.2.8)

11
Footer Page 14 of 133.

Thang Long University Libraty


Header Page 15 of 133.

Trong khuôn lưới 9 điểm có thể viết họ 2 tham số của các toán tử sai phân như
sau:
Lh1 2 v  vtt  [1vˆxx  (1  1   2 )vxx   2vxx ]

(1.2.9)

Khi 1   2  0 thì ta có (1.2.7). Còn khi 1  1,  2  0 thì ta có (1.2.8). Ta có:
vtt 

 2 v ( x, t )
 (0 2 ) ,
t 2

vxx 

 2 v ( x, t )

 0(h 2 )
x 2

Do đó, toán tử sai phân (1.2.7) có sai số xấp xỉ là 0(h2   2 ) . Toán tử sai phân
(1.2.9) cũng có sai số xấp xỉ bậc này khi 1   2   (  là một số bất kỳ).
1.3 SAI SỐ XẤP XỈ TRÊN LƯỚI
Chúng ta đã xem xét cách tính xấp xỉ sai phân tại một điểm và nói về bậc
của phép tính xấp xỉ sai phân đó. Việc đánh giá bậc xấp xỉ này thường đòi hỏi ở
trên toàn lưới h .
Giả sử h là lưới trong miền G thuộc không gian Euclid p chiều:
G  R p , x  ( x1 , x2 ,...., x p )

Gọi H0 là không gian các hàm trơn u(x), Hh là không gian tuyến tính các hàm
lưới, ||.||0 là chuẩn trong H0, ||.||h là chuẩn trong Hh.
Ví dụ, nếu p=1 và Hh=L2 thì chuẩn là
1/2

N 1

wh   x j , j  1, 2,..., N  1 ;

|| u ||h  ( u h) ;
j 1

2
j

u j  u( x j )

Nếu p>1, thì chuẩn sẽ là

1/2



|| u ||h    u 2 ( x )h  ,
 j 1


trong đó,



h  (h1 , h2 ,..., hp )

được lấy theo mọi nút x của lưới h . Giả thiết rằng:

a, Tồn tại một toán tử tuyến tính
Ph : H 0  H h

sao cho mỗi hàm u( x)  H h tương ứng với một hàm lưới uh ( x), x  h , tức là
uh  Phu  H h

b, Các chuẩn ||.||h và ||.||0 tương thích, tức là:
12
Footer Page 15 of 133.


Header Page 16 of 133.

lim || Phu ||h || h ||0


|h| 0

trong đó |h| là chuẩn của vector h.
Xét một toán tử L nào đó trong H0 và toán tử Lh chuyển hàm lưới vh  H h
thành hàm lưới Lh vh  H h được cho trên h (tức là Lh tác động từ H h  H h ).
Người ta gọi hàm lưới  h sau đây là sai số của phép xấp xỉ toán tử L bởi toán tử
Lh :
 h  Lh vh  ( Lv)h

trong đó, vh  Phv, ( Lv)h  Ph Lv , v là một hàm bất kỳ trong H0 .
Chúng ta nói rằng, toán tử sai phân Lh xấp xỉ toán tử vi phân L với bậc m>0 nếu:
|| 'h |||| Lh vh  ( Lv)h || 0(| h | ''')

Hoặc:
|| Lh vh  ( Lv)h || M | h | '''

trong đó, M là một hằng số dương không phụ thuộc |h|. Nếu h  (h1 , h2 ,..., hp ) thì
p

| h | ( hi2 )1/2
i 1

Chú ý rằng việc chọn chuẩn thích hợp để đánh giá sai số xấp xỉ liên quan
đến cấu trúc của toán tử sai phân.
Trong trường hợp hai biến, chẳng hạn u(x,t) là nghiệm của phương trình
không dừng (truyền nhiệt, truyền sóng v.v…), thì toán tử sai phân L h xấp xỉ
toán tử vi phân L được xác định trên các hàm lưới vh(x,t) cho trên lưới:
wh  wh  w  ( x, t ) : x  wh , t  w 


trong đó h là hàm lưới trong miền G  R p , w là lưới trên đoạn [0,t0] . Giả sử
v(x,t) được xem như là một hàm của đối số x  H 0 . Khi đó:
vh ( x, t )  Ph v( x, t )  H h

Với bất kỳ t  0; t0  . Nếu v(x,t) liên tục theo t thì có thể đặt
vh  vh ( x, t ),  t  w

Do đó:
13
Footer Page 16 of 133.

Thang Long University Libraty


Header Page 17 of 133.

 h ( x, t )  Lh vh  ( Lv)h ( x, t ),( x, t )  w

Theo định nghĩa, toán tử sai phân Lh xấp xỉ toán tử L với bậc m>0 theo x
và bậc n>0 theo t , nếu trong lớp các hàm đủ trơn v(x,t) ta có đánh giá
|| h ( x, t ) || 0(| h |m  |  |n )

Hoặc
|| h ( x, t ) || M (| h |m  |  |n )

trong đó, M là một hằng số dương không phụ thuộc vào |h| và  .
Ví dụ: Xét toán tử
Lv 

v  2v


, 0  x  1, 0  t  t0
t x 2

Toán tử Lh v được viết ở tất cả các nút bên trong của lưới
Lh v  vt  vxx
wh  ( xi , t j ) : xi  ih, t j  j , 0  j  j0 , j0  t0 /  

Và mỗi nút bên trong của lưới wh ta có:
 h ( x, t )  Lh vh  ( Lv)h  0(h2   )

Do đó, Lh xấp xỉ L bậc hai theo x và bậc một theo t trong bất kỳ chuẩn nào sau
đây:
|| y || h  max || y(t ) ||h ;|| y(t ) ||h    || y(t ) ||h ; y(t ) ||h  [   || y(t ) ||2 h ]1/2
tw

tw

tw

1.4 THIẾT LẬP MỘT BÀI TOÁN SAI PHÂN
Để thiết lập một bài toán sai phân tương ứng với một bài toán vật lý –
toán, chẳng hạn bài toán đối với môt phương trình vi phân thì ngoài việc xấp xỉ
phương trình vi phân cần phải viết các dữ kiện của bài toán dưới dạng sai phân.
Tập hợp các phương trình sai phân đó (xấp xỉ phương trình vi phân xuất
phát và các dữ kiện) được gọi là một lược đồ sai phân. Các dữ kiện ở đây là điều
kiện biên, điều kiện ban đầu và vế phải phương trình.
Ví dụ 1: Bài toán Cauchy đối với các phương trình vi phân thông thường:
14
Footer Page 17 of 133.



Header Page 18 of 133.

u '  f ( x), x  0, u (0)  u0

(1.4.1)

Chúng ta chọn một lưới sai phân đơn giản nhất
wh  xi  ih, i  1, 2,...

và tương ứng bài toán sai phân với bài toán (1.4.1)
yx   ; y0  u0

Hay
yi 1  yi
  , i  0,1,..., y0  u0
h

Trong công thức này có thể cho vế phải i bằng các phương pháp khác nhau.
Ví dụ:
i  f ( xi ), i  0,5[ f ( xi )  f ( xi 1 )]

Thỏa mãn điều kiện
i  fi  0(h) .

Để tìm nghiệm ta có công thức truy hồi
yi 1  yi  h , i  0,1, 2...

Tại đây


y0 = u 0

Ví dụ 2:

Bài toán biên
u "( x)   f ( x),0  x  1, v(0)  1 , u (1)  2

Chúng ta lại chọn một lưới sai phân:
wh  xi  ih, i  1, 2,..., N , hN  1

Chúng ta viết bài toán sai phân ở dạng:
yxx   , y0  1 , yN  2

Hoặc
yi 1  2 yi  yi 1
 i , i  1, 2,...., N  1
h2

Kết quả chúng ta thu được một hệ các phương trình đại số với ma trận ba đường
chéo (có thể giải được hệ này bằng phương pháp truy đuổi).

Ví dụ 3:

Bài toán biên thứ nhất đối với phương trình truyền nhiệt
15

Footer Page 18 of 133.

Thang Long University Libraty



Header Page 19 of 133.

Lu 

u  2u

 f ( x, t ), 0  x  1, 0  t  t0
t x 2

u(0, t)  1 (t ), u(1, t )  2 (t )

u ( x, 0)  u0 ( x)

Ta chọn lưới sai phân:
wh  ( xi  ih, t j  j ), i  0,1,..., N1 , j  0,1,..., N 2 

Đặt:
yij  y( xi , t j )

là hàm cho trên lưới wh  wh  w
Xét trường hợp khuôn lưới 4 điểm đơn giản nhất ta có bài toán sai phân
yt  yxx  

hoặc ở dạng chỉ số của các hàm lưới
yij 1  yij




yij1  2 yij  yij1

 i j , (1  i  N1  1, 0  j  N 2  1)
2
h

y0j  1 (t j ), yNj 1  2 (t j )
yi0  u0 ( xi )

Có thể cho vế phải bằng các phương pháp khác nhau:
i j  f ( xi , t j ) ,

i j  f ( xi , t j 1/2 ) ,…

Bài toán sai phân trên là điển hình của lược đồ tường minh. Lời giải ở lớp thời
gian trên yij 1 được xác định thông qua lời giải của lớp thời gian trước đó theo
công thức tường minh:
y j 1  y j   ( yxxj   j )

Ta khảo sát lược đồ bất tường minh (lược đồ ẩn):
yt  yˆ xx  
y(0, t )  1 (t ), y(1, t )  2 (t )

y(0, t )  u0 ( x), t  w , x  wh

Để xác định được nghiệm yˆ  y j 1 tại lớp thời gian j+1 ta có các phương trình
đại số:
16
Footer Page 19 of 133.



Header Page 20 of 133.
y j 1  y j 1xx  F j , F j  y j   j

Với ma trận ba đường chéo, ta có thể giải hệ này bằng phương pháp truy đuổi.
1.5 VỀ SỰ HỘI TỤ VÀ ĐỘ CHÍNH XÁC CỦA CÁC LƯỢC ĐỒ SAI PHÂN
Khi giải một bài toán vật lý nào đó bằng phương pháp gần đúng (xấp xỉ),
thì mục đích cuối cùng là cần xem nghiệm được xác định bởi phương pháp xấp
xỉ đó đã xấp xỉ nghiệm chính xác của bài toán với độ chính xác như thế nào. Vì
vậy cần xét vấn đề hội tụ và độ chính xác của các lược đồ sai phân.
Giả sử trong miền G với biên  cần tìm nghiệm của phương trình vi phân
tuyến tính
Lu  f ( x), x  G  R p

(1.5.1)

thỏa mãn các điều kiện phụ (điều kiện biên, điều kiện ban đầu)
lu   ( x), x  

(1.5.2)

trong đó, f ( x),  ( x) là những hàm cho trước (dữ kiện của bài toán), l là toán tử vi
phân tuyến tính nào đó.
Giả thiết rằng nghiệm của bài toán (1.5.1)-(1.5.2) tồn tại và duy nhất. Phủ
miền G   bằng lưới wh . Miền biến thiên của đối số liên tục x được thay bởi
một tập hợp rời rạc các điểm nút lưới xi  wh  wh   h .
Bước lưới h là một tham số nào đó đặc trưng cho sự trù mật của các nút lưới.
Ta đặt tương ứng bài toán vi phân (1.5.1)-(1.5.2) với bài toán sai phân sau
Lh yh  h , x  wh
lh yh   h , x   h


(1.5.3)

trong đó h và  h là những hàm lưới đã biết. Các toán tử Lh và lh tác động lên
các hàm lưới cho tại các nút lưới x  wh . Khi thay đổi h có nghĩa là ta chọn một
lưới wh khác, dẫn đến nhận một tập nghiệm  yh  phụ thuộc vào tham số h. Như
vậy, cần xét một họ các lược đồ dạng (1.5.3) tương ứng với các giá trị khác nhau
của tham số h.

17
Footer Page 20 of 133.

Thang Long University Libraty


Header Page 21 of 133.

Mục đích cơ bản của mọi phương pháp gần đúng là nhận được nghiệm
của bài toán xuất phát với độ chính xác   0 cho trước nào đó sau một số hữu
hạn các phép tính. Để thấy rõ độ sai khác giữa nghiệm chính xác u của bài toán
(1.5.1)-(1.5.2) và nghiệm xấp xỉ của bài toán (1.5.3) với độ chính xác   0 đã
cho trong quan hệ với việc bước lưới h( ) ta cần so sánh yh và uh . Việc so sánh
này thường được tiến hành trong không gian Hh của các hàm lưới.
Giả sử uh là giá trị của nghiệm chính xác u(x) trên lưới h với uh  H h . Ta
xét sai số của lược đồ sai phân (1.5.3)
zh  yh  uh

Để có điều kiện đối với zh ta thay zh  yh  uh vào các đẳng thức (1.5.3) và
nhận được một bài toán sai phân đối với zh cùng dạng với bài toán (1.5.3)
Lh zh   h , x  h , lh zh  vh , x   h


(1.5.4)

trong đó
 h  h  Lhuh , x  h , vh   h  lhuh

Các vế phải  h và vh của bài toán (1.5.4) được gọi lần lượt là sai số xấp xỉ
phương trình và sai số xấp xỉ điều kiện biên của bài toán sai phân đối với bài
toán vi phân tương ứng. Người ta gọi  h là sai số xấp xỉ đối với điều kiện biên
lh yh   h .

Để đánh giá sai số của lược đồ zh và sai số xấp xỉ và người ta đưa vào các
chuẩn tương ứng trên các hàm lưới: || . ||(1 ), || . ||(2 ) và || .||(3 ) .
h

h

h

Chúng ta sẽ nói rằng nghiệm của bài toán sai phân (1.5.3) hội tụ tới
nghiệm của bài toán vi phân (1.5.1)-(1.5.2) (lược đồ (1.5.3) hội tụ) nếu:
|| zh ||(1h ) || yh  uh || (1 )  0 khi | h | 0
h

hay
|| zh ||(1h )  p(| h |)

trong đó
p(| h |)  0


khi | h | 0

18
Footer Page 21 of 133.


Header Page 22 of 133.

Ta nói lược đồ sai phân (1.5.3) hội tụ với tốc độ 0(| h |n ) hay có độ chính
xác cấp n (có độ chính xác 0(| h |n ) ) nếu với mọi h đủ bé | h | h0 , ta có bất đẳng
thức sau
|| zh ||(1h ) || yh  uh || (1 )  M | h |n
h

trong đó M là một hằng số dương không phụ thuộc vào h và n>0.
Ta nói rằng lược đồ sai phân (1.5.3) có độ xấp xỉ bậc n nếu
||  h || ( 2 h )  0(| h |n ) ,

||  h || ( 3 h )  0(| h |n )

Ký hiệu các giá trị của f(x) và Lu(x) trên lưới h lần lượt là fh và (Lu)h và
chú ý rằng (f-Lu)h = 0 ta có thể viết sai số xấp xỉ  h dưới dạng:
 h  (h  Lhuh )   f h  ( Lu)   (h  f h )  ( Lu)h  Lhuh    (1) h  (2) h

Như vậy, sai số xấp xỉ đối với lược đồ là tổng của sai số xấp xỉ vế phải
 (1) h  h  f h

và sai số xấp xỉ của toán tử vi phân
 (2) h  ( Lu)h  Lhuh


Vậy cấp của độ chính xác của lược đồ phụ thuộc vào cấp của độ xấp xỉ đối với
nghiệm như thế nào?
Độ chính sác zh  yh  uh là nghiệm của bài toán (1.5.4) với vế phải
 h  h  Lhuh . Vì vậy, vấn đề về mối liên hệ giữa cấp của độ chính xác với cấp

của độ xấp xỉ là vấn đề đặc trưng cho sự phụ thuộc của nghiệm bài toán sai phân
vào vế phải. Nếu zh phụ thuộc liên tục (và hơn nữa đều theo h ) vào  h và vh
(lược đồ ổn định), thì bậc của độ chính xác trùng với bậc của độ xấp xỉ.
1.6. PHƯƠNG PHÁP XẤP XỈ CÁC ĐIỀU KIỆN BIÊN VÀ ĐIỀU KIỆN
BAN ĐẦU
Trên đây ta đã thấy độ chính xác của lược đồ sai phân phụ thuộc vào bậc
xấp xỉ đối với nghiệm bài toán xuất phát, không chỉ vào phương trình mà còn
vào dữ kiện của bài toán đã cho. Xét các ví dụ sau
Ví dụ: Bài toán biên đối với phương trình truyền sóng
19
Footer Page 22 of 133.

Thang Long University Libraty


Header Page 23 of 133.
 2u  2u

 f  x, t  ,
t 2 x 2

0  x  1, 0  t  t0 ,

u (0, t )  u1 (t )


u(1, t )  u2 (t )

u  x,0   u0  x 

 2  x, 0 
 u0  x  .
 2t

(1.6.1)

Rõ ràng khi tính gần đúng bài toán (1.6.1) ta đặc biệt chú ý tới cách viết ở
dạng sai phân điều kiện ban đầu đối với đạo hàm

u
. Giả sử cho một lưới đều
t

h theo x và y với bước lưới h và  (xem ở phần 1). Nếu chúng ta sử dụng cách

tính xấp xỉ đơn giản nhất ut  x,0  u0  x  , thì sai số sẽ là bậc O   . Ta đặt ut  x,0
dưới dạng:
ut  x, 0  

u  x,    u  x , 0 





u  x, 0    2u  x, 0 


 O t 2  .
2
t
2 t

Bây giờ ta trở lại phương trình vi phân ban đầu và tìm được:
 2 u  x, 0   2 u  x, 0 

 f  x, 0   Lu0  x   f  x, 0 
t 2
x 2

trong đó
Lu0 



d 2 u0
dx 2

 2 u  x , 0  d 2 u0  x 

x 2
dx 2

Từ đây ta có
ut  x, 0   0.5  Lu0  f  x, 0   

u  x, 0 

 O  2 
t

Bởi vậy, điều kiện ban đầu viết dưới dạng sai phân
yt  x,0   uˆ ( x) ,

ở đây uˆ( x)  u  x   0.5  Lu0  f  x,0  xấp xỉ điều kiện
u  x, 0 
 u0  x 
t

Với bậc 2 theo  .

20
Footer Page 23 of 133.


Header Page 24 of 133.

Điều kiện u  x, t   u0  x  và các điều kiện biên trong trường hợp này được
xấp xỉ chính xác. Ta có thể lấy một trong các lược đồ sai phân đã xét trong mục
1.2 làm ví dụ về phép xấp xỉ sai phân của phương trình vi phân.
1.7 CÁC VÍ DỤ VỀ LƯỢC ĐỒ SAI PHÂN ỔN ĐỊNH VÀ KHÔNG ỔN ĐỊNH
Việc sử dụng các lược đồ sai phân cho phép tiến hành giải các bài toán
đối với phương trình vi phân bằng cách đưa về giải hệ phương trình đại số tuyến
tính. Các vế phải của phương trình, các điều kiện biên và điều kiện ban đầu mà
sau này ta gọi chung là dữ kiện vào – được cho với sai số xác định.
Các lược đồ mà trong quá trình tính toán làm tăng các sai số ban đầu có
tính không ổn định và không thể áp dụng vào thực tế. Trước khi đưa ra khái
niệm về tính ổn định của lược đồ sai phân theo dữ kiện vào chúng ta hãy xét

khái niệm của nó bằng trực giác, ta chỉ ra một ví dụ.
Ví dụ 1. Lược đồ ổn định:
u '   u, x  0, u  0   u0 ,   0

(1.7.1)

Ta có thể nhận thấy nghiệm của bài toán (1.7.1) là hàm
u  x   u0e x

Bài toán sai phân xấp xỉ bài toán (1.7.1) trên lưới đều
h  xi  ih, i  0,1,...
yi  yi 1h   yi  0, y0  u0 , i  1, 2,...



(1.7.2)

Có thể viết bài toán (1.7.2) dưới dạng sau
yi  syi 1 , s 

1
, i  1, 2,..., y0  u0
1  h

Từ đó ta có yi  si y0
Chúng ta xét điểm cố định x và chọn một dãy các bước lưới h sao cho x luôn
luôn là điểm nút x  i0 h . Khi làm nhở bước lưới h  0 , số i0 phù hợp với điểm x
chúng ta đã chọn, sẽ tăng lên vô hạn.
Ta tính giá trị của y tại điểm này
yi0  si0 y0  ei0 lns y0


21
Footer Page 24 of 133.

Thang Long University Libraty


Header Page 25 of 133.

Và theo khai triển:
lns  ln 1   h   h 1  O  h   ,

Ta có
yi0  y0 e

 h i0 1 O  h  

 y0 e

 x 1 O  h  

 y0 e

 x 1 O  h  

1  O  h  

Đẳng thức cuối biểu thị nghiệm của bài toán sai phân (1.7.2) liên tục phụ thuộc
vào các dữ kiện ban đầu. Trong các trường hợp như vậy ta sẽ nói rằng lược đồ
sai phân ổn định theo các dữ kiện ban đầu.

Ví đụ 2. Lược đồ không ổn định
Đối với bài toán (1.7.1) ta đã khảo sát lược đồ


yi  yi 1
y y
 1    i 1 i   yi  0, y0  u0 , y1  u0 , i  1, 2,...
h
h

(1.7.3)

trong đó   1 là tham số bằng số. Vì đây là lược đồ ba điểm (phương trình sai
phân có hai bậc), thì bên cạnh y0 ta cho tiếp y1 . Với mọi  lược đồ (1.7.3) có
bậc xấp xỉ thấp nhất là một. Nếu đặt u0  1   h  u0 thì u0  u0 (h)  O  h 2  vì
u0  u0 (h)  1   h  u0  u0 (h)   u0  hu0'   u (h)  O  h 2 

Ta sẽ tìm các nghiệm riêng của phương trình sai phân (1.7.3) ở dạng yi  si .
Khi thay yi  si vào (1.7.3) ta được phương trình bậc hai đối với s
(  1)s2   2  1   h  s    0

Phương trình này có hai nghiệm khác nhau
s1,2 

2  1   h  1  2  2  1  h   2 h 2
2   1

Nghiệm tổng quát của (1.7.3) có dạng: yi  As1i  Bs2i .
Giả sử i  0 và i  1 và chú ý rằng y0  u0 , y1  u0 ta có các hằng số A và B
như sau:

A

u0  s2u0
,
s1  s2

B

s1u0u0
s1  s2

Giả sử  h  1 . Khi đó ta có
s1 


1   h  O  h2 
 1




22

Footer Page 25 of 133.


×