Tải bản đầy đủ (.docx) (30 trang)

Luận văn phương pháp lặp giải hệ phương tuyến tính số chiếu lớn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (550.04 KB, 30 trang )

i
Mục
lụcVÀ ĐÀO TẠO
BỘ GIÁO
DỤC
TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
Mục
lục
Mở
đầu



Chương 1.

Lời
Lờicam
cảmđoan
ơn
Một số phương pháp lặp cổ điển

Phương pháp Jacobi

1
3
3

VŨ THỊ VUI
3
thànhpháp
Luận văn


hoàn
tại trường Đại học Sư phạm Hà Nội 2 dưới sự
Giớiđược
thiệu
phương
VŨ THỊ VUI
5
của
Bình
hướng dẫnĐiều
của TS.
thầyHà
giáo
Hà Bình Minh. Sự giúp đỡ và hướng dẫn tận
kiện
hội
tụTS.Minh.
6
Tôi
xinVícam
luậnhọa
văn
côngquá
trình
nghiên
riêng
tình,
nghiêm
túcđoan
của

thầy
tronglà suốt
trình
thựccứu
hiệncủa
luận
văntôi.
này đã giúp
dụ
số
minh
PHƯƠNG PHÁP LẶP GIẢI HỆ PHƯƠNG TRÌNH TUYEN TÍNH
8
trình
nghiên
cứu và
hoàn
thành
thừaTôi
những
tôi Trong
trưởngquá
thành
hơn
rất nhiều
trong
cách
tiếpluận
cận văn
một tôi

vấnđãđềkếmới.
xin
Phương pháp Gauss - Seidel
SỐ CHIỀU LỚN
8
thành
nhà
khoasâu
học
đồngđối
nghiệp
với sự trân trọng và
bày
tỏ quả
lòngkhoa
biết học
ơn, của
lòngcác
kính
trọng
sắcvànhất
với thầy.
Giới thiệu phương pháp
9
biếtTôi
ơn.xin trân trọng cảm ơn Ban giám hiệu trường Đại học Sư phạm Hà Nội
1.2.2.Điều kiện hội tụ
Tôi xinSau
cam
các thông

tintrong
trích nhà
dẫn trường
trong luận
văn đỡ,
đã được
chỉ
2, phòng
đạiđoan
học,rằng
các thầy
cô giáo
đã giúp
tạo điều
1
ngành:
dụ số minh
họa Toán giải tích Mã số: 60 46 01 02
1.2.3.Ví Chuyên
rõ nguồn
kiện
thuậngốc.
lợi cho
tôi trong
học tập.TRÌNH TUYEN TÍNH 1
PHƯƠNG
PHÁP
LẶP suốt
GIẢIquá
HỆtrình

PHƯƠNG
Chương
phương
pháp
Krylovngười thân, bạn bè đã giúp đỡ, động
Tôi xin2.chânCác
thành
cảm ơn
gia
1
SỐ đình,
CHIỀU LỚN
thiệukiện thuận lợi để tôi hoàn thành khóa học Thạc sĩ cũng như
viên và Giới
tạo điều
4

Nội,
ngày
09
tháng
06
năm
2015
Tác
giả
hoàn thành
luận pháp
văn này.
Phương

Gradient liên hợp
1
Giới thiệu phương pháp
4
2.2.2.
Ví dụHà
số minh
họa 09 tháng 06 năm 2015 Tác giả
Nội, ngày
LUẬN VĂN THẠC SĨ TOÁN HỌC
Phương pháp GMRES
Giới thiệu phương pháp
Vũ Thị Vui
họa VĂN THẠC SĨ TOÁN HỌC
2.3.2.Ví dụ số minh
LUẬN
2.4. Phương pháp QMR
Người hướng dẫn khoa học: TS. Hà Bình Minh
2.4.1.Giới thiệu phương pháp
Vũ Thị Vui
2.4.2.Ví dụ số minh họa

1
6
1
6
2
1
2


Phương pháp Bi-CGSTAB

2

Giới thiệu phương pháp

2

2.5.2.Ví dụ số minh họa Hà Nội - 2015

2
2


ii231
dụng
của không
phương
pháp
lặp k chiều. Một số phương pháp
nghiệm
Ax —
b trong
gian
Krylov
Chươngcủa
3. hệ ứng
39
Mở
đầu

CHƯƠNG 1
lặp3.1.
thuộc
lớpdụng
này trong
phải kể
đến
là: phương
pháp gradient liên hợp của Hestenes
39
ứng
giải
phương
trình Poisson
và Stiefel (1952) cho hệ tuyến tính có ma trận A đối xứng xác định dương;
41
3.2. Ví dụ số minh họa
phương
pháp
GMRES
của
Saad

Schultz
(1986);
phương
pháp
QMR
của
Một số phương pháp lặp cổ điển

43
Kết luận
1. Lí
do chọn
đề tài
Freund
và Nachtigal
(1991); và phương pháp Bi-CGSTAB của van der Vorst
44
Tài liệu tham khảo Phụ lục
(1992).
Nhiều bài toán trong thực tế đòi hỏi phải giải hệ phương trình tuyến tính
Nội dung của chương này được tham khảo chủ yếu từ các tài liệu [II12] ■45
cỡ lớn có dạng Ax — b, trong đó A là ma trận có số chiều lớn và thưa (tức là
2. Mục
nghiên
cứu 0). Chẳng hạn, những hệ phương trình này
chỉ cóđích
mộtvàsốnhiệm
ít cácvụ
phần
tử khác
1.1.xuất hiện
Phương
pháp
ta giải
bàiJacobi
toán biên của phương trình đạo hàm riêng bằng các
Khảo cứu một số phương pháp lặp dùng để giải hệ phương trình tuyến tính cỡ
phương pháp rời rạc hóa, như phương pháp sai phân hoặc phương pháp phần

1.1.1.
Giới
thiệu
phương
pháp số cho phương trình đạo hàm riêng.
lớn, và
áp dụng
để nghiệm
tử hữu hạn. Những phương pháp cổ điển để giải hệ phương trình tuyến tính,
Xét hạn
hệ phương
trình tuyến
chẳng
như phương
pháp tính
khử Gauss, sẽ rất khó có thể áp dụng để giải

3.

những
hệ này.
Lý dovilànghiền
vì phương
Đối
tượng
và phạm
cứu pháp khử Gauss được áp dụng cho ma trận
Ax — 6,
(1.1)
đặc và khi áp dụng cho ma trận thưa sẽ làm cho số phép toán trở nên rất lớn,

Hệ phương
trình tuyến
tính
lớn,tính
phương
vi phân
hàm
không
thể thực
đối
vớicỡmáy
thôngtrình
thường.
Hơnđạo
nữa,
số riêng.
lượng bộ
được khai
triển hiện
dưới nổi
dạng
sau:
nhớ sử dụng cho phương pháp Gauss cũng trở nên rất lớn.

4.

Với những
lý do nêu
trình tuyến tính
X giải hệ phương

bi
Phương
pháp nghiên
cứutrên, phương pháp lặp
i
cỡ lớn được nghiênữ 21
cứuữ 22
từ -lâu.
r r ữ Theo phương pháp này, bắt đầu từ một vector
2n
x2 —
^
2 MATLAB,...
Sử
dụng
các
phương
pháp
giải
số,
ngôn
ngữ
lập
trình
khởi tạo ta sẽ sinh ra một dãy các vector
ữ"n 1 ®n2 "

5.

r


*;!>

X
n

bn

Đóng góp mới của đề tài
hội
tụ đến
Quá lặp
trìnhJacobi,
sinh vector
Để sử
dụngnghiệm
phươngX.pháp
ta giả thiết rằng từ
mavector
trận Asửcódụng
tính chéo
phép
nhân định
ma trận
Ả với
một vector nào đó. Phép nhân này rất tiết kiệm do Ả
trội,
được
nghĩa
như

Áp dụng
phương
pháp
lặpsau:
để giải hệ phương trình tuyến tính cõ lớn, sau đó
là ma trận thưa và chỉ cần số ít bộ nhớ để lưu trữ. Hai phương pháp lặp được
trình,1.1.1
thực(Ma
hiệntrận
các chéo
phương
pháp
bằng
phần mềm
MATLAB.
Địnhlập
nghĩa
trội).
Manày
trận
A được
gọi là
có tính chéo
biết đến nhiều nhất theo hướng này là phương pháp Jacobi và phương pháp
trội nếu giá trị tuyệt đối của các phần tử nằm trên đường chéo chính
Gauss-Seidel.
lớn hơn tổng các giá trị tuyệt đối của các phần còn ỉại nằm trên cùng
Bên cạnh đó, một lớp các phương pháp lặp được phát triển trong thời gian
hàng, tức là
gần đây là lớp các phương pháp Krylov. Đặc trưng của lớp các phương pháp

n
này quá trình lặp sẽ hội tụ đến
bước
kj| \au\, chính( ixác
- l , nsau
) . một số hữu hạn (1.2)
lặp. Cụ thể, quá trình lặp sẽ cho nghiệm x'^ sẽ là xấp xỉ tốt nhất


