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

(Luận văn thạc sĩ) về một số thuật toán tính giá trị riêng của ma trận cỡ 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 (186.38 KB, 44 trang )

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

VŨ VĂN TẦN

VỀ MỘT SỐ THUẬT TỐN TÍNH GIÁ TRỊ
RIÊNG CỦA MA TRẬN CỠ LỚN

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

Thái Nguyên - 2015


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

VŨ VĂN TẦN

VỀ MỘT SỐ THUẬT TỐN TÍNH GIÁ TRỊ
RIÊNG CỦA MA TRẬN CỠ LỚN

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. NGUYỄN THANH SƠN



Thái Nguyên - 2015


i

Mục lục

Lời cảm ơn

iii

Mở đầu

1

1

Kiến thức chuẩn bị

3

1.1

Nhắc lại sơ lược kiến thức trong đại số tuyến tính . . . . . . . . . .

3

1.1.1


Tầm quan trọng của giá trị riêng . . . . . . . . . . . . . . .

3

1.1.2

Một số khái niêm và ký hiệu . . . . . . . . . . . . . . . . .

6

1.1.3

Bài toán giá trị riêng . . . . . . . . . . . . . . . . . . . . .

8

Không gian con Krylov . . . . . . . . . . . . . . . . . . . . . . . .

12

1.2
2

Một số phương pháp tìm giá trị riêng

15

2.1

Phương pháp luỹ thừa . . . . . . . . . . . . . . . . . . . . . . . . .


15

2.1.1

Lặp đơn vectơ

. . . . . . . . . . . . . . . . . . . . . . . .

15

2.1.2

Trường hợp đối xứng . . . . . . . . . . . . . . . . . . . . .

17

2.1.3

Lặp nghịch đảo vectơ . . . . . . . . . . . . . . . . . . . . .

18

2.1.4

Tính giá trị riêng bậc cao . . . . . . . . . . . . . . . . . . .

20

Phương pháp Arnoldi . . . . . . . . . . . . . . . . . . . . . . . . .


21

2.2.1

Cơ sở trực giao cho không gian Krylov . . . . . . . . . . .

21

2.2.2

Phương pháp Arnoldi tính giá trị riêng . . . . . . . . . . . .

23

Phương pháp Lanczos . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.2

2.3
3

Ví dụ số
3.1

27

Một vài giải thích cho phương pháp Arnoldi và phương pháp Lanczos 27



ii

3.2

3.1.1

Thuật toán QR . . . . . . . . . . . . . . . . . . . . . . . .

28

3.1.2

Thuật toán Chia để Trị của Cuppen . . . . . . . . . . . . .

29

Ví dụ số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.2.1

Phương pháp Arnoldi . . . . . . . . . . . . . . . . . . . . .

34

3.2.2


Phương pháp Lanczos . . . . . . . . . . . . . . . . . . . .

36

3.2.3

Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

Kết luận

38

Tài liệu tham khảo

39


iii

Lời cảm ơn
Tơi xin bày tỏ lịng biết ơn chân thành và sâu sắc đến TS. Nguyễn Thanh Sơn,
người thầy đã tận tình chỉ bảo, hướng dẫn tơi trong suốt thời gian làm luận văn.
Tôi xin chân thành cảm ơn sự giúp đỡ quý báu của các thầy, cô giáo đã tham gia
giảng dạy lớp cao học khóa 7 của Khoa Toán - Tin trường Đại học Khoa học - Đại
học Thái Nguyên, đã truyền thụ và mang đến cho tơi những kiến thức bổ ích trong
khoa học và cuộc sống.
Tôi xin cảm ơn sự động viên, giúp đỡ, tạo điều kiện của gia đình, bạn bè, đồng
nghiệp, Ban chuyên môn, Ban giám hiệu trường THPT Nguyễn Trung Ngạn - Ân

Thi, Hưng n đã dành cho tơi trong q trình nghiên cứu và hoàn thành luận văn.

Thái Nguyên, tháng 11 năm 2015
Vũ Văn Tần

Học viên Cao học Toán K7Y,
Trường ĐH Khoa học - ĐH Thái Nguyên


1

Mở đầu

Giá trị riêng đóng một phần quan trọng trong các ứng dụng của đại số tuyến
tính, là bài tốn điển hình trong nhiều lĩnh vực lý thuyết và ứng dụng thực tế. Những
phương pháp giải trực tiếp cho kết quả chính xác nhưng chỉ làm được với những bài
tốn cỡ nhỏ, không đáp ứng được các ứng dụng trong thực tế. Với bài tốn có kích
thước lớn phương pháp này là không khả thi và các giá trị riêng phải được tính bằng
các phương tiện khác. May mắn thay là có tồn tại một số kỹ thuật khác để tìm ra
giá trị riêng và vectơ riêng của ma trận. Những phương pháp này, là những phương
pháp lặp, làm việc bằng cách liên tục cải tiến xấp xỉ các giá trị riêng, và có thể được
chấm dứt bất cứ khi nào những xấp xỉ đạt được một mức độ phù hợp chính xác. Các
phương pháp lặp cho kết quả gần đúng nhưng đáp ứng được nhiều ứng dụng trong
thực tế, đặc biệt là các ma trận cỡ lớn. Nó hình thành cơ sở của nhiều đại tính tốn
giá trị riêng ngày nay.
Luận văn này chúng tơi đã tìm hiểu và trình bày "Về một số thuật tốn tính giá
trị riêng của ma trận cỡ lớn". Ngoài phần mở đầu và kết luận, luận văn này gồm ba
chương.
Chương 1: Kiến thức chuẩn bị. Chương này nhắc lại sơ lược các kiến thức trong
đại số tuyến tính như một số khái niệm và ký hiệu, bài tốn giá trị riêng và khơng

