Tải bản đầy đủ (.pdf) (61 trang)

phương pháp lặp mới giải hệ phương trình tuyến tính lớn và thưa

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 (1.12 MB, 61 trang )



Số hóa bởi Trung tâm Học liệu


ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC KHOA HỌC



ĐẶNG ANH TÚ


PHƢƠNG PHÁP LẶP MỚI GIẢI HỆ PHƢƠNG TRÌNH TUYẾN
TÍNH LỚN VÀ THƢA



LUẬN VĂN THẠC SỸ TOÁN HỌC







THÁI NGUYÊN - 2014


Số hóa bởi Trung tâm Học liệu



ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC KHOA HỌC


ĐẶNG ANH TÚ


PHƢƠNG PHÁP LẶP MỚI GIẢI HỆ PHƢƠNG TRÌNH TUYẾN
TÍNH LỚN VÀ THƢA

Chuyên ngành: TOÁN ỨNG DỤNG
Mã số: 60.46.01.12

LUẬN VĂN THẠC SỸ TOÁN HỌC

NGƢỜI HƢỚNG DẪN KHOA HỌC
TS. Lê Thanh Huệ




THÁI NGUYÊN - 2014


Số hóa bởi Trung tâm Học liệu


MỤC LỤC
MỞ ĐẦU 1

1.Lý do chọn đề tài. 1
2.Mục đích của đề tài. 2
3. Phạm vi nghiên cứu. 2
4. Nội dung nghiên cứu của đề tài 3
5. Phƣơng pháp nghiên cứu. 3
6. Bố cục của đề tài. 3
CHƢƠNG I: CÁC PHƢƠNG PHÁP GIẢI HỆ PHƢƠNG TRÌNH TUYẾN TÍNH 5
I.1 Hệ phƣơng trình tuyến tính. 5
I.1.1 Hệ phƣơng trình tuyến tính tổng quát. 5
I.1.2 Nghiệm của hệ phƣơng trình tuyến tính. 6
I.1.3 Các hệ phƣơng trình tƣơng đƣơng 6
I.1.4 Các dạng ma trận, dạng véctơ của hệ phƣơng trình tuyến tính. 7
I.2. Phƣơng pháp tìm nghiệm của hệ phƣơng trình tuyến tính. 8
CHƢƠNG II : PHƢƠNG PHÁP LẶP 12
II.1 Các phƣơng pháp giải trực tiếp. 12
II.1 Sự thay đổi thuật toán trong tính toán cỡ lớn. 12
II.2. Những khó khăn của các phương pháp giải trực tiếp. 13
II.2.1 Phương pháp khử Gauss. 13
II.2.2. Phương pháp nhân tử hóa Cholesky
14
II.2.3 Vấn đề Fill – in ( suy giảm độ thưa )
15
II.2.4. Vấn đề truy cập đối với ma trận
18
II. 3. Các phƣơng pháp lặp cơ bản
18
II.3.1 Tách ma trận.
19



Số hóa bởi Trung tâm Học liệu


II. 3.2 Phép lặp Jacobi
22
II.3.3 Phép lặp Gauss-Seidel.
24
II.4. Phƣơng pháp nới lỏng
25
II.4.1 Phương pháp trên – nới lỏng liên tiếp
25
II.5. Các phƣơng pháp lặp dựa trên phép chiếu
26
II.5.1 phép chiếu song song
26
II.5.2 Phương pháp chiếu Kaczmarz
27
II.5.3 Phương pháp chiếu đồng thời của Cimmino
30
CHƢƠNG III. PHƢƠNG PHÁP LẶP MỚI TÌM NGHIỆM HỆ PHƢƠNG TRÌNH
TUYẾN TÍNH
33
III.1. Phƣơng pháp lặp cho hệ phƣơng trình tuyến tính
33
III.2. Phát biểu bài toán.
35
III.3 Cơ sở lý thuyết của thuật toán
36
III.4. Mô tả thuật toán.
41

III.5. Tính toán thử nghiệm.
43
Kết luận. 45
TÀI LIỆU THAM KHẢO 47
PHỤ LỤC 49





Số hóa bởi Trung tâm Học liệu



MỘT SỐ CÁC KÝ HIỆU VÀ ĐỊNH NGHĨA
Cho
n

là không gian Euclid. Ta sử dụng các ký hiệu và khác niệm:

n
x 
là véc tơ cột,
T
x
là véc tơ hàng.
Với
12
, , ,
n

