Mô hình tính toán song song giải các bài toán biên phức tạp dựa trên tư tưởng chia miền
Trang 1ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
Cao Thị Anh Thư
Mô hình tính toán song song giải các bài toán biên phức tạp dựa
trên tư tưởng chia miền
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
Luận văn thạc sỹ Khoa học máy tính
Người hướng dẫn Khoa học:
TS Vũ Vinh Quang
Thái Nguyên - 2009
Trang 2Chương 1: Các kiến thức cơ bản về giải số phương trình đạo hàm riêng 4
1.1 PHƯƠNG PHÁP SAI PHÂN 4
1.2 THUẬT TOÁN THU GỌN KHỐI LƯỢNG TÍNH TOÁN 6
1.2.1 Bài toán biên thứ nhất 6
1.2.2 Bài toán biên thứ hai 12
1.3 ÁP DỤNG ĐỐI VỚI PHƯƠNG TRÌNH ELLIPTIC 15
1.3.1 Bài toán biên Dirichlet 15
1.3.2 Bài toán biên hỗn hợp 16
1.4 PHƯƠNG PHÁP LẶP VÀ CÁC SƠ ĐỒ LẶP CƠ BẢN 18
1.4.1 Không gian năng lượng 18
1.4.2 Phương pháp lặp giải phương trình toán tử 19
Chương 2: Cơ sở Toán học của phương pháp chia miền 27
2.1 CÔNG THỨC ĐA MIỀN VÀ PHƯƠNG TRÌNH STEKLOV- POICARE 28
2.2 CÁC PHƯƠNG PHÁP LẶP ĐƠN CƠ SỞ 30
2.2.1 Phương pháp Dirichlet-Neumann 30
2.2.2 Phương pháp Neumann-Neumann 31
2.2.3 Phương pháp Robin 31
2.3 MỘT SỐ THUẬT TOÁN CHIA MIỀN 33
2.3.1 Thuật toán chia miền Patrick Le Talle 33
2.3.2 Thuật toán chia miền J.R.Rice, E.A Vavalis, Daopi Yang 35
Trang 32.3.5 Phương pháp chia miền giải bài toán biên gián đoạn mạnh 40
Chương 3: Mô hình tính toán song song giải bài toán Elliptic dựa trên chia miền
43 3.1 CÁC BƯỚC LẶP TRÊN NHIỀU MIỀN CON 43
3.2 MÔ HÌNH TÍNH TOÁN SONG SONG GIẢI BÀI TOÁN BIÊN GIÁN
ĐOẠN MẠNH
45 3.2.1.Hướng tiếp cận hiệu chỉnh đạo hàm 46
3.2.2 Hướng tiếp cận hiệu chỉnh hàm 47
3.3 CÁC KẾT QUẢ THỰC NGHIỆM 49
3.4 ỨNG DỤNG MÔ HÌNH SONG SONG GIẢI BÀI TOÁN CƠ HỌC 51
3.4.1 Sơ đồ song song theo hướng hiệu chỉnh đạo hàm 53
3.4.2 Sơ đồ song song theo hướng hiệu chỉnh hàm 57
3.4.3 Các kết quả thực nghiệm 60
NHẬN XÉT KẾT LUẬN 63
DANH MỤC CÔNG TRÌNH ĐÃ CÔNG BỐ LIÊN QUAN ĐẾN LUẬN VĂN
64 TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 68
Trang 4LỜI CẢM ƠN
Sau một thời gian nghiên cứu và thực hiện luận văn thạc sỹ chuyên
ngành Khoa học máy tính, đến nay luận văn :"Mô hình tính toán song song giải các bài toán biên phức tạp dựa trên tư tưởng chia miền" của tôi đã được
hoàn thiện và đầy đủ Để có được kết quả như mong muốn tôi luôn nhận được
sự quan tâm, chỉ bảo sự giúp đỡ từ thầy giáo hướng dẫn: Tiến sĩ Vũ Vinh Quang - Phó trưởng Khoa Công nghệ thông tin- Đại học Thái Nguyên Nhân dịp này tôi xin trân trọng gửi lời cảm ơn của mình tới các thầy giáo, các vị giáo sư của Viện Công nghệ Thông tin, các thầy cô giáo thuộc Khoa Công nghệ thông tin - Đại học Thái Nguyên đã truyền đạt những kiến thức bổ ích cho các học viên cao học khoá 6 nơi tôi được học tập và nghiên cứu trong suốt 2 năm qua Tôi xin bày tỏ tình cảm và lời cảm ơn chân thành nhất tới các đồng nghiệp Viễn thông Thái Nguyên, tới bạn bè người thân và gia đình đã khích lệ, động viên, giúp đỡ tôi trong thời gian qua
Một lần nữa tôi xin gửi lời cảm ơn sâu sắc nhất tới thầy giáo Vũ Vinh Quang đã hướng dẫn, tạo điều kiện để tôi được học tập và nghiên cứu hoàn thiện luận văn của mình
Tôi xin trân trọng cảm ơn! Thái Nguyên, ngày 30 tháng10 năm 2009 Học viên
Cao Thị Anh Thư
Trang 5ĐẶT VẤN ĐỀ
Lý thuyết về phương pháp chia miền đã được phát triển trong vòng 20 năm qua, xuất phát từ công thức đa miền và phương trình biên chung Steklov-Poincare, các phương pháp chia miền được phát triển từ các sơ đồ lặp cơ bản như: Sơ đồ Dirichlet-Neumann, sơ đồ Neumann-Neumann và sơ đồ Robin được nghiên cứu bởi tác giả trên thế giới Có thể thấy cơ sở của các phương pháp đều xuất phát từ giá trị điều kiện trên biên phân chia từ đó xây dựng các
sơ đồ lặp dạng hai lớp đối với phương trình toán tử Việc nghiên cứu tính chất hội tụ của các sơ đồ lặp sử dụng kết quả của các không gian Sobolev và toán
tử Steklov-Poincare
Nội dung chính của luận văn là trên cơ sở của lý thuyết chia miền, luận văn đề xuất mô hình tính toán song song giải quyết các bài toán với điều kiện biên rất phức tạp trên tư tưởng chia miền, tiến hành cài đặt thử nghiệm
mô hình đồng thời ứng dụng mô hình song song giải quyết một bài toán trong môi trường vật lý bán dẫn Luận văn cấu trúc gồm 3 chương:
Chương 1: Đưa ra cơ sở về phương pháp lưới, thuật toán thu gọn khối
lượng tính toán giải phương trình lưới và cơ sở lý thuyết về các sơ đồ lặp tổng quát
Chương 2: Trình bày tóm tắt cơ sở toán học về phương pháp chia
miền, các sơ đồ lặp cơ bản trong phương pháp chia miền Một số phương pháp chia miền của các tác giả trên thế giới và đặc biệt là các sơ đồ lặp trên tư tưởng hiệu chỉnh hàm hoặc đạo hàm trên biên phân chia của các tác giả Việt Nam và Nhật Bản, phương pháp chia miền đối với bài toán biên gián đoạn mạnh
Chương 3: Trên cơ sở của các sơ đồ lặp theo hướng hiệu chỉnh hàm và
đạo hàm, luận văn đề xuất sơ đồ tính toán song song dựa trên tư tưởng hiệu
Trang 6chỉnh hàm hoặc đạo hàm, tiến hành tính toán bằng số so sánh hai sơ đồ tính toán song song và đồng thời áp dụng phương pháp song song giải quyết một bài toán cơ học được các tác giả trên thế giới quan tâm
Các kết quả lý thuyết được kiểm tra bằng các chương trình thực nghiệm lập trình trong môi trường MATLAB trên máy tính PC
Trang 7
1.1 Phương pháp sai phân
Lưới sai phân:
hiệu là hk Nút ở trên biên gọi là nút biên; tập tất cả các nút biên ký hiệu
là hk, tập hk = hk hk gọi là một lưới sai phân trên
Hàm lưới: Mỗi hàm số xác định tại các nút của lưới gọi là một hàm
lưới, giá trị của hàm lưới ( , )u x y tại nút lưới ( , ) i j viết tắt là u Mỗi hàm i j,
( , )
u x y xác định tại mọi ( , ) x y tạo ra hàm lưới u xác định bởi u i j,
Bài toán sai phân: Ký hiệu Lu f là tập các hàm số hai biến x y, có các đạo hàm riêng đến cấp m liên tục trong = Giả sử bài toán có
( )
uC , khi đó:
Trang 81 ( , )x y | u4( , ) | =
Trang 9Số hạng 2 2
O(h +k ) là một vô cùng bé bậc hai Ta nói toán tử kh xấp xỉ toán tử , điều đó cho phép thay phương trình vi phân bằng phương trình sai phân:
Ta được bài toán sai phân hoàn chỉnh: tìm hàm lưới u tại các nút ( , )i j
thoả mãn hệ phương trình sai phân (1.2) với điều kiện biên (1.3) Như vậy việc tìm nghiệm xấp xỉ của bài toán vi phân (1.1) với độ chính xác cấp hai được đưa về việc giải bài toán sai phân (1.2) với điều kiện (1.3) bằng các phương pháp đại số
1.2 Thuật toán thu gọn khối lượng tính toán
Được đề xuất bởi Samarski-Nicolaev
Bằng các phép biến đổi đơn giản về vec tơ và ma trận, các bài toán sai phân luôn luôn được đưa về hệ phương trình vec tơ 3 điểm thuộc một trong các dạng sau đây:
1.2.1 Bài toán biên thứ nhất
Xét bài toán biên thứ nhất đối với phương trình véc tơ ba điểm
Y j1CY j Y j1 =F j , 1 j N 1, Y0 =F0, Y N =F N (1.4)
Trong đó Y là véc tơ cần tìm, j C là ma trận vuông, F là véc tơ cho j
trước ý tưởng của phương pháp rút gọn hoàn toàn giải (1.1) là khử liên tiếp các ẩn Y đầu tiên với các j j lẻ, sau đó từ các phương trình còn lại khử các Y j
Trang 10với j là bội của 2, rồi bội của 4,… Mỗi bước khử sẽ giảm được một nửa số
ẩn Như vậy nếu = 2n
N thì sau một số lần khử sẽ còn lại một phương trình chứa véc tơ ẩn Y N/ 2 mà từ đó Y N/ 2 có thể tính được qua Y0 và Y N Sau khi đã có được Y Y0, N/ 2 và Y N thì quá trình ngược lại là việc tìm các Y j với j là bội của
= , j = j; = 1, 2, , 1
C C F F j N Khi đó (1.4) được viết dưới dạng
Bước khử thứ nhất: Từ các phương trình đầu của (1.5) ta khử các Y j
với j lẻ Muốn vậy ta viết 3 phương trình liên tiếp:
Nhân 2 vế của phương trình thứ hai với (0)
C vào bên trái rồi cộng cả 3 phương trình lại ta được
1
2
N Do đó nếu giải được hệ này thì các Y với j j lẻ sẽ tìm được từ phương trình
Trang 11Bước khử thứ hai: ở bước khử này ta sẽ tiến hành khử các của hệ (1.6)
với j là bội của 2 nhưng không là bội của 4 Muốn vậy ta viết 3 phương trình liên tiếp của (1.6)
Nhân 2 vế của phương trình thứ hai với C(1) vào bên trái rồi cộng cả 3
vế phương trình lại ta được
Trang 12F theo công thức truy toán có thể dẫn đến việc tích luỹ sai số nếu
như chuẩn của ma trận (k 1)
Trang 141 , 1 = 1, = 1, 2, , 2k
l k j j
C
Khi đó
1 ( ) ( 1) (2 )
Trang 15l k j j
C
Khi đó:
1 ( 1) (2 )
1.2.2 Bài toán biên thứ hai
Xét bài toán thứ hai
Trang 16( 1) 2 (0) (0)
Trang 17( 1) ( 1)
l k N N
C v v
Khi đó
1 ( ) ( 1) (2 )
Trang 18( ) ( 1) , l = l
l k j j
C v v
Khi đó
1 ( 1) (2 )
O (M NlogN)
1.3 Áp dụng đối với phương trình elliptic
Trên cơ sở phương pháp lưới, ta thu được các kết quả xây dựng lược
đồ sai phân cho các bài toán Dirichlet và bài toán Neumann
1.3.1 Bài toán biên Dirichlet
Trang 19về hệ phương trình vec tơ 3 điểm có dạng như sau:
2 2,
2
2 2, 2
2 1, ,
j j j j
M j
M j M j
h F
Trang 202 2,
2
2 2, 2
2 1, ,
j j j j
M j
M j M j
h F
Trang 212 1, 2 1, 0, 2
2 2, 2 2,
2
2 2, 2 2, 2
2 1, 2 1, ,
22
22
1.4 Phương pháp lặp và các sơ đồ lặp cơ bản
1.4.1 Không gian năng lượng
Giả sử H là không gian Hilbert thực với tích vô hướng (, ) và chuẩn A là toán tử đối xứng, xác định dương trong H , tức là miền xác định ( )
Trang 22Bây giờ ta xây dựng một không gian tuyến tính định chuẩn h A như sau:
Các phần tử của h A trùng với các phần tử của D A và các phép toán ( )cộng hai phần tử, nhân một số với một phần tử trong h A được định nghĩa trùng với các phép toán trong H
Chuẩn của các phần tử trong h A được định nghĩa bởi (1.21)
Không gian h A được định nghĩa như vậy có thể là một không gian không đủ Trong trường hợp này, ta làm đủ không gian h A bằng phương pháp
bổ sung không gian Metric để được không gian đủ H A Không gian H A này được gọi là không gian năng lượng của toán tử A
Như vậy, H A gồm những phần tử cũ thuộc D A và những phần tử ( )thu được sau phép bổ sung Chuẩn của uH A được xác định bởi
1.4.2 Phương pháp lặp giải phương trình toán tử
Trang 23 Lược đồ lặp hai lớp
Xét bài toán
= ,
Au f (1.25) trong đó A H: H là toán tử tuyến tính trong không gian Hilbert thực N
chiều H với tích vô hướng (, ) và chuẩn y = ( , )y y
Giả sử A là toán tử đối xứng, xác định dương, f H là vectơ tùy ý Trong mỗi phương pháp lặp, xuất phát từ y0 bất kỳ thuộc H , người ta đưa ra cách xác định nghiệm xấp xỉ y y1, 2, ,y k, của phương trình (1.25) Các xấp
xỉ như vậy được biết như là các giá trị lặp với chỉ số lặp k= 1,2, Bản chất của những phương pháp này là giá trị y k1 có thể được tính thông qua các giá trị lặp trước: y y k, k1,
Phương pháp lặp được gọi là phương pháp lặp một bước hoặc hai bước nếu xấp xỉ y k1 có thể tính được thông qua một hoặc hai giá trị lặp trước đó
Phương pháp lặp một bước có thể được viết như sau:
(B k C u k) =F k
Nhưng điều đó chỉ xảy ra nếu 1
Trang 25D A , từ (1.31) ta suy ra được (1.30)
Bây giờ chúng ta xét phương trình liên quan đến phần dư z k = y k u
Từ Au = f ta có
1 1
Trang 26Từ đó ta suy ra điều kiện dừng là q n Từ đây dẫn đến vấn đề về sự hội tụ của phép lặp theo ước lượng chuẩn của toán tử T n
Lược đồ (1.27) cho ta xấp xỉ nghiệm u của phương trình Au = f với
bất kỳ toán tử B n và cách chọn tham số k1 Nhưng q n phụ thuộc vào cả { }B n
và {k1} Vấn đề ở đây là nên chọn { }B k và {k1} như thế nào để cực tiểu chuẩn n = n
k = 1( ) = Q = Q
là lược đồ lặp đơn giản
+ Nếu B k E thì lược đồ lặp (1.27) được gọi là lược đồ ẩn
Trang 27 Lược đồ dừng, định lý cơ bản về sự hội tụ của phép lặp
Lược đồ lặp (1.27) với toán tử B k =B, tham số k1= không đổi ( = 0,1, 2, )k còn được gọi là lược đồ lặp dừng
1 2
Trang 281 2 1
k A k k
k k k
Trang 29v k 2 2 z k 2A.
B
(1.37) Kết hợp (1.36 ’), (1.36), (1.37) ta được
Kết luận: Trong chương 1, luận văn đã trình bày một số kiến thức liên
quan đến việc giải số phương trình đạo hàm riêng bao gồm một số kiến thức
cơ bản của phương pháp sai phân, thuật toán thu gọn khối lượng tính toán giải phương trình vec tơ 3 điểm đối với bài toán biên thứ nhất và bài toán biên thứ hai, áp dụng đối với bài toán biên Dirichlet và bài toán biên hỗn hợp, cơ
sở lý thuyết về phương pháp lặp giải phương trình toán tử Những kiến thức quan trọng này làm nền tảng cho các kết quả sẽ trình bày trong các chương tiếp theo của luận văn
Trang 30Chương 2
CƠ SỞ TOÁN HỌC CỦA PHƯƠNG PHÁP CHIA MIỀN
Trong chương này, chúng ta đưa ra cơ sở toán học của phương pháp chia miền bao gồm giới thiệu các khái niệm về các điều kiện chuyển giao giữa các biên chung, các công thức biến phân và đặc biệt là ứng dụng của toán tử Steklov-Poincare đối với phương pháp chia miền các phương pháp lặp đơn trên các biên chung Các kiến thức được trình bày trên cơ sở các tài liệu [11,12, 14, 22, 25, 26, 29, 30, 31]
Hình 1 Xét bài toán
trong đó là miền d chiều (d 2 , 3 ), với biên Lipschitz , kí hiệu n là véc
tơ pháp tuyến ngoài của miền , f là hàm đã cho thuộc không gian
2( )
Kí hiệu là đạo hàm riêng theo x j(j d) Giả sử rằng miền được chia
thành hai miền con không giao nhau 1 và 2, kí hiệu 1 2 (Hình 1)
Trang 312.1 Công thức đa miền và phương trình Steklov-Poicare
Kí hiệu u i là giá trị nghiệm u trong miền i, (i 1 , 2 ) và n i là hướng pháp tuyến ngoài trên i Ta đặt 1
Trang 32Với mỗi i 1,2 0
i
u là mở rộng điều hoà của vào i và được kí hiệu
là H i, ta sẽ viết G f i thay cho *
i
u Bằng việc so sánh (2.2) và (2.3) ta thấy rằng w i u i (i 1 , 2 ) khi và chỉ khi
.,
w n
i
i i
n
H n
H n
được chia thành hai miền con nên phương trình (2.9) tương đương với hai phương trình
1 1
,
, ,
x f Lu
x f Lu
(2.10)
trong đó u i,(i 1,2)
cần thoả mãn các điều kiện chuyển dịch qua được
biểu hiện bởi hai quan hệ tổng quát
Trang 33( ) (
, ),
( ) (
2 1
2 1
x u
u
x u
u
trong đó các hàm , phụ thuộc vào từng loại bài toán, Với bài toán Poisson
thì
n
v v
v v
2.2 Các phương pháp lặp đơn cơ sở
Trong phần này, chúng ta xét việc giải bài toán đa miền bằng các thủ tục lặp, chúng ta xét 1 dãy các bài toán con trong 1, 2 với các điều kiện biên Dirichlet hoặc Neumann tương ứng Các phương pháp đó có thể thực hiện được bởi 1 trong các sơ đồ lặp sau đây, trong đó các dãy hàm k k
u
u1 , 2 sẽ được xác định từ các giá trị ban đầu 0
2 0
Cho trước 0, với mỗi k 0, giải hai bài toán
Trang 34) 1 (
1 2
trong đó là tham số lặp, 1,2 là hai hệ số ước lượng trung bình dương
Việc chứng minh sự hội tụ của thuật toán này đã được đưa ra trong các tài liệu cùng với sự rời rạc các phần tử Trong trường hợp này, tốc độ hội
tụ được chỉ ra là không phụ thuộc vào mức lưới h
Trang 35trong đó 1, 2 là các tham số gia tốc không âm thoả mãn 1 2 0 Ta có
thể xây dựng phương pháp tương tự bằng cách đổi vai trò 2k
, ,
0
, ,
2 2
2 / 1 1
2 / 1
1
1 2
/ 1 1
1 2
/ 1 1
x u
p n
u u
p n
u
x u
x f
u
k k
k k
k k
k k
, ),
1 1 1
x u u
, ,
0
, ,
1 1
1 1 2
/ 1 2
1 2
2 2
/ 1 2
2 2
/ 1 2
x u
n
u q u
n
u q
x u
x f
u
k k k k
k k
k k
, ),
1 2 1
x u u
u
trong đó p k 0 , q k 0 , k, k là các tham số tự do
Trong thực tế, phương pháp này tổng quát cho nhiều phương pháp, ví
dụ phương pháp Dirichlet-Neumann là trường hợp đặc biệt của phương pháp
này với p k q k 0 , k1 1 và phương pháp Robin sẽ nhận được với
) 0 ( , / 1 ,
Trang 362.3 Một số thuật toán chia miền
Trên cơ sở của lý thuyết chia miền tổng quát, trên thế giới đã xuất hiện một số thuật toán chia miền của các tác giả áp dụng đối với các trường hợp cụ thể
2.3.1 Thuật toán chia miền Patrick Le Talle
Thuật toán đưa ra nhằm sử dụng phương pháp chia miền để giải các bài toán biên Dirichlet và Neumann, đây là cơ sở cho việc tính toán đa nhiệm trên máy tính CRAY2 và INTER, đã được kiểm nghiệm trên các bài toán đàn hồi trong không gian 3 chiều, bài toán miền ảo, bài toán trong các ngành công nghiệp trên quy mô lớn
Xét mô hình đơn giản
0
,,
x u
x f u
(2.19)
Chia 12 bởi biên chung S Kí hiệu là giá trị hàm u trên
S, khi đó ta có thể tiến hành giải song song hai bài toán trong hai miền
, ,
0
, ,
S x u
x u
x f
u
i
i i
i i
Trong đó phải thoả mãn điều kiện tổng đạo hàm pháp tuyến trên
biên chung phải triệt tiêu tức là
.,
0
2
2 1
n
u n
Để giải bài toán này, đưa ra hàm u i(, f)
được xác định như sau
Trang 37,,
0),(
,,
),(
S x f
u
x f
u
x f
f u
i
i i
i i
n
u S
1( ,0) ( ,0)
n
u n
u b
) )
1
b S
4 / )
2 1 1
S S
Cách chọn này đạt độ chính xác nhất trong trường hợp S1 S2 và khi
đó được xác định bởi sơ đồ lặp
k k
k
S S S
thực hiện giải song song hai bài toán Dirichlet
,,
0
,,
S x u
x u
x f
u
i
i i
i i
(2.26)
Tiếp theo giải song song hai bài toán Neumann
Trang 38( 2 1
, ,
0
, ,
0
2 2 1
1
S x n
u n
u n
x x
i i
i i
i i
(2.27)
Cập nhật lại ( 1 2) / 2, quá trình lặp lại cho đến khi hội tụ Như vậy trong thuật toán chia miền trên, vấn đề quan trọng nhất là việc chọn giá trị tham số
Thuật toán chia miền Patrick Le Talle ở trên mới được trình bày dưới mức vi phân, trong các tài liệu đã biết đã trình bày phương pháp rời rạc hoá thuật toán vi phân và trên cơ sở sử dụng sơ đồ lặp Seidel co giãn đưa ra các kết quả thực nghiệm trên máy tính điện tử với một số bài toán cụ thể Kết quả chứng tỏ thuật toán là đúng đắn và độ chính xác phụ thuộc vào việc sai phân các đạo hàm để nhằm xác định giá trị trên mỗi bước lặp
Xuất phát từ thuật toán cơ sở, chúng ta có thể thấy do sơ đồ lặp với mục tiêu là xác định gần đúng giá trị hàm trên biên chung đối với cả hai bài toán trong hai miền 1, 2 nên đối với bài toán biên hỗn hợp trong miền hình học phức tạp thì chúng ta phải thực hiện phép chia thành nhiều miền con mới tránh được bài toán biên hỗn hợp mạnh Điều này sẽ tăng khối lượng tính toán trong các sơ đồ lặp
2.3.2 Thuật toán chia miền J.R.Rice, E.A Vavalis, Daopi Yang
Xét là một đa thức lồi d
R
d 1 , 2 , Với biên , xét bài toán: Cho
) ( );
,,
x f Lu
(2.28)
trong đó