gian con Krylov.
Chương 2: Một số phương pháp tìm giá trị riêng. Nội dung của chương này nhằm
trình bày phương pháp lũy thừa, phương pháp Arnoldi và phương pháp Lanczos.
Chương 3: Ví dụ số. Chương này trình bày một vài giải thích cho phương pháp
Arnoldi và phương pháp Lanczos là thuật toán QR cơ bản, thuật toán chia để trị của


2
Cuppen, cuối cùng là một số ví dụ số.
Kết quả làm việc chính của chúng tơi là chạy những thuật toán đã biết trên MATLAB với những ma trận lớn đươc lấy từ thực tiễn.
Dù đã nghiêm túc nghiên cứu và rất cố gắng thực hiện luận văn, nhưng với thời
gian hạn chế cùng nhiều lý do khác, luận văn chắc chắn khơng tránh khỏi những
thiếu sót. Chúng tơi mong nhận được những ý kiến đánh giá, phê bình để luận văn
này hoàn chỉnh và nhiều ý nghĩa hơn.

Thái Nguyên, ngày 01 tháng 11 năm 2015
Vũ Văn Tần
Học viên Cao học Tốn lớp Y, khóa 01/2014 - 01/2016
Chun ngành Tốn ứng dụng
Trường Đại học Khoa học - Đại học Thái Nguyên
Email:


3

Chương 1

Kiến thức chuẩn bị
Chương 1 được viết dựa trên tài liệu tham khảo [1], [3], [4].


1.1

Nhắc lại sơ lược kiến thức trong đại số tuyến tính

1.1.1 Tầm quan trọng của giá trị riêng
Trong vật lý, giá trị riêng thường gắn với các dao động. Các đối tượng như dây
đàn, trống, cầu,... dao động ở tần số nhất định. Và trong một số tình huống chúng dao
động rất nhiều đến mức bị phá hủy. Ngày 07 tháng 11 năm 1940, cây cầu Tacoma
Narrows, Washington, Hoa Kỳ bị sập sau khi khai trương gần nửa năm. Gió mạnh
kích thích cây cầu quá nhiều khiến cây cầu bị sụp đổ. Một vài năm trước đây cây cầu
đi bộ Thiên niên kỷ ở London bắt đầu lắc lư và bị đóng cửa. Đây là những ví dụ nổi
bật của cấu trúc dao động.
Nhưng giá trị riêng xuất hiện ở nhiều nơi khác. Điện trường tại cyclotrones, một
hình thức đặc biệt của máy gia tốc hạt có dao động một cách chính xác để đẩy nhanh
tiến độ các hạt tích điện quay trịn quanh tâm của nó. Các giải pháp của phương trình
Schrodinger từ vật lý lượng tử và hóa học lượng tử có những giải pháp tương ứng với
dao động của các mô hình phân tử. Các giá trị riêng tương ứng với mức năng lượng
mà phân tử có thể chiếm. Nhiều giá trị đặc trưng trong khoa học là giá trị riêng.
Xét dao động dây là sự dịch chuyển của các vị trí tại x, 0 < x < L, và thời gian
t được ký hiệu là u(x, t). Chúng ta có phương trình vi phân có dạng
− ρ(x)

∂ 2u
∂u

p(x)
+
2
∂t
∂x

∂x

+ q(x)u(x, t) = 0,

(1.1)


4
với u(0, t) = u(1, t) = 0. Ở đây ρ(x) đóng vai trị của mật độ khối lượng, p(x) là
modul đàn hồi khác nhau tại địa phương.
Từ vật lý chúng tôi biết rằng ρ(x) > 0 và p(x) > 0 với mọi x. Để đơn giản chúng
tôi giả sử rằng ρ(x) = 1. Để tìm u trong (1.1) chúng tơi phân tích
(1.2)

u(x, t) = v(t)w(x),

trong đó v là một hàm mà chỉ phụ thuộc vào thời gian t, trong khi w chỉ phụ thuộc
vào biến không gian x. Với phân tích này (1.1) trở thành
v”(t)w(x) − v(t)(p(x)w′ (x))′ − q(x)v(t)w(x) = 0.

(1.3)

Bây giờ chúng tôi rút các biến phụ thuộc vào t theo biến phụ thuộc vào x
v ′′ (t)
1
=
(p(x)w′ (x))′ + q(x).
v(t)
w(x)
Chúng tơi có thể thay đổi t và x độc lập với nhau mà không cần thay đổi giá trị

trên mỗi vế của phương trình. Do đó, mỗi vế của phương trình phải bằng một giá
trị khơng đổi, chúng tôi biểu thị giá trị này bằng λ. Như vậy, từ vế trái chúng tơi có
được phương trình
−v ′′ (t) = λv(t).


Phương trình này có nghiệm v(t) = a. cos( λt) + b. sin( λt) với giả sử λ > 0. Vế
bên phải của (1.3) cho ta bài toán
− (p(x)w′ (x))′ + q(x)w(x) = λw(x),

w(0) = w(1) = 0.

(1.4)

Một giá trị λ thuộc (1.4) có một nghiệm khơng tầm thường (tức là khác không) được
gọi là một giá trị riêng, w là một hàm riêng tương ứng. Tất cả các giá trị riêng của
(1.4) là dương. Bằng phân tích (1.2) chúng tơi nhận được


u(x, t) = w(x)[a. cos( λt) + b. sin( λt)]
là một nghiệm của (1.1). Ta thấy (1.4) có vơ số các giá trị riêng thực dương 0 < λ1 <
λ2 < ... < λk , (λk → ∞ khi k → ∞), mỗi nghiệm khác không w(x) của (1.4) chỉ


5
cho ta những giá trị đặc biệt λk . Vì vậy, nghiệm chung của (1.1) có dạng


u(x, t) =


wk (x)[ak . cos(

λk t) + bk . sin(

λk t)].

k=0

Các hệ số ak và bk được xác định bởi các điều kiện ban đầu và kết thúc. Chúng tôi
giả sử



u(x, 0) =

ak wk (x) = u0 (x),
k=0

∂u
(x, 0) =
∂t



λk bk wk (x) = u1 (x).
k=0

Ở đây u0 và u1 là các hàm đã cho. Các wk tạo thành một cơ sở trực giao trong khơng
gian của các hàm khả tích vng L2 (0, 1). Vì vậy khơng khó khăn để tính tốn các
hệ số ak và bk . Ta thấy rằng bài tốn khó là giải quyết bài tốn giá trị riêng (1.4).

Phương trình (1.4) có thể được giải quyết chỉ trong phân tích tình huống rất đặc
biệt, chẳng hạn nếu tất cả các hệ số là hằng số. Nói chung phương pháp số là cần thiết
để giải quyết vấn đề của bài toán (1.4). Để giải quyết bài toán (1.4) chúng tơi xấp xỉ
w(x) bởi giá trị của nó tại các điểm rời rạc xi = ih, h = 1/(n + 1), i = 1, ..., n..
Tại thời điểm xi chúng tôi xấp xỉ các đạo hàm bởi các điểm khác biệt hữu hạn. Đầu
tiên chúng tôi viết
g(xi+ 1 ) − g(xi− 1 )
d
2
2
g(xi ) ≈
.
dx
h
Cho g = p

dw
chúng tôi nhận được
dx
g(xi+ 1 ) = p(xi+ 1 )
2

2

w(xi+1 ) − w(xi )
h

và cuối cùng, cho i = 1, . . . , n,



d
dw
p (xi )
dx
dx

≈−
=

w(xi+1 ) − w(xi )
w(xi ) − w(xi−1 )
1
p(xi+ 1 )
− p(xi− 1 )
2
2
h
h
h

1
[p(xi− 1 )wi−1 + (p(xi− 1 ) + p(xi+ 1 ))wi + p(xi+ 1 )wi+1 ].
2
2
2
2
h2

Lưu ý rằng ở các điểm cuối khoảng w0 = wn+1 = 0.
Chúng tôi thu thập tất cả các phương trình trong một phương trình ma trận



6












p(x 1 ) + p(x 3 )
2

2

h2


+ q(x1 )

p(x 3 )
2




p(x 3 )

− 2
h
p(x 3 ) + p(x 5 )h2 + q(x2 )
2

2




p(x 5 )

2
− 2

h


...
... 




2

h2



p(x 5 )
2

h2

hay

w1










w2 




=
λ

w3 




.. 

. 


wk

w1





w2 


w 3 ,

.. 
. 

wk

Aw = λw,
trong đó A là ma trận ba đường chéo đối xứng. Đây là một ví dụ về bài tốn giá trị
riêng của một ma trận thưa.

1.1.2 Một số khái niêm và ký hiệu
Các trường số thực và số phức được biểu thị tương ứng bằng R và C. Chúng tôi

biểu thị khơng gian vectơ có n thành phần thực bởi Rn và khơng gian vectơ có n
thành phần phức bởi Cn .





x ∈ Rn ⇔ x = 




x1





x2 

..  , xi ∈ R.
. 

xn

Khi chúng tôi làm việc với vectơ hoặc ma trận thực hoặc phức thì chúng tơi viết
như sau, ví dụ x ∈ Fn .

Tích vơ hướng của hai vectơ cỡ n trong C được định nghĩa là
n


(1.5)

xi y i = y ∗ x,

(x, y) =
i=1

y ∗ = (y 1 , y 2 , ..., y n ) là liên hợp chuyển vị của vectơ phức. Để đơn giản hóa các ký
hiệu chúng tơi biểu thị chuyển vị thực bằng một dấu sao.
Hai vectơ x và y được gọi là trực giao nếu x∗ y = 0. Ta ký hiệu là x⊥y.
Tích vơ hướng trong (1.5) tạo ra một chuẩn trong F
n

||x|| =

1

(x, x) = (
i=1

|xi |2 ) 2 .

(1.6)


7
Trong đó |xi | là modul của số phức hoặc trị tuyệt đối của số thực. Chuẩn này thường
được gọi là chuẩn Euclid hay chuẩn - 2.


