ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
QUẢN THỊ TỐ QUYÊN
PHƯƠNG PHÁP SAI PHÂN
VỚI PHƯƠNG TRÌNH ELLIPTIC
CÓ BƯỚC NHẢY GIÁN ĐOẠN
LUẬN VĂN THẠC SĨ TOÁN HỌC
Thái Nguyên - Năm 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
QUẢN THỊ TỐ QUYÊN
PHƯƠNG PHÁP SAI PHÂN
VỚI PHƯƠNG TRÌNH ELLIPTIC
CÓ BƯỚC NHẢY GIÁN ĐOẠN
Chuyên ngành: TOÁN ỨNG DỤNG
Mã số : 60.46.36
LUẬN VĂN THẠC SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS.VŨ VINH QUANG
Thái Nguyên - Năm 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
Mục lục
Mục lục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Mở đầu 1
Nội dung 3
1 CÁC KHÁI NIỆM CƠ BẢN 3
1.1 Các khái niệm về phương trình đạo hàm riêng . . . . . . . . 3
1.1.1 Khái niệm về phương trình đạo hàm riêng . . . . . . 3
1.1.2 Phân loại phương trình tuyến tính cấp hai . . . . . . 4
1.2 Phương pháp lưới giải phương trình đạo hàm riêng . . . . . 7
1.2.1 Bài toán vi phân . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Hàm lưới . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3 Đạo hàm lưới . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Bài toán sai phân . . . . . . . . . . . . . . . . . . . 9
1.2.5 Lưới sai phân . . . . . . . . . . . . . . . . . . . . . 9
1.2.6 Bài toán biên elliptic . . . . . . . . . . . . . . . . . 10
1.2.7 Giới thiệu về thư viện RC2009 . . . . . . . . . . . . 11
2 PHƯƠNG PHÁP CIM (Coupling Interface Method) 17
2.1 Giới thiệu về bài toán biên với mặt phân cách gián đoạn. . . 17
2.2 Phương pháp CIM trong không gian một chiều . . . . . . . 18
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
2.2.1 Phương pháp CIM1 trong không gian một chiều. . . 19
2.2.2 Phương pháp CIM2 trong không gian một chiều. . . 22
2.3 Phương pháp CIM không gian hai chiều. . . . . . . . . . . . 27
2.3.1 Phương pháp CIM1 trong không gian 2 chiều . . . . 28
2.3.2 Phương pháp CIM2 trong không gian 2 chiều . . . . 30
2.4 Phương pháp CIM trong không gian d chiều . . . . . . . . . 34
2.4.1 Phương pháp CIM1 trong không gian d chiều. . . . 34
2.4.2 Phương pháp CIM2 trong không gian d chiều . . . . 36
2.5 Một số số liệu thực nghiệm . . . . . . . . . . . . . . . . . . 39
3 MÔ HÌNH TÍNH TOÁN SONG SONG ĐỐI VỚI BÀI
TOÁN BIÊN GIÁN ĐOẠN QUA MẶT PHÂN CÁCH 43
3.1 Phương pháp chia miền đối với bài toán gián đoạn qua mặt
phân cách . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Mô hình tính toán song song . . . . . . . . . . . . . . . . . 45
3.3 Các kết quả thử nghiệm . . . . . . . . . . . . . . . . . . . . 48
Kết luận 57
Tài liệu tham khảo 60
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
Mở đầu
Những năm gần đây đã có không ít công trình nghiên cứu về lĩnh
vực tìm nghiệm đúng của lớp các bài toán biên mà chủ yếu là phương
trình elliptic cấp hai, mục đích chính của các phương pháp là đưa bài
toán vi phân về bài toán rời rạc trên một điểm lưới. Nếu miền hình học là
miền phức tạp, các hệ số của phương trình là gián đoạn thì việc áp dụng
phương pháp số cho cả miền là trở nên khó khăn.
Chính vì vậy, các công trình nghiên cứu đã tập trung đưa ra các hướng
nghiên cứu chủ yếu là đưa ra các phương pháp sai phân, đặc biệt là xung
quanh lân cận kỳ dị hoặc các biên phân chia để đưa bài toán đang xét về
hệ phương trình sai phân và việc tìm nghiệm bằng số của bài toán chuyển
về việc giải hệ phương trình đại số bằng các phương pháp đúng hoặc gần
đúng. Hướng thứ hai là sử dụng phương pháp chia miền chuyển bài toán
trên miền đang xét về hai bài toán không chứa các điểm kỳ dị, sau đó
xuất phát từ lời giải các bài toán trên hai miền ta thu được nghiệm của
bài toán gốc.
Luận văn gồm 3 chương:
Chương 1: Các khái niệm cơ bản
Trình bày các kiến thức cơ bản về phương trình đạo hàm riêng, cơ sở
phương pháp lưới và giới thiệu thư viện chương trình giải phương trình
elliptic với hệ số hằng số trong miền chữ nhật.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
Chương 2: Phương pháp CIM (Coupling Interface Method)
Trình bày cơ sở phương pháp CIM bao gồm: phương pháp CIM1, CIM2
trong không gian một chiều,hai chiều và d chiều, các thuật toán cơ bản
về các phương pháp tương ứng, các kết quả thực nghiệm đối với các bài
toán cụ thể.
Chương 3: Mô hình tính toán song song đối với bài toán
biên gián đoạn qua mặt phân cách
Trình bày cơ sở phương pháp chia miền đối với bài toán biên gián đoạn
qua mặt phân cách, mô hình tính toán song song trong trường hợp tồn
tại nhiều biên phân chia trong miền, xây dựng các sơ đồ lặp giải bài toán
biên elliptic tồn tại mặt gián đoạn theo hướng hiệu chỉnh giá trị hàm trên
biên, xây dựng các chương trình thực nghiệm.
Tác giả xin bày tỏ lòng biết ơn sâu sắc đối với thầy giáo hướng dẫn
TS. Vũ Vinh Quang đã tận tình hướng dẫn tác giả trong suốt quá trình
làm luận văn. Tác giả xin chân thành cảm ơn các Thầy, Cô giáo Viện
Toán,Trường Đại học Khoa học – Đại học Thái Nguyên đã tham gia
giảng dạy, giúp đỡ tác giả trong quá trình học tập và nghiên cứu.
Tác giả xin chân thành cảm ơn!
Thái Nguyên, tháng 10 năm 2011.
Tác giả
Quản Thị Tố Quyên
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
Chương 1
CÁC KHÁI NIỆM CƠ BẢN
Trong Chương này luận văn sẽ trình bày các kiến thức cơ bản bao
gồm: các khái niệm về phương trình đạo hàm riêng, phương pháp lưới
giải phương trình đạo hàm riêng và giới thiệu thư viện RC2009 giải số
bài toán biên elliptic với hệ số hằng số. Các kiến thức cơ bản được tham
khảo trong các tài liệu [1,2,3,4].
1.1 Các khái niệm về phương trình đạo hàm riêng
1.1.1 Khái niệm về phương trình đạo hàm riêng
Hàm số một biến y = y (x) ta có khái niệm đạo hàm y
(x)
y
(x) = lim
∆x→0
y(x + ∆x) −y(x)
∆x
Khái niệm phương trình vi phân y
(x) = f(x, y) và khái niệm bài
toán Cauchy:
Tìm hàm số y = y (x) xác định tại x ∈ [x
0
, X] thỏa mãn:
y
(x) = f(x, y), x
0
< x ≤ X, y(x
0
) = η
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
trong đó: f(x, y), x
0
, x, X, η là hàm số cho trước.
Xét bài toán hai biến số u = u(x, y)
ta có đạo hàm riêng cấp 1 đối với biến x:
∂u
∂x
= lim
∆x→0
y(x + ∆x) − y(x)
∆x
.
đạo hàm riêng cấp 1 đối với biến y:
∂u
∂y
= lim
∆y→0
y(x + ∆x) − y(x)
∆y
.
và các đạo hàm riêng cấp 2:
∂
2
u
∂x
2
=
∂
∂x
∂u
∂x
,
∂
2
u
∂y
2
=
∂
∂y
∂u
∂y
,
∂
2
u
∂x∂y
=
∂
∂y
∂u
∂x
,
∂
2
u
∂y∂x
=
∂
∂x
∂u
∂y
.
Nếu
∂
2
u
∂x∂y
và
∂
2
u
∂y∂x
là các hàm liên tục thì
∂
2
u
∂x∂y
=
∂
2
u
∂y∂x
.
Phương trình:
A(x, y)
∂
2
u
∂x
2
+ B(x, y)
∂
2
u
∂x∂y
+ C(x, y)
∂
2
u
∂y
2
+ D(x, y)
∂u
∂x
+ E(x, y)
∂u
∂y
+
F (x, y)u = f(x, y).
là phương trình đạo hàm riêng cấp 2.
1.1.2 Phân loại phương trình tuyến tính cấp hai
Giả sử u = u(p, q) là hàm số của hai biến độc lập p, q.
kí hiệu:
u
p
=
∂u
∂p
, u
q
=
∂u
∂q
,
u
pp
=
∂
2
u
∂p
2
, u
qq
=
∂
2
u
∂q
2
.
u
pq
= u
qp
=
∂
2
u
∂q∂p
.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
Xét phương trình đạo hàm riêng cấp 2 tuyến tính:
Au
pp
+ 2Bu
qp
+ Cu
qq
= F. (1.1)
với A, B, C, F là những hàm số phụ thuộc p, q, u
p
, u
q
.
Giả sử phương trình (1.1) có nghiệm là u = u(p, q) đủ trơn. Xét Γ là
một đường cong nào đó của mặt phẳng O
pq
nằm trong miền xác định của
hàm u = u(p, q) và có phương trình q = q (p) , hay ϕ(p, q) = 0.
Ta có: d(u
p
) = u
pp
d
p
+ u
pq
d
q
; d(u
q
) = u
qq
d
q
+ u
qp
d
p
.
Ta có hệ:
Au
pp
+ 2Bu
qp
+ Cu
qq
= F (p, q, u, u
p
, u
q
)
u
pp
d
p
+ u
qp
d
q
= d(u
p
)
u
qq
d
q
+ u
qp
d
p
= d(u
q
)
hay ở dạng ma trận:
A 2B C
d
p
d
q
0
0 d
q
d
p
u
pp
u
qp
u
qq
=
F
d (u
p
)
d (u
q
)
Do giả sử phương trình (1.1) có nghiệm u = u(p, q) đủ trơn nên hệ
trên luôn có nghiệm.
ma trận của hệ:
M =
A 2B C
d
p
d
q
0
0 d
q
d
p
Nếu Det(M) = 0 trên Γ thì hệ trên có nghiệm duy nhất trên Γ ,
nghĩa là trên Γ các đạo hàm cấp hai của u được xác định một cách duy
nhất theo vế phải.
Nếu Det(M) = 0 trên Γ thì hệ trên vẫn có nghiệm duy nhất trên Γ
vì ta đã xuất phát từ giả thiết phương trình (1.1) có nghiệm u , nhưng
nghiệm đó không duy nhất, nghĩa là trên Γ các đạo hàm cấp hai của u
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6
xác định một cách không duy nhất theo vế phải. Trong trường hợp này
ta gọi là một “đường đặc trưng” của phương trình đạo hàm riêng (1.1).
Như vậy đường đặc trưng xác định bởi điều kiện Det(M) = 0 , điều
kiện này viết như sau:
Det(M) = A (d
q
)
2
+ 2B(d
q
d
p
) + C (d
p
)
2
. (1.2)
hay:
A
d
q
d
p
2
+ 2B(
d
q
d
p
) + C = 0, (1.3)
trong đó
d
q
d
p
là hệ số góc của tiếp tuyến của đường đặc trưng, người
ta gọi
d
q
d
p
là phương đặc trưng tại điểm (p, q). Vậy phương trình (1.3) xác
định phương đặc trưng, nó là phương trình vi phân của đường đặc trưng.
Phương trình (1.3) là một phương trình bậc hai đối với
d
q
d
p
.
Xét ∆ = B
2
− AC
• Nếu B
2
− AC > 0 tại (p, q) ∈ miền Ω nào đó thì phương trình
(1.3) có hai nghiệm thực khác nhau tại (p, q) ∈ Ω :
d
q
d
p
=
−B ±
√
B
2
− AC
A
Khi đó tại mỗi (p, q) ∈ Ω có hai phương trình đặc trưng thực khác
nhau, ta nói phương trình (1.1) thuộc loại hypebol trong Ω .
• Nếu B
2
− AC = 0 tại (p, q) ∈ miền Ω nào đó thì phương trình
(1.3) có hai nghiệm thực trùng nhau tại (p, q) ∈ Ω :
d
q
d
p
=
B
A
Khi đó tại mỗi (p, q) ∈ Ω có hai phương trình đặc trưng trùng nhau,
ta nói phương trình (1.1) thuộc loại parabol trong Ω .
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
• Nếu B
2
− AC < 0 tại (p, q) ∈ miền Ω nào đó thì phương trình
(1.3) không có hai nghiệm thực nào mà chỉ có hai nghiệm phức liên hợp
tại (p, q) ∈ Ω :
d
q
d
p
=
−B ±i
√
B
2
− AC
A
Khi đó tại mỗi (p, q) ∈ Ω không có phương trình đặc trưng thực nào
mà chỉ có hai phương trình đặc trưng ảo liên hợp, ta nói phương trình
(1.1) thuộc loại ellip trong Ω.
1.2 Phương pháp lưới giải phương trình đạo hàm
riêng
Phương pháp lưới (hay còn gọi là phương pháp sai phân) là phương
pháp được áp dụng rộng rãi trên nhiều lĩnh vực khoa học, kỹ thuật. Nội
dung của nó là dẫn đối tượng cần xét về việc giải phương trình sai phân
(tức là hệ thức hoặc các hệ thức liên hệ các giá trị của các hàm số tại các
điểm khác nhau).
1.2.1 Bài toán vi phân
Cho hai số a và b với a < b.
Tìm hàm u = u(x) xác định tại a < x < b thỏa mãn:
Lu = −(ku
)
+ qu = f(x); a < x < b (1.4)
u(a) = α; u(b) = β, (1.5)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
trong đó k = k(x), q = q(x), f(x) là những hàm số cho trước đủ trơn
thỏa mãn:
0 < c
0
≤ k(x) ≤ c
1
; c
0
, c
1
= const; q(x) ≥ 0, (1.6)
với α và β là những số cho trước.
Giả sử bài toán (1.4) – (1.5) có nghiệm duy nhất u đủ trơn trên [a, b].
Đây chính là bài toán biên của phương trình elip một chiều.
1.2.2 Hàm lưới
Ta chia đoạn [a, b] bởi n điểm chia a = x
0
< x
1
< x
2
< x
n
= b.
Đặt: h =
b − a
n
, x
i
= a + ih, (i = 0, 1, 2, , n) .
Tập các điểm x
0
, x
1
, x
2
, , x
n
được gọi là không gian lưới kí hiệu là Ω
h
.
Những hàm số xác định tại các nút của lưới Ω
h
được gọi là hàm lưới.
Giá trị của hàm lưới v tại nút x
i
viết là v
i
.
Một hàm số u(x) xác định tại mọi x ∈ [a, b] sẽ tạo ra hàm lưới u có
giá trị tại nút x
i
là u
i
= u(x
i
).
1.2.3 Đạo hàm lưới
Xét hàm lưới v.
Đạo hàm lưới tiến cấp một của v, ký hiệu là v
x
, có giá trị tại nút x
i
là:
v
x
i
=
v
i+1
− v
i
h
Đạo hàm lưới lùi cấp một của v, ký hiệu là v
x
, có giá trị tại nút x
i
là:
v
x
i
=
v
i
− v
i−1
h
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
Khi h đủ bé thì đạo hàm lưới “xấp xỉ” đạo hàm thường.
Đạo hàm lưới cấp hai v
xx
:
v
xx
=
v
x
i
+1
− v
x
i
h
=
v
i+1
− v
i
h
−
v
i
− v
i−1
h
/h =
v
i+1
− 2v
i
+ v
i−1
h
2
Nếu a là một hàm lưới nữa thì:
av
xx
=
a
i+1
v
x
i
+1
− a
i
v
x
i
h
=
a
i+1
v
i+1
− (a
i+1
+ a
i
) v
i
+ a
i
v
i−1
h
2
1.2.4 Bài toán sai phân
Ta tìm cách tính gần đúng giá trị của nghiệm đúng u(x
i
) tại các nút
x
i
∈ Ω
h
Gọi các giá trị gần đúng đó là v
i
. Để tìm v
i
ta thay bài toán (1.4)
– (1.5) bởi bài toán sai phân:
L
h
v ≡ −
av
−
x
x
i
+ q
i
v
i
= f
i
, v
o
= α, v
n
= β
Trong đó: a
i
= k
x
i
−
h
2
; q
i
= q (x
i
) ; f
i
= f (x
i
)
1.2.5 Lưới sai phân
Xét bài toán :
−∆u = f, x ∈ Ω,
u = g, x ∈ ∂Ω.
(1.7)
trong đó Ω = (x, y) ∈ R
2
, a ≤ x ≤ b, c ≤ y ≤ d, chọn 2 số nguyên
N > 1 và M > 1, đặ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 x
i
= a + ih, y
j
= c + jh, i = 1 N, j = 1 M,
mỗi điểm (x
i
, y
j
) gọi là một nút lưới ký hiệu là nút (i, j). 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 là Γ
hk
, tập Ω
hk
= Ω
hk
∪Γ
hk
gọi là một lưới sai phân
trên Ω .
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
1.2.6 Bài toán biên elliptic
Xét bài toán biên:
k
1
(x)
∂u
∂x
2
1
+ k
2
(x)
∂u
∂x
2
2
+ c (x) u = f(x), x ∈ Ω
lu = g(x), x ∈ ∂Ω
(1.8)
Trong đó: Ω là miền hình chữ nhật có kích thước hai cạnh là L
1
và
L
2
, l là toán tử điều kiện biên, g(x) và l(x) là các hàm số cho trước.
Xét trường hợp tổng quát khi điều kiện biên lu = g(x) là điều kiện
biên Dirichlet hoặc Neumann trên các phần biên khác nhau trong đó tồn
tại ít nhất một điều kiện biên Dirichlet trên một cạnh để đảm bảo bài
toán có nghiệm duy nhất. Để giải số bài toán trên, trong lý thuyết toán
học tính toán thường sử dụng các phương pháp gần đúng như phương
pháp sai phân, phương pháp phần tử hữu hạn với ý tưởng chung là đưa
bài toán vi phân về bài toán rời rạc trên một lưới điểm.
Đưa vào không gian lưới:
Ω
kh
=
x
ij
= (ik, jh), i = 0, M, j = 0, N
, với k =
L
1
M
, h =
L
2
N
Khi đó bài toán vi phân đang xét luôn được đưa về các hệ phương
trình vectơ ba điểm có dạng:
−Y
j−1
+ CY
j
− Y
j+1
, j = 0, N − 1
Y
0
= F
0
, Y
N
= F
N
(1.9)
CY
0
− 2Y
1
= F
0
−Y
j−1
+ CY
j
− Y
j+1
, j = 0, N − 1
2Y
N−1
+ CY
N
= F
N
(1.10)
Trong trường hợp bài toán Neumann, trong đó C là ma trận ba đường
chéo trội, Y
j
là các vector nghiệm, các vector F
j
chứa các giá trị hàm vế
phải và giá trị hàm hoặc đạo hàm trên biên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
Để giải được bài toán (1.8) bằng phương pháp số, điều quan trọng
nhất là ta phải xác định được thuật toán nhanh giải các hệ phương trình
vector ba điểm (1.9),(1.10) là các hệ phương trình đại số tuyến tính. Do
tính chất đặc biệt của hệ, trong nội dung này luận văn giới thiệu phương
pháp thu gọn khối lượng tính toán của Samarskij-Nicolaev đề xuất [8] với
độ phức tạp tính toán O(MNlogN) cùng với các kết quả xây dựng thư
viện chương trình tìm nghiệm bằng số của bài toán elliptic với các điều
kiện biên khác nhau được thiết kế trên môi trường MATLAB.
1.2.7 Giới thiệu về thư viện RC2009
Để giải bài toán biên elliptic (1.8), sử dụng phương pháp sai phân xây
dựng lược đồ sai phân cho các bài toám biên, chuyển bài toán vi phân
(1.8) về các bài toán sai phân tương ứng với các phương trình vesctơ ba
điểm. Sau đó áp dụng phương pháp thu gọn khối lượng tính toán giải các
hệ phương trình đại số được dẫn đến. Các kết quả được công bố trong
công trình [3].
a. Bài toán biên Dirichlet
Xét bài toán
k
1
(x)
∂
2
u
∂x
2
1
+ k
2
(x)
∂
2
u
∂x
2
2
+ c (x) u = f (x) , x ∈ Ω
u = g (x) , x ∈ ∂Ω
(1.11)
Trong đó : k
1
, k
2
, c là các hằng số, Ω là hình chữ nhật có kích thước
hai cạnh là L
1
, L
2
. Xuất phát từ phương pháp lưới chia miền Ω thành
(M × N) điểm lưới, trong đó N = 2
n
, n > 0. Ký hiệu h
1
=
L
1
M
, h
2
=
L
2
N
là các bước lưới, ϕ là vectơ hàm vế phải của phương trình. Từ phương
pháp sai phân với độ chính xác O(h
2
1
+h
2
2
) chuyển bài toán vi phân (1.11)
về bài toán sai phân tương ứng với hệ phương trình vectơ ba điểm.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
−Y
j−1
+ CY
j
− Y
j+1
= F
j
, Y
0
= F
0
, Y
N
= F
N
, j =
1, N − 1
trong đó: Y
j
là các vectơ nghiệm, F
j
là các vectơ cấp (M − 1), C là ma
trận hệ số cấp (M − 1) × (M − 1) được xác định như sau:
Y
j
=
u
1,j
, u
2,j
, . . . , u
M−1,j
, j = 1, N
F
0
=
g
1,0
, g
2,0
, . . . , g
M−1,0
, F
N
= (g
1,N
, g
2,N
, . . . , g
M−1,N
)
Ma trận C có dạng:
C =
d −r 0 0 0 0
−r d −r 0 0 0
0 −r d 0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 d −r 0
0 0 0 −r d −r
0 0 0 0 −r d
, F
j
=
h
2
2
k
2
ϕ
1,j
+ rg
0,j
h
2
2
k
2
ϕ
2,j
.
.
.
h
2
2
k
2
ϕ
M−2,j
h
2
2
k
2
ϕ
M−1,j
+ rg
M,j
trong đó: r =
k
1
k
2
h
2
2
h
2
1
, d = 2(r + 1) + c
h
2
2
k
2
Trên cơ sở thuật toán thứ nhất tiến hành cài đặt giải hệ phương
trình trên với ngôn ngữ lựa chọn là Matlab version 8.0. Thiết kế các hàm
RC0000(ϕ, b
1
, b
2
, b
3
, b
4
, l
1
, l
2
, k
1
, k
2
, c, N, M, n) thực hiện thuật toán thu
gọn, trong đó ϕ là hàm vế phải b
1
, b
2
, b
3
, b
4
lần lượt là các vectơ giá trị
điều kiện biên Dirichlet hoặc Neumann trên các biên trái, phải, dưới, trên
của miền chữ nhật.
Hàm v0000(ϕ, b
1
, b
2
, b
3
, b
4
, l
1
, l
2
, k
1
, k
2
, c, N, M, n, p
1
, p
2
, q
1
, q
2
) trả lại
ma trận nghiệm xấp xỉ của bài toán (1.11) bắt đầu từ tọa độ (p
1
, q
1
) đến
(p
2
, q
2
).
b. Bài toán biên Neumann
Xét bài toán biên hỗn hợp:
k
1
(x)
∂
2
u
∂x
2
1
+ k
2
(x)
∂
2
u
∂x
2
2
+ c (x) u = f (x) , x ∈ Ω
lu = g (x) , x ∈ ∂Ω
(1.12)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
trong đó l là toán tử điều kiện biên (lu = u nếu điều kiện biên là
Dirichlet, lu =
∂u
∂v
nếu điều kiện biên là Neumann).
Trường hợp 1: Điều kiện trên cạnh trên của hình chữ nhật là dạng
Neumann
Từ phương pháp sai phân với độ chính xác O(h
2
1
+ h
2
2
) chuyển bài
toán vi phân (1.12) về bài toán sai phân tương ứng với hệ phương trình
vectơ ba điểm.
Y
j−1
+CY
j
−Y
j+1
= F
j
, Y
0
= F
0
, −2Y
N−1
+CY
N
= F
N
, j = 1, N − 1.
trong đó Y
j
là các vectơ nghiệm, F
j
là các vectơ cấp (M − 1), C là ma
trận hệ số cấp (M − 1) × (M − 1) được xác định như sau:
Y
j
=
u
1,j
, u
2,j
, . . . , u
M−1,j
j = 0, N − 1.
F
0
= (b
3
(1) , b
3
(2) , . . . , b
3
(M − 1))
F
N
=
h
2
2
k
2
ϕ
1,N
+ 2h
2
b
4
(1) + rb
1
(N)
h
2
2
k
2
ϕ
2,N
+ 2h
2
b
4
(2)
.
.
.
h
2
2
k
2
ϕ
M−2,N
+ 2h
2
b
4
(M − 2)
h
2
2
k
2
ϕ
M−1,N
+ 2h
2
b
4
(M − 1) + rb
2
(N)
C =
d −r 0 . . . 0 0 0
−r d −r . . . 0 0 0
0 −r d . . . 0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . d −r 0
0 0 0 . . . −r d −r
0 0 0 . . . 0 −r d
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
F
j
=
h
2
2
k
2
ϕ
1,j
+ rb
1
(j)
h
2
2
k
2
ϕ
2,j
.
.
.
h
2
2
k
2
ϕ
M−2,j
h
2
2
k
2
ϕ
M−1,j
+ rb
2
(j)
trong đó: r =
k
1
k
2
h
2
2
h
2
1
, d = 2(r + 1) + c
h
2
2
k
2
Trên cơ sở của thuật toán thứ hai áp dụng trong trường hợp đã biết
vectơ F
0
, tiến hành cài đặt giải hệ phương trình vectơ ba điểm ở trên
bằng cách:
Thiết kế hàm RC0001(ϕ, b
1
, b
2
, b
3
, b
4
, l
1
, l
2
, k
1
, k
2
, c, N, M, n) thực hiện
thuật toán thu gọn hàm v0001(ϕ, b
1
, b
2
, b
3
, b
4
, l
1
, l
2
, k
1
, k
2
, c, N, M, n, p
1
,
p
2
, q
1
, q
2
) trả lại ma trận nghiệm xấp xỉ của bài toán (1.12) từ tọa độ
(p
1
, q
1
) đến (p
2
, q
2
).
Trong trường hợp khi điều kiện biên trên một trong các cạnh còn lại là
dạng Neumann, sử dụng phương pháp biến đổi tọa độ trên cơ sở của hàm
chuẩn RC0001(. . . ) xây dựng các hàm v0010(. . . ) ,v0100(. . . ),v1000(. . . )
trả lại nghiệm bằng số của các bài toán tương ứng.
Trường hợp 2: Điều kiện biên trên ba cạnh của hình chữ nhật là
dạng Neumann
Tương tự như trên, thiết kế hàm RC0003(ϕ, b
1
, b
2
, b
3
, b
4
, l
1
, l
2
, k
1
,
k
2
, c, N, M, n) thực hiện thuật toán thu gọn khối lượng và xây dựng các
hàm v0111(. . . ) , v1110(. . . ),v1101(. . . ), v1011(. . . ) trả lại nghiệm bằng
số cho các bài toán tương ứng.
Trường hợp 3: Điều kiện biên trên tất cả các cạnh của hình chữ
nhật là Neumann
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
Với độ chính xác O(h
2
1
+ h
2
2
) chuyển bài toán vi phân (1.12) về bài
toán sai phân tương ứng với hệ phương trình vectơ ba điểm.
−Y
j−1
+CY
j
−Y
j+1
= F
j
; CY
0
−2Y
1
= F
0
; −2Y
N−1
+CY
N
= F
N
, j = 1, N
Trong đó Y
j
là các vectơ nghiệm, F
j
là các vectơ cấp (M + 1), C ma
trận hệ số cấp (M + 1) × (M + 1) được xác định như sau:
Y
j
=
u
0,j
, u
1,j
, . . . , u
M,j
j = 0, N
F
0
=
h
2
2
k
2
ϕ
0,0
− 2h
2
b
3
(1) − rh
1
b
1
(1)
h
2
2
k
2
ϕ
1,0
− 2h
2
b
3
(2)
.
.
.
h
2
2
k
2
ϕ
M−1,0
− 2h
2
b
3
(M − 1)
h
2
2
k
2
ϕ
M,0
− 2h
2
b
3
(M) + 2rh
1
b
2
(1)
F
N
=
h
2
2
k
2
ϕ
0,N
+ 2h
2
b
4
(1) + rb
1
(N)
h
2
2
k
2
ϕ
1,N
+ 2h
2
b
4
(2)
.
.
.
h
2
2
k
2
ϕ
M−1,N
+ 2h
2
b
4
(M − 1)
h
2
2
k
2
ϕ
M,N
+ 2h
2
b
4
(M) + rb
2
(N)
C =
d −r 0 . . . 0 0 0
−r d −r . . . 0 0 0
0 −r d . . . 0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . d −r 0
0 0 0 . . . −r d −r
0 0 0 . . . 0 −r d
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
F
j
=
h
2
2
k
2
ϕ
0,j
+ rb
1
(j)
h
2
2
k
2
ϕ
1,j
.
.
.
h
2
2
k
2
ϕ
M−1,j
h
2
2
k
2
ϕ
M,j
+ rh
1
b
2
(j)
Kết luận: Trong chương 1 luận văn đã đưa ra các kiến thức cơ bản về
phương trình đạo hàm riêng, đặc biệt giới thiệu về thư viện RC2009 giải
số phương trình đạo hàm riêng. Các kết quả này là công cụ để sử dụng
thực nghiệm các bài toán được đưa ra trong Chương 2 và Chương 3 của
luận văn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
Chương 2
PHƯƠNG PHÁP CIM (Coupling
Interface Method)
2.1 Giới thiệu về bài toán biên với mặt phân cách
gián đoạn.
Xét bài toán tổng quát:
−∇(ε (x) ∇u (x)) = f (x) , x ∈ Ω ∈ R
2
u = ϕ; x ∈ ∂Ω,
trong đó, giả sử miền Ω , ∃ một mặt phân cách, ký hiệu là Γ (Hình 2.1)
Hình 2.1
Trong trường hợp khi hệ số ε(x) liên tục qua mặt phân cách Γ, bài toán
trở thành bài toán biên elliptic bình thường. Đối với bài toán này, ta có
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
thể tìm được lời giải số qua các phương pháp sai phân thông thường (như
đã trình bày tại Chương 1 của luận văn ).
Trường hợp hàm và các hệ số đạo hàm ∃ bước nhảy gián đoạn qua
mặt phân cách, ký hiệu: [u] = σ
1
,
ε
∂u
∂n
= σ
2
. Khi đó, tại các điểm lân
cận quanh Γ
1
, các phương pháp sai phân thông thường không thực hiện
được. Đối với các bài toán này, có hai hướng nghiên cứu giải quyết:
- Hướng 1: Xây dựng các phương pháp sai phân đặc biệt xung quanh
lân cận mặt phân cách để đưa bài toán gốc trên Ω về các hệ phương trình
sai phân tương ứng.
- Hướng 2: Sử dụng phương pháp chia miền với đường phân chia trùng
với mặt phân cách để đưa bài toán gốc trên Ω về hai bài toán với hai miền
Ω
1
và Ω
2
với hệ số liên tục.
2.2 Phương pháp CIM trong không gian một chiều
Xét bài toán:
−
ε (x) u
(x)
= f(x), x ∈ (a, b)\{x
∗
} (2.1)
u (a) = u
a
, u (b) = u
b
,
[u (x)]
x
∗
= τ,
εu
/
(x)
x
∗
= σ, (2.2)
trong đó ε > 0 và f(x) là hàm đủ trơn.(Hình 2.2)
Hình 2.2
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
Điểm x
∗
gọi là điểm phân cách nếu tại đó ∃ các bước nhảy τ và σ.
Chia [a, b] bởi N điểm chia với h =
b − a
N
,x
i
= a + ih
a = x
0
x
1
x
2
x
k
x
∗
x
k+1
x
N
= b
Điểm x
i
gọi là điểm trong nếu [x
i−1
, x
i
) hoặc [x
i
, x
i+1
) không chứa điểm
phân cách, ngược lại x
i
gọi là điểm ngoài.
Trong hình 2.2, x
k
,x
k+1
là các điểm ngoài.
Ta xét phương pháp sai phân của phương trình (2.1)
+ Đối với các điểm trong x
i
, ta có phương trình sai phân:
−(εu
)
(x
i
) = −
1
h
2
(ε
i+1/2
(u
i+1
−u
i
) −ε
i−1/2
(u
i
−u
i−1
)) + O(h
2
), (2.3)
trong đó :
ε
i+
1
2
= ε
x
i
+
h
2
; ε
i−
1
2
= ε
x
i
−
h
2
+ Đối với các điểm ngoài x
i
, ta có phương pháp CIM1 và phương
pháp CIM2:
2.2.1 Phương pháp CIM1 trong không gian một chiều.
Giả sử có một điểm phân cách x
∗
∈ [x
i
, x
i+1
)
Gọi miền mà x
i
xác định là mặt Ω
−
, ngoài ra là mặt Ω
+
.
Đặt: α =
(x
∗
− x
i
)
h
; 0 ≤ α < 1; β = 1 − α
ε
−
:= ε
x
∗−
, ε
+
:= ε
x
∗+
.
Thay giá trị hàm u (x) với công thức xấp xỉ:
u (x) ≈
u
−
(x) = u
i
+ (u
)
−
i+1/2
(x − x
i
), x
i
≤ x ≤ x
∗
u
+
(x) = u
i+1
+ (u
)
+
i+1/2
(x − x
i+1
), x
∗
≤ x ≤ x
i+1
trong đó: u
±
i+
1
2
chính là giá trị đạo hàm của u tại điểm x
i
và x
i+1
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
Hình 2.3: Phương trình tuyến tính của CIM1: u là đạo hàm của 2 hàm
tuyến tính trên [x
i
, x
i+1
), điểm phân cách x
∗
được xác định.
Kết hợp với điều kiện bước nhảy qua x
∗
ta có:
u
i+1
− βh
u
+
i+1/2
−
u
i
+ αh
u
−
i+
1
/
2
≈ τ
ε
+
u
+
i+1/2
− ε
−
u
−
i+
1
/
2
≈ σ
(2.4)
Từ đó:
u
−
i+1/2
=
1
h
ρ
+
(u
i+1
− u
i
) − ρ
+
τ − βh
σ
ε
+ O (h)
u
+
i+1/2
=
1
h
ρ
−
(u
i+1
− u
i
) − ρ
−
τ + αh
σ
ε
+ O (h)
(2.5)
trong đó :
−
ε
= αε
+
+ β
−
ε
,
−
ρ
±
=
ε
±
−
ε
Xét trên đoạn [x
i−1
, x
i
) ,
u
−
i−
1
2
=
(u
i
) − u
i−1
h
Như vậy :
−
εu
(x
i
) = −
1
h
ε
i
u
−
i+
1
2
−
u
−
i−
1
2
+ 0 (h) (2.6)
Tương tự, ta xây dựng lược đồ sai phân tại điểm x
i+1
.
Kết hợp (2.3) – (2.6) ta thu được hệ phương trình đại số tuyến tính với
∀u
i
(i = 1, 2, 3 , N − 1) giải được với thuật toán truy đuổi ba đường
chéo. Các thuật toán trung gian được biểu diễn bằng các thuật toán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
Thuật toán 1 và Thuật toán 2.
Thuật toán 1: CIM1 trong một chiều
1: procedure CIM1-1 D(x
i
, h))
2: for s = −1, 1 do
3:
D
s
u
i
, x
∗
s
, ρ
±
s
, ε
s
, β
s
, γ
s
← 1stDerivative − 1D (x_i, h, s)
4: if γ = 1 then
5: (τ
s
, σ
s
) ← dữ liệu nhảy nằm ở x
∗
từ phía x
i
tới phía còn lại.
6:J
s
← −
sp
+
s
τ
s
+ β
s
h
σ
s
/
ε
s
7: else
8: J
s
← 0
9: end If
10: u
i+
s
2
←
1
h
D
s
u
i
+ J
s
11: end For
12: −
εu
(x
i
) ← −
1
h
ε (x
i
)
u
i+
1
2
(u
i+
1
2
− (u
i−
1
2
13: end procedure.
Thuật toán 2: Đạo hàm bậc nhất trong không gian 1 chiều
1: procedure CIM1-1 D(x
i
, h))
2: if nếu có một điểm x
∗
trong x
i
để x
i
+ sh then
3: γ ← 1, α ← |x
∗
s
− x
i
|h, β ← 1 −α
4: ε
−
← lim
l←0
− ε (x
∗
s
+ st) , ε
+
← lim
l←0
+ ε (x
∗
s
+ st) .
5: esle
6:γ ← 0, α ← 1, β ← 0, ε
±
← ε (x
i
) , x
∗
= x
i
+ sh
7: end if
8: ε ← αε
+
+ βε
−
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên