Một số phương pháp lặp thuộc lớp này phải kể đến là: phương pháp gradient liên hợp của Hestenes và Stiefel 1952 cho hệ tuyến tính có ma trận A đối xứng xác định dương; phương pháp GMRE
Trang 1Luận văn được hoàn thành tại trường Đại học Sư phạm Hà Nội 2 dưới sự
hướng dẫn của TS Hà Bình Minh.
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng tôi
Trong quá trình nghiên cứu và hoàn thành luận văn tôi đã kế thừa những thành quả khoa học của các nhà khoa học và đồng nghiệp với sự trân trọng và biết ơn
Tôi xin cam đoan rằng các thông tin trích dẫn trong luận văn đã được chỉ
rõ nguồn gốc
Hà Nội, ngày 09 tháng 06 năm 2015 Tác giả
Lời cam đoan
Vũ Thị Vui
Luận văn được hoàn thành tại trường Đại học Sư phạm Hà Nội 2 dưới sự
hướng dẫn của thầy giáo TS Hà Bình Minh Sự giúp đỡ và hướng dẫn tận
tình, nghiêm túc của thầy trong suốt quá trình thực hiện luận văn này đã giúp tôi trưởng thành hơn rất nhiều trong cách tiếp cận một vấn đề mới Tôi xin bày tỏ lòng biết ơn, lòng kính trọng sâu sắc nhất đối với thầy
Tôi xin trân trọng cảm ơn Ban giám hiệu trường Đại học Sư phạm Hà Nội
2, phòng Sau đại học, các thầy cô giáo trong nhà trường đã giúp đỡ, tạo điều kiện thuận lợi cho tôi trong suốt quá trình học tập
Tôi xin chân thành cảm ơn gia đình, người thân, bạn bè đã giúp đỡ, động viên và tạo điều kiện thuận lợi để tôi hoàn thành khóa học Thạc sĩ cũng như hoàn thành luận văn này
Hà Nội, ngày 09 tháng 06 năm 2015 Tác giả
Lời cảm ơn
Hà Nội - 2015 Người hướng dẫn khoa học: TS Hà Bình Minh
LUẬN VĂN THẠC SĨ TOÁN HỌC
VŨ THỊ VUI
PHƯƠNG PHÁP LẶP GIẢI HỆ PHƯƠNG TRÌNH TUYEN TÍNH
SỐ CHIỀU LỚN
Chuyên ngành: Toán giải tích Mã số: 60 46 01 02
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
Hà Nội - 2015 LUẬN VĂN THẠC SĨ TOÁN HỌC
PHƯƠNG PHÁP LẶP GIẢI HỆ PHƯƠNG TRÌNH TUYEN TÍNH
Giới thiệu phương pháp
Điều kiện hội tụ
Ví dụ số minh họa
Giới thiệu phương pháp
Điều kiện hội tụ
Phương pháp Gradient liên hợp
Giới thiệu phương pháp
688
9 1 1 1 4
1416
1 6
2122
2 2 2
Trang 2được khai triển dưới dạng sau:
nghiệm của hệ Ax — b trong không gian Krylov k chiều Một số phương pháp
lặp thuộc lớp này phải kể đến là: phương pháp gradient liên hợp của Hestenes
và Stiefel (1952) cho hệ tuyến tính có ma trận A đối xứng xác định dương;
phương pháp GMRES của Saad và Schultz (1986); phương pháp QMR của Freund và Nachtigal (1991); và phương pháp Bi-CGSTAB của van der Vorst (1992)
2. Mục đích và nhiệm vụ nghiên cứu
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ỡ
lớn, và áp dụng để nghiệm số cho phương trình đạo hàm riêng
3. Đối tượng và phạm vi nghiền cứu
Hệ phương trình tuyến tính cỡ lớn, phương trình vi phân đạo hàm riêng
4. Phương pháp nghiên cứu
Sử dụng các phương pháp giải số, ngôn ngữ lập trình MATLAB,
5. Đóng góp mới của đề tài
Áp dụng phương pháp lặp để giải hệ phương trình tuyến tính cõ lớn, sau đó lập trình, thực hiện các phương pháp này bằng phần mềm MATLAB
1. Lí do chọn đề tài
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
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à
chỉ có một số ít các phần tử khác 0) Chẳng hạn, những hệ phương trình này xuất hiện ta giải bài toán biên của phương trình đạo hàm riêng bằng cá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
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, chẳng hạn như phương pháp khử Gauss, sẽ rất khó có thể áp dụng để giải những hệ này Lý do là vì phương pháp khử Gauss được áp dụng cho ma trận đặ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, không thể thực hiện nổi đối với máy tính thông thường Hơn nữa, số lượng bộ nhớ sử dụng cho phương pháp Gauss cũng trở nên rất lớn
Với những lý do nêu trên, phương pháp lặp giải hệ phương trình tuyến tính
cỡ lớn được nghiên cứu từ lâu Theo phương pháp này, bắt đầu từ một vector khởi tạo ta sẽ sinh ra một dãy các vector
*;!>
hội tụ đến nghiệm X Quá trình sinh vector từ vector sử dụng
phép nhân ma trận Ả với một vector nào đó Phép nhân này rất tiết kiệm do Ả
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 biết đến nhiều nhất theo hướng này là phương pháp Jacobi và phương pháp Gauss-Seidel
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 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ày quá trình lặp sẽ hội tụ đến nghiệm chính xác sau một số hữu hạn bước
lặp Cụ thể, quá trình lặp sẽ cho nghiệm x'^ sẽ là xấp xỉ tốt nhất
3941
43 44 45 Tài liệu tham khảo Phụ lục
Để sử dụng phương pháp lặp Jacobi, ta giả thiết rằng ma trận A có tính chéo
trội, được định nghĩa như sau:
Định nghĩa 1.1.1 (Ma trận chéo trội) Ma trận A được gọi là có tính chéo 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
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 hàng, tức là
n kj| < \au\, ( i - l , n ) (1.2)
Trang 3i 0 6 ' 12 ' bi n X 1
9 1
x 2 — &
21
Ý 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:
Trang 41.1.2 Điều kiện hội tụ
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
phép lặp
X X
;i)Í
2
Bx[ữ) ■+■ g,
— Bx^ -Ỷ- g,
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:
Trang 5Các ma trận tham số của hệ Ax — b tương ứng là:
Đ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.
nên theo Định lý 1.1.1 phép lặp Jacobi là hội tụ Như vậy,
-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
®1 nữll
• 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| ■+-
Trang 6Vậ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
2
35
X u>
1.923.195.04
X (.2) X Í.3)
1.90943.19445.0446
1.9092283.1949485.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)
Trang 7B 2 — ipij) 1 là ma trận tam giác trên với bij —
Bị — [pijYi là ma trận tam giác dưới với bịj —
X n
Tương tự như phương pháp lặp Jacobi, ta biến đổi hệ (1.1) về dạng sau:
1.2.1 Giới thiệu phương pháp
1.2. Phương pháp Gauss - Seidel
j ^ i,
j > i.
Trang 8Y 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.
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ó
, i ^ j.
^ Oỉịị
Trang 9235
1.923.19245.044648
1.9093489
3.194952
1.9091993.1949643
theo Phương pháp lặp Gauss-Seidel, ta được bảng kết quả sau:
2 Phương pháp Gauss - Seidel tiết kiệm bộ nhớ, vì các thành phần vừa tính được, được sử dụng ngay để tính các thành phần tiếp theo
Các ma trận tham số của hệ Ax — b tương ứng là:
11 Nhận xét:
rp 'l$ĩ$n
j>i
Suy ra
xỉ - 2 biẢxf^1} - xd+-Xì biÁx'f
~x^-j<,i j>i xi
Để đánh giá sai số, ta xét hiệu
Áp dụng Định lý 1.1.1 suy ra phương trình (1.3) có nghiệm X* duy nhất.
Trang 10TÍ.O) íl) T T T í.m)
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
Krylov được định nghĩa như sau: K k [r' K ữ \ A) spanLr^, Ar^ ữ \ , A k ~ 1 r^\, Ả :
— 1 , 2 ,
Trang 1115 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*\A-Z'^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^
Trang 123) 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.5
2.2. Phương pháp Gradient liên hợp
Xét hệ phương trình tuyến tính
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:
Trang 13Do đó tốc độ hội tụ của phương pháp gradient liên hợp được xác định bởi
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 -ực càng lớn thì phương pháp sẽ hội tụ càng chậm.
—- với Xị, Xn là các giá trị riêng
Vậy {AỊỊ-1-1) đúng và kết quả là phép quy nạp [A m ) đúng.
Do [_A m ) (2), [4) ta có 7^ 0 với mọi i < 771, và các vector này hình thành hệ trực giao trong №n Kết quả là, 777, ^ n Từ p [ - m ^ — 0 và [_A m ) (2), ta có _
Như vậy, Định lý|2.2.l| khẳng định rằng phương pháp Gradient liên hợp sẽ
tính ra được nghiệm chính xác của phương trình Ax — b sau nhiều nhất n
bước
Phương pháp gradient liên hợp hội tụ sau n bước lặp Phương pháp này thường được sử dụng cho bài toán lớn, do đó không thể chạy hết được n bước
lặp Trong thực tế, khi tính toán thì thường tích tụ sai số, phần dư sẽ mất dần
độ chính xác và các vector tìm thấy làm mất tính trực giao của Ả Do đó, cần
phải đánh giá tốc độ hội tụ của phương pháp, ta có Định lý sau:
Định lí 2.2.2 Giả sử phương pháp gradient liên hợp áp dụng cho hệ Ax
— b đối xứng, xác định dương Ta đánh giá tốc độ hội tụ của phương
pháp bằng ước lượng sau:
b-Ax^l) = b - A{x[k) + akP[k))
- b - Ax^k) - akAp[k} = r[k} - akAp[k}
Định lí 2.2.1 Giả sử A là ma trận thực, xác định dĩiơng n X n chiều và
6 t M n, Gọi x <K °^ b- Rn ỉà vector khởi tạo và 171, m ^ n là một số nguyên
không âm nhỏ nhất, sao cho pKm^ — 0 Các vector x'<k\p^k\ r^k\ k ^
m, được sinh bởi thuật toán Gradient liên hợp có các tính chất sau:
xác của phương trình Ax — b sau nhiều nhất n bước.
(1) [r^) T p^ — 0 với 0 ^ ỉ < j ^ k,
(2)(r^)Tr^ > 0 với 0 ^ i < k, [r^) T p^ — ( r ^ )Tr ^ v ớ i 0 ^ ỉ ^ k, ( Aỵ ) ( 3 ) [p^) T Ap^ — 0 v ớ i 0 ^ i < j ^ k,
Theo thuật toán, tại mỗi bước chỉ có 4 vector x^ k \r^ k \p^ k \ và Ap ^ cần
được lưu trữ Công việc tính toán chủ yếu tại mỗi bước lặp chỉ là một phép
nhân ma trận Ap^ k \
Thuật toán Gradient liên hợp:
Đầu vào: Ma trận A, b.
Đầu ra: Dãy , x f ợ i\
Khởi tạo: Chọn £ Mn, và đặt b — Ax^ ữ K
Cho k - 0 , 1 , :
• Bước 1: N ế u p ^ — 0 , t ậ p 777, k và dừng lại: x'^ là nghiệm của Ax
— 6 Nếu không thì, chuyển sang Bước 2
Phương pháp Gradient liên hợp khác với “Phương pháp giảm nhanh nhất”
ở chỗ: tại bước —> việc tính toán sẽ được cực tiểu hóatrên không gian (Ả; -|- 1) chiều, thay vì chỉ cực tiểu hóa trên không gian 1
chiều như “Phương pháp giảm nhanh nhất”:
nên thuật toán dừng lại và X —
3 5 6 là nghiệm của hệ phương trình
là of A~ l b Phương pháp GMRES (generalized minimum residual
method) do Saad và Schultz đưa ra năm 1986, với ý tưởng như sau: bắt
đầu với giá trị Ỷ 1 x r ~ bất kỳ và phần dư r^ b — Ax ^ 7^ 0, phương pháp GMRES sẽ sinh ra dãy các x'^ hội tụ đến X* dựa trên tính chất sau:
x'^k} ^ x^} + Kk(r^0\A),
(2 4)
|ò — Ax ^ |2 — min{ |6 — Au |2 I u t +- K k {r K °\ A)\.
Điểm nổi bật của phương pháp GMRES là nó sử dụng hệ các vector trực
chuẩn Ẹ R n là cở sở của không gian K k [r^\ Á), k ^ m :
span^1^, v ^2\ , v^ị — K k (r^°\ Á), 1 ^ k ^ ra.
Ta xác định hệ các vector trực chuẩn v'^ như sau: vector là vector
chuẩn hóa của vector
• Bước 3: Tính w'^ u — XÌ *_1 hịkv^ và hỵ^i ỵ I w'y^ | 2
• Bước Ậ: Nếu hỵ- 1-1 k — 0, tậpm k và dừnglại.
Nếu không thì, chuyển sang Bước 5
• Bước 5: tính yl[-kJr1^ ĩv^/hk-ị- Ifc.
n
Như vậy, thuật toán Arnoldi sau k bước sẽ cho kết quả là một ma trận
X k chiều v k [ VU) v(2) V t.k) J , k ^ m có tính chất sau: các vector cột
trực giao (tức là VỵVỵ — lỵ) và tạo thành một cơ sở của K k {r^ ữ \ A) Ngoài
ra, thuật toán Arnoldi còn cho kết quả là ma trận Hessenberg [k + 1) K k
chiều:
&k
-hu h*
2i
00
hi 2
h-0
hi
k h-
2 k
1 $ k $ m.
Ta gọi Hỵ là ma trận con k X k chiều của Hỵ bằng cách xóa đi hàng cuối
Trang 14VI - 0.5774
0.5774 _ 0.5774 _
, Н г = 0.333
30.4714
Đầu ra: Dãy x'^ 2 \ , x y - n \ .
Khởi tạo: Cho 7^ 0, đặt /3 |n0^ |2, v'^ : — r^°V/ổ
Cho k = 1,2, :
• Bước 1: Thực hiện thuật toán Arnoldi tính Vỵ,Hỵ,Hỵ.
• Bước 2: Tìm vector là nghiệm của bài toán bình phương tối thiểu
x ' \ k ) _ x № - ị - V ỵ y K k \ Từ đó ta có thuật toán GMRES như sau:
Để xác định nghiệm của ( 2 4 ) , ta sử dụng các ma trận Hỵ , Hỵ và V ỵ trong
thuật toán Arnoldi Nghiệm X ^ phải nằm trong không gian x'^ -|- Kk{r' K °\ A), do đó x'^ có thể được viết dưới dạng x'^ — x'^ + Vỵý^ với y{k) ^ rpa
x^c (Ịịnh vector sao cho
0.5774 0.4082 0.70710.3333 0.4714 00.4714 2.1667 0.8660
với A là ma trận thực không suy biến và có thể không đối xứng, với
nghiệm là X* A~ l b Phương pháp QMR (quasi minimal residual method) do
Freund và Nachtigal đưa ra năm 1991 với ý tưởng tương tự như phương pháp
GMRES: bắt đầu với giá trị 7^ x r ~ bất kỳ và phần dư — b — Ax ^ 7^ 0, phương pháp QMR sẽ sinh ra dãy các x'^ hội tụ đến x r dựa trên tính chất sau:
x [k) Ẹ ^,(0) _|_ K k ( r w A)
(2.9)
|& — Ax^ |2 — min{ |ö — Au |2 I u e x'^ + Kỵ[r^\ A)}.
Tương tự như phương pháp GMRES, phương pháp QMR sử dụng hệ các
vector trực chuẩn v'^ ^ Kn là cở sở của không gian Kỵ[r' K ữ \ i4), k ^ m :
spanLĩ/1*, v^ 2 \ , — K k {r ữ , A), 1 ^ k ^ ra.
Tuy nhiên, điểm khác biệt của phương pháp QMR so với phương pháp GMRES là sử dụng thuật toán song trực giao Lanczos thay vì thuật toán trực giao hóa Arnoldi Thuật toán song trực giao hóa Lanczos bắt đầu với vector
„;■) :-r-0>//3, /3:- p>|a,
và bổ sung thêm một vector khác tùy ý là w ^ t với |2 — 1(thường chọn v'^) Thuật toán Lanczos sẽ tạo ra hai dãy các
Trang 15spanL?/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:
• Bước 1: Tính ỗk {w^) T v < y - k \ Nếu ỗỵ — 0, tập 777, k — 1 và dừng lại.
— 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