Ma trận cỡ m × n trong trường F được ký hiệu là Fm×n ,


a
a12 · · · a1n
 11





a
a
·
·
·
a
21
22
2n

A ∈ Fm×n ⇔ A = 
 ..
.
.  , aij ∈ F.
.
.
 .
.
. 



am1 am2 · · · amn
Ma trận A∗ ∈ Fm×n ,







A =




a11 a21 · · · am1
a12 a22 · · · am2
..
..
..
.
.
.
an1 an2 · · · anm











là Hermite chuyển vị của A. Chú ý rằng với cách viết này vectơ cỡ n có thể được xác
định bởi ma trận cỡ n × 1.

Các khái niệm sau đây của các ma trận vuụng l c bit quan trng:

ã A Fnìn c gọi là Hermite nếu và chỉ nếu A∗ = A .
• Một ma trận Hermite thực được gọi là đối xng.
ã U Fnìn c gi l Unita nu U −1 = U ∗ , hay U ∗ U = In .
• Ma trận Unita thực được gọi là trực giao.
ã A Fnìn c gi l chun tc nu A∗ A = AA∗ . Ma trận Hermite và ma
trận Unita là chuẩn tắc.

Chúng tôi định nghĩa chuẩn của một ma trận theo chuẩn vectơ (1.6) là
||A|| := max
x=0

||Ax|||
= max ||Ax||.
||x||
||x||=1

Nếu U là Unita thì ||U x|| = ||x|| với mọi x.


8


1.1.3 Bài tốn giá trị riêng
Cho một ma trận vng A ∈ Fn×n . Tìm đại lượng vơ hướng λ ∈ C và vectơ

x ∈ Cn , x = 0 sao cho

Ax = λx,

(1.7)

(A − λI)x = 0

(1.8)

hoặc

có một nghiệm không tầm thường (khác không).
Định nghĩa 1.1. Cho cặp (λ, x) là một nghiệm của (1.7) hoặc (1.8) tương ứng thì
• λ được gọi là một giá trị riêng của A.
• x được gọi là một vectơ riêng của A tương ứng với λ.
• (λ, x) được gọi là một cặp riêng của A.
• Đặt σ(A) là tập tất cả các giá trị riêng của A. Ta gọi nó là phổ của A.
• Tất cả các vectơ riêng tương ứng với giá trị riêng λ cùng với các vectơ 0 tạo

thành một khơng gian con tuyến tính của Cn gọi là khơng gian riêng tương
ứng của λ.

• Một giá trị riêng λ là một nghiệm của đa thức đặc trưng
det(λI − A) = λn + an−1 λn−1 + ... + a0 .
Một nghiệm không tầm thường y của y ∗ A = λy ∗ được gọi là vectơ riêng trái

tương ứng với λ. Một vectơ riêng trái của A là một vectơ riêng phải của A∗ tương
ứng với các giá trị riêng λ, ta viết A∗ y = λy.
A được gọi là một ma trận tam giác trên nếu aij = 0 ∀i > j. Hay A có dạng


a
a
· · · a1n
 11 12




a22 · · · a2n 

 , aij = 0 ∀i > j,
A=
.
.
. . .. 




ann


9
thì chúng tơi có det(λI − A) =


n
i=1

(λ − aii ).

Một không gian con V ∈ Fn được gọi là bất biến đối với A nếu AV ⊂ V.

Định nghĩa 1.2. Một ma trận A ∈ Fn×n được gọi là tương đương với một ma trận
C ∈ Fn×n ta viết A ∼ C khi và chỉ khi có một ma trận không suy biến S sao cho

S −1 AS = C. Ánh xạ A → S −1 AS được gọi là một phép biến đổi tương đương.

Định lí 1.1. Hai ma trận tương đương có giá trị riêng bằng nhau với bội số tương
ứng bằng nhau. Nếu (λ, x) là một cặp riêng của A và C = S −1 AS thì (λ, S −1 x) là
một cặp riêng của C.
Định lí 1.2. (Phân tích Schur) Nếu A ∈ Cn×n thì có một ma trận Unita U ∈ Cn×n

sao cho U ∗ AU = T là một ma trận tam giác trên. Các phần tử trên đường chéo của
T là những giá trị riêng của A.
Nhận xét 1.1. Vậy, bằng cách tìm phân tích Schur, ta cũng có thể tìm được các giá
trị riêng của A.
Chú ý 1.1. Phân tích Schur không duy nhất.
Cho U ∗ AU = T là một phân tích Schur của A với U = [u1 , u2 , ..., un ]. Các phân
tích Schur có thể được viết là AU = U T . Cột thứ k của phương trình này là
k−1

tik ui , λk = tkk ,

Auk = λk uk +


(1.9)

i=1

nghĩa là
Auk ∈ span{u1 , ..., uk },

∀k.

(1.10)

Như vậy, k vectơ Schur đầu tiên u1 , ..., uk tạo thành một không gian con bất biến đối
với A. Từ (1.9) ta có vectơ Schur đầu tiên là một vectơ riêng của A (nhưng các vectơ
khác thì khơng phải).
Định lí 1.3. (Phân tích Schur thực)


10
Nếu A ∈ Rn×n thì có một ma trận trực giao Q ∈ Rn×n sao cho


R
R12 · · · R1m

 11



R22 · · · R2m 
T



