Tạp chí Khoa học & Công nghệ - số 2(50)/năm 2009<br />
<br />
Toán, Thống kê –KH tự nhiên –KH máy tính<br />
<br />
MÔ HÌNH TÍNH TOÁN SONG SONG<br />
GIẢI BÀI TOÁN BIÊN HỖN HỢP MẠNH DỰA TRÊN CHIA MIỀN<br />
Vũ Vinh Quang – Trương Hà Hải – Cao Thị Anh Thư (Khoa Công nghệ thông tin – ĐH Thái Nguyên)<br />
<br />
1. Phương pháp chia miền giải bài toán biên gián đoạn mạnh<br />
Phương pháp chia miền đã được phát triển trong nhiều năm qua với mục đích chính là<br />
đưa ra phương pháp giải các bài toán biên trong miền hình học phức tạp hoặc điều kiện biên<br />
phức tạp bằng cách chuyển việc giải bài toán phức tạp về một số hữu hạn các bài toán đơn giản.<br />
Với tư tưởng trên, nhiều tác giả đã nghiên cứu và đề xuất các phương pháp hiệu quả như:<br />
Phương pháp hiệu chỉnh hàm (Saito-Fujita [1,2]), phương pháp hiệu chỉnh đạo hàm (DQuangAVVQuang [3,4,5,6,7]). Tuy nhiên, theo chúng tôi, trên thế giới chưa có công trình nào đưa ra kết<br />
quả tìm nghiệm gần đúng của các bài toán biên với điều kiện biên rất phức tạp trên cơ sở chia<br />
miền. Vì vậy, trong bài báo này, chúng tôi đề xuất các mô hình tính toán song song để giải các<br />
bài toán trên.<br />
Xét bài toán<br />
u f,<br />
x<br />
,<br />
u<br />
,<br />
x n,<br />
(1)<br />
n<br />
u<br />
,<br />
x<br />
\ n.<br />
Bài toán (1) được gọi là bài toán biên hỗn hợp mạnh vì trên biên d<br />
n gồm hai loại<br />
điều kiện biên Dirichlet và Neumann. Xuất phát từ tư tưởng chia miền, để giải quyết bài toán<br />
trên, ta chia miền<br />
(Hình 1), kí hiệu u1 là nghiệm trong miền<br />
1<br />
2 bởi biên phân chia<br />
, u2 là nghiệm trong miền 2 . Khi đó để giải bài toán (1), điểm mấu chốt là cần xác định<br />
được điều kiện trên biên phân chia . Sau đây ta xét cơ sở của hai phương pháp chia miền<br />
1.1. Phương pháp hiệu chỉnh hàm (Được đề xuất bởi Saito –Fujita, 2001)<br />
1<br />
<br />
Kí hiệu g<br />
<br />
u2 , khi đó giá trị g được xác định bởi sơ đồ lặp sau đây:<br />
<br />
Bước 1: Cho trước g ( 0 ) xác định trên L2<br />
Bước 2: Với g ( k ) xác định trên<br />
(k )<br />
2<br />
(k )<br />
2<br />
(k )<br />
2<br />
(k )<br />
2<br />
<br />
u<br />
<br />
u<br />
u<br />
u<br />
n2<br />
<br />
f,<br />
,<br />
x<br />
(k )<br />
g ,<br />
<br />
x<br />
<br />
,<br />
<br />
x<br />
<br />
2<br />
<br />
n<br />
<br />
1)<br />
<br />
(1<br />
<br />
) g (k )<br />
<br />
u1( k ) , x<br />
<br />
d<br />
<br />
.<br />
<br />
Bước 3: Hiệu chỉnh giá trị g ( k<br />
g (k<br />
<br />
(k = 0, 1, 2,…) tiến hành giải hai bài toán<br />
<br />
,<br />
<br />
2 \<br />
x<br />
,<br />
<br />
, chẳng hạn g ( 0 ) = 0.<br />
<br />
1)<br />
<br />
.<br />
<br />
,<br />
<br />
u1( k )<br />
(k )<br />
1<br />
<br />
u<br />
n1<br />
u1( k )<br />
<br />
f,<br />
x<br />
(k )<br />
u2<br />
,<br />
x<br />
n2<br />
,<br />
x<br />
<br />
1<br />
<br />
,<br />
<br />
,<br />
1<br />
<br />
(2)<br />
<br />
\ ,<br />
<br />
theo công thức<br />
(3)<br />
<br />
Trên cơ sở của lí thuyết các không gian hàm và toán tử Steklov-Poincare trong [1,2] các<br />
tác giả Saito –Fujita đã chứng minh sơ đồ lặp trên là hội tụ.<br />
1.2. Phương pháp hiệu chỉnh đạo hàm (Được đề xuất bởi Đ.Q.A – V.V. Quang, 2004)<br />
1<br />
<br />
Tạp chí Khoa học & Công nghệ - số 2(50)/năm 2009<br />
<br />
u1<br />
n1<br />
<br />
Kí hiệu g<br />
<br />
Toán, Thống kê –KH tự nhiên –KH máy tính<br />
<br />
, khi đó giá trị g được xác định bởi sơ đồ lặp sau đây:<br />
<br />
Bước 1: Cho trước g ( 0 ) xác định trên L2<br />
Bước 2: Với g ( k ) xác định trên<br />
<br />
u1( k )<br />
u1( k )<br />
n1<br />
u1( k )<br />
<br />
f,<br />
<br />
x<br />
<br />
g (k ) ,<br />
<br />
x<br />
<br />
,<br />
<br />
(k )<br />
2<br />
(k )<br />
2<br />
(k )<br />
2<br />
<br />
u<br />
u<br />
u<br />
n2<br />
<br />
,<br />
<br />
x<br />
<br />
1<br />
<br />
\ ,<br />
<br />
Bước 3: Hiệu chỉnh giá trị g ( k<br />
<br />
g (k<br />
<br />
1)<br />
<br />
(1<br />
<br />
(k = 0, 1, 2,…) tiến hành giải hai bài toán<br />
u2( k )<br />
<br />
1,<br />
<br />
1)<br />
<br />
f,<br />
,<br />
(k )<br />
u1 ,<br />
<br />
x<br />
x<br />
<br />
,<br />
<br />
2<br />
2<br />
<br />
,<br />
<br />
\<br />
<br />
n<br />
<br />
x<br />
<br />
,<br />
<br />
x<br />
<br />
n<br />
<br />
,<br />
<br />
(4)<br />
<br />
.<br />
<br />
theo công thức<br />
<br />
u2( k )<br />
,x<br />
n2<br />
<br />
) g (k )<br />
<br />
, chẳng hạn g ( 0 ) = 0.<br />
<br />
(5)<br />
<br />
.<br />
<br />
trong đó là tham số lặp cần xác định.Trên cơ sở của lí thuyết các không gian hàm và toán tử<br />
Steklov-Poincare trong [3,4,5] các tác giả đã chứng minh sơ đồ lặp trên là hội tụ.<br />
Có thể thấy rằng, hai phương pháp trên xuất phát từ hai tư tưởng hoàn toàn ngược nhau.<br />
Về mặt lí thuyết, việc chứng minh phương pháp nào hội tụ nhanh hơn là một bài toán khó, tuy<br />
nhiên qua thực nghiệm có thể khẳng định phương pháp Đặng Quang Á - Vũ Vinh Quang hội tụ<br />
có phần nhanh hơn do việc hiệu chỉnh đạo hàm [8].<br />
2. Mô hình tính toán song song giải bài toán biên gián đoạn mạnh<br />
Mục đích chính của phương pháp chia miền là đưa ra một phương pháp hữu hiệu để giải<br />
quyết các bài toán phức tạp về miền hình học và điều kiện biên trong các mô hình thực tế, trong<br />
phần này chúng tôi sẽ trình bày các hướng đề xuất mô hình tính toán song song giải các bài toán<br />
biên với điều kiện biên rất phức tạp trên cơ sở chia miền.<br />
Xét bài toán biên:<br />
u<br />
u<br />
n<br />
u<br />
<br />
f,<br />
<br />
x<br />
<br />
,<br />
<br />
x<br />
<br />
,<br />
<br />
<br />
<br />
4, 2i<br />
<br />
\<br />
<br />
x<br />
<br />
41<br />
<br />
42<br />
<br />
43<br />
<br />
1<br />
<br />
2<br />
<br />
3<br />
<br />
,<br />
<br />
(6)<br />
<br />
, (i 1..n),<br />
4, 2i<br />
<br />
, , (i 1..n).<br />
4, 2l 1<br />
<br />
4, 2l<br />
<br />
4, 2l 1<br />
<br />
2l 1<br />
<br />
2l<br />
<br />
2l 1<br />
<br />
….<br />
1<br />
<br />
2<br />
<br />
3<br />
<br />
4, 2 n 1<br />
<br />
….<br />
2l 1<br />
<br />
2l<br />
<br />
2l 1<br />
<br />
2n 1<br />
2n<br />
<br />
Hình 2<br />
1<br />
<br />
Trong đó f L<br />
, n là vectơ pháp tuyến ngoài của miền . Trên thế<br />
;<br />
H 2<br />
giới theo chúng tôi chưa có công trình nào đưa ra kết quả tìm nghiệm gần đúng của bài toán trên.<br />
Xuất phát từ các sơ đồ chia miền theo hướng hiệu chỉnh hàm và đạo hàm, trong phần này chúng<br />
tôi đề xuất các mô hình tính toán song song giải bài toán như sau:<br />
2.1. Hướng tiếp cận hiệu chỉnh đạo hàm<br />
2<br />
<br />
2<br />
<br />
Tạp chí Khoa học & Công nghệ - số 2(50)/năm 2009<br />
<br />
Toán, Thống kê –KH tự nhiên –KH máy tính<br />
<br />
2n 1<br />
<br />
<br />
<br />
Chia<br />
<br />
bởi các biên phân chia<br />
<br />
i<br />
<br />
i<br />
<br />
( i 1..2n ) , (Hình 2).<br />
<br />
i 1<br />
<br />
Kí hiệu g 2i<br />
<br />
u2 i<br />
n2i<br />
<br />
1<br />
<br />
2i 1<br />
<br />
u2 i<br />
n2i<br />
<br />
, g 2i<br />
<br />
bởi sơ đồ lặp sau đây:<br />
Bước 1: Xuất phát gi( 0 )<br />
<br />
2i<br />
<br />
, (i 1,2,...n) . Việc giải bài toán (6) được thực hiện<br />
<br />
0,i 1,2,...,2n .<br />
<br />
Bước 2: Tiến hành giải song song các bài toán trong các miền lẻ<br />
<br />
u1( k )<br />
<br />
f,<br />
<br />
x<br />
<br />
1<br />
<br />
(k )<br />
1<br />
<br />
u<br />
g1( k ) ,<br />
x<br />
n1<br />
u1( k )<br />
,<br />
x<br />
u2( kl ) 1<br />
(k )<br />
2l 1<br />
(k )<br />
2l 1<br />
<br />
u<br />
u<br />
n2l 1<br />
u2( kl ) 1<br />
n2l 1<br />
<br />
f,<br />
,<br />
<br />
1<br />
<br />
1<br />
<br />
,<br />
<br />
,<br />
<br />
(7)<br />
<br />
\ 1,<br />
x<br />
<br />
x<br />
<br />
2l 1<br />
<br />
2l 1<br />
<br />
\<br />
<br />
,<br />
<br />
2l 1<br />
<br />
g 2( kl ) 2 ,<br />
<br />
x<br />
<br />
2l 2<br />
<br />
,<br />
<br />
g 2( kl ) 1 ,<br />
<br />
x<br />
<br />
2l 1<br />
<br />
,<br />
<br />
u2( kn) 1<br />
<br />
f,<br />
<br />
x<br />
<br />
(k )<br />
2n 1<br />
<br />
u<br />
g 2( kn) ,<br />
n2 n 1<br />
u2( kn) 1<br />
,<br />
x<br />
<br />
2n 1<br />
<br />
x<br />
<br />
2n<br />
<br />
2n 1<br />
<br />
2l<br />
<br />
,<br />
<br />
<br />
3,...,n<br />
<br />
(8)<br />
<br />
,<br />
<br />
,<br />
\<br />
<br />
(9)<br />
2n<br />
<br />
,<br />
<br />
Bước 3: Tiến hành giải song song các bài toán trong các miền chẵn<br />
<br />
u2( kl )<br />
<br />
x<br />
<br />
2l<br />
<br />
,<br />
<br />
x<br />
<br />
2l 1<br />
<br />
,<br />
<br />
x<br />
<br />
4, 2l<br />
<br />
u2( kl ) u2( kl ) 1 ,<br />
u2( kl )<br />
,<br />
<br />
x<br />
<br />
2l 1<br />
<br />
u<br />
<br />
(k )<br />
2l<br />
(k )<br />
2l<br />
<br />
f,<br />
<br />
u<br />
<br />
(k )<br />
2l 1<br />
<br />
u<br />
n2l<br />
<br />
x<br />
<br />
2l<br />
<br />
\<br />
<br />
4, 2l<br />
<br />
,<br />
,<br />
<br />
,<br />
<br />
1,2,...,n<br />
<br />
(10)<br />
<br />
1,2,...,n<br />
<br />
(11)<br />
<br />
,<br />
2l<br />
<br />
2l 1<br />
<br />
.<br />
<br />
Bước 4: Hiệu chỉnh<br />
<br />
g 2( kl<br />
g<br />
<br />
1)<br />
1<br />
<br />
( k 1)<br />
2l<br />
<br />
(1<br />
(1<br />
<br />
) g 2( kl ) 1<br />
)g<br />
<br />
(k )<br />
2l<br />
<br />
u2( kl )<br />
,x<br />
n2l<br />
u2( kl )<br />
,x<br />
n2l<br />
<br />
2l 1<br />
<br />
2l<br />
<br />
,<br />
<br />
.<br />
<br />
Nhận xét: Trong mô hình tính toán (7 - 10), chúng ta có thể thấy: theo sơ đồ tính toán<br />
đã đưa ra, việc giải các bài toán (7 - 9) được thực hiện bởi mô hình tính toán song song. Khi<br />
thu được kết quả của các bài toán (7 - 9), việc giải các bài toán (10) cũng sẽ được thực hiện<br />
3<br />
<br />
Tạp chí Khoa học & Công nghệ - số 2(50)/năm 2009<br />
<br />
Toán, Thống kê –KH tự nhiên –KH máy tính<br />
<br />
bằng sơ đồ tính toán song song. Sự hội tụ của phương pháp lặp phụ thuộc vào sự hội tụ của<br />
sơ đồ (11).<br />
2.2. Hướng tiếp cận hiệu chỉnh hàm<br />
Kí hiệu gi<br />
<br />
ui<br />
<br />
i 1,2,...,2n . Việc giải bài toán (6) được thực hiện bởi sơ đồ lặp sau:<br />
<br />
i<br />
<br />
(0 )<br />
<br />
Bước 1: Xuất phát gi<br />
<br />
0,i 1,2,...,2n<br />
<br />
Bước 2: Tiến hành giải song song các bài toán trên các miền chẵn<br />
<br />
u2( kl )<br />
<br />
f,<br />
<br />
x<br />
<br />
2l<br />
<br />
u2( kl ) g 2( kl ) 1 ,<br />
u2( kl )<br />
,<br />
n2l<br />
u2( kl ) g 2( kl ) 1 ,<br />
u2( kl )<br />
,<br />
<br />
x<br />
<br />
2l 1<br />
<br />
x<br />
<br />
4, 2l<br />
<br />
x<br />
<br />
2l 1<br />
<br />
x<br />
<br />
2l<br />
<br />
\<br />
<br />
4, 2l<br />
<br />
,<br />
,<br />
<br />
,<br />
<br />
l 1,2,..., n<br />
<br />
(12)<br />
<br />
,<br />
2l<br />
<br />
2l 1<br />
<br />
.<br />
<br />
Bước 3: Tiến hành giải song song các bài toán trên các miền lẻ<br />
<br />
u1( k )<br />
<br />
f,<br />
x<br />
(k )<br />
u2<br />
,<br />
x<br />
n2<br />
,<br />
x<br />
<br />
(k )<br />
1<br />
<br />
u<br />
n1<br />
u1( k )<br />
u2( kl ) 1<br />
u<br />
<br />
(k )<br />
2l 1<br />
<br />
(k )<br />
2l 1<br />
<br />
u<br />
n2l 1<br />
u2( kl ) 1<br />
n2l 1<br />
<br />
u2( kn) 1<br />
(k )<br />
2n 1<br />
<br />
u<br />
n2 n 1<br />
u2( kn) 1<br />
<br />
1<br />
1<br />
<br />
1<br />
<br />
f,<br />
,<br />
x<br />
(k )<br />
u2 l 2<br />
,<br />
n2l 2<br />
u2( kl )<br />
,<br />
n2l<br />
<br />
,<br />
<br />
,<br />
<br />
(13)<br />
<br />
\ 1,<br />
x<br />
<br />
2l 1<br />
<br />
2l 1<br />
<br />
f,<br />
x<br />
(k )<br />
u2 n<br />
,<br />
x<br />
n2 n<br />
,<br />
x<br />
<br />
\<br />
<br />
,<br />
<br />
2l 1<br />
<br />
x<br />
<br />
2l 2<br />
<br />
,<br />
<br />
x<br />
<br />
2l 1<br />
<br />
,<br />
<br />
2n 1<br />
2n<br />
<br />
2n 1<br />
<br />
2l<br />
<br />
,<br />
<br />
(14)<br />
<br />
,<br />
<br />
,<br />
\<br />
<br />
(15)<br />
2n<br />
<br />
,<br />
<br />
Bước 4: Hiệu chỉnh<br />
<br />
g 2( k<br />
<br />
1)<br />
1<br />
<br />
(1<br />
<br />
)g 2( k )1<br />
<br />
u2( k )1 ,x<br />
<br />
g 2( k<br />
<br />
1)<br />
<br />
(1<br />
<br />
)g 2( k )<br />
<br />
u2( k )1 ,x<br />
<br />
2 1<br />
<br />
,<br />
1,2,...,n<br />
<br />
(16)<br />
<br />
2<br />
<br />
Nhận xét: Sự hội tụ của sơ đồ hoàn toàn phụ thuộc vào sự hội tụ của các sơ đồ lặp (16), xuất<br />
phát từ các kết quả lí thuyết trong [1,2] cũng có thể chứng minh sự hội tụ của sơ đồ lặp (16).<br />
<br />
4<br />
<br />
Tạp chí Khoa học & Công nghệ - số 2(50)/năm 2009<br />
<br />
Toán, Thống kê –KH tự nhiên –KH máy tính<br />
<br />
Như vậy, hai mô hình tính toán song song (7)-(11) và (12)-(16) cùng giải quyết bài toán<br />
(6). Đây là các sơ đồ tính toán song song hoàn toàn mới chưa được công bố, sự khẳng định tính<br />
đúng đắn và so sánh tốc độ của hai mô hình có thể thông qua các kết quả thực nghiệm.<br />
3. Các kết quả thực nghiệm<br />
Bảng 1. u( x1 ,x2 )<br />
Tham số<br />
<br />
Hiệu chỉnh đạo hàm<br />
n<br />
16<br />
7.10-5<br />
11<br />
7.10-5<br />
8<br />
6.10-5<br />
8<br />
8.10-5<br />
14<br />
8.10-5<br />
<br />
0.3<br />
0.4<br />
0.5<br />
0.6<br />
0.7<br />
<br />
Bảng 2. u( x1 ,x2 )<br />
Tham số<br />
0.3<br />
0.4<br />
0.5<br />
0.6<br />
0.7<br />
<br />
e x1 log( x2 5 ) sin( x2 )log( x1 6 )<br />
<br />
x13<br />
<br />
x2e x1<br />
<br />
Hiệu chỉnh đạo hàm<br />
n<br />
16<br />
9.10-5<br />
11<br />
9.10-5<br />
8<br />
8.10-5<br />
9<br />
4.10-5<br />
15<br />
7.10-5<br />
<br />
x23<br />
<br />
x1e<br />
<br />
Hiệu chỉnh hàm<br />
n<br />
27<br />
19<br />
15<br />
11<br />
13<br />
<br />
Bảng 3. u( x1 ,x2 )<br />
<br />
x2<br />
<br />
Hiệu chỉnh hàm<br />
N<br />
26<br />
2.10-4<br />
19<br />
8.10-5<br />
15<br />
5.10-5<br />
11<br />
9.10-5<br />
15<br />
7.10-5<br />
<br />
Tham số<br />
0.3<br />
0.4<br />
0.5<br />
0.6<br />
0.7<br />
<br />
8.10-5<br />
8.10-5<br />
5.10-5<br />
8.10-5<br />
9.10-5<br />
<br />
sin x1 sin x2<br />
<br />
Hiệu chỉnh đạo hàm<br />
N<br />
16<br />
1.10-3<br />
11<br />
1.10-3<br />
8<br />
1.10-3<br />
9<br />
1.10-3<br />
15<br />
1.10-3<br />
<br />
Hiệu chỉnh hàm<br />
N<br />
27<br />
1.10-3<br />
19<br />
1.10-3<br />
15<br />
1.10-3<br />
11<br />
1.10-3<br />
15<br />
1.10-3<br />
<br />
Để kiểm tra tính đúng đắn của các mô hình tính toán song song, chúng tôi sử dụng<br />
phương pháp lưới chuyển các bài toán vi phân về các bài toán sai phân tương ứng và tiến hành<br />
tìm nghiệm của các bài toán sai phân bằng thuật toán thu gọn khối lượng tính toán trên cơ sở sử<br />
dụng các hàm trong TK2004 [7]. Trong các kết quả, chúng tôi luôn lấy lưới chia M×N = 64×64<br />
đối với các miền con, kí hiệu u*(x1, x2) là nghiệm đúng của phương trình, sai số<br />
max uij uij*<br />
(i,j)<br />
<br />
. Các kết quả thực nghiệm được tính toán đồng thời với cả hai mô hình, ngôn ngữ sử dụng<br />
Matlab trên máy tính PC, số miền chia luôn lấy là 21 miền.<br />
4. Nhận xét và kết luận<br />
Bài báo đã đề xuất hai mô hình tính toán song song giải bài toán biên hỗn hợp mạnh<br />
trên hai hướng tiếp cận hiệu chỉnh giá trị đạo hàm và hàm trên các biên chung. Đây là hai<br />
hướng tiếp cận trên hai quan điểm ngược nhau, việc chứng minh tính đúng đắn của các mô<br />
hình tính toán song song đã đề xuất bằng lí thuyết là chưa thực hiện được, nhưng qua các kết<br />
quả thực nghiệm tính toán có thể khẳng định: các mô hình tính toán là hội tụ với tham số<br />
0<br />
1 trong đó tham số tối ưu opt 0,5 . Qua thực nghiệm có thể thấy tốc độ hội tụ của mô<br />
hình tính toán trên tư tưởng hiệu chỉnh đạo hàm có tốc độ hội tụ nhanh hơn. Trên cơ sở của mô<br />
hình này, có thể mở rộng đề xuất mô hình tính toán song song giải bài toán song điều hòa với<br />
điều kiện biên hỗn hợp mạnh <br />
Tóm tắt<br />
Trong bài báo này, chúng tôi trình bày các kết quả nghiên cứu khi xây dựng các mô<br />
hình tính toán song song trên cơ sở tiếp cận phương pháp chia miền trên hai hướng: hiệu chỉnh<br />
5<br />
<br />