n
x x x x 
, chuẩn của véc tơx, ký hiệu là
x
đƣợc định nghĩa
bởi:
2 2 2
12

n
x x x x

Tích vô hƣớng của hai véc tơ
1
,
n
ii
i
x y x y
, ở đây
1 2 1 2
, , , , , , ,
nn
x x x x y y y y

Ma trận A cấp
mn

1
11 12

21 22 2
12




.


.


.

n
n
mm
mn
a
aa
a a a
A
aa
a

Các ký hiệu det(A),A
-1
, A
T
, R(A), N(A), r(A) lần lƣợt là định thức, nghịch đảo,

chuyển vị, ảnh, hạch và hạng của ma trận A.
Phép chiếu
a. Định nghĩa phép chiếu: Giả sử cho trƣớc điểm
n
x 
và tập lồi đóng C khác rỗng.
Hình chiếu của x lên C, ký hiệu P
C
x xác định nhƣ sau:

c
P x C


inf
C
yC
x p x x y



Số hóa bởi Trung tâm Học liệu


b. Tính chất của phép chiếu: Phép chiếu xác định nhƣ trên có các tính chất quan trọng
sau:
i)
C C C
P P P


ii) Tính chất duy nhất: điểm duy nhất P
y
đƣợc đặc trƣng bởi
y
PC

,0C Py y Py

iii) P là ánh xạ không dãn.
Vài trƣờng hợp cụ thể:
C là hình cầu đơn vị:
:1C x X x
. Khi đó P
C
x = x, nếu
xC
:
/
C
P x x x
, và trƣờng hợp khác.
C là orthan không âm:
:0C x X x
. Khi đó P
C
x = x
+
.
C là siêu phẳng:
;,C x X a x b

, ở đây
0a

bR
. Khi đó
2
,
C
a x b
P x x a
a

C là không gian con:
1
, ,
n
C span a a
, ở đó a
i
là các véc tơ cột độc lập
tuyến tính của ma trận A. Khi đó:
1
**
C
P x A A A A x

Các trƣờng hợp còn lại với 1 < m < n -1 là bài toán khó tƣơng đƣơng với việc giải
một hệ đại số tuyến tính.





Số hóa bởi Trung tâm Học liệu



DANH MỤC HÌNH VẼ - BẢNG BIỂU
Hình 1: Phép chiếu Kaczmarz trong không gian 2 chiều
Hình 2: Mô tả ý tƣởng thuật toán
Hình 3: Minh họa bài toán bổ trợ
Bảng 1: Kết quả tính toán trên một vài bộ dữ liệu chuẩn.



1

Số hóa bởi Trung tâm Học liệu


MỞ ĐẦU
1.Lý do chọn đề tài.
Trong suốt thời gian qua luôn luôn có cuộc cạnh tranh liên tục giữa các
phƣơng pháp lặp và các phƣơng pháp giải trực tiếp các bài toán cỡ lớn xuất hiện
trong thực tiễn. Ở một lớp bài toán này thì phƣơng pháp giải trực tiếp chiếm ƣu thế,
ở một lớp bài toán khác, các phƣơng pháp lặp lại tỏ ra hiệu quả hơn. Có những bài
toán do kích cỡ số liệu tƣởng chừng nhƣ chỉ có thể sử dụng các phƣơng pháp lặp,
nhƣng rồi sự tiến bộ về khả năng tính toán và lƣu trữ vƣợt trội của máy tính đã cho
phép các phƣơng pháp trực tiếp đua tranh.
Nhu cầu tìm kiếm lời giải của hệ phƣơng trình tuyến tính nhƣ một công đoạn
tính toán, xuất hiện rất thƣờng xuyên trong quá trình tìm lời giải cho nhiều bài toán

lý thuyết và thực tiễn trong khoa học kỹ thuật, trong các công trình nghiên cứu
khoa học, bài toán xử lý ảnh, bài toán tối ƣu trong kỹ thuật, trong kinh tế, … Bởi
vậy, nghiên cứu cải tiến các phƣơng pháp giải hệ phƣơng trình tuyến tính lớn và
thƣa xuất hiện trong các tính toán ứng dụng thực tế là một vấn đề quan trọng trong
khoa học tính toán. Do đó việc tìm kiếm các thuật toán hữu hiệu giải các hệ tuyến
tính đặc thù này thực sự là một yêu cầu cấp thiết.
Về mặt lý thuyết thuần túy, việc giải hệ phƣơng trình tuyến tính là không
khó. Tuy nhiên về mặt tính toán thực tiễn, việc thực hiện liên tục các phép tính với
sự sai số, có thể biến một bài toán đơn giản thành một bài toán rất phức tạp nhiều
khi là không thể thực hiện đƣợc.
Phƣơng pháp truyền thống giải hệ phƣơng trình tuyến tính không suy biến là
rất hoàn hảo về mặt lý thuyết. Song trong thực tế các bài toán trong các lĩnh vực
2