4
Ví dụ 1.1.1. Ma trận

A-

1
02

2
2
0
3

2

1
2
1
0


là ma trận chéo trội.
Trong phương pháp lặp Jacobi, trước hết, ta biến đổi hệ (1.1) về dạng
sau:
0>iiXị
Xi - X
i
x2
%
Tl
X —

Q/ịjXj

bị, (_z

1,77/),

bi
^ —Xj +
[i - 1 ,n),
3-ữii
ữii
0
6 12 '
bi
X
'
n
1


& 0^2
x2
2
n
1
^
bn2 ' 0
X
n
n
V,
s
B
Bx + g

9
1
9
2

~

9
n
(1.3)

bi , , 1 °’ j ~ i
trong đó gi -------- và B - {bij}^ với bij - < a
ữi ỉ
I-----


j*i.
ữịị
Ý tưởng của phương pháp lặp Jacobi là tính một dãy các vector
í \ / >? x < n f ,... dựa trên phương trình (1.3), cụ thế như
sau:
Phương pháp lặp Jacobi:
Đầu vào: Ma trận A, b.
Đầu ra: Dãy

, x'^ n \ . . . .

Với B , g xác định bởi (1.3), ta chọn vector khởi tạo và xác định các phần tử
của dãy

, x^ n \ ... theo các bước sau:


5


Bước 1: Tính

Bx^



Bước 2: Tính

g.




Bước k: Tính x'^

+■
Bx1^

+- g.

Điều kiện hội tụ

1.1.2.

Một phép lặp Jacobi chỉ đem lại hiệu quả khi vector x' y k ^ hội tụ đến
nghiệm chính xác X*. Điều kiện để một dãy sinh bởi phép lặp Jacobi hội
tụ được nêu trong Định lý

1.1.1

Định lí 1.1.1. Xét phương trình X — Bx H- g và vector khởi tạo
cho truớc. Nếu \B\ < 1 với một chuẩn nào đó, thì sẽ tồn tại X* sao cho
xr ’ — lim x'^ là nghiệm chính xác của (1.1). Hơn nữa, vector x'^ trong
k - f - |-x>
_____
phép lặp
;
X i) Bx[ữ) ■+■ g,
— Bx^ -Ỷ- g,
X Í.

2
x,k) _ Bx[k-i)+g^
sẽ hội tụ tới nghiệm duy nhất X*. Hơn nữa, sai số giữa X ^ và nghiệm
chính xác X* được đánh giá bằng các công thức sau:
\B\
X
\B\

K k )

- X

(1.4)

hoặc
\x[k}-xe\ $

\B\k
- \B\

(1.5)


Ta sẽ áp dụng định lý trên cho phép lặp Jacobi. Trong phép lặp Jacobi,
ma trận B được cho bởi
ữ 12 0

ữll
ữ 21
—0

a22

B - -

®1 n
ữn
ữ2
n
0

Ta thấy rằng nếu A là ma trận chéo trội thì
n
IB : = max V \bij\ = max V
j-l

I

I

j+i I "I

— max

tổng hàng thứ ỉ
a,;

< 1,

nên theo Định lý 1.1.1 phép lặp Jacobi là hội tụ. Như vậy,
Điều kiện cần để Phương pháp lặp Jacobi hội tụ là Ả là ma trận chéo trội.


1.1.3.

Ví dụ số minh họa

Ví dụ 1.1.2. Tìm nghiệm gần đúng của hệ phương trình sau:
4xi + 0.24x2 — 0.08x3 — 8
0.092!

<

3x 2 — 0.15x3 — 9

0. 04^1 -|- 0.08a:2 — 4x 3 — 20
\

Các ma trận tham số của hệ Ax — b tương ứng là:
4
A-

0.0
9
0.0
4

0.2
4
3

-0.08


0.0
8

-4

-0.15

8
, b-

9
2
0

• Bước 1: Kiểm tra tính chéo trội của ma trận A. Dê thấy A là ma trận
chéo trọi vì I — 4 ^ |ữl21 “1“ 1^131 — 0.32, |«221 > |ữ2l| “1“ |®231 và
ịữssị > |«3l| ■+- |«321-


Bước 2: Đưa hệ về dạng X — Bx + g như sau:
X

X
2
x3
_

0



-0.03
-0.01

's

0.06
0

0.0
X
2
i
0.0
X
5
2
0.02
0
_
*3
---V ----_______
B
'

2
3

— Bx + g.


5

Bước 3: Kiểm tra điều kiện hội tụ \B |x> < 1:
\B |jự - max(0 + 0.06 + 0.02; 0.03 + 0 + 0.05; 0.01 +0.02 + 0)
— max(0.08; 0.08; 0.03) — 0.08 < 1.

Vậy điều kiện hội tụ được thỏa mãn.
Bước ị: Chọn vector khởi tạo x'^ =

2 3 5

, rồi tính x^ l \x^ 2 \ .

theo Phương pháp lặp Jacobi, ta được bảng kết quả sau:
X u>

X

X (.2)

X

Í.3)

2

1.92

1.9094


1.909228

3

3.19

3.1944

3.194948

5

5.04

5.0446

5.044794

Đánh giá sai số: giả sử ta xem X k 3 ^ là nghiệm gần đúng cần tìm, ta sẽ
đánh giá sai số giữa X < K - 3 ^ và nghiệm chính xác x r ' theo công thức (1.4)
như sau:
|x^3) - x r L

\B\

ịx^ - x^2} L
1- \B\ V
0.08
<
max(0.000172; 0.000548; 0.000194)

1 - 0.08
- 0.0000476 ^ 5 X 10-5
<


1.2.

Phương pháp Gauss - Seidel

1.2.1.

Giới thiệu phương pháp
Tương tự như phương pháp lặp Jacobi, ta biến đổi hệ (1.1) về dạng sau:

Xi
Xị
x2

Xn

ữịj Xj
bi 1
ũịj
—Xj +■
bị_
0>ii
ữii
00
&21 0


bnl bn2


0

1
,
7
Xl


0

x

1

0

X
n

2

(1.6)

+

X
i


0 0 r ' &2n

x2

9
1
9
2

X
n

9
n

•0
0
0

0 Ö 12 r r r b l n

1

1

X — BịX + B2X -|- g


iJ>2


(1.7)

trong đó
9i Bị — [pijYi là ma trận tam giác dưới với bịj —

3 ^h


j

<

i.
B 2 — ipij) 1 là ma trận tam giác trên với bij —

aij

j ^ i,
j > i.


9

Y tưởng của phương pháp lặp Gauss-Seidel là tính dãy các vector
x'^, x^\ . . . , x'^ n \ . . . , dựa trên phương trình (1.7), như sau:

Phương pháp lặp Gauss-Seidel:
Đầu vào: Ma trận A, b.
Đầu ra: Dãy x'^, x ^ , . . . , X' k Ti )


5••••
Với Bị, B 2 , g cho bởi (1.7), ta chọn vector khởi tạo và xác định
các phần tử tiếp theo

của dãy như sau:



Bước

1: Tính

— BịX^ +

B2X^ -\- g.



Bước

2: Tính

— BịX^ +

B2X^ -\- g.



Bước


k: Tính

— BịX^

+ g.

Trong bước thứ k, do Bi là ma trận tam giác dưới nên phép nhân BịX^
chỉ liên quan đến k — 1 phần tử từ đến

Như vậy, phương

pháp
Gauss - Seidel cải tiến phương pháp Jacobi bằng cách dùng ngay những kết
quả vừa tính được cho các thành phần tiếp theo.
1.2.2.

Điều kiện hội tụ
Phương pháp Gauss-Seidel sẽ hội tụ khi ma trận A là chéo trội. Ta có

định lý sau:
Định lí 1.2.1. Nếu ma trận A có tính chéo trội thì phương pháp GaussSeidel sẽ hội tụ.
Chứng minh. Vì ma trận Ả có tính chéo trội, nên \B\
B

-

với

j 0,

bij — \ ữjj
^ Oỉịị

,

« = j,
.
.
i ^ j.

< 1, trong đó


10
12
1113
Đưa
về dạng
— BiX
+ B 2 X(1.3)
■+g như
sau:X* duy nhất.
ÁpBước
dụng
Định
lýhệ
1.1.1
suy
raX phương
trình


nghiệm
Nhận
xét:
V2:

max
——
max(0.08;
0.0515463;
0) —
0.08.
1— P i
Để đánhNhư
giá vậy
sai số,
X ta xét hiệu
000
X
1. Điều kiện l hội tụ của phương pháp lặp Gauss-Seidel
cũng giống với
i
xỉ
2
biẢxf^1}
xd
+-Xì
biÁx'f
~x^x 2 lặp—Jacobi. Phương
-0.03 0pháp

