Thứ Sáu, 24 tháng 1, 2014

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


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2
ĐẶ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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

3
chỉ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.
























Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

4
Chương 1
CÁC KIẾN THỨC CƠ BẢN VỀ GIẢI SỐ PHƢƠNG
TRÌNH ĐẠO HÀM RIÊNG
Trong chương này, chúng tôi 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 cơ sở của phương pháp lưới,
thuật toán thu gọn khối lượng tính toán và 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 cơ sở và kết quả được tham khảo từ
các tài liệu [ 5, 10, 16, 21].
1.1 Phƣơng pháp sai phân
Lƣới sai phân:
Xét bài toán
,,
,.
u f x
u g x
  


 

(1.1)
trong đó
 
2
( , ) , ,x y R a x b c y d      
, chọn 2 số nguyên
>1N

>1M
, đặt
= ( ) /h b a N
gọi là bước lưới theo
x
,
= ( ) /k d c M
gọi là
bước lưới theo
y
. Đặt
= , = , 0 , 0 .
ij
x a ih y c jk i N j M   
Mỗi điểm
( , )
ij
xy
gọi là một nút lưới ký hiệu là nút
( , )ij
. Tập tất cả các nút trong ký
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

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
( , )ij
viết tắt là
,ij
u
. Mỗi hàm
( , )u x y
xác định tại mọi
( , )xy
tạo ra hàm lưới
u
xác định bởi
,ij
u
.
Bài toán sai phân: Ký hiệu
Lu f
là tập các hàm số hai biến
,xy

các đạo hàm riêng đến cấp
m
liên tục trong
= 
Giả sử bài toán có
nghiệm
4
()uC
, khi đó:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

5
4
1
( , )
4
| ( , )| =
xy
u
max x y C const
x




,
4
2
( , )
4
| ( , )| =
xy
u
max x y C const
y




.
Do đó theo công thức Taylor ta có:
1
( , ) = ( ) ,
i j i j
u x y u x h y



2 2 3 3
4
23
= ( , ) ( )
2! 3!
ij
u h u h u
u x y h o h
x x x
  
   
  
hay
2
11
2
22
( , ) 2 ( , ) ( , )
= ( )
i j i j i j
u x y u x y u x y
u
oh
hx






Một cách tương tự:
1
( , ) = ( , )
i j i j
u x y u x y k



2 2 3 3
4
23
= ( , ) ( )
2! 3!
ij
u k u k u
u x y k o k
y y y
  
   
  

1
( , ) ( , )
i j i j
u x y u x y k



2 2 3 3
4
23
= ( , ) ( )
2! 3!
ij
u k u k u
u x y k o k
y y y
  
   
  

Do đó:
2
11
2
22
( , ) 2 ( , ) ( , )
= ( )
i j i j i j
u x y u x y u x y
u
ok
ky






Vậy ta có:
1 1 1 1
22
22
( , ) 2 ( , ) ( , ) ( , ) 2 ( , ) ( , )
=
()
i j i j i j i j i j i j
u x y u x y u x y u x y u x y u x y
hk
u o h k
   
   

  

Ta đặt:
1, , -1, , 1 , , -1
22
- 2 - 2 -1
i j i j i j i j i j i j
hk
u u u u u u
u
hk


  

Khi đó chứng tỏ:
22
= ( )
kh
u u o h k   


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

6
Số hạng
22
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:
= , = ( , ), ( , )
hk ij ij i j i j hk
u f f f x y x y 

tức là:
1, , 1 , 1 , ,
22
2 2 1
( , ), ( , )
i j i j i j i j i j i j
i j i j hk
u u u u u u
f x y x y
hk
  
    
  
(1.2)
đồng thời thay điều kiện biên bằng điều kiện:

( , ), ( , )
ij i j i j hk
u g x y x y 
(1.3)
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
( , )ij

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