Số hóa bởi Trung tâm Học liệu


khoa học kỹ thuật, cũng nhƣ trong lĩnh vực kinh tế đòi hỏi ngày một cao và cả tính
ổn định trong tính toán.
Đặc biệt các phƣơng pháp trực tiếp áp dụng cho các hệ tuyến tính lớn và thƣa
có thể dẫn đến các “fill-in” cao làm tràn bộ nhớ trong quá trình tính toán. Hơn nữa,
ngày nay không có kỹ thuật hữu hiệu nào để tính “fill-in” cực tiểu. Gần đây, có một
thuật toán xấp xỉ cho bài toán “fill-in” cực tiểu đã đƣợc đề xuất nhƣng chƣa rõ tính
hiệu quả thực sự của nó. Mặt khác do sự tích lũy sai số trong quá trình tính toán
nên các phƣơng pháp giải trực tiếp thƣờng kém ổn định. Trong các trƣờng hợp nhƣ
vậy, phƣơng pháp lặp chiếm ƣu thế và đƣợc sự dụng rộng rãi hơn.
Thông thƣờng thì các phƣơng pháp lặp tận dụng đƣợc tốt hơn tính thƣa và
tính đƣờng chéo của ma trận đầu vào, cho phép bỏ qua các phần tử bằng 0 không
cần thiết để giảm yêu cầu lƣu trữ ở bộ nhớ, nhằm tăng cƣờng khả năng tính toán cả
về độ lớn và thời gian cho lớp các bài toán siêu kích cỡ và ma trận hệ số thƣa. Để

giải quyết những yêu cầu trên, em đã tìm một hƣớng tiếp cận mới để giải hệ
phƣơng trình tuyến tính cỡ lớn và sử dụng phƣơng pháp lặp.
2.Mục đích của đề tài.
Nghiên cứu các thuật toán lặp và trên cơ sở đó đề xuất hƣớng tiếp cận thuật
toán lặp mới giải hệ phƣơng trình tuyến tính cỡ lớn và thƣa.
3. Phạm vi nghiên cứu.
Nghiên cứu phƣơng pháp lặp mới để giải hệ phƣơng trình tuyến tính lớn và
thƣa.
3

Số hóa bởi Trung tâm Học liệu


4. Nội dung nghiên cứu của đề tài
- Tìm hiểu sự phát triển các phƣơng pháp lặp nhƣ: phƣơng pháp gradient liên
hợp, Lanczos, phƣơng pháp lặp Krylov,….
- Nghiên cứu các phƣơng pháp chiếu trực giao liên tiếp của Cimmino,
Kaczmarz,
- Tiến hành xây dựng thuật toán chiếu lặp mới, ứng dụng cho việc tìm nghiệm hệ
phƣơng trình tuyến tính cỡ lớn và các hệ gần thoái hóa.
- Lập trình theo các modul của thuật toán đã xây dựng.
- Tính toán chạy thử nghiệm trên các bộ dữ liệu chuẩn, đánh giá kết quả cụ thể.
5. Phƣơng pháp nghiên cứu.
- Nghiên cứu các kiến thức cơ sở về hệ phƣơng trình tuyến tính
- Nghiên cứu lý thuyết về các phƣơng pháp lặp.
- Nghiên cứu lý thuyết về các phƣơng pháp chiếu liên tiếp
- Nghiên cứu, xây dựng thuật toán lặp mới ứng dụng giải hệ tuyến tính lớn
và thƣa.
- Ngôn ngữ lập trình C/C++ trên môi trƣờng Windows.
6. Bố cục của đề tài.

Luận văn đƣợc trình bày trong 50 trang, đƣợc chia làm 3 chƣơng:
Chƣơng I: Các phƣơng pháp giải hệ phƣơng trình tuyến tính.
Chƣơng II: Phƣơng pháp lặp.
Chƣơng III: Phƣơng pháp lặp mới tìm nghiệm hệ phƣơng trình tuyến tính.
Kết luận.
4

Số hóa bởi Trung tâm Học liệu


Tài liệu tham khảo.
Phụ lục.
5

Số hóa bởi Trung tâm Học liệu


CHƢƠNG I: CÁC PHƢƠNG PHÁP GIẢI HỆ PHƢƠNG TRÌNH TUYẾN
TÍNH

I.1 Hệ phƣơng trình tuyến tính.
I.1.1 Hệ phƣơng trình tuyến tính tổng quát.
Hệ m phƣơng trình tuyến tính n ẩn
1, 2
, ,
n
x x x
hệ số thuộc không gian véc tơ
n


là hệ có dạng:
11 1 12 2 1 1
1 1 2 2

;

nn
m m mn n m
a x a x a x b
a x a x a x b
(1.1)
Hay có thể viết gọn hơn:
1
, 1, ,
n
ik k i
k
a x b i m

Trong đó
,
ik i
ab
là các phần tử thuộc không gian véc tơ
n

;
ik
a
gọi là hệ số

của ẩn
k
x
,
i
b
gọi là hệ số tự do,
1, , ; 1, .i m k n

Hệ phƣơng trình (1.1) gọi là hệ phương trình tuyến tính tổng quát.
Đặc biệt nếu
1
0
m
bb
thì hệ (1.1) có dạng

1
0, 1, ,
n
ik k
k
a x i m
(1.2)
Hệ phƣơng trình (1.2) đƣợc gọi là hệ phương trình tuyến tính thuần nhất.
6

Số hóa bởi Trung tâm Học liệu



I.1.2 Nghiệm của hệ phƣơng trình tuyến tính.
Mỗi nghiệm của hệ phƣơng trình (1.1) là một véc tơ
1
, ,
n
của
không gian véc tơ
n

sao cho khi thay ẩn
k
x
bởi thành phần
k
,
1, ,kn
vào hệ
(1.1) ta đƣợc m đẳng thức.
- Nếu hệ (1.1) có một nghiệm duy nhất thì gọi là hệ xác định.
- Nếu hệ (1.1) có nhiều nghiệm thì gọi là hệ không xác định .
- Nếu hệ (1.1) không có nghiệm thì gọi là hệ vô nghiệm.
Dễ thấy rằng véc tơ
0, ,0
luôn luôn là một nghiệm của hệ thuần nhất (1.2);
nghiệm này đƣợc gọi là nghiệm tầm thường.
I.1.3 Các hệ phƣơng trình tƣơng đƣơng
Hai hệ phƣơng trình tuyến tính
1
, 1, ,
n

ik k i
k
a x b i m

''
1
, 1, ,
n
ik k i
k
a x b i p

Đƣợc gọi là tƣơng đƣơng nếu mỗi nghiệm của hệ này là nghiệm của hệ kia và
ngƣợc lại. Tức là các tập nghiệm của hệ phƣơng trình đó là trùng nhau.
Các phép biến đổi tƣơng đƣơng
Mỗi phép biến đổi không làm thay đổi tập nghiệm của các hệ phƣơng trình
gọi là phép biến đổi tƣơng đƣơng.
Dễ dàng chứng minh đƣợc rằng các phép biến đổi sau đây là các phép biến
đổi tương đương:
a) Thay đổi thứ tự các phƣơng trình của hệ (1.1)
7

Số hóa bởi Trung tâm Học liệu


b) Loại khỏi hệ (1.1) các phƣơng trình có các hệ số của các ẩn và hệ số tự do
đều bằng 0.
c) Nhân hai vế của một phƣơng trình với một phần tử
0k
.


d) Cộng hai vế của một phƣơng trình vào các vế của một phƣơng trình khác.
I.1.4 Các dạng ma trận, dạng véctơ của hệ phƣơng trình tuyến tính.
Tƣơng ứng với hệ phƣơng trình (1.1) ta có các ma trận sau:
11 12 1 11 21 1 1
1 2 1 2

,

nn
m m mm m m mm m
a a a a a a b
AA
a a a a a a b

Ma trận A gọi là ma trận của hệ phƣơng trình (1.1), hạng của ma trận A gọi
là hạng của hệ phương trình (1.1). Ma trận
A
nhận đƣợc từ ma trận A bằng cách
bổ sung thêm cột thứ n+1 là hệ số tự do của hệ phƣơng trình (1.1). Ma trận
A
gọi là
ma trận mở rộng của hệ (1.1)
Nếu sử dụng kí hiệu ma trận thì hệ phƣơng trình (1.1) có thể viết dƣới dạng
một phƣơng trình ma trận:
11

. . .

nm

xb
A
xb
(1.3)
Hệ thức (1.3) gọi là dạng ma trận của hệ phƣơng trình tuyến tính (1.1).
Nếu coi các véc tơ cột trong ma trận mở rộng
A
là:
8

Số hóa bởi Trung tâm Học liệu


12
, , , , 1,
j j j mj
jn
;
12
, , ,
m
b b b

Khi đó thì hệ phƣơng trình tuyến tính (1.1) có thể viết dƣới dạng véc tơ nhƣ
sau:

1 1 2 2

nn
x x x

(1.4)
Hệ thức (1.1) đƣợc gọi là dạng véc tơ của hệ phƣơng trình tuyến tính (1.1).
I.2. Phƣơng pháp tìm nghiệm của hệ phƣơng trình tuyến tính.
Định lý 1.1.Hệ phương trình tuyến tính (1.1) có nghiệm khi và chỉ khi hạng của ma
trận A bằng hạng của ma trận mở rộng
A
.
Chứng minh: Điều kiện cần: Giả sử hệ phƣơng trình tuyến tính (1.1) có nghiệm là
12
( , , , )
n
c c c
tức là :
1 1 2 2

nn
c c c

Nhƣ vậy là một tổ hợp tuyến tính của hệ véc tơ
12
, , ,
n
.
Suy ra
1 2 1 2
( , , , , ) ( , , , )
nn
LL
. Điều đó chứng tỏ
(A) ( )r r A


Điều kiện đủ: Giả sử
(A) ( )r r A
điều đó có nghĩa là hạng của hệ véc tơ
12
, , , ,
n
bằng hạng của hệ véc tơ
12
, , ,
n
.
Suy ra
1 2 1 2
dim( , , , , ) dim( , , , )
nn

Từ đó suy ra
1 2 1 2
( , , , , ) ( , , , )
nn
LL
và do đó
12
( , , , )
n
L
hay
tồn tại các phần tử
12

( , , , )
n
n
c c c R
sao cho :
9

Số hóa bởi Trung tâm Học liệu



1 1 2 2

nn
c c c
.
Vậy hệ phƣơng trình tuyến tính (1.1) có nghiệm.
I.2.1 Hệ Cramer : Hệ phƣơng trình tuyến tính (1.1) đƣợc gọi là hệ Cramer nếu ma
trận A là ma trận vuông khả nghich tức là
mn

det( ) 0A
.
Định lý 1.2 : Hệ Cramer

11 1 1 1
11




nn
n nn n n
a x a x b
a x a x b
(1.5)
là một hệ xác định. Nghiệm duy nhất của hệ đƣợc tính bởi công thức

, 1, ,
j
j
x j n
(1.6)
Trong đó
det( )A


11 1 1
1



n
j
n n nn
a b a
a b a
(1.7)
Công thức (1.6) đƣợc gọi là công thức Cramer.
Chú ý : Định thức
j

là định thức nhận đƣợc từ ma trận A của hệ phƣơng trình
tuyến tính (1.5) bằng cách thay các phần tử ở cột thứ j (hệ số của ẩn
j
x
) bởi các
phần tử
1
, ,
n
bb
(các hệ số tự do).
Chứng minh : Theo (1.7) nếu khai triển định thức
j
theo cột thứ j ta có :
10

Số hóa bởi Trung tâm Học liệu



1
n
j k kj
k
bA
(a)
Trong đó
kj
A
là phần bù đại số của phần tử

kj
a
trong định thức det(A). Ta viết lại hệ
(1.5) dƣới dạng ma trận:

11

. . .

nn
xb
A
xb
(b)
Vì định thức
det( ) 0A
nên ma trận A có ma trận nghịch đảo
1
A
. Nhân bên trái
hai vế của đẳng thức (b) với ma trận
1
A
, trong đó:
1*
1
det( )
AA
A
, với

11 21 1
*
12



n
n n nn
A A A
A
A A A
là ma trận phù hợp của ma trận A và
hệ thức (a) ta có:

11
1



nn
xb
A
xb

Thay
1*
1
det( )
AA
A

ta đƣợc:
11

Số hóa bởi Trung tâm Học liệu



11
11 21 1
12
. .
1
. .
. .
n
n n nn
nn
xb
A A A
A A A
xb


1
1
1
1

1



n
kk
k
n
n
k kn
k
bA
x
x
bA

Suy ra:

1
1



nn
x
x
(c)
Từ đẳng thức ma trận (c) ta có

, 1, ,
j
j
x j n


Vậy công thức Cramer đƣợc chứng minh.

12

Số hóa bởi Trung tâm Học liệu








CHƢƠNG II : PHƢƠNG PHÁP LẶP

II.1 Các phƣơng pháp giải trực tiếp.
II.1 Sự thay đổi thuật toán trong tính toán cỡ lớn.
Khi ma trận hệ số lớn và thƣa, phƣơng pháp Gauss thƣờng khó áp dụng đƣợc
trong quá trình tính toán đòi hỏi không gian lƣu trữ và thời gian tính toán đƣợc tích
lũy quá lớn. Mặt khác nói đến “thƣa”là sự ƣu việt số lƣợng và vị trí các phần tử
khác 0. Giả sử cho trƣớc ma trận A cỡ
mn
và véctơ x có n chiều, nếu ma trận
thƣa thì việc tính toán ma trận véctơ Ax chỉ cần số các phép tính số học rất nhỏ, cỡ
n hoặc (nlogn), so với
2
n
phép tính khi ma trận đầy. ( Lƣu ý rằng tuy có thể là ma
trận đầy, nhƣng có những ma trận đƣợc xây dựng , chẳng hạn ma trận Toepliz, mà

tích ma trận véc tơ có thể it hơn (nlogn) lần, thậm chí tốt hơn )
Ta xét hệ phƣơng trình tuyến tính

Ax b
(2.1)
Với A là ma trận không suy biến (
det 0A
). Ở đây chúng ta tập trung trƣờng hợp
A không đối xứng (với A đối xứng, xác định dƣơng đã đƣợc nghiên cứu bằng
phƣơng pháp Conjugate Gradient ). Và ta chỉ ra nguyên nhân tại sao trong các tính
13

Số hóa bởi Trung tâm Học liệu


toán cỡ lớn, có sự thay đổi từ các phƣơng pháp trực tiếp Gauss sang các phƣơng
pháp lặp.
II.2. Những khó khăn của các phương pháp giải trực tiếp.
Các phƣơng pháp giải trực tiếp tạo thành một trong hai lớp kỹ thuật để giải hệ
phƣơng trình
Ax b
. Trong những phƣơng pháp này, nghiệm đúng
*1
x A b
nhận
đƣợc sau một số bƣớc biến đổi đã biết. Bộ nhớ dành cho ma trận hệ số thƣờng bị
tràn trong quá trình thao tác chi tiết với các hàng và các cột của ma trận. Hai ví dụ
nổi bật của phƣơng pháp trực tiếp đối với hệ số không đối xứng dƣơng là phƣơng
pháp khử Gauss và phƣơng pháp nhân tử hóa Cholesky tƣơng ứng.
II.2.1 Phương pháp khử Gauss.

Là một cách tiếp cận trực tiếp điển hình đối với các hệ tuyến tính phi –
Hecmit. Giai đoạn đầu tiên của quá trình giải là tính biểu thức nhân tử hóa dạng :

PLUA
(2.2)
Trong đó P là ma trận hoán vị cấp
mn
. Các phần tử

1 * *
* 1 *
,

* * 1 *
LU

L là ma trận tam giác dƣới cấp
nn
với các phần tử trên đƣờng chéo bằng đơn vị,
và U là ma trận tam giác trên cùng cấp.
14

Số hóa bởi Trung tâm Học liệu


Trong giai đoạn hai, bài toán (2.1) đƣợc pháp biểu lại theo ngôn ngữ các nhân
tử L và U bằng phƣơng trình (2.2). Vì các ma trận hoán vị là trực giao, có nghĩa là
1 T
PP
, kết quả nhận đƣợc hai hệ phƣơng trình tuyến tính:


T
Ly P b

Ux y

Sự phát biểu lại này, thoạt đầu có vẻ không hợp lý vì một hệ tuyến tính đƣợc
thay thế bởi hai hệ tuyến tính cùng cấp. ý tƣởng then chốt ở đây là ở chỗ hai hệ trên
rất dễ giải nhờ vào cấu trúc các ma trận.
Do độ phức tạp thời gian của phƣơng pháp khử Gauss đƣợc cho bởi
32
2 / 3 ( )nn
các phép toán số học. Phần tính toán chính của phƣơng pháp là tính
phân tích (2.1), cụ thể là tính L và U. Phƣơng pháp Gauss có thể đƣợc thực hiện tại
chỗ theo cách thay các phần tử của A bởi các phần tử L và U. Vậy đòi hỏi không
gian của phƣơng pháp là
2
()nn

II.2.2. Phương pháp nhân tử hóa Cholesky
Với những hệ xác định Hecmit, phƣơng pháp khử Gauss đƣợc đơn giản hóa
thành phƣơng pháp nhân tử hóa Cholesky. Trong giai doạn đầu phƣơng pháp
Cholesky, ta tính toán các nhân tử của tích.

.A L LH
(2.3)
Trong đó L là ma trận tam giác dƣới.

*
*

**
L




15

Số hóa bởi Trung tâm Học liệu


Với các phần tử trên đƣờng chéo là các số thực
0
ii
l
. Khi có thể gây nhầm lẫn, ta
sẽ dùng ký hiệu
A
L
cho tam giác Cholesky của A thay cho L trong (2.3)
Trong giai đoan tiếp theo, bài toán (2.1) đƣợc giải dựa trên các phần tử tam
giác Cholesky:

A
Lb

n
L x y

Cũng nhƣ trong phƣơng pháp khử Gauss, phần tính toán chủ yếu của phƣơng pháp

Cholesky là tính toán phân tích (2.3), nghĩa là phần tính của các ma trận tam giác
Cholesky L. Độ phức tạp tính toán của toàn bộ quá trình giải là
32
/ 3 ( )nn
các
phép toán số học. Có thể cải tiến phƣơng pháp Cholesky theo cách viết L thay vào
phần tam giác dƣới của A. Nhƣ vậy đòi hỏi không gian bộ nhớ của phƣơng pháp là
2
/ 2 ( )nn
. Lƣu ý rằng so với phƣơng pháp Gauss đối với các ma trận tổng quát,
việc nhân tử hóa các ma trận xác định dƣơng Hecmit chỉ cần xấp xỉ một nửa số
lƣợng các phép toán cũng nhƣ một nửa bộ nhớ.
Nhƣ vậy, các phƣơng pháp trực tiếp thƣờng gồm 2 giai đoạn. Số các phép tính
số học và nhu cầu bộ nhớ tƣơng ứng là lũy thừa cấp 3 và cấp 2 của bậc ma trận hệ
số. Những điều này rất khó chấp nhận trong quá trình tính toán cỡ lớn với cấp của
ma trận tăng rất nhanh theo thời gian. Trong
4
có trình bày một số cải tiến của
thuật toán này cho việc giải các bài toán cỡ lớn hơn.
II.2.3 Vấn đề Fill – in ( suy giảm độ thưa )
Ví dụ sau sẽ giải thích rõ sự khó khăn của các phƣơng pháp trực tiếp trong
trƣờng hợp các ma trận thƣa. Giả sử hệ xác định dƣơng, đối xứng cấp n với ma trận
hệ số thƣa
16

Số hóa bởi Trung tâm Học liệu



* * * *

**
**
**
A

(2.4)
Mà phần thƣa có dạng mũi tên. Do A đối xứng, lƣợc đồ lƣu trữ thƣa chỉ cần lƣu trữ
21n
các phần tử khác 0 của A. Tam giác Cholesky tƣơng ứng là

*
**
* * *
* * * *
L
   

(2.5)
Và bao gồm
2
()n
các phần tử khác 0. So sánh tính thƣa của phần tử tam giác dƣới
của A và L
A
có số các phần tử khác không nhiều hơn của A. Hiện tƣợng biến phần
tử 0 của ma trận thƣa A, thành phần tử khác 0 trong quá trình nhân tử hóa đƣợc gọi
là “fill-in”. Sự biến đổi đó không thể tránh đƣợc đối với phƣơng pháp phân tích
Cholesky cũng nhƣ lƣợc đồ phân tích nhân tử hóa khác. Fill-in là một hiện tƣợng
chung của các phƣơng pháp trực tiếp và có thể dẫn đến các vấn đề bộ nhớ trong
trƣờng hợp tính toán với số chiều lớn. Nếu A có kích thƣớc lớn sẽ khó giữ đƣợc

biểu diễn thƣa của nó do giới hạn dung lƣợng của bộ nhớ. Có thể xem “fill-in” nhƣ
thƣớc đo bộ nhớ cần thiết thêm vào dung lƣợng bộ nhớ cực đại đƣợc dùng trong
quá trình tính toán.
Liệu phần thƣa của ma trận A có ảnh hƣởng đến lƣợng fill-in trong quá trình
phân tích? Các phần thƣa khác nhau khi ta đánh số lại các ẩn và đổi chỗ các
17

Số hóa bởi Trung tâm Học liệu


phƣơng trình (đổi cột và hàng của ma trận ) có thể biểu diễn bởi phép toán hoán vị
đƣợc xác định nhƣ sau. Cho ma trận A và ma trận hoán vị P, ma trận
T
P AP
đƣợc
gọi là “hoán vị đối xứng” của A. Một ma trận hoán vị đối xứng của A trong công
thức (2.4) đƣợc cho bởi

**
**
**
* * * *
T
P AP


(2.6)
Trong đó chỉ các thành phần đầu tiên và cuối cùng và hai phƣơng trình tƣơng ứng
đƣợc đổi chỗ cho nhau. Với các ma trận A là đối xứng và xác định dƣơng, có thể
chỉ ra rằng với ma trận hoán vị bất kỳ P thì hoán vị đối xứng

T
P AP
của A cũng là
xác định dƣơng và đối xứng. Nói cách khác hoán vị đối xứng bảo toàn tính chất đối
xứng và xác định dƣơng. Vậy phƣơng pháp nhân tử hóa Cholesky có thể áp dụng
cho ma trận
T
P AP
trong (2.6) và cho ta ma trận tam giác Cholesky.

*
*
*
* * * *
T
P
L AP


(2.7)
So sánh các tam giác Cholesky L
A
trong (2.5) và
T
P
L AP
trong (2.7), ta thấy
rằng phép nhân tử hóa Cholesky không ảnh hƣởng đến phần thƣa của ma trận
T
P AP

. Số các phần tử khác 0 của L
A

2
()n
, trong khi chỉ có
()n
những phần tử
18

Số hóa bởi Trung tâm Học liệu


khác 0 trong
T
P
L AP
. Tiếc rằng việc tìm ra phép hoán vị đối xứng cho phép cực tiểu
hóa của “fill-in” là một bài toán tối ƣu tổng hợp có độ khó cao. Chính xác hơn, có
thể chỉ ra rằng vấn đề tìm “fill-in” cựu tiểu có độ phức tạp là NP đầy đủ, có nghĩa
là không thể có thuật toán thời gian đa thức theo bậc của ma trận để xác định nó
5

Tóm lại, các phƣơng pháp trực tiếp áp dụng cho các hệ tuyến tính cỡ lớn và
thƣa có thể dẫn đến khối lƣợng các “fill-in” cao làm tràn bộ nhớ. Hơn nữa, ngày
nay không có kỹ thuật hữu hiệu nào để tính “fill-in” cực tiểu. Gần đây, có một thuật
toán xấp xỉ cho bài toán “fill-in” cực tiểu đã đƣợc đề xuất nhƣng chƣa rõ tính hiệu
quả thực sự của nó
7
.

II.2.4. Vấn đề truy cập đối với ma trận
Các phƣơng pháp trực tiếp làm việc với các hàng và các cột của ma trận hệ số.
Vì vậy cần nhập vào một cách tƣờng minh. Các phƣơng pháp trực tiếp đòi hỏi phải
tính toán các bộ các hệ số của ma trận này. Điều này thƣờng cần rất nhiều cho các
phép toán số học, trong đó có những thủ tục hữu hiệu để tính trực tiếp tích của ma
trận hệ số với một véctơ cho trƣớc mà không cần lƣu trữ toàn bộ ma trận
2
,
6
.
Đây là một điểm yếu nữa của phƣơng pháp trực tiếp.
Các phƣơng pháp lặp đƣợc phát triển trong năm gần đây đã giải quyết khá tốt
vấn đề fill-in cũng nhƣ vấn đề truy cập ma trận hệ số.
II. 3. Các phƣơng pháp lặp cơ bản
Trong mục chúng này ta nghiên cứu các phƣơng pháp lặp để giải hệ tuyến tính
Ax b
. Các phƣơng pháp lặp bắt đầu với xấp xỉ đầu tiên
(0)
x
của nghiệm và qua
một bƣớc lặp bắt đầu với bƣớc lặp cho phép xác định xấp xỉ
(1)
x
tốt hơn. Quá trình

×