0
x2
phương
Gauss-Seidel
chung
hội tụ
0,08
5
- j<,i
Æ'L j>i
^
0.Q0Q1499
^ 1.3 Xnói10“
.
xi pháp1аЛ3)
x
-0.01
0.02
0
_
31 1-0.08
1 phương
nhanh hơn
pháp Jacobi.
_
*3
-V
Suy ra
B.
2. Phương pháp Gauss - Seidel tiết kiệm bộ nhớ, vì các thành phần vừa

-0.06
X
2
x
^ li 0ngay
IM
II để
- 0.02
'tính
IU +■
tính được, được sử dụng
các
thành
phần
tiếp
theo.

j<.i
0 0 0.05
x2
3
+ l&ijl
0 0 0II ^ ~ x * 11^’ “ _1’ĩỉ)‘
5
1.2.3.
Ví dụ số minh họa j>i
*3
y----B2
9


dụ
1.2.1.
Tìm
nghiệm
gần
đúng
của
hệ
phương
trình
sau
theo
phương
Đạt A
— B i X + B 2 X + g.
pháp lặp Gauss-Seidel:
— Xị
\ ^hội
Pi tụ
II \B 1^ < 1:
-X*11^-IBước 3: KiểmịxỶ^
tra điều
kiện
ẩXị + 0.24x2 — 0.08x3 =
(1.8)
+- 7i II- X* II aụ, (i - 1 , n)
- max(0 + 0.06< + 0.02; 0.03 + 0 + 0.05; 0.01 +0.02 + 0)
8 0.09zi 3x 2 — 0.15x 3 — 9
Giả sử II — max(0.08;
— x ụ 11^=

max
|xi fc~t“l)
0.08;
0.03)
— 0.08*1
< 1. I í/ci-l) * I
_
rp
1_ I—rp20- '_
0.04xi
-ị0.08a;2

4x3
l$ĩ$n
Vậy điều kiện hội tụV.
được thỏa mãn.rp '
Áp dụng (1.8) cho ỉ — «0, ta được
Các ma trận tham số của hệ Ax — b tương ứng là:
II ^ Q II ~.(fc-|-l)
II I
II'ik) „V 1 k 2
X [k+D IU^
,—
rồi tính X^ \X
Ị x>5\ .
- X II30
+7i0
II
- X
• Pio

BướcII X
ị: Chọn
vector
2 3khởi
5 X tạo
4
0.2
-0.08
ta được bảng kết8 quả sau:
hay theo Phương pháp lặp Gauss-Seidel,
4
A0.0
3
-0.15
, b9
7i
9
x[-k +
l} - X* \\:^0.0 ° 0.0 í ™,|e
11 2í ) „V
xl°>
-4 X11
xv —
|U>^ V II XK
r — |^>5 (1.9)
14- A o 8 X
0
x

K


K

7

1.92
1.909199
• Bước 21: Kiểm 7i
tra
tính chéo trội1.909348
của ma trận A. Dê
thấy A là ma trận
trong đó V — max
6 ch.60 troi1%“
n 1 - 4 ^ |ữl21 ■+" 1^131 — 0.32, \cL221 > |ữ2l| ■+"
1^111
3 VI
3.1924
9
3.194964
Pi
n
n

1^231 và Pi ■+■ li - ỵ l&yl ^ max V \bij\ - \B < 1,
5
5.044648
3.194952
3
““

lSíi^n
““
j-1
j-1
• Đánh giá sai số: giả sử ta xem x'^ là nghiệm gần đúng cần tìm, ta sẽ đánh
7i)
nên
+7*và- nghiệm chính
- ft(1 ~xác x r ~ theo~ công
» 0,thức sau:
giá sai số giữaftx'^
l-ft 1-ft

do đó
Ta có

ịx'^ - xr' \v ^ - — ịx^ - laụ.
V

li
— max max —^ max (A ■+■ 7í) - |5 I ,, < 1.

}
|a^3>
x [ 2II
1^
- 0.0001499,
Từ (1.9)
suy- ra
— -Xmax(0.0001499; 0.000123;

0, {k -r 0.0000017)
30).




14
CHƯƠNG 2

Các phương pháp Krylov

Nội dung của chương này được tham khảo chủ yếu từ tài liệu |2], mục 8.7.

2.1. Giới thiệu
Xét hệ phương trình tuyến tính
Ax — 6,
với A là ma trận thực không suy biến. Bắt đầu từ một vector
pháp Krylov sẽ sinh ra một dãy các vector
TÍ.O)
íl) T T T
Ju
'
'

phương

í.m)
'Ju
^


tiến tới nghiệm chính xác x'^ — X T A~ l b sau nhiều nhất m bước, với m ^ n.

Các Phương pháp Krylov: sử dụng phép lặp để sinh ra dãy thỏa mãn
x [ k } ^ x [ ữ ) + K k {r [ ữ \ Á), với mọi k - 1, 2 , . . . , trong đó Kỵ[r^\ A) là không gian
Krylov được định nghĩa như sau: K k [r' K ữ \ A) spanLr^, Ar^ ữ \ . . . , A k ~ 1 r^\, Ả :
— 1,2,...


15
Một số đặc điểm của các phương pháp Krylov:


Do có sai số luôn xảy ra trong quá trình tính toán (làm tròn số thực, phép
nhân, chia số thực,...) nên trên thực tế các phương pháp này không thể
kết thúc sau hữu hạn bước. Điều này dẫn đến câu hỏi về tốc độ hội tụ của
phương pháp là bao nhiêu.



Khối lượng tính toán trên mỗi phép lặp tương đương với khối lượng tính
toán của phép nhân ma trận với một vector.



Các phương pháp chỉ thích hợp khi A là ma trận thưa (là ma trận có
nhiều phần tử bằng 0), không thích hợp nếu A là ma trận đặc (là ma trận
có ít phần tử bằng 0).

Các phương pháp Krylov được trình bày trong chương này bao gồm:
1) Phương pháp Gradient liên hợp: Phương pháp này được đề xuất bởi


Hestenes và Stiefel (1952) cho hệ với ma trận Ả xác định dương. Ta gọi
\ Z \ A VZ T Az là chuẩn sinh ra từ ma trận xác định dương A. Theo
phương pháp này, ở bước thứ k ta sẽ đi tìm x'^ sao cho:
xlk) ^xlo) +Kk{r[0\A),
\x^ — X*\A — min \Z—X*\AZ'^x'^+Kit (r'-0\j4)

Chúng tôi sẽ mô tả phương pháp này trong mục 2.2
2) Phương pháp GMRES (generalized minimum residual method):

Phương pháp GMRES được áp dụng trong trường hợp ma trận A không
suy biến. Theo phương pháp này, ở bước thứ k ta sẽ đi tìm sao cho:
x{k) tx{0) +Kk{r^ữ\A),
\b — Ax^ | 2 — min |6 — Azị2.

Phương pháp GMRES sẽ được mô tả trong mục 2^


16
3) Phương pháp QMR ( quasi-minimal residual method): Phương pháp

QMR được áp dụng trong trường hợp ma trận A thưa (tức là ma trận có
nhiều phần tử bằng 0). Phương pháp này dựa trên thuật toán song trực
giao hóa Lanczos để xây dựng cơ sở không trực giao ... ,v'^ cho không
gian Krylov Kỵ[r^ ữ \ A) k chiều. Sử dụng hệ cơ sở này, ta có thể tính
toán xấp xỉ x'^ t -|- Kk[r^\ A) với phần
dư nhỏ nhất. Phương pháp QMR sẽ được mô tả trong mục 2A
4) Phương pháp Bi-CGSTAB: Phương pháp Bi-CGSTAB được áp dụng

trong trường hợp ma trận A là tùy ý. Phương pháp này được đề xuất

bởi Van der Vost (1992) và được mô tả trong mục

2.2.

Phương pháp Gradient liên hợp

2.2.1.

Giới thiệu phương pháp

2.5

Xét hệ phương trình tuyến tính
Ax — 6,

(2.1)

với Ả là ma trận thực, xác định dương, n X, n chiều, b e Rn và nghiệm chính
xác X* — A~ l b.
Ta ký hiệu \ Z \ A VZ T Az là chuẩn sinh ra từ ma trận A.
Xét phiếm hàm toàn phương F :R n —> ]R có dạng sau:
F{z) ị K s - a O I Ỉ ,
Ta nhận thấy rằng nghiệm chính xác x v — A~ l b chính là điểm cực tiểu của
hàm F{z) vì
0 = Fix*) = minFÍ2;).
R"
Như vậy việc tìm nghiệm chính xác x r ’ tương đương với việc tìm điểm cực
tiểu của hàm F{z). Để tìm cực tiểu hàm F{z), ta có thể sử dụng “Phương
pháp giảm nhanh nhất”, trong đó dãy X ^ —r x'^


được xây dựng


20
21
22
18
2317
k=2:
—- với Xị, Xn là các giá trị

được
theo
hướng
Gradient
của
Fma
như
sau:
Các
tính
chất
thuyết
quan
trọng
nhất
của
phương
pháp
này được