11
=
j j j j
Y CY Y F

  
,
11jN  
,
00
=YF
,
=
NN
YF
. (1.4)
Trong đó
j
Y
là véc tơ cần tìm,
C
là ma trận vuông,
j
F
là véc tơ cho
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
j
Y
đầu tiên với các
j
lẻ, sau đó từ các phương trình còn lại khử các
j
Y


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

7
vớ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
=2
n
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
/2N
Y
mà từ đó
/2N
Y
có thể tính được qua
0
Y

N
Y
. Sau khi đã có
được
0 /2
,
N
YY

N
Y
thì quá trình ngược lại là việc tìm các
j
Y
với
j
là bội của
4
N
rồi bội của
8
N
,… Rõ ràng, phương pháp rút gọn hoàn toàn là một biến
thể của phương pháp khử Gauss áp dụng cho bài toán (1.4) trong đó việc khử
các biến được thực hiện theo một thứ tự đặc biệt. Sau đây, ta sẽ mô tả cụ thể
phương pháp. Giả sử
= 2 , > 0
n
Nn
Ký hiệu
(0) (0)
= , = ; =1,2, , 1
jj
C C F F j N 
.
Khi đó (1.4) được viết dưới dạng

0 (0)
11
= (1 1)
j j j j
Y C Y Y F j N

     
,
00
=YF
,
=
NN
YF
. (1.5)
Bước khử thứ nhất: Từ các phương trình đầu của (1.5) ta khử các
j
Y

với
j
lẻ. Muốn vậy ta viết 3 phương trình liên tiếp:
(0) (0)
2 1 1
=
j j j j
Y C Y Y F
  
  
,
(0) (0)
11
=
j j j j
Y C Y Y F

  
,
(0) (0)
1 2 1
=
j j j j
Y C Y Y F
  
  

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) (1)
2 2 1
= , = 2,4, , 2
j j j j
Y C Y Y F j N
  
   
,
00
=YF
,
=
NN
YF
(1.6)
trong đó:
(1) ( 2
= ( 0)) 2C C E

(1) (0) (0) (0) (0)
11
= , = 2,4, , 2
j j j j
F F c F F j N

  
.
Nhận xét rằng hệ (1.6) chỉ chứa các
j
Y
với
j
chẵn, số véc tơ ẩn
j
Y

1
2
N

. Do đó nếu giải được hệ này thì các
j
Y
với
j
lẻ sẽ tìm được từ phương
trình

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

8

(0) (0)
11
= , =1,3, , 1
j j j j
C Y F Y Y j N

  
(1.7)
Như vậy hệ (1.5) tương đương với hệ gồm (1.6) và (1.7).
Bướ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)
(1) (1)
4 2 2
=
j j j j
Y C Y Y F
  
  
,
(1) (1)
22
= ,( = 4,8, , 4)
j j j j
Y C Y Y F j N

   
,
(1) (1)
2 4 2
=
j j j j
Y C Y Y F
  
  
.
Nhân 2 vế của phương trình thứ hai với
(1)
C
vào bên trái rồi cộng cả 3
vế phương trình lại ta được

(2) (2)
44
= , = 4,8, , 4
j j j j
Y C Y Y F j N

   
,
00
=YF
,
=
NN
YF
(1.8)
trong đó:
(2) ( 2
= ( 1)) 2C C E

(2) (1) (1) (1) (1)
22
= , = 4,8, , 4
j j j j
F F c F F j N

  
.
Hệ (1.8) chỉ chứa
1
4
N

Véc tơ ẩn
j
Y
, trong đó
j
là bội của 4. Nếu
giải được hệ này thì các
j
Y
, với
j
là bội của 4 sẽ tìm được từ phương trình 2
nhưng không là bội của 4 sẽ tìm được từ phương trình:
(1) (1)
22
= , = 2,6,10 , 2
j j j j
C Y F Y F j N

  
.
Cứ tiếp tục quá trình khử này. Kết qủa là sau bước khử thứ
l
ta nhận
được một hệ gồm
1
l
N
c

