581
GIẢI PHƯƠNG TRÌNH 3D POISSION
BẰNG PHƯƠNG PHÁP PGD KẾT HỢP HOCFD
Nguyễn Bá Duy 1, Lê Quốc Cường 2 *
1. Khoa Kiến Trúc, Trường Đại học Thủ Dầu Một.;
2. Viện Kỹ thuật – Công nghệ, Trường Đại học Thủ Dầu Một.
* Liên hệ email: cuonglq@tdmu.edu.vn
TÓM TT
Trong bài báo này, phương pháp Proper generalized decomposition kết hp với đồ sai
phân hu hn bc cao (HOCFD-High order compact finite difference) được đề xuất để gii
phương trình 3D Poission. Trước tiên, phương pháp PGD đưc áp dụng đ đưa phương trình
3D Poission thành chuỗi các phương trình vi phân 1D. Sau đó, sơ đồ sai phân hu hn bc cao
được áp dụng để giải các phương phương trình vi phân 1D. Kết qu tính toán t phương pháp
PGD-HOCFD được trình bày so sánh vi li giải chính xác cũng như c li gii tham kho
đã được công b.
T khóa: High order compact finite difference, Proper generalized decomposition,
phương trình 3D Poission.
1. GIỚI THIỆU
Bài toán Poission [1]là một bài toán phổ biến thường gặp trong nhiều lĩnh vực, như
bài toán truyền nhiệt [2], bài toán lưu chất [3, 4]. Hiện nay, các phương pháp struyền thống
như phương pháp phần tử hữu hạn (PTHH), phương pháp sai phân hữu hạn, phương pháp phổ,
đã được áp dụng để giải các bài toán loại này. Tuy nhiên, với các bài toán Poissiontrong
không gian 2D hay 3D, việc chia lưới trên toàn miền nh toán sđòi hỏi số biến lưới rất lớn.
Điều này dẫn đến các vấn đề như thời gian tính toán lớn, sự phức tạp trong các giải thuật chia
ới, cũng như nguồn tài nguyên lưu trữ phải lớn. Gần đây, một phương pháp trên stách
biến đã ra đời với tên gọi Proper generalized decomposition (PGD), phương này đã giải quyết
rất hiệu quả các bài toán trong không gian đa chiều [5]. Phương pháp PGD ngày càng được mở
rộng ứng dụng để giải quyết các bài toán đa chiều trong các lĩnh vực như cơ lưu chất [6], truyền
nhiệt [7], vật liệu composite [8].
Trong bài báo này, phương pháp PGD kết hợp với phương pháp sai phân hữu hạn bậc cao
(HOCFD high order compact finite difference) được áp dụng để giải bài toán Poissiontrong
không gian 3D. Phương pháp PGD được áp dụng để đưa phương trình Poissiontrong không
gian 3D thành chuỗi các phương trình vi phân trong không gian một chiều, sau đó các phương
trình vi phân một chiều được giải bằng phương pháp HOCFD.
Bài báo này được tổ chức như sau, phần 2 trình bày phương pháp PGD cho phương trình
Poissiontrong không gian 3D. Phần 3 trình bày phương pháp xấp xỉ các đạo hàm trong không
gian 1D bằng phương pháp HOCFD. Các kết quả mô phỏng được trình bày ở phần 4. Sau cùng,
là một vài kết luận được trình bày ở phần 5.
582
2. PHƯƠNG TRÌNH POISSIOIN
Xét phương trình Poission trong không gian ba chiều như sau
( )
222
2 2 2 ,,
uuu
f x y z
x y z

+ + =
. (1)
Mục tiêu của chúng ta áp dụng phương pháp PGD đ tìm
N
các hàm số
( ) ( ) ( )
( )
, , , 1,...,
i i i
X x Y y Z z i N=
để mỗi hàm
( )
i
Xx
,
( )
i
Yy
( )
i
Zz
được định nghĩa
trên miền 1D. Khi đó, lời giải của của phương trình trong không gian 3D được trình bày i
dạng như sau
( ) ( ) ( ) ( )
,,
N
i i i
i
u x y z X x Y y Z z
. (2)
Giả sử lời giải ở bước lặp thứ
đã biết, chúng ta cần tìm lời giải ở bước lặp thứ
1n+
( ) ( ) ( ) ( ) ( ) ( ) ( )
1
1
,,
n
n
i i i
i
u x y z X x Y y Z z R x S y T z
+
=
= +
, (3)
đây
( ) ( )
1n
R x X x
+
=
,
( ) ( )
1n
S y Y y
+
=
( ) ( )
1n
T z Z z
+
=
Phương trình (1) được đưa về dạng yếu như sau
( )
222
*
2 2 2 , , 0
x y z
uuu
u f x y z
x y z
 