tómđềtắt

điều
kiện
số
của
trận
A,
c
còn• ccác
vector
cònlý
lại
thì
được
tính
theo
phương
pháp do
Arnoldi
(1951)
riêng
(rl 2 >)V 2 >
,2)
,2)
r
An
x',k+1)
.định
-ỤF{x[k}) 3- 5-Ax[k)-hb.

trong
sau: A.u-ồ’
6
vớirw
xuất
như
(pí.2))T^4p(2)
x
b-Ax^l)
=z b - +a2p
A{x[k)
+ akP[k))
của
malýtrận
Suy
ra sau:
(Afc-1-i)
(1)uđúng.
Định lí
2.2.1.
Giả sửliên
A là
trận
xác- pháp
định
dĩiơng
n X nhất”
n chiều và
Phương
pháp

Gradient
hợpma
khác
giảm
T
- với
bthực,
-“Phương
Ax^k)
akAp[k}
=nhanh
đó tốc
củathuat
phương
gradient
liên
hợp
được xác định bởi
(2) : Do Với
01.3)
ъ độ
^ кhội
"i- tụ
lj tií
tocinpháp
Gradient
Ỉ16Ĩ1
hôp
VcL

n
0 0tính
0khởi
giaoRhóa
6 tThuật
, toán
Gọi—>
xtrực
°^ bỉàArnoldi:
vector
tạo
và 171,sẽ
m được
^ n là
một
số hóa
nguyên
ở chỗ:
tạiMnbước
việc
toán
cực
tiểu
r[k}
akAp[k}
y/c.
Nếu y/c càng nhỏ thì phương pháp
sẽ- hội
tụ càng nhanh và ngược lại nếu
ta có

ĐầuNhận
vào:
Ma
trận
A,
b. 2cho
không
âm
nhỏ
pKm^
0. Các
vector
trên
không
gian
(Ả;nhất,
-|chiều,
thay
vì chỉ—cực
tiểu hóa
trên x'không gianr^k\
1 k ^
xét:
tại 1)
k sao

-ực1càng
lớn
thì phương

pháptasẽcóhội—tụ0càng chậm.
ự^Dyr^k+1)
_
+bkỷb>)
thuật
toán
dừng
lạiVị,

— V nliên
ra:
Dãybởi
các
ma
trận
VX2,...,
, . . . ; hợp
Hi,H
.., H
. v à sau:
m, Đầu
được
sinh
thuật
toán
Gradient
có2 i .các
tính
chiều
nhưnên

“Phương
pháp
giảm
nhanh
nhất”:
n , . . chất

nghiệm
của
hệ
phương
trình.
_

,
k
+
l
)
^
T
r
[
k
+
l
)
+

,

k
+
l
)
)
Тр
Кк)Ък
3
5
6
Suy
ra
Hi,H
■ . ■,
H n , .(5)
. . . đúng.
( a ) Ax—
tức
ỉà phương
pháp
Gradient
liên
hợp
tính
ra được
nghiệm chính
2b,
: ■
£(*-1-1)


min
F
{
:
|
u
r^
+
"
'
-ịu
r^),

k
2.2.2.
Ví dụ số minh họa
_ ,...,uk
(r^D)Vfc+1)
u
^2.2)
Khởi
tạo:
Cho
7^và
0, kết
đặt
/3
\rblà^sau
|2, nhiều
r'^/Ị3.

xác
của
phương
trình
Ax quả

nhất[Anm )bước.
Vậy {AỊỊ-1-1)
đúng
phép
quy nạp
đúng.
b —của
Ax'^ với i ^ k. trình sau bằng phương pháp

dụ Phương
2.2.1.
Ta
Cho
( b ) Do
[r^)Tp^
——
0 1,2,...:
với
0tìm
i nghiệm
<7^j 0^ m.
2.3.
[_A
(2),

[4)
pháp
ta^GMRES

với mọihệi 771, và các vector này hình thành hệ
Suy
ramk){A
k + 1) (2) đúng.
[ m vector
gradient
liên
hợp:
taquả
được
dãypcác
( c ) trực
[ r №Bước
)giao
Tp№
—1:
ị№n.
rTính
' j ) )Kết
Tr)Av'^.
^
vxây
ớ là,
i dựng
i 777,

^ 771.
trong
^ n. Từ
- ^ — 0 và [_A m ) theo
(2), tathuật
có _

u
(3)
:
Với
0
^
i
<
j
^
k
+
l,
từ
thuật
toán
Gradient
liên
hợp

[A
i)
Sử

dụng
công
thức
(2.2
k
+
r
m
K m )Ỵ
pKthiệu
) _00,với
và 0do^ đó
để[p^)TAp^
x'^ làXnghiệm
( dtoán
) {r
[pyi^)TAp^

i pháp
<—
j ^0,m,
> 0 với1 j < m.
2.3.1.
Giới
phương
• [1)Bước
— 1, 2,kr:
ta có 2: Với ỉ
l

b.0Định

( e ) của
[ r ^ )Ax
Tr —
^—
v ó i 0lýi được
< -j 1^chứng
m
r^ > 0 vxớ2 i j—< 771.1
2 , (r^)
- 1minh.
Xét hệ phương trình
tính
tính tuyến
hịỵ {v^)Tu.
(ỉ) Như vậy,
— b Định
— Ax'^
với
0 i khẳng
-^1m. 1 định rằng
. x 3phương pháp
1 Gradient liên hợp sẽ
lý|2.2.l|
_
Thuật
toán
Gradient
liên

hợp:
Axhịkv^
= b, và hỵ^i ỵ
• Bước
3: Tính w'^ u —" XÌ *_1
I w'y^ | 2 .
tính
ra được
của phương
trình việc
Ax —
sau phép
nhiềuquy
nhất
Chứng
minh.nghiệm
Chúng chính
ta bắt xác
đầu chứng
minh bằng
sử bdụng
nạpn
Đầu vào: Ma trận A, b. V
•toánBước
Nếu
hỵk—
0,
kvàvà
bước.
k để

chỉ
ra1-1
rằng
mệnh
đềbiến
i^Aỵ)
sau
làthể
đúng
với mọi
^ k ^ ra,
với
Ahọc
là trên
ma Ậ:
trận
thực
không
suytậpm
códừnglại.
không
đối 0 xứng,
vớiở
fợi
Đầu
DãyChọn
,
x
\
.

.
.
.
Khởira:tạo:

0
0
0
không
thì,
Bước
5.
n
gradient
hợp
tụ sau
n bước
lặp. Phương pháp này
đâyPhương
m là chỉpháp
số Nếu
đầu
tiên
vớiliên
p l ợ chuyển
^ —hội
0 :sang
nghiệm
Khởi tạo: Chọn £ Mn, và đặt
b — Ax^ ữ K

TPK—
l sử dụng

đặt
b0yl[-kJr1^

thường
được
cho
bài
do1đó
hết đượcresidual
n bước
p^
—Phương
vớiAx'^
0 ^ pháp
ỉ—
< toán
j ^ GMRES
k,lớn,

of[r^)
A~
b.tính
minimum
1(generalized
1không thể chạy
• (1)
Bước

5:
ĩv^/hk-ịIfc.
Cho k - 0 , 1 , . . . :
T
lặp.
Trong
tính
toán
thường
phần
(2) method)
(r^)Tr^
> 0thực
với 0tế,^ khi
i < 0.
k, [r^)
p^thì—ra
( rnăm
^ ) T r tích
^1986,
v ớtụ
i với
0sai^ số,
k, ( .dư
Aỵ
)sẽ(sau:
3mất
) dần
đưa
ýỉ ^tưởng

như
bắt
k=0: do Saad và -Schultz
T
•đầu
Bước
pớ ^1i vector
, t ậjpkỳ
777,
kphần
vàmất
dừng
lại:
là Ax
nghiệm
Ax
độ
chính
xác
giao
của
Ả.của
Dophương
đó, cần
[p^)
Ap^1:
—Nvà
0ế uvcác
0—

^thấy
k,
với
giá
trị

x r ~^ 0ibất
và làm
dưtính
r^ trực
bx'^—
^ 7^
0,
ịrW)Tr№
Suy
(Afc-1-i)
(3)
đúng.
—đánh
6.
thì,
sang
Bước
3 3chất
3 sau:
phải
tốc
hội
tụ
pháp,

có dựa
Địnhtrên
lý sau:
(4)
(ra
r ^Nếu
) rgiá
r ^không

0độ
với
0chuyển
^ i của
j phương
^x'^
k, hội
pháp
GMRES
sẽ
sinh
ra
dãy
tụ 2.
đếntaX*
tính
[p[0))TAp{0)
Như
vậy,
thuật

toán Arnoldi
sau k bước sẽ cho kết quả là một ma trận

b 0—
0phương
^: ỉ +^ l,k.
Bước
Tính
(4)Định
: (5)2:lí
Với
^Ax^
ĩ x'^k}
< với
j sử
^A
thuật
toán Gradient
liênáp
(^4fc)
2.2.2.
Giả
pháp
gradient
liên hợp
cho hệ Ax
^v(2)
x^} + bởi
Kk(r^0\A),
(hợp

r ^dụng
) và
TjẠ)
U)
t.k)

;
/
[k+l)
,k)
,k}
J
,
k
^
m

tính
chất
sau:
các
vector
V
V
X k chiều
v
[
n (-Ao)
ru>
k

=
río)
_
ao^4pí.°)
=
4)

nhiên
đúng.
Chúng
taTa
giả-2
thiết
quy tốc
nạpa độ
rằngKhội
( A k)
đúng
=cột
với
2,(2mỗi
1 1giá
ta hiển

—(.4),
b đối
xứng,
xác
định
dương.

đánh
tụ
của
phương
ự,o)ỵr[o)
k
{j,W)TApW'
+
P
,


Ax
^
|2

min{
|6

Au
|2
I
u
t
+K
°\
A)\.

kk{r
trực

(tức
VỵVỵtỏ— lỵ) và tạo thành
một cơ sở của K k {r^ \ A). Ngoài
0 ^ giao
k <
m
và làchứng
đúng.
pháp
bằng
lượng
sau:
ự pU>
, i ước
) } Tr
{
k
+
i
)
_

^
f

,
k
)
_
a

k
A
p
{Tk ) j (r{k+l)\T r{k-ị-l)

rU)
-|Ị)

ữ p Í.0)
ra,
thuật
toán
Arnoldi
còn
cho
kết
quả

ma
Hessenberg
[k + 1) K k
r^> phương
r!»pháp
- atAp*\
ụụdụng
Điểm
nổi bật của
GMRES
là trận
nó [sử

Thật vậy,
r ’ t ) , hệ các vector trực
0 3 3 bt
fc)
_không
( rr{k-ị-l)
[ gian
i ) ) Tr,
kk [r^\
) _l)kp\k^
( Á),
[ i ) \ kT ^(-rmfc))V
chiều:
p{k+1)
chuẩn Ẹ R n là cở sở của
K_|_
: [к}
• (1): Với 0 ^ ; i < j •hu
^ k=l:
: k[r
từ }thuật
toán Gradient liên hợp và
[p^AP[k)Ap
hi +} rl, [r
hi
-v ^0.2 2\ . . . , v^ị — 1 K2 k (r^°\ Á), 1 ^ k ^ ra.
(/U) (1), (y-U)}
(3)
ta T',1)
có h*

span^1^,
— 0.6667, x k- ^ —
-I- aip^ — 3 5 5
ữi 2i h&k
_ (rí*>
$ k sau:
$ m. vector là vector
(4)-các
đúng.0vector trực
h- - v'^ 1như
k ^ i) hệ
(2.3)
TaSuy
xácra [A
định
chuẩn
_ (r^yâ-a^ií^v*
(r^2))"T rr{ 2)
2
ữi Ap^ —
_ ru>
hóa
của
vector
k
k
bix^- kvà
0.3333,
0 -1
14 vector

(5)chuẩn
:
Với
0
^
г
^
к
1,
từ
thuật
toán
Gradient
liên
hợp
Theo
thuật
toán,
tại
mỗi
bước
chỉ

\r^{Ak)
\p^y[l)
\(5)và -Ap
^ cần
_
(r;*>)ý<>
- ãkApOựY

0.
trong đó
0
0,(0) k
được lưu trữ. Công việc tính toán chủ yếu
mỗi bước
/3Ttại
:= |r'0)
|2, lặp chỉ là một phép
_ x'y-k\
rí.2)
_|_ b^pẠ)
_ 0 2của
2
saiHỵsốpl2)
Talàgọi
làcủa
ma
trận
con
k
X
k
chiều
Hỵ
bằng
cách
xóa đi hàng cuối
nhân ma trận Ap^ k \
0



27
24
25
26
Nhận
xét:
kcác
—|2
3,
thuật
toán
dừng
lại
vàphương
X
—0.5774
nghiệm
|г^0)
гл1^
г^//3

cùng
của
Hỵ.
Từ
bước
(3)
vàbài

(5)
của—
thuật
toán
Arnoldi
ta có

3 50.5774
6
Như
vậy,
vector
ta—
sẽ1.7321,
giải
toán
bình
tối thiểu
sau
đây:
0.5774
Вр
/3để
—tìmtại
của hệ phương
trình.
k~\~
1 k~\~ 1 Ạ }
min \ị3e - Ẽ k y |2.
(2.8)

• к=1:
Av^ — ^ hịỵV^ — ^y hịỵV^
b R k + wl]-h\ với mọi 1 ^ k < 5m
VI , Нг =
0.333
ỉ—1 y K - k \ 0.5774
ỉ—1
3 x'^ theo công thức
Sau khi tìm được vector
ta
sẽ tính nghiệm xấp xỉ
2.4.
Phương pháp QMR 0.5774 _
0.471
x và
' \ ) _ x № - ị - V ỵ y \ Từ đó ta có thuật toán GMRES
như sau:
_
Avym')0.5774

với k —4 m.
5
ỉ — 1 , у[1} Нх
0.333
1.732
2.4.1.
Giới thiệu phương
pháp
3
1

Viết
dưới
dạng
trận,tuyến
công tính
thức trên tương đương với т
Thuật
toán ma
GMRES:
Xét
hệ phương
trình
1.00
1.0001 1.0001
01
Đầu vào: Ma trận A, b.
AVm - VmHm,
(2.5)
• к=2:
Ax —với
b, k - m, 0.333 0.4714
0.577
Đầu ra: Dãy
x'^ 2 \ .0.8165
. . , xy-n\ . . . .
4
3
Khởi
tạo:
Cho

7^
0,
đặt
/3
|n0^
|2,
v'^
— đối
r^°V/ổ.

trong
trường
hợp
1
^
k
<
m
với A là ma trận thực không suy biến và có thể: không
xứng, với
У2
0.577
0.408
, н20.471 2.1667
AVk
VtHt
+
(é^)T
L
O

,
0
,
1
]
t
m\
l
Cho làk =
nghiệm
X*1,2,...:
A~ b.4 Phương pháp
QMR (quasi minimal
residual method) do
2
4
(z.oJ
0.577
0.4082
0
0.8660
Vk^Hk.
Freund và -Nachtigal
đưa
ra
năm
1991
với
ý
tưởng

tương
tự
như
phương
pháp
4
• Bước 1: Thực hiện thuật toán Arnoldi tính Vỵ,Hỵ,Hỵ.
GMRES:
bắt đầu
7^ x r ~ bất уkỳ
dư — b — Ax ^ 7^ 0,
Н2
Trong trường
hợp với
10.3333
^ kgiá
^ ratrị0.4714
(vì
ta có
[ 2—
}và
-0),phần
4.6188
-0.8165
• Bước
2: Tìm
nghiệm
bìnhx rphương
thiểu
0.4714

2.1667
phương
pháp
QMRvector
sẽ
sinhlàra
dãy cáccủa
x'^bài
hộitoán
tụ đến
dựa trêntốitính
chất sau:
Hk-VĨAVk.
(2.7)
х^
K
x [k) Ẹ ^,(0) _|_
k (\pếl)
r w A)- Hky\2.
min
2.0002 3.0002
3.0002
yt Rk
(2.9)
• к=3:
|& — Ax^ |2 — min{ |ö — Au |2 I u e x'^ + Kỵ[r^\ A)}.
Để
nghiệm của ( 2 . 4 ) , ta
sử dụng các ma trận H ỵ , H ỵ và V ỵ trong
• xác

Bướcđịnh
3: Tính
+ Vỵýyk\
Tương tự như phương pháp GMRES,
0.5774 phương
0.8165 pháp QMR
0 sử dụng hệ các
thuật toán Arnoldi. Nghiệm X ^ phải nằm trong không gian Kx'^
-|- Kk{r' K °\

vector trực chuẩn v'^
của không
Kỵ[r' \ i4), k ^ m :
Кч -^ K là cở sở
0.5774
-0.4082gian
-0.7071
A), do đó x'^ có thể được viết dưới dạng x'^ — x'^ + Vỵý^ với y{k) ^ rpa
0.5774 0.4082
0.7071
x^c (Ịịnh vector
sao chov^ 2 \ . . . ,
spanLĩ/1*,
— K k {r ữ , A), 1 ^ k ^ ra.
0.3333 0.4714
0
Tuy
nhiên,
điểm
khác

biệt
của
phương
pháp
QMR
2.3.2.
Ví dụ số minh họa
|6
0.4714
— Ax 2.1667
|2 —>■ 0.8660
min . so với phương pháp
- toán song trực giao Lanczos thay vì thuật toán trực
GMRES là sử dụng Ня
thuật
О T 0.8660 2.5000
l
k
Do
p
ẽ^>
[1,0,
e
R
^,V
và sau bắt

dụ
2.3.1.
nghiệm

của
hệk phương
bằngđầu
phương
pháp
v w - ạvTa
k ^ \tìm
+ 1 V k ^ - J,
giao hóa Arnoldi. Thuật toán song ООО
trực
giao hóatrình
Lanczos
với vector
GMRES:
(2^6) với k < ra, nên ta có „;■) :-r-0>//3, /3:- p>|a,
0
Xị
1
0.3333
và bổ sung thêm một vector khác
tùy ý 0.4714
là w ^ t О
với
|2 — 1
|6
Ax
|2
|6
i4a^0)
AV

y
|2
k
-1
2
-1
x

1
2
Н я - v'^). Thuật
0.4714
0.8660
(thường chọn
toán2.1667
Lanczos
sẽ tạo ra hai dãy các
.
.
;o)
Vk^iHkV
0 -1
1
- rО 0.8660 2.5000 1I2
k

K k

n


"
\pi-ứ - Ẽiy)\2.
r
8.0829
-2.0412 0.7071
A
• Khởi tạo: Cho —
với — b—Ax^ —
000
356
0.
;з)