ẩn
j
Y
, trong đó
j
là bội của
2
l


( ) ( )
22
= , = 2 ,2.2 ,3.2 , , 2
l l l l l l
l j l j
jj
Y C Y Y F j N

   
,
00
=YF
,
=
NN
YF
(1.9)
và nhóm các phương trình:
( 1) ( 1)
11
22
=
kk
j j k k
jj
C Y F Y Y




,
11
= 2 ,3.2 , , 2
kk
jN


,
= , 1, ,1,k l l 
(1.10)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

9
trong đó các ma trận
()k
C
và các véc tơ vế phải
()k
j
F
được tính theo các công
thức truy toán:
( ) ( 1) 2
= ( ) 2
kk
C C E


,
( ) ( 1) 1 ( 1)
11
22
=
k k k k
j k j k
jj
F F C F F
  



,
= 2 ,2.2 ,3.2 , , 2 , =1,2,3
k k k k
j N k
, (1.11)
Từ các bước khử trên suy ra rằng sau
1n 
bước khử
( = 1)ln
ta thu
được hệ chỉ gồm một phương trình đối với biến
2 /2
1=
N
N
YY

( 1) ( 1) ( 1)
1 1 0 0 0
22
= = , = =
n n n
j j n n j N N N
jj
C Y F Y Y F Y Y Y FY F
  


   
(1.12)
Với vế phải đã biết. Vì vậy từ (1.12) ta có thể tìm được
/2N
Y
, và tất cả
các ẩn còn lại được tìm liên tiếp từ các phương trình
( 1) ( 1)
11
22
00
1 1 1 1
=,
=
=
= 2 ,3.2 ,5.2 , , 2 ,
= , 1, ,1
kk
j j k k
jj
NN
k k k k
C Y F Y Y
YF
YF
jN
k n n



   



(1.13)
Các công thức trên đã mô tả phương pháp rút gọn hoàn toàn giải. Việc
tính các
()k
j
F
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
( 1)k
C

lớn hơn 1. Ngoài ra các ma trận
()k
C
nói chung
là các ma trận đầy đủ, thậm chí cả với ma trận ban đầu là
(0)
=CC
là ma trận
ba đường chéo. Điều này dẫn đến tăng khối lượng tính toán khi tính các
()k
j
F

theo (1.13). Để khắc phục những khó khăn trên, thay cho
()k
j
F
ta sẽ tính các
véc tơ
()k
j
p

()k
j
q
liên hệ với theo công thức sau:
( ) ( ) ( ) ( )
= , = 2 ,2.2 ,3.2 , 2 , = 0,1,2, , 1
k k k k k k k k
j j j
F C p q j N k n  
(1.14)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

10
trong đó ta chọn
(0)
j
p

(0)
= , =1,2, , 1
jj
q F j N 
. Bằng các công thức toán
học, có thể thấy mối quan hệ mà
()k
j
p

()k
j
q
phải thoả mãn như sau.
( ) ( ) ( )
=
k k k
jj
C p q
( 1) ( 1) ( 1) ( 1) ( 1) ( 1) ( 1) ( 1)
1 1 1 1
2 2 2 2
[]
k k k k k k k k
j k j k k k
j j j j
C q p C p p q q
       
   
   
    
,
= 2 ,2.2 ,3.2 , , 2 , =1,2,3
k k k k
j N k
,
Ta sẽ chọn
()k
j
p

()k
j
q
thoả mãn
( ) ( ) ( 1) ( 1)
2 ( 1) 2 ( 1)
=2
k k k k
j j j k j k
q p q q

   


Khi đó, kết hợp với công thức
( ) ( 1) 2
2 = [ ]
kk
C E c


ta có
( ) ( ) ( 1) ( 1) ( 1) ( 1) ( 1)
11
22
=
k k k k k k k
j j k j k
jj
C p q p C p p
    


  

Đặt
( 1) ( ) ( 1)
=
k k k
j j j
S p p


, suy ra
( 1)k
j
S

phải thoả mãn
( 1) ( 1) ( 1) ( 1) ( 1)
11
22
=
k k k k k
j j k k
jj
C S q p p
    




Như vậy ta thu được thuật toán sau đây để xác định các véc tơ
()k
j
p

()k
j
q

( 1) ( 1) ( 1) ( 1) ( 1)
11
22
=
k k k k k
j j k k
jj
C S q p p
    



,
( 1) ( ) ( 1)
=
k k k
j j j
S p p


,
( ) ( ) ( 1) ( 1)
2 ( 1) 2 ( 1)
=2
k k k k
j j j k j k
q p q q

   

(1.15)
(0) (0)
= ; = 0
j j j
q F p
,
= 2 ,2.2 ,3.2 , , 2
k k k k
jN
,
= 0,1,2, , 1kn
.
Ký hiệu
( 1) ( 1)
=
kk
j j j
t Y p


, ta sẽ thấy rằng
j
Y
có thể tính được từ các
công thức sau
( 1) ( 1) ( 1)
11
22
=
k k k
j j k k
jj
C t q Y Y
  



,
( 1) ( 1)
=
kk
j j j
Y p t


,

00
= ; =
NN
Y F Y F
,
= 2 ,2.2 ,3.2 , , 2
k k k k
jN
,
= , 1, ,1k n n 
(1.16)
Nhận xét rằng các quá trình (1.15) và (1.16) luôn cần tính ma trận
nghịch đảo
(1
[ 1)]Ck


. Bằng các phép biến đổi sơ cấp từ các mối quan hệ của
ma trận
()k
C
và đa thức Chebysev
()
2
1
= 2 ( )
2
k
k
C T C
, ta có
1
( 1) 2
( =1) , 1
=
k
k
l l k
CC




,
trong đó

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

11
,1
(2 1)
= 2cos
2
lk
k
l
C C E




.
Như vậy, chẳng hạn ta có phương trình

( 1)
=
k
C


, (1.17)
thì với việc giải lần lượt các phương trình
1
, 1 1
= , =1,2, ,2
k
l k l l
Cl



,
0
=


sẽ cho ta nghiệm của (1.17) là
1
2
=
k



Tóm lại qua các bước phân tích trên đây ta có thuật toán rút gọn hoàn
toàn giải bài toán biên thứ nhất như sau
 Quá trình xuôi
Bước 1.1 Cho các giá trị ban đầu
(0) (0)
, = , =1,2,3, , 1
j j j
p q F j N 

Bước 1.2 Với
=1k
giải phương trình
(1) (0)
=
jj
Cp q
và tính
(1) (1) (0) (0), =2,4,6, , 2
( 1) ( 1)
=2
jN
j j j j
q p q q




Bước 1.3 Với
= 2,3, , 1kn
xác định các véc tơ
(0) ( 1) ( 1) ( 1)
11
( 2 ) 2
= , = 2 ,2.2 ,3.2 , 2
k k k k k k k
j j k k
jj
q p p j N

  


  
.
Sau đó, với mỗi
1
=1,2, 2
k
l

và với mỗi
= 2 ,2.2 ,3.2 , 2
k k k k
jN
, giải
phương trình
( ) ( 1)
,1
=
ll
l k j j
C




Khi đó
1
( ) ( 1) (2 )
=
k
kk
j j j
pp




,
( ) ( ) ( 1) ( 1)
11
( 2 ) 2
= 2 , = 2 ,2.2 ,3.2 , 2
k k k k k k k k
j j k k
jj
q p q q j N



  

 Quá trình ngƣợc
Bước 2.1 Cho các giá trị ban đầu
00
= , =
NN
Y F Y F

Bước 2.2 Với
= , 1, ,2k n n 
tính

Không có nhận xét nào:

Đăng nhận xét