+ + =


, (4)
ở đây
*
u
là hàm trọng số và được định nghĩa như sau
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
* * * *
u R x S y T z R x S y T z R x S y T z= + +
. (5)
Thay (2) và (5) vào phương trình (4) ta được
( )
( )
(
2
* * *
2
22
22
2
* * *
1
22
22
11
x y z
x y z
n
i
ii
x
i
nn
ii
i i i i
ii
dR
R S T R S T R S T S T
dx
d S d T
R T R S dxdydz
dy dz
dX
R S T R S T R S T f Y Z
dx
d Y d Z
X Z X Y dxdydz
dy dz
 
=
 
==
+ +
+ +
= + +

. (6)
Để tìm các hàm
( )
Rx
,
( )
Sy
( )
Tz
, một giải thuật lặp cố định luân phiên được áp
dụng, gồm các bước như sau
ớc 1: Tìm
( )
Rx
583
Gisử
( )
Sy
( )
Tz
đã biết, khi đó
( )
*0Sy=
( )
*0Tz=
. Kết quả, phương trình
(6) trở thành
( ) ( )
( ) ( ) ( )
2
*
2
2
*
2
1 1 1
x
i i i i i i
x
y z y z y z
n n n
i
fx y z i y z i y z
i i i
dR
R a a b a a b R dx
dx
dX
R a a a X b a X a b dx
dx
= = =

++



=


, (7)
ở đây
( ) ( ) ( )
2
2
2
2
2
2
2
2
2
2
, ,
, ,
,
, ,
,
yy
zz
yz
ii
yy
ii
zz
yy
zz
fx
i
y i y
i
z i z
dS
a S dy b S dy
dy
dT
a T dz b T dz
dz
a fx x S fy y dy T fz z dz
dY
a S Y dy b S dy
dy
dZ
a T Z dz b T dz
dz





= =
= =
=
= =
= =





. (8)
Vì phương trình (7) thỏa mãn vi mi
( )
*
Rx
, chúng ta th đưa về dng mạnh như sau
( ) ( )
( )
( ) ( )
2
2
22
1
11
ii
i i i i
n
i
y z y z y z x y z
i
nn
i y z i y z
ii
dX
dR
a a b a a b R af a a
dx dx
X b a X a b
=
==
+ + =
−−

. (9)
ớc 2: tìm hàm
( )
Sx
.
Từ hàm
( )
Rx
vừa tìm được bước 1 và giả sử hàm
( )
Tz
đã biết, khi đó
( )
*0Rx=
( )
*0Tz=
. Tiến hành tương tự như bước tìm
( )
Rx
, hàm
( )
Sx
sẽ tìm được từ phương trình
( ) ( )
( )
( ) ( )
2
2
22
1
11
ii
i i i i
n
i
x z x z x z fy x z
i
nn
i x z i x z
ii
dY
dS
a a b a a b S a a a
dy dy
Y b a Y a b
=
==
+ + =
−−

, (10)
ở đây
584
( ) ( ) ( )
2
2
2
2
2
2
2
2
2
2
, ,
, ,
,
, ,
,
xx
zz
xz
ii
xx
ii
zz
xx
zz
fy
i
x i x
i
z i z
dR
a R dx b R dx
dx
dT
a T dz b T dz
dz
a fy y R fx x dx T fz z dz
dX
a R X dx b R dx
dx
dZ
a T Z dz b T dz
dz





= =
= =
=
= =
= =





. (11)
ớc 3: tìm hàm
( )
Tz
. Với
( )
Rx
( )
Sy
vừa tìm được hai bước trên, khi đó
( )
*0Rx=
( )
*0Sy=
. Tương tự như m
( )
Rx
( )
Sy
, hàm
( )
Tz
sẽ được m bằng
cách giải phương trình sau
( ) ( )
( )
( ) ( )
2
2
22
1
11
ii
i i i i
n
i
x y x y x y fz x y
i
nn
i x y i x y
ii
dT
dT
a a b a a b T a a a
dz dz
T b a T a b
=
==
+ + =
−−

, (12)
ở đây
( ) ( ) ( )
2
2
2
2
2
2
2
2
2
2
, ,
, ,
,
, ,
,
xx
yy
xy
ii
xx
ii
yy
xx
yy
fz
i
x i x
i
y i y
dR
a R dx b R dx
dx
dS
a S dy b S dy
dy
a fz z R fx x dx S fy y dy
dX
a R X dx b R dx
dx
dY
a S Y dy b S dy
dy





= =
= =
=
= =
= =





. (13)
c bước giải để tìm
( )
Rx
,
( )
Sy
( )
Tz
được lặp cho đến khi kết qu hội tụ. Nếu kí hiu
( )
( )
q
Rx
và
( )
( )
1q
Rx
là m
( )
Rx
đã được tính ớc lặp hiện tại bước lặp trước, tương tự
với
( )
( )
q
Sy
và
( )
( )
1q
Sy
và
( )
( )
q
Tz
và
( )
( )
1q
Tz
, tiêu chuẩn dừng được chọn n sau
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
1 1 1q q q q q q
RST
e R x S y T z R x S y T z
=
, (14)
585
ở đây
RST
là hằng số được chọn đủ bé để đảm bảo độ chính xác.
Sau khi các bước lặp m
( )
Rx
,
( )
Sy
( )
Tz
hội tụ, chúng ta xác định được
( ) ( )
1n
X x R x
+=
,
( ) ( )
1n
Y y S y
+=
( ) ( )
1n
T z T z
+=
. Quá trình tìm các hàm
( ) ( ) ( )
( )
,,
i i i
X x Y y Z z
phải được tiếp tục cho đến khi đạt được sự hội tụ toàn cục của bài toán
ở bước lặp thứ
N
, khi đó nghiệm xấp xỉ của bài toán được tính như sau
( ) ( ) ( ) ( )
1
,,
N
i i i
i
u x y z X x Y y Z z
=
. (15)
Điều kiện dừng toàn cục của bài toán được tính như sau
( )
2
2
es
,, u
r
Ef x y z
=
, (16)
ở đây
u
là một hằng số được chọn đủ nhỏ và
res
là hàm thặng dư của bài toán
( )
222
2 2 2
res , ,
uuu
f x y z
x y z

= + +
. (17)
Một điều quan trọng để nhận ra rằng phương trình Poissionba chiều ban đầu được định
nghĩa trên miền
x y z
=
đã được chuyển đổi thành các bài toán một chiều trên
x
,
y
z
bằng phương pháp PGD.
3. PHƯƠNG PHÁP HOCFD
Trong phần này, chúng ta sẽ áp dụng phương pháp HOCFD để giải phương trình vi phân
bậc hai trong không gian 1 chiều có dạng tổng quát như sau
( )
2
2
df
a cf g x
dx +=
. (18)
Để đơn giản, chúng ta xét lưới đều 1D gồm
N
điểm với bước lưới
1ii
h x x
+
=−
như sau
1 2 1 1 1i i i N N
x x x x x x x
+
. Đạo hàm bậc hai của hàm
f
với độ
chính xác bậc sáu [8] ở những điểm bên trong được cho như sau
'' '' '' 1 1 2 2
11 22
22
2 2 12 3 , 3, ..., 2
11 11 11 11 4
i i i i i i
ii
f f f f f f
f f f i N
hh
+ +
−−
+ + +
+ + = + =
. (19)
những điểm gần biên, đạo hàm bậc hai của hàm
f
với độ chính xác bậc sáu tại các
điểm 1, 2, N-1, N có thể được xác định như sau
""
1 2 1 2 3 4 5 6 7
126 2077 2943 573 167 18 57 131
11 157 110 44 99 11 110 1980
f f f f f f f f f
+ = + + + + + +
,(20)