111


28
vector v y i \ i — 1, 2 , . . . , v à w'j\ i — 1 , 2 , . . . độc lập tuyến tính, song trực
giao, tức là:
0, còn lại,
và mỗi dãy vector sẽ là cơ sở của hai không gian Krylov Kỵ[v l y - l \ Ă) và
K k {w^\ A T ), k ^ 1 tương ứng, tức là:
spanL?/1^,..., i;^] — Kkiv'^jA), spanL«/1^,..., w'^\ — K k {w^\ A T).

Thuật toán song trực giao hóa của Lanczos:
Đầu vào: Ma trận A, b.
Đ ầu ra: Dãy các ma trận Vị, V 2,..., V n , . . . ; Ti , T 2 ,..., T n , . . . và
T ị , T 2 , . . . , T n , -----Cho với

b — Ax ^ 7^ 0, tập Ị3 : — |r^ I2,


chọn U) 1 ^ e Kn với |iu^ I2 = 1, và giả sử


r^/Ị3,
0, k

Bước 1: Tính ỗk {w^) T v < y - k \ Nếu ỗỵ — 0, tập 777, k — 1 và dừng lại.
Nếu
không
thì, chuyển sang Bước 2.

• Bước 2:
tính OLỵ
[w'^)TAv'^/ỏk, Ị3ị : — €ị
n
^k ồk
Pk • "7
) •
Ok-1


0, và với k > 1,

Pk ỏk
T)
Ok-1

^(.Ar-l-l) A '\k) _ (ỵ {k) _
v


kV

Ị3 l ~!) ỹj{k-\-l) w'Js)
kV

k

;

— (Xkw^

— eỵWKk~l\


Bước 3: Tính pk+1 |ũ^ +1) |2, ơk+1 \w^k^1}\2.
Nếu Pk+I — 0 hoặc ơk+1 — 0, tập m k và dừng lại.
Nếu không thì, chuyển sang Bước 4.



1.

Bước

ị:


29
Định lí 2.4.1. Giả sử m là chỉ số ngắt của thuật toán song trực giao

Lanczos, với mọi 1 ^ k ^ m, ta có
_
V ík)] I=Kk{vW,A)
span\wyl\ . . . ,
— Kỵ[w^\ AT),
span[v 1.1)

(2.10)


ỗ j 7^ 0 với j — k,
0

với

(2.11)

j 7^ k, j — 1,... ,m.

Các vector . . . , v<[jn\ và W'k1\ . . . , độc lập tuyến tính.
Chứng minh. Các bước (2) đến (4) của thuật toán song trực giao Lanczos
suy ra (2.10) đúng. Sự song trực giao (2.11) được chứng tỏ bởi phép quy nạp:
với m — 0, và m ^ 1, k — 1, (2.11) hiển nhiên đúng. Chúng ta
giả thiết quy nạp rằng (2.11) đúng với mỗi 1 <■ k <■ m và chứng tỏ với
< ỉ < j ^ k -ị- 1 thì

{w'^)Tv^ — 0, {v'^)Tw'K^ — 0.
Vì k < m nên ôj 0 với j ^ k + l,Pim ¥= O,0fc+1 7^ 0, và các vector được
xác định.Chúng ta chứng tỏ rằng các vector
V .1)...,v :.k+1)

Đầu tiên, chúng ta chứng tỏ {w^) T v^ — 0 với ỉ ^ k. Cho ỉ — k : từ giả thiết
quy nạp và định nghĩa của

Otỵ, ta có

(«;»>) v*«>-------------—l{w'-i))TAvV Pk +1
------—Lt«'*)T^W
Pk+1

- 0.


30
Cho ỉ ^ k — 1, từ giả thiết quy nạp và định nghĩa của

ta được

-------—L(yi>)TV*> - ak{w'^) T v , ' k ^ - ft(ui»)V*_1>J
Pk
Ỷ-1
Pktl
_ -L^y^ín-I) +
PkỶ-1

atW

M

+ e{W


,i-i) } _ ^(„/oyv4-1*]