Q AQ = 
.
.
..
.. 




Rmm
là tựa tam giác trên. Các khối chéo Rii là ma trận 1 × 1 hoặc 2 × 2. Một khối 1 × 1
tương ứng với một giá trị riêng thực, một khối 2 × 2 tương ứng với một cặp giá trị
riêng phức liên hợp.

Ví dụ ma trận 

α

β



 , α, β ∈ R có giá trị riêng α + iβ và α − iβ.

−β α
Tính phân tích Schur của ma trận Hermite là đơn giản. Đầu tiên chúng ta lưu ý

rằng A là Hermite tức là các tam giác trên Λ trong phân tích Schur A = U ΛU ∗ là

Hermite và chéo. Thật vậy, bởi vì
Λ = Λ∗ = (U ∗ AU )∗ = U ∗ A∗ U = U ∗ AU = Λ,
mỗi phần tử đường chéo λi của A thoả mãn λi = λi .Vì vậy Λ phải là thực.
Tóm lại ta có kết quả sau.
Định lí 1.4. (Định lý phổ cho ma trận Hermite)
Cho A là Hermite thì có một ma trận Unita U và một ma trận đường chéo thực
Λ sao cho

n

λi ui u∗i .



A = U ΛU =

(1.11)

i=1

Các cột u1 , ..., un của U là vectơ riêng tương ứng với giá trị riêng λ1 , ..., λn . Chúng
tạo thành một cơ sở trực chuẩn cho Fn . Phân tích (1.11) được gọi là một phân tích
phổ của A.
Định nghĩa 1.3. Tỉ số
ρ(x) :=

x∗ Ax
, x=0
x∗ x


được gọi là các tỉ số Rayleigh của A tại x.


11
Định nghĩa 1.4. Một ma trận P thỏa mãn P 2 = P được gọi là một phép chiếu.
Nếu P là một phép chiếu thì P x = x với mọi x trong vùng ảnh ℜ(P ) của P .

Thật vậy nếu x ∈ ℜ(P ) thì x = P y, với y ∈ Fn và P x = P (P y) = P 2 y = P y = x.
Định nghĩa 1.5. Một ma trận P được gọi là phép chiếu trực giao nếu
(i)

P 2 = P,

(ii) P ∗ = P.
Mệnh đề 1.1. Cho P là một phép chiếu, thì các phát biểu sau là tương đương
(i) P ∗ = P ,
(ii) ℜ(I − P )⊥ℜ(P ) tức là (P x)∗ (I − P )y = 0 ∀x, y.
Định nghĩa 1.6. Góc giữa hai vectơ x và y khác không được định nghĩa bởi
∠(x, y) = arcsin

xx∗
I−
||x||2

|x∗ y|
= arccos
.
||x||.||y||

y

||y||

Định nghĩa 1.7. Các ma trận G(i, j, ϑ) ∈ Rn×n là một phép quay, được định nghĩa
bởi








G(i, j, ϑ) = 







I
c

s
I

−s

c
I













trong đó c = cos(ϑ) và s = sin(ϑ), G(i, j, ϑ) là một ma trận trực giao.
Nếu x ∈ Rn và y = G(i, j, ϑ)∗ x thì



cx − sxj ,

 i
yk =
sxi + cxj ,



x .
k

k=i
k=j

k = i, j

Chúng tơi có thể buộc yj bằng khơng bằng cách thiết lập
c=

xi
,
|xi |2 + |xj |2

s=

−xj
.
|xi |2 + |xj |2


12
Định nghĩa 1.8. Cho A là một ma trận vuông. Phép phân tích LU của A là cách viết
A thành tích của hai ma trận có dạng A = LU , trong đó L và U lần lượt là các ma
trận tam giác dưới và tam giác trên có cùng kích thước với A.
Phép phân tích LDU là cách phân tích có dạng A = LDU , với D là một ma trận
chéo, L và U là các ma trận tam giác đơn vị, nghĩa là tất cả các phần tử trên đường
chéo của L và U đều bằng một.
Phép phân tích LU P là cách phân tích có dạng P A = LU , với L và U tương ứng
là ma trận tam giác dưới và trên, và P là một ma trận hoán vị, nghĩa là P chỉ gồm
khơng và một và chỉ có duy nhất một phần tử 1 trên mỗi dòng và cột.
Định nghĩa 1.9. Cho A ∈ Cn×m , n ≥ m có hạng là m (nghĩa là các cột của A độc

lập tuyến tính).


Phân tích A = QR, trong đó Q ∈ Cn×m có các cột là các vectơ trực giao và

R ∈ Cm×m là ma trận tam giác trên. Phép phân tích như vậy (nếu có) gọi là phân

tích QR rút gọn của ma trận A.

Với ma trận A như trên, dạng phân tích QR đầy đủ của A chính là sự mở rộng
của QR rút gọn bằng cách thêm vào bên phải của Q n − m vectơ trực chuẩn để tạo

thành ma trận Unita Q có n hàng và n cột. Ma trận R cũng được thêm vào bên dưới

n − m dịng khơng tạo thành ma trận tam giác trên R với n dịng và m cột.

1.2

Khơng gian con Krylov

Định nghĩa 1.10. Cho A ∈ Cn×n . Các ma trận
K m (x) = K m (x, A) := [x, Ax, ..., A(m−1) x] ∈ Fn×m
được tạo bởi vectơ x ∈ Fn được gọi là ma trận Krylov. Không gian vectơ sinh bởi

các cột của nó được goi là khơng gian con Krylov

Km (x) = Km (x, A) := span{x, Ax, A2 x, ..., A(m−1) x} = ℜ(K m (x)) ⊂ Fn .


13
Một cơ sở tự nhiên của không gian Krylov là các vectơ x, Ax, ... cho đến khi hệ
này vẫn độc lập tuyến tính. Tuy nhiên, chúng thường có xu hướng gần phụ thuộc
tuyến tính. Điều này cần phải tránh trong tính tốn. Do đó, thay vì sử dụng cơ sở tự

nhiên, người ta tìm cách xây dựng một cơ sở trực chuẩn của nó. Các phương pháp
Arnoldi và Lanczos là những phương pháp để tính tốn một cơ sở trực chuẩn của
không gian Krylov.
Cho [x, Ax, ..., A(k−1) x] = Q(k) R(k) là nhân tử QR của ma trận Krylov K m (x).
(k)

Các giá trị Ritz ϑj , 1 ≤ j ≤ k và Ritz vectơ của A trong khơng gian này thu được
bằng phương pháp của bài tốn giá trị riêng k × k


Q(k) AQ(k) y = ϑ(k) y.
(k)

(1.12)

(k)

Nếu (ϑj , yj ) là một cặp riêng của (1.12) thì (ϑj , Q(k) yj ) là một cặp Ritz của A
trong K m (x).
Ta có các tính chất sau của không gian Krylov
1. Km (x, A) = Km (αx, βA),

α, β = 0.

2. Km (x, A − σI) = Km (x, A).

3. Nếu U là Unita thì U Km (U ∗ x, U ∗ AU ) = Km (x, A).
Thực tế là

K m (x, A) = [x, Ax, ..., A(m−1) x]

= U [U ∗ x, (U ∗ AU )U ∗ x, ..., (U ∗ AU )m−1 U ∗ x],
= U K m (U ∗ x, U ∗ AU ).
Rõ ràng là đối với ma trận A cỡ n × n các cột của ma trận Krylov K n+1 (x) là

phụ thuộc tuyến tính. Mặt khác nếu u là một vectơ riêng tương ứng với giá trị riêng
λ thì Au = λu và K2 (u) = span{u, Au} = span{u} = K1 (u). Vì vậy, có một số m
nhỏ nhất thỏa mãn 1 ≤ m ≤ n phụ thuộc vào x sao cho

 K1 (x) ⊂ K2 (x) ⊂ ... ⊂ Km (x) = Km+1 (x) = ...
 K1 (x) = K2 (x) = ... = Km (x)

Đối với số m này Km+1 (x) = [x, Ax, ..., Am x] ∈ Fn×m+1 có cột phụ thuộc tuyến


14
tính tức là có một vectơ khác khơng a ∈ Fm+1 sao cho Km+1 (x)a = p(A)x = 0 với
p(λ) = a0 + a1 λ + ... + am λm .
Đa thức p(λ) với am = 0 được gọi là đa thức tối thiểu của A so với x.


15

Chương 2

Một số phương pháp tìm giá trị riêng
Như đã biết giá trị riêng của ma trận là nghiệm của phương trình đặc trưng, như
vậy ý tưởng đơn giản để tìm giá trị riêng đó là giải phương trình đặc trưng. Một ma
trận cỡ n × n thì phương trình đặc trưng là một phương trình đa thức bậc n, nếu

muốn tìm giá trị riêng chính xác thì ta phải giải được chính xác nghiệm của phương

trình đặc trưng. Theo định lý nổi tiếng của lý thuyêt Galois thì phương trình đa thức
từ bậc 5 trở lên khơng thể giải được bằng căn thức, tức là nghiệm của nó khơng thể
tính được bằng các phép tính của các số hữu tỉ như là cộng, trừ, nhân, chia hoặc lấy
căn. Như vậy, đối với ma trận từ bậc 5 trở lên chúng ta khơng thể tìm được chính xác
giá trị riêng. Vậy để giải được những bài toán thực tế mà có cấp lớn hơn thì ta buộc
phải sử dụng phương pháp xấp xỉ, những phương pháp xấp xỉ ở đây đều là những
phương pháp lặp. Trong chương này chúng tôi sẽ giới thiệu một số phương pháp lặp
phổ biến, thông dụng và hiệu quả để tính giá trị riêng. Chương này được viết dựa
trên tài liệu tham khảo [1], [2].

2.1

Phương pháp luỹ thừa

2.1.1 Lặp đơn vectơ
Trong mục này chúng tôi trình bày một phương pháp đơn giản để tính giá trị
riêng có modul lớn nhất và duy nhất. Cho A ∈ Fn×n bắt đầu với một vectơ ban đầu
tùy ý x(0) ∈ Fn chúng ta hình thành các chuỗi vectơ x(k)


k=0

được xác định như


16
sau
(2.1)

x(k) := Ax(k−1) , k = 1, 2...


Rõ ràng x(k) := Ak x(0) khi đó x(k) hội tụ đến vectơ riêng tương ứng với giá trị riêng
lớn nhất.
Algorithm 2.1 Thuật toán lặp đơn vectơ
1: Chọn một vectơ bắt đầu x(0) ∈ Fn với ||x(0) || = 1.
2:

k = 0.

3:

repeat

4:

k := k + 1;

5:

y (k) := Ax(k−1) ;

6:

µk := ||y (k) ||;

7:
8:

x(k) := y (k) /µk ;
until một tiêu chuẩn hội tụ được thoả mãn.


Vectơ x(k) chính là xấp xỉ vectơ riêng cần tìm tương ứng với giá trị riêng µk = ±|λ1 |

và giá trị thực sự của λ1 được xác định trong Nhận xét 2.1 bên dưới. Người ta đã chỉ
ra rằng
Định lí 2.1. Cho A ∈ Fn×n có các giá trị riêng được sắp xếp như sau
(2.2)

|λ1 | > |λ2 | ≥ |λ3 | ≥ ... ≥ |λn |.

Cho u1 và v1 là vectơ riêng bên phải và trái của A tương ứng với λ1 . Khi đó dãy các
vectơ được tạo ra bởi Thuật toán 2.1 hội tụ đến u1 theo nghĩa
λ2
sin ϑ = sin(∠(x , u1 )) ≤ c.
λ1
k

(k)

k

,

với điều kiện v1∗ x(0) = 0.
Nhận xét 2.1. Ta nhn thy
ã i lng àk trong Thut toỏn 2.1 hội tụ tới |λ1 |. Dấu của λ1 có thể tìm được
bằng cách so sánh các thành phần của y (k) và x(k−1) . Dựa vào đây ta có thể


17

chon tiêu chuẩn dừng cho Thuật tốn 2.1 là |µk − µk−1 | < tol với tol > 0 là

một số cho trước nhỏ.

• Tỉ số |λ2 |/|λ1 | càng nhỏ, tốc độ hội tụ càng cao.
• Nếu v1∗ x(0) = 0 thì phép lặp vectơ hội tụ đến một vectơ riêng tương ứng với
giá trị riêng lớn nhất thứ hai.

• Trong trường hợp λ1 = λ2 nhưng |λ1 | = |λ2 | có thể khơng hội tụ. Chẳng hạn,
xét ví dụ



A=

1

0

0 −1





,

x(0) = 

α

β



.

2.1.2 Trường hợp đối xứng
Bây giờ chúng ta xem xét các trường hợp Hermite/đối xứng. Chúng ta một lần
nữa giả sử giá trị riêng thực được sắp xếp như trong (2.2). Nhưng bây giờ phân tích
Schur của A trở thành phân tích phổ của nó
A = U ΛU ∗ ,

U = [u1 , ..., un ],

Λ = diag(λ1 , ..., λn ).

(2.3)

Ngược lại, với các trường hợp chung, trong trường hợp Hermitie chúng ta xấp
xỉ các giá trị riêng bởi các tỉ số Rayleigh của x(k) . Khi đó λ(k) := x(k) Ax(k) với


||x(k) || = 1. Ta có thuật tốn sau

Định lý sau đây mơ tả sự hội tụ của thuật tốn
Định lí 2.2. Cho A là một ma trận đối xứng với phân tích phổ (2.3) thỏa mãn λ1 >
λ2 ≥ ... ≥ λn ≥ 0 khi đó lặp đơn vectơ của Thuật tốn 2.2 tính chuỗi λ(k)

và x(k)



k=0


k=0

hội tụ tuyến tính đến giá trị riêng riêng lớn nhất λ1 của A và vectơ

riêng tương ứng là u1 miễn là vectơ ban đầu x(0) có một thành phần khác khơng theo
hướng u1 , tức là u∗1 x(0) = 0. Tốc độ hội tụ được cho bởi
sin ϑ

(k)

λ2

λ1

k
(0)

sin ϑ ,

ở đây ϑ(k) = ∠(x(k) , u1 ).

λ2
|λ1 − λ | ≤ (λ1 − λn )
λ1
(k)


2k

sin2 ϑ(0) ,


18
Algorithm 2.2 Lặp đơn vectơ cho ma trận Hermite
1: Chọn một vectơ bắt đầu x(0) ∈ Fn với ||x(0) || = 1.
2:

y (0) := Ax(0) .

3:

λ(0) := y (0) x(0) .

4:

k := 0.

5:

while ||y (k) − λ(k) x(k) || > tol do



6:

k := k + 1;


7:

x(k) := y (k−1) /||y (k−1) ||;

8:

y (k) := Ax(k) ;

9:

λ(k) := y (k) x(k) ;

10:



end while

Nhận xét 2.2. Ta nhận thấy
• Tốc độ hội tụ được xác định bằng tỷ lệ giữa hai giá trị riêng có modul lớn nhất
và chất lượng của dự đoán ban đầu x(0) . Cả hai dãy λ(k) và x(k) hội tụ

tuyến tính.
• Tốc độ hội tụ của Thuật toán 2.2 nhanh hơn so với tốc độ hội tụ của Thuật
2k
k
λ2
λ2
cịn lặp nghịch đảo là
. Hơn nữa, với

tốn 2.1 vì sai số giảm theo
λ1
λ1
phương pháp lặp nghịch đảo tốc độ hội tụ phụ thuộc hằng số c còn với trường
hợp đối xứng thì phụ thuộc vào dải phổ và chất lượng của giá trị khởi tạo, nếu
chọn vectơ khởi tạo tốt thì góc giữa vectơ khởi tạo và vectơ riêng nhỏ tốc độ
hội tụ sẽ nhanh hơn.

2.1.3 Lặp nghịch đảo vectơ
Ta nhận thấy 2 thuật toán trên chỉ cho phép ta tìm giá trị riêng có modul lớn nhất
và vectơ riêng tương ứng. Câu hỏi là làm thế nào để tìm một giá trị riêng trung gian.
Phương pháp lặp nghịch đảo giúp ta đạt mục đích đó. Chính xác hơn, nó cho ta giá
trị riêng gần với 1 giá trị trượt σ cho trước. Ta gọi phép biến đổi ma trận từ A đến
(A − σI)−1 là phép biến đổi trượt và nghịch đảo.


19
Lặp nghịch đảo giống hệt như thuật toán lặp đơn nhưng lại áp dụng cho ma trận
(A − σI)−1 . Cụ thể, ta có
x(k) := (A − σI)−1 x(k−1) ,
hay
(A − σI)x(k) := x(k−1) .

(2.4)

Như vậy, tại mỗi bước ta phải giải một hệ tuyến tính. May mắn thay, ma trận hệ
số của các hệ này không thay đổi. Ta có thể tính trước phân tích LU và sau đó sử
dụng nó cho tất cả vịng lặp.
Tiêu chuẩn dừng được thay đổi thành
||x(k) − y (k) /µ(k) || ≤ tol||y (k) ||

ở đây chúng ta đã sử dụng
Ay (k) − λ(k) y (k) = Ay (k) − σ +

1
µ(k)

y (k) = x(k) − y (k) /µ(k) ,

Cụ thể, ta có thuật toán
Algorithm 2.3 Lặp nghịch đảo vectơ
1: Chọn một vectơ khởi đầu x(0) ∈ Fn và một giá trị trượt σ.
2:

Tính phân tích LU của A − σI : LU = P (A − σI).


3:

y (0) := U −1 L−1 P x(0) , µ(0) = y (0) x(0) , λ(0) := σ + 1/µ(0) , k := 0.

4:

while ||x(k) − y (k) /µ(k) || > tol||y (k) || do

5:

k := k + 1 .

6:


x(k) := y (k−1) /||y (k−1) || .

7:

y (k) := U −1 L−1 P x(k) .

8:

µ(k) := y (k) x(k) ,

9:



λ(k) := σ + 1/µ(k) .

end while

Kết quả hội tụ của Định lý 2.2 được sử dụng trong tính tốn A − σI có cặp riêng
(µi , ui ) với µi = 1/(σ − λi ).


20
Nhận xét 2.3. Ta nhận thấy
• Nếu σ = 0, thì bài tốn trở thành tìm giá trị riêng có modul nhỏ nhất, tức là
giá trị riêng gần 0 nhất.

• Ta có thể dự đốn rằng nếu σ được chọn tốt và đủ gần giá trị riêng thì phép

xấp xỉ sẽ tốt hơn và đủ gần giá trị riêng thì phép xấp xỉ sẽ tốt và ta sẽ sớm thu

được nghiệm. Tuy nhiên, điều này lại có vẻ như mâu thuẫn với việc nếu σ gần

1 giá trị riêng thì A − σI sẽ gần suy biến, tức là hệ tuyến tính (2.4) có điều

kiện rất xấu. Điều này được giải thích thơng qua định lý sau đây

Định lí 2.3. Cho A là ma trận đối xứng thưc, dương với phân tích phổ (2.3). Cho
λ1 , ..., λn là các giá trị riêng đếm lại của (2.3) sao cho




1
1
1
> ′
≥ ... ≥ ′
|λn − σ|
|λ1 − σ|
|λ2 − σ|




thì u1∗ x(0) = 0, lặp nghịch đảo vectơ của Thuật toán 2.3 tạo ra dãy λ(k)

x(k) k=0


k=0






hội tụ tuyến tính tới giá trị riêng λ1 gần với giá trị trượt σ và vectơ riêng


tương ứng là u1 . Tỉ lệ hội tụ được cho bởi


sin ϑ(k)

λ −σ
≤ ′1
λ2 − σ

k

sin ϑ(0) ,

với ϑ(k) = ∠(x(k) , u1 ) và σ = spread(σ((A − σI)−1 )).
tôt.

k



λ −σ
λ(k) − λ1 ≤ 1′

sin2 ϑ(0) ,
λ2 − σ


λ −σ
Nếu giá trị trượt σ xấp xỉ rất tơt giá trị riêng của A thì ′k
≪ 1 và hội tụ rất
λn − σ

2.1.4 Tính giá trị riêng bậc cao
Ta hiểu giá trị riêng bậc cao là các giá trị riêng λ2 , λ3 , .... Nếu tính cặp riêng thứ
hai (λ2 , u2 ) thì ta cần biết cặp riêng thứ nhất (λ1 , u1 ), ta thực hiên phép lặp nghịch
đảo trực giao với u1 .
Trong trường hợp tổng quát, ta cần tính cặp riêng thứ j là (λj , uj ) thì ta cần thực
hiện phép lặp nghịch đảo trực giao với u1 , ..., uj−1 . Với ý tưởng này ta có thuật tốn
sau


×