—?— L(ơi-i-i(^ fc) ) 2 V i ' K) H- ai{v'''k))Tw'KÌ} +
ei{v'{'k))Tw'''i~1)) Pk-tl

-

Suy ra { w ' ^ )

—Pk 0 với i < k — 1, và cho ỉ — k — 1, từ định nghĩa
+l
-1 Pkõk-l)\ — 0Pk
Chứng minh tương tự ta được [v'- i } ) T w' K - k ~ i ~ 1 ' f — 0 với mọi ỉ ^ k. Đặt v k :
T

— L ^ I , • • • , V ] Ị \ , W ỵ : — [ w u . . . , W ỵ ] , và các ma trận đường chéo
D ỵ : — dỉag ( ố i , . . . , ỏk), hệ thức (2.11) tương đương với phương trình
wĩv — D
m ^ J-ym •
Suy ra rank V — rank W — m.
m

m

Vậy các vector v^\ ..., v'


\ và w'^\ . . . , u độc


lập tuyến tính.

Tương tự như thuật toán Arnoldi, tại bước thứ

k, thuật toán Lanczos

sẽ cho kết quả là các ma trận Vỵ : — L^1^) • • •) v^\, Wỵ [w'^\ ..., và
hai ma trận Hessenberg tương ứng:
CC 1 /3 — 0

OL1 62 r r 0

P2 Oí2 ' • • :

Ơ2 Oí2 ' • •
■ ■ • • ' • • £fc

r

2

n : — ■ ’ ■ ■ ’ ■ • Pk
■•
0 ................ Pk-ị-1

, s k :-



• OLỵ

0 ................ (7 i _
fc+

• (2.12)


31
Ta gọi T ỵ và Sk là các ma trận con k X k chiều của T ỵ và Sỵ bằng cách bỏ đi
dòng cuối cùng của T ỵ và Sk tương ứng. Từ thuật toán Lanczos, với k ^ m ta

AVk - VtHft-VtTt + v^l\é»)T,
ATWt = WtHSt - wtst +

.

Để xác định nghiệm của ( 2 . 9 ) , ta sử dụng các ma trận Tfc,Tfc và Vỵ
trong thuật toán Lanczos. Nghiệm phải nằm trong không gian -|- Kỵ[r' K ữ \ i4),
do đó x'^ có thể được viết dưới dạng x'^ — x'^ + Vký^ với y{k) ^ rp phái
a

xác định vector y^ sao cho
|6 — Ax |2 —► min .
Tương tự như lập luận trong thuật toán GMRES, ta có
\b — AX\ 2 - |6 — j4a:'0> — AV k ý'' t ) |2
- |r;o> - V i + 1 T t r k ) la
-

trong đó ẽ*-1*

\VM{pél) - fkỹ'»)\2


|_1,1, - - -, 0jT - R ^ 1 . Như vậy để tìm vector y^ 1 ta sẽ giải

bài toán bình phương tối thiểu sau đây:
mịn -ĩ k y)\ 2 .
y

(2.13)

Sau khi tìm được vector y'^ k \ ta sẽ tính nghiệm xấp xỉ theo công thức + Vỵ Từ
đó ta có thuật toán QMR như sau:

Thuật toán QMR:
Đầu vào: Ma trận A, b.
Đầu ra: Dãy

x' k 2 \ . . . , x < y - n \ . . . .

Khởi tạo: Cho

ý= 0, đặt /3

|n0^ |2,

Cho k - 1,2,...:
Bước 1: Thực hiện thuật toán Lanczos tính Vfc,Tjt,Tfc.

— w'^ n°V/3.



32
33
Bước 2: Tìm vector là nghiệm của bài toán bình phương tối thiểu
k=2:
min ịpế^ - ĩky) | 2 . y
0.078
-0.4355
"
3
"
6.6933
0.6603
, T22.46
Bướcv 23:_ Tính0.704
X'k) - x'®
+ 14 ý9
28
0.704
-0.6119
0
59.1120
9
-0.0880
6.693
3
1.7737 0.0367
2.462
-52.5127
[2}

8
,y

• Ví dụ số
minh họa 0.1229 1.2745 1.2278
Ví dụ 2.4.1. Ta tìm nghiệm của hệ phương trình sau bằng phương pháp QMR:
k=3:
0.0783 -0.4355 -0.4127
X
1
2 - 10.7049
0
0.6603
0.6666
i
0 8 1
x2 —
9
0.7049 -0.6119
-0.6208
5 0 4
_
9
* -0.0880
3
6.6933
0
-52.5127
-53.2575
% - 2.4628

7-í.o)
= b—Ax^
• Khởi tạo: Chọn —
00 0 0 59.1120
59.8194
0 —
0.
0
0
0
Đặt
6.6933
-0.0880 -53.2575

199

59.8194
-52.5127
T« - 2.4628
Ị3 - \r[ữ}\2 - 12.7671, v[1} - w[1} - r[ữ}/Ị3 - 0.0783 0.7049 0.7049
0
59.1120
k=l:

3

«^3>
r-

1.4882 -31.8797 31.5027

6.693
3
T
Ví - 1 0.704
1
, Ti0.704
2.462
9
8
[1}
6.693
1.680
Nhận xét: tại Ti
k—
X—
- 3,3thuật toán, ydừng- lại và
0
nghiệm của hệ phương trình.
xw 0.1315 1.1842 1.1842

11


34

2.5.

Phương pháp Bi-CGSTAB

2.5.1.


Giới thiệu phương pháp
Thuật toán Bi-CG (Biconjugate Gradient) là sự mở rộng trực tiếp của

thuật toán Gradient liên hợp. Khác với thuật toán Gradient liên hợp chỉ hạn
chế cho ma trận A là xác định dương, thuật toán Bi-CG có thể giải hệ Ax — b
với ma trận A thực không đối xứng. Thuật toán Bi-CG liên quan đến thuật
toán song trực giao hóa Lanczos (1950) và được Fletcher đưa ra năm 1976.
Ta ký hiệu {v,w) V T W và \v I (v,v )1/í2 là chuẩn Euclide tương ứng. Thuật
toán Bi-CG được cho dưới dạng sau:

Thuật toán Bi-CG:
Đầu vào: Ma trận A, b.
Đầu ra: Dãy x'<2\ ..., x^n\ . . . .
Khởi tạo: Cho £ Mn với r^ — b — Ax ^ 7^ 0. Chọn f ^ E Mn với
(f Q\r [ 0 ) ) 7^ 0 và tập p 1 ^
[

r^ } ,p [ ữ )

r K °K

Cho Ả: — 0 , 1 , . . . , tính:
( f { k ) r[k)\
. Bưóc 1: ak

x[i+1> ■- ^

r[k-1-1)


r[k)

f{k-1-1)

ệ[k) _ akATpykK

ị f { k - HI) y,^Ar-t-l)\
Bước 2: bỵ :-------------ựk) >k)j »
p{k+l) r[k- H) _|_ hkplk^ pvk-\-\)
Định l í

_

(ikAplk)^

ệ[k- 1-1)

_|_

2.5.1. Giả sử A là ma trận thực không suy biến n X n chiều và

b £ R n . Gọi e R n là vector khởi tạo và với

7^ 0 , r ^ :


b — Ax^ữ\ các vector x'^k\p^,p^k\ r'^k\ được sinh bởi thuật toán Bi-CG
có các tính chất sau:
Có một chỉ số m đầu tiên với m ^ n sao cho


_ 0 hoặc

{p^, Ap

35
{Am) (1)

— 0 với i < j ^ 771,

(2) (r^,r^) 7^ 0 với i <171,
— [ý^\r^) 7^ 0 với i ^m,
(3) ịjjKÌ\Ap^) = [ATp^\p^) = 0 với i < j ^ m,

{pl[JỈ\ Ap1^) 0 với i < m,
(ị) (r^,r^) = [ỷ^\r'^) = 0 với ỉ < j ^ m,
(5) — b — Ax'^

với



^

m.
(6) Với ỉ ^ ra:

span[r^°\ r'^\ ..., r^]

— span[p^ữ\p^\ ...


,p^\ — Kị+i{r^ữ\ A ),

span\ỷ^\ r^\ . . . , f ^ ]

— span[p'K-0\Pk1\ ... ,p^\ — Ki+i[f^ữ\ A).

Chứng
minh.
Định minh
lý được
bởi phép
nạp(Ao)
và vềlàcơhiển
bản nhiên
giống như
chứng
củachứng
Địnhminh
lý 2.2.1
tínhquy
chất
đúng và với k ^ 0 bất kỳ suy ra
[Ak), (p^k},Ap^k)) ^ 0,
Từ (Afc), (2), (4) suy ra các vector r^\

^ 0 =ì> (Ak+ 1) đúng.
7^ 0 với i < k và song trực giao,

tức là

— 0 với ỉ < j < k,

và các vector r^, r^\ ỉ — 0 , 1 , . . . , k — 1, độc lập tuyến tính trong Rn. Do
đó k ^ n để có một chỉ số m đầu tiên với m ^ n sao cho {r^ m \ r — 0
hoặc {ỷ m \Ap m ) ) - 0.



Tuy nhiên, thuật toán Bi-CG lại chạy không ổn định, do độ lớn của
phần dư |r^ I rất thất thường khi i tăng lên: Thông thường chúng dao
động rất nhiều trước khi giảm dần về 0. Ngoài ra, độ chính xác của các
vector r^ k \ f

- \p^ k \ p < y - k \ và x'^ bị ảnh hưởng do sai số làm tròn khi một

t[ k

trong các thành phần
ựyk\r^k)) {fk\Ap-k))
I^ÍA) I \rW 15 |p^) I |yịp^) I ’
rất nhỏ.
Sự hội tụ của phần dư r^ trong thuật toán Bi-CG có thể được cải thiện
trong thuật toán Bi-CGSTAB được đề xuất bởi van der Vost (1992).


38 3637
(r^V^
2.5.2.
Ví Bi-CGSTAB
dụ OỊ

số _minh họa
Thuật toán
được cho dưới dạng sau:
Ví dụ 2.5.1. Ta tìm nghiệm của hệ phương trình sau bằng phương pháp Bipl 2) _ fí.2) -I- 61[pí-1^ — cư2v) —
-0.0871 -0.0170 0.1268
Thuật toán Bi-CGSTAB:
CGSTAB:
X
A ^ Đầu
* vào: Matrận A, b.
1
i
(fí.O) fí.2)\ k 2
Kn

x
Dãy
X \ . .0. , x8 \ 1. . . .
9
ữ Đầu
2 - ,1ra:
n , r_rou ----------5.9536, V - A p - -0.1572 -0.0089 0.0718
_
*3
pW)
Khởi(n°>,
tạo: A
Cho
t Mn
Chọn

5 0với 4
9Ax^ 7^ 0.
. b —
T
-14
"
t Mn
s — rr { k ) —a ỵ A p ^ — 10
0.4552 0.0951 -0.1110
V
<ữ
sao cho {r \ 13f^0>) 7^ 0 và "
tập
r^ ữ \ Cho k T—M
0,1,...
t- As - 10“
0.0517,
0.0815
0.0649
0.1832
, v ớ i — b—Ax
^ —1 9 9
• Khởi tạo: C :h o — 0 0 0
, u 3 - [t,t)
T
+■ a2p2 + 0ơ3s
Tính
Chọn
với =
( r ^ , r1^1) 7^


1 0 v à t ậ p p^
íf(o>
a
Bước
< ữ6Ư3
A p[k)Ỵ
-14 V APK
— s 1r'
—••
— 10
K* ự,0)’
0.4131 0.0615 -0.2057
t
As,
s

íf^0)
r-0))
\fW I = 4.6552 X 10
^ 0. — aỵApKk\
-7 81 41
a0
0.1494,
V -Ap-ữ} • k=0:
í 5, t )
Bước
2 :xét:
U)k^i
• Nhận

Tạiị kị ỳ—i 2 ta có Ir^"1"1^ I =5? 0 nên thuật toánT dừng lại và T
= IrW
akApk) =
s — r
2.0458 -3.1017 2.8744
ỹ,[k+- 1) ^{k) _|_ ữfcpí.fc) -|- cưfc+1s,
s — cư^ií,
T
X — 111
là nghiệm của hệ phương trình.
(M)
t — As — Dừng
- 0.1445,
, C0i —
lại, -21.9395
nếu Ịr^1^21.7266
I đủ nhỏ.
7.1934
Nếu không thì chuyển sang Bước 3.
^Ì) _ 2^0) _|_ ữ ũ p [ 0) _|_ WiS _
0.4450 0.8965 1.7579
Bước 3: Tính
T
ak
1.0006 0.0680
-0.2646
UD I - 1.0430,
, \fW
k '■ ự[0> jỹ <*>)
*0 - pra- - p{k+l)

-°-“«. f[k-t 1) _|
2

í

_ fU> -|-

2)

—( J j i v ) —

0.9968 0.0811 -0.2795
Bi-CGSTAB là thuật toán mạnh trong việc giải cả hệ cỡ lớn Ax — b với
• k=l:
ma trận
A thưa và không đối xứng. Tuy nhiên, mặc dù sự ổn định của Bif 0 - nhiều
)\
CGSTAB là íý^o)
tốt hơn
so với Bi-CG nhưng
nó1.9126
không0.3691
ổn định
bằng
3.8662
- - ° 0 1 9 1 ’ ” - Ap phương pháp QMR.
T
s —
— df-Ap^ —
1.0430 0.0750 -0.1909

t = As =

2.0110 0.4093 4.4513
+■ Clip+■ W2S =

r< 2 ) -S-UỈ2 -

T
, w2 = (M)

- 0.0532,

0.4815 0.8990 1.7551
T
0.9360 0.0533 -0.4278
,l^i.2)
|r-2) I - 1.0305,


39
C HƯ Ơ N G 3
ứng dụng của phương pháp lặp

Nội dung của chương này được tham khảo chủ yếu từ tài liệu |2], mục 8.4,
và tham khảo thêm tài liệu ỊỊHỊ.

3.1.

ứng dụng trong giải phương trình Poisson
Xét bài toán biên Dirichlet cho phương trình Poisson như sau:

-U x x -Uyy = f{z,y),

0 < x,y < 1,

u{x,y) — 0, với (x,y) e
trong đó Q ( ( x , y ) | 0 < x,y < 1\
]R2. Giả sử f(x,y) liên tục trên
Í2

ta giải (3.1) bằng phương pháp lưới (còn gọi là phương pháp sai

phân). Trước hết, ta phủ lưới
x-Xị-.-ỉh, y - y

j :

- j h , i,j -0,1,'"

,N -ị-1,

h :——------, N ^ 1 là số nguyên,
N +-1
lên miền

Giao điểm của các

đường thẳng đó gọi là

điểm lưới {i,j)


[xi,yj). Điểm kề của (Xi,ĩjj ) là các điểm [xị±i ,2/j) và

{xị,yj±i). Tập các

điểm trong
và tập các điểm biên

{{Xi^y^ị i,j = 1,2,..., N\,

d ữ h { { X ị ± i , y j ) , [ x ị , V j ± i ) \ i , j - 0, + lf.
Ta sẽ tìm gần đúng nghiệm u tại các điểm của Nếu lưới càng mau thì
nghiệm gần đúng cho ta hình dung nghiệm của bài toán liên tục càng chính
xác hơn.


40
Sai phân hóa điều kiện biên ta có
U ị j

- . - u ị x ^ y ^ ,

i , j

- 0, + 1.

Tiếp theo ta thay toán tử vi phân bằng toán tử sai phân. Từ công thức Tay
lo r

Uị±i j — Uii ±
suy ra


duịj l,0d2Uii . h3 d3Uii h4 d4Uii
±
+ —h
+
dx 2! dx 2 3! dx 3 4! dx A

d U ị j U ị — 1 j 2Uịj U ị — I j

h2

dx2
Tương tự

ỡ uịj

ỉlị l ý t2iỉlịj “I U ị— 1 _j

+ 0{h2).

-

h2

iV

+ 0{h2).

Thay các đạo hàm trong (3.1) bằng sai phân tương ứng, bỏ qua số hạng
0 { h 2 ) ta được phương trình sai phân sau:

4iíjj U ị — I j U ị - ị - i j U ị j — 1 U ị j - ị - i h /,
ụ, Ù) e
trong đó f i j

f{xị,yj). Vì điều kiện biên U ị j — 0 với [ xị, 2/jt ỠQhi do

đó U i j , 1 ^

^ N là nghiệm của hệ phương trình tuyến tính có dạng

4 U ịj

Uị— I j

U ịj—1

Uịj-ị-ị h fij,

ỉ, J 1,. . . , N,

u0j - UN+ÍJ - ui0 - UịĩN^ 1 - 0 với i,j - 0 , 1 , . . . , N + - 1 .

(3.2)

(3.3)

Đặt
u

{ u n , u 2 i , " ' , U N 1 , U 1 2 , ' " , U N 2 , - ' , U 1 N , ' " , U N N ) T,


b

h2{fn,' - , fN 1 , ' " , fÍN, " ' , /NN)T ,

ta được (3.3) tương đương với hệ phương trình tuyến tính có dạng
Au — b

(3.4)


41
42

với ma trận N X N :
4443
hay
«1
4
0
0 A n0 A ị 20
0
0
0.0039
1
1
1
Kết
luận
Tài

liệu
tham
khảo
A
«2
A0 - - A 21
4
0
0
0
0
0.0078 (3.5)
1
1
1
1
A
N -IịN
22
^3
0
0
0
0
0
0
0.0117
1
1
AN,N- 1 A N N 1

4
U\
0
0
4
0
0
0
0.0078
1 Kỳviệc
1 phương
1 pháp
[1] Phạm
Anh,nghiên
(2000),cứu
Giải
tích số,
NXBlặp
Đạitrong
học Quốc
gia Hà
Với
việc
hệ Nội.
phương trình
2 giải
-ta thu
- u là

0 hệ-1 phương

0
4
0
0
U
0.0156
Giải
trình
(3.4)
được
nghiệm
gần
đúng
của
hệ
1 lớn, luận
1 văn đã 1trình bày có hệ thống các vấn
tuyến tính số chiều
đề liên
22
[2]
J.
Stoer,
R.
Bulirsch,
R.
Bartels,
w.
Gautschi,
c.

Witzgall,
(2002),
-1
0 trình
0 (3.1).
0
4
0
0
U
0.0234
phương
1
quan đến phương
pháp 1lặp.
32
Introduction
- Springer.
«1
0
0
0 to-1numerical
0
0 analysis,
4
0
0.0117
1 pháp lặp cho
3 hệ phương
Luận văn đã trình bày được phương

trình tuyến
-1
2
0
0 J. Farlow,
0
0 (1982),
0
4
0.0234
[3] Stanley
Partial
Differential
Equations
for
1 phương 1trình Poisson, sử dụng
3
3.2. tính số
Ví chiều
dụ số lớn
minh
vàhọa
cho
Matlab chạy một vài
3
0
0
0
0
0

0
4
0.0352
Scientists and Engineers, 1Wiley. 1
ví dụ số. Tuy nhiên, luận văn còn có một số hạn chế3 như: hệ thống ví dụ đưa
Ví dụ 3.2.1. Giải phương trình Poisson sau:
ra
chưa
dạng và
còntrên
đơnbằng
giảnphương
...
Giải
hệ đa
phương
trình
pháp gradient liên hợp ta được u ® chân
^ ^ J thành
y ^ -^5cảm ơn các thầy, cô giảng dạy
Cuối cùng, một lần^XX^“yy
nữa em Jxin
0.0061 0.0103 0.0098 0.0103
0.0176
0.017
0.0098
0.017 0.0173
u{x,y)
— 0, cô
với

{x,y)
E đại
chuyên ngành Toán Giải tích,
các thầy
phòng
Sau
học trường Đại học
2

2

M

M


phạm
Nội
2.ukiện
Em
xin
chân
Sai
phân
hóa
điều
biên
tabởi
cóthành
Đồ

thị
củaHà
nghiệm
được
cho
Hình cảm
3.1. ơn thầy TS. Hà Bình Minh đã
tận tình hướng dẫn
này. Em,4.
xin bày tỏ sự cảm ơn
U i jem
u [hoàn
x y ) thành
- 0,bảni , luận
j - văn
0,1,...
u



đóng
góp của
các thầy
giúphữu
luậnhạn
văn được hoàn chỉnh hơn.
Sử dụng
phương
trìnhcôsaiđãphân
Uị-ị-ij " h 4uịj Uịj —1 U ịj-ị-ị h 1 ^ %•) J s * 3 ,

trong đó f ị j f { x ị , y j ) — X ị ĩ j j , h — 1/4 — 0.25, ta được hệ 9 phương
trình 9 ẩn sau:
4iín — U21 — U12 —
—u u

0.0039

+ 4U 2 I — u 1 —u 2 2 = 0.0078
3

-U21 + 4m3i

- u2
3



0.0117

—Un+ 4«12 — U22 — U13 — 0.0078
-u 1
2

- «12-I- 4m 2 - U32

- U23

2

-u 3 1 - U 22 + 4m32 - u 3 3


-

=

0.0156

0.0234

Hình 3.1: Đồ
thị4iíi3
của nghiệm
đúng u
-M12
- U23 —gần0.0117
U13
4^23
^33 0.25 nên
- chỉ thu
0.0234
Do ta giải hệ phương—U22—
trình trên
với-I-bước
lưới- bằng
được
- u 3chính
+ 4wxác
- 0.0352
nghiệm xấp xỉ, muốn có được -«32
nghiệm

hơn ta phải chia lưới nhỏ
2

hơn.

33


×