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

57 554 1
Phương pháp lặp giải hệ phương tuyến tính số chiếu lớn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI VŨ THỊ VUI PHƯƠNG PHÁP LẶP GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH SỐ CHIỀU LỚN LUẬN VĂN THẠC SĨ TOÁN HỌC Hà Nội - 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI VŨ THỊ VUI PHƯƠNG PHÁP LẶP GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH SỐ CHIỀU LỚN Chuyên ngành: Toán giải tích Mã số: 60 46 01 02 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học: TS Hà Bình Minh Hà Nội - 2015 Lời cảm ơn Luận văn hoàn thành trường Đại học Sư phạm Hà Nội hướng dẫn thầy giáo TS Hà Bình Minh Sự giúp đỡ hướng dẫn tận tình, nghiêm túc thầy suốt trình thực luận văn giúp trưởng thành nhiều cách tiếp cận vấn đề Tôi xin bày tỏ lòng biết ơn, lòng kính trọng sâu sắc 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, thầy cô giáo nhà trường giúp đỡ, tạo điều kiện thuận lợi cho suốt 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 tạo điều kiện thuận lợi để hoàn thành khóa học Thạc sĩ hoàn thành luận văn Hà Nội, ngày 09 tháng 06 năm 2015 Tác giả Vũ Thị Vui Lời cam đoan Luận văn hoàn thành trường Đại học Sư phạm Hà Nội hướng dẫn TS Hà Bình Minh Tôi xin cam đoan luận văn công trình nghiên cứu riêng Trong trình nghiên cứu hoàn thành luận văn kế thừa thành khoa học nhà khoa học đồng nghiệp với trân trọng biết ơn Tôi xin cam đoan thông tin trích dẫn luận văn rõ nguồn gốc Hà Nội, ngày 09 tháng 06 năm 2015 Tác giả Vũ Thị Vui i Mục lục Mục lục i Mở đầu Chương Một số phương pháp lặp cổ điển 1.1 Phương pháp Jacobi 1.1.1 Giới thiệu phương pháp 1.1.2 Điều kiện hội tụ 1.1.3 Ví dụ số minh họa 1.2 Phương pháp Gauss - Seidel 1.2.1 Giới thiệu phương pháp 1.2.2 Điều kiện hội tụ 1.2.3 Ví dụ số minh họa 11 Chương Các phương pháp Krylov 14 2.1 Giới thiệu 14 2.2 Phương pháp Gradient liên hợp 16 2.2.1 Giới thiệu phương pháp 16 2.2.2 Ví dụ số minh họa 21 2.3 Phương pháp GMRES 22 2.3.1 Giới thiệu phương pháp 22 2.3.2 Ví dụ số minh họa 25 2.4 Phương pháp QMR 27 2.4.1 Giới thiệu phương pháp 27 2.4.2 Ví dụ số minh họa 32 2.5 Phương pháp Bi-CGSTAB 34 2.5.1 Giới thiệu phương pháp 34 2.5.2 Ví dụ số minh họa 37 ii Chương Ứng dụng phương pháp lặp 39 3.1 Ứng dụng giải phương trình Poisson 39 3.2 Ví dụ số minh họa 41 Kết luận 43 Tài liệu tham khảo 44 Phụ lục 45 Mở đầu Lí chọn đề tài Nhiều toán 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, A ma trận có số chiều lớn thưa (tức có số phần tử khác 0) Chẳng hạn, hệ phương trình xuất ta giải toán biên phương trình đạo hàm riêng phương pháp rời rạc hóa, phương pháp sai phân 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 phương pháp khử Gauss, khó áp dụng để giải hệ Lý phương pháp khử Gauss áp dụng cho ma trận đặc áp dụng cho ma trận thưa làm cho số phép toán trở nên lớn, thực máy tính thông thường Hơn nữa, số lượng nhớ sử dụng cho phương pháp Gauss trở nên lớn Với lý nêu trên, phương pháp lặp giải hệ phương trình tuyến tính cỡ lớn nghiên cứu từ lâu Theo phương pháp này, vector khởi tạo x♣0q , ta sinh dãy vector x♣0q Ñ x♣1q Ñ x♣2q Ñ hội tụ đến nghiệm x Quá trình sinh vector x♣k 1q từ vector x♣kq sử dụng phép nhân ma trận A với vector Phép nhân tiết kiệm A ma trận thưa cần số nhớ để lưu trữ Hai phương pháp lặp biết đến nhiều theo hướng phương pháp Jacobi phương pháp Gauss-Seidel Bên cạnh đó, lớp phương pháp lặp phát triển thời gian gần lớp phương pháp Krylov Đặc trưng lớp phương pháp trình lặp hội tụ đến nghiệm xác sau số hữu hạn bước lặp Cụ thể, trình lặp cho nghiệm x♣kq xấp xỉ tốt nghiệm hệ Ax ✏ b không gian Krylov k chiều Một số phương pháp lặp thuộc lớp phải kể đến là: phương pháp gradient liên hợp Hestenes 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 Saad Schultz (1986); phương pháp QMR Freund Nachtigal (1991); phương pháp Bi-CGSTAB van der Vorst (1992) Mục đích nhiệm vụ nghiên cứu Khảo cứu số phương pháp lặp dùng để giải hệ phương trình tuyến tính cỡ lớn, áp dụng để nghiệm số cho phương trình đạo hàm riêng Đối tượng 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 Phương pháp nghiên cứu Sử dụng phương pháp giải số, ngôn ngữ lập trình MATLAB, Đóng góp đề 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 phương pháp phần mềm MATLAB CHƯƠNG Một số phương pháp lặp cổ điển Nội dung chương tham khảo chủ yếu từ tài liệu [1, 2] 1.1 Phương pháp Jacobi 1.1.1 Giới thiệu phương pháp Xét hệ phương trình tuyến tính Ax ✏ b, (1.1) khai triển dạng sau: ✔ a11 ✖ ✖ a21 ✖ ✖ ✕ a12 a22 an1 an2 ✜✔ ✜ ✔ ✜ ☎ ☎ ☎ a1n ✣ ✖ x1 ✣ ✖ b1 ✣ ☎ ☎ ☎ a2n ✣✣ ✖✖ x2 ✣✣ ✏ ✖✖ b2 ✣✣ ✣ ✖ ✣ ✖ ✣ ✢✕ ✢ ✕ ✢ ☎ ☎ ☎ ann xn bn Để sử dụng phương pháp lặp Jacobi, ta giả thiết ma trận A có tính chéo trội, định nghĩa sau: Định nghĩa 1.1.1 (Ma trận chéo trội) Ma trận A gọi có tính chéo trội giá trị tuyệt đối phần tử nằm đường chéo lớn tổng giá trị tuyệt đối phần lại nằm hàng, tức n ➳ j ✁1,j ✘i ⑤aij ⑤ ➔ ⑤aii⑤, ♣i ✏ 1, nq (1.2) Ví dụ 1.1.1 Ma trận ✔ ✖ A✏✕ 10 2 20 ✁2 ✁2 10 ✜ ✣ ✢, 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) dạng sau: aii xi   ñ ➳ j ✁1,j ✘i aij xj ✏ bi, ♣i ✏ 1, nq, ➳ aij bi ✏✁ xj   , ♣i ✏ 1, nq, a aii j ✁1,j ✘i ii ✜✔ ✜ ✔ ✜ ✔ ✜ ✔ x1 b12 ☎ ☎ ☎ b1n x1 g1 ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ x b ☎ ☎ ☎ b x g 21 2n 2 ñ ✖✖ ✣✣ ✏ ✖✖ ✣✣ ✖✖ ✣✣   ✖✖ ✣✣, ✢✕ ✢ ✕ ✢ ✕ ✢ ✕ xn bn1 bn2 ☎ ☎ ☎ xn gn ❧♦♦♦♦♦♦♦♦♦♦♦♦♠♦♦♦♦♦♦♦♦♦♦♦♦♥ ❧♦♦♠♦♦♥ ñ xi x ✏ Bx   g g B ✩ ✫0, bi n B ✏ ♣bij q1 với bij ✏ gi ✏ ✪✁ aij , aii a ii (1.3) ✏ i, j ✘ i j Ý tưởng phương pháp lặp Jacobi tính dãy vector x♣0q , x♣1q , , x♣nq , dựa phương trình (1.3), cụ thể sau: Phương pháp lặp Jacobi: Đầu vào: Ma trận A, b Đầu ra: Dãy x♣0q , x♣1q , , x♣nq , Với B , g xác định (1.3), ta chọn vector khởi tạo x♣0q xác định phần tử dãy x♣0q , x♣1q , , x♣nq , theo bước sau: 37 2.5.2 Ví dụ số minh họa Ví dụ 2.5.1 Ta tìm nghiệm hệ phương trình sau phương pháp Bi-CGSTAB: ✔ ✜✔ ✜ ✔ ✜ ✁1 x1 ✖ ✕0 1✣ ✢✖ ✕ x2 ✣ ✢✏✖ ✕9✣ ✢ ❧♦♦♦♦♦♦♦♠♦♦♦♦♦♦♦♥ A ✑ x3 ✙ ❧♦♦♠♦ ♦♥ b T x♣0q ✏ • Khởi tạo: Cho x¯♣0q ✏ 0 , với r¯♣0q ✏ b✁A¯ Chọn rˆ♣0q € Rn với ♣rˆ♣0q , r¯♣0q q ✘ tập p¯♣0q ✏ r¯♣0q ✑ 9 ✙T ✑ ✙T ♣ rˆ♣0q , r¯♣0q q ♣ 0q v ✏ A¯ p ✏ ✁7 81 41 , a0 ✏ ♣0q ♣rˆ , A¯p♣0qq ✏ 0.1494, ✑ ✙T ♣ kq ♣ kq s ✏ r¯ ✁ ak A¯ p ✏ 2.0458 ✁3.1017 2.8744 , ✑ ✙T ♣s, tq ✏ 0.1445, t ✏ As ✏ 7.1934 ✁21.9395 21.7266 , ω1 ✏ ♣t, tq✙ ✑ T x¯♣1q ✏ x¯♣0q   a0 p¯♣0q   ω1 s ✏ 0.4450 0.8965 1.7579 , ✑ ✙T r¯♣1q ✏ s ✁ ω1 ✏ 1.0006 0.0680 ✁0.2646 , ⑥r¯♣1q ⑥ ✏ 1.0430, ♣rˆ♣0q, r¯♣1qq a0 ✏ ✁0.0048, b0 ✏ ♣0q ♣0q ♣rˆ , r¯ q ω1 ✑ ✙T ♣ 1q ♣ 1q ♣ 0q p¯ ✏ r¯   b0 ♣p¯ ✁ ω1 v q ✏ 0.9968 0.0811 ✁0.2795 • k=0: ✑ ✙T ♣ rˆ♣0q , r¯♣1q q ♣ 1q a1 ✏ ♣0q , 0.3691 3.8662 ♣rˆ , A¯p♣1qq ✏ ✁✑0.0191, v ✏ A¯p ✏ 1.9126 ✙T ♣ kq ♣ kq s ✏ r¯ ✁ ak A¯ p ✏ 1.0430 0.0750 ✁0.1909 , ✑ ✙T ♣s, tq ✏ 0.0532, t ✏ As ✏ 2.0110 0.4093 4.4513 , ω2 ✏ ♣t, tq ✙ ✑ T x¯♣2q ✏ x¯♣1q   a1 p¯♣1q   ω2 s ✏ 0.4815 0.8990 1.7551 , ✑ ✙T ♣ 2q r¯ ✏ s ✁ ω2 ✏ 0.9360 0.0533 ✁0.4278 , ⑥r¯♣2q ⑥ ✏ 1.0305, • k=1: 38 ♣ rˆ♣0q , r¯♣2q q a1 b1 ✏ ♣0q ♣1q ♣rˆ , r¯ q ω2 ✏ ✁1.1430,✑ p¯♣2q ✏ r¯♣2q   b1 ♣p¯♣1q ✁ ω2 v q ✏ ✁0.0871 ✁0.0170 0.1268 ✙T ✑ ✙T ♣ rˆ♣0q , r¯♣2q q ♣ 2q v ✏ A¯ p ✏ ✁0.1572 ✁0.0089 0.0718 , a2 ✏ ♣0q ♣rˆ , A¯p♣2qq ✏ ✁5.9536, ✑ ✙T ♣ kq ♣ kq ✁ 14 s ✏ r¯ ✁ ak A¯ p ✏ 10 , 0.4552 0.0951 ✁0.1110 ✑ ✙T ♣s, tq ✏ 0.0517, ✁ 13 t ✏ As ✏ 10 , ω3 ✏ 0.0815 0.0649 0.1832 ♣t, tq ✑ ✙T x¯♣3q ✏ x¯♣2q   a2 p¯2   ω3 s ✏ 1 , ✑ ✙T ♣ 3q ✁ 14 r¯ ✏ s ✁ ω3 ✏ 10 , 0.4131 0.0615 ✁0.2057 ⑥r¯♣3q⑥ ✏ 4.6552 ✂ 10✁15 ✓ • Nhận xét: Tại k ✏ ta có ⑥r¯♣k 1q ⑥ ✓ nên thuật toán dừng lại ✑ ✙T x✏ 1 nghiệm hệ phương trình • k=2: 39 CHƯƠNG Ứng dụng phương pháp lặp Nội dung chương tham khảo chủ yếu từ tài liệu [2], mục 8.4, tham khảo thêm tài liệu [3] 3.1 Ứng dụng giải phương trình Poisson Xét toán biên Dirichlet cho phương trình Poisson sau: ✁uxx ✁ uyy ✏ f ♣x, yq, ➔ x, y ➔ 1, (3.1) u♣x, y q ✏ 0, với ♣x, y q € ❇ Ω, Ω :✏ t♣x, y q⑤0 ➔ x, y ➔ 1✉ ⑨ R2 Giả sử f ♣x, y q liên tục Ω ❨ ❇ Ω, ta giải (3.1) phương pháp lưới (còn gọi phương pháp sai phân) Trước hết, ta phủ lưới x ✏ xi :✏ ih, y ✏ yj :✏ jh, i, j ✏ 0, 1, ☎ ☎ ☎ , N   1, , N ➙ số nguyên, h :✏ N  1 lên miền Ω Giao điểm đường thẳng gọi điểm lưới ♣i, j q :✏ ♣xi, yj q Điểm kề ♣xi, yj q điểm ♣xi✟1, yj q ♣xi, yj✟1q Tập điểm Ωh :✏ t♣xi , yj q⑤ i, j ✏ 1, 2, , N ✉, tập điểm biên ❇Ωh :✏ t♣xi✟1, yj q, ♣xi, yj✟1q⑤ i, j ✏ 0, 1, , N   1✉ Ta tìm gần nghiệm u điểm Ωh Nếu lưới mau nghiệm gần cho ta hình dung nghiệm toán liên tục xác 40 Sai phân hóa điều kiện biên ta có uij :✏ u♣xi , yj q, i, j ✏ 0, 1, , N   Tiếp theo ta thay toán tử vi phân toán tử sai phân Từ công thức Taylor ui✟1,j 3 4 ✏ uij ✟ h ❇❇uxij   2!1 h2 ❇❇xu2ij ✟ h3! ❇❇xu3ij   h4! ❇❇xu4ij   O♣h5q, suy ❇2uij ✏ ui 1,j ✁ 2uij   ui✁1,j   O♣h2q ❇x2 h2 Tương tự ❇2uij ✏ ui 1,j ✁ 2uij   ui✁1,j   O♣h2q ❇y2 h2 Thay đạo hàm (3.1) sai phân tương ứng, bỏ qua số hạng O♣h2 q ta phương trình sai phân sau: 4uij ✁ ui✁1,j ✁ ui 1,j ✁ ui,j ✁1 ✁ ui,j  1 ♣i, j q € Ωh, fij :✏ f ♣xi , yj q Vì điều kiện biên uij uij , ↕ i, j ✏ h2fij , (3.2) ✏ với ♣xi, yj q € ❇Ωh, ↕ N nghiệm hệ phương trình tuyến tính có dạng 4uij ✁ ui✁1,j ✁ ui 1,j ✁ ui,j ✁1 ✁ ui,j  1 ✏ h2 fij , i, j ✏ 1, , N, (3.3) u0j ✏ uN  1,j ✏ ui0 ✏ ui,N  1 ✏ với i, j ✏ 0, 1, , N   Đặt u :✏ b ♣u11, u21, ☎ ☎ ☎ , uN 1, u12, ☎ ☎ ☎ , uN 2, ☎ ☎ ☎ , u1N , ☎ ☎ ☎ , uN N qT , :✏ h2 ♣f11 , ☎ ☎ ☎ , fN , ☎ ☎ ☎ , f1N , ☎ ☎ ☎ , fN N qT , ta (3.3) tương đương với hệ phương trình tuyến tính có dạng Au ✏ b (3.4) 41 với ma trận N ✂ N : ✔ A11 ✖ ✖ A21 A✏✖ ✖ ✕ A12 A22 AN,N ✁1 AN ✁1,N AN N ✜ ✣ ✣ ✣ ✣ ✢ (3.5) Giải hệ phương trình (3.4) ta thu u nghiệm gần hệ phương trình (3.1) 3.2 Ví dụ số minh họa Ví dụ 3.2.1 Giải phương trình Poisson sau: ✁uxx ✁ uyy ✏ xy, u♣x, y q ✏ 0, ➔ x, y ➔ 1, với ♣x, y q € ❇ Ω Sai phân hóa điều kiện biên ta có uij :✏ u♣xi , yj q ✏ 0, i, j ✏ 0, 1, , Sử dụng phương trình sai phân hữu hạn ✁ui✁1,j ✁ ui 1,j   4uij ✁ ui,j✁1 ✁ ui,j 1 ✏ h2fij , ↕ i, j ↕ 3, fij :✏ f ♣xi , yj q ✏ xi yj , h ✏ 1④4 ✏ 0.25, ta hệ phương trình ẩn sau: 4u11 ✁ u21 ✁ u12 ✁u11   4u21 ✁ u31 ✁ u22 ✁u21   4u31 ✁ u32 ✁u11   4u12 ✁ u22 ✁ u13 ✁u21 ✁ u12   4u22 ✁ u32 ✁ u23 ✁u31 ✁ u22   4u32 ✁ u33 ✁u12   4u13 ✁ u23 ✁u22 ✁ u13   4u23 ✁ u33 ✁u32 ✁ u23   4u33 ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ 0.0039 0.0078 0.0117 0.0078 0.0156 0.0234 0.0117 0.0234 0.0352 42 hay ✜ ✜✔ ✜ ✔ ✔ 0.0039 u11 ✁1 ✁1 0 0 ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ 0.0078 u ✁ ✁ ✁ 0 0 21 ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ 0.0117 u ✁ ✁ 0 ✁ 0 31 ✣ ✣ ✖ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✖ ✁ 0 ✁1 ✁1 0 ✣ ✖ u12 ✣ ✖ 0.0078 ✣ ✣ ✖ ✣ ✖ ✣ ✖ ✖ ✣ ✖ ✣ ✖ ✏ ✁1 ✁1 ✁1 ✁1 ✣ ✖ u22 ✣ ✖ 0.0156 ✣ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ 0 ✁1 ✁1 0 ✁1 ✣ ✖ u32 ✣ ✖ 0.0234 ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ ✣ ✖ 0.0117 u 0 ✁ 0 ✁ 13 ✣ ✣ ✖ ✖ ✣ ✖ ✖ ✣ ✖ ✣ ✖ ✢ ✕ 0 0 ✁1 ✁1 ✁1 ✢ ✕ u23 ✢ ✕ 0.0234 ✣ 0.0352 u33 0 0 ✁1 ✁1 Giải hệ phương trình phương pháp gradient liên hợp ta u✏ ✑ 0.0061 0.0103 0.0098 0.0103 0.0176 0.017 0.0098 0.017 0.0173 Đồ thị nghiệm u cho Hình 3.1 Hình 3.1: Đồ thị nghiệm gần u Do ta giải hệ phương trình với bước lưới 0.25 nên thu nghiệm xấp xỉ, muốn có nghiệm xác ta phải chia lưới nhỏ ✙T 43 Kết luận Với việc nghiên cứu phương pháp lặp việc giải hệ phương trình tuyến tính số chiều lớn, luận văn trình bày có hệ thống vấn đề liên quan đến phương pháp lặp Luận văn trình bày phương pháp lặp cho hệ phương trình tuyến tính số chiều lớn cho phương trình Poisson, sử dụng Matlab chạy vài ví dụ số Tuy nhiên, luận văn có số hạn chế như: hệ thống ví dụ đưa chưa đa dạng đơn giản Cuối cùng, lần em xin chân thành cảm ơn thầy, cô giảng dạy chuyên ngành Toán Giải tích, thầy cô phòng Sau đại học trường Đại học Sư phạm Hà Nội Em xin chân thành cảm ơn thầy TS Hà Bình Minh tận tình hướng dẫn em hoàn thành luận văn Em xin bày tỏ cảm ơn đóng góp thầy cô giúp luận văn hoàn chỉnh 44 Tài liệu tham khảo [1] Phạm Kỳ Anh, (2000), Giải tích số, NXB Đại học Quốc gia Hà Nội [2] J Stoer, R Bulirsch, R Bartels, W Gautschi, C Witzgall, (2002), Introduction to numerical analysis, Springer [3] Stanley J Farlow, (1982), Partial Differential Equations for Scientists and Engineers, Wiley 45 Phụ lục Thuật toán gradient liên hợp function [x,numIter]=ConGrad(A,b,x,epsilon) %Input: Matrix A \in R^{n*n}, vector b \in R^n %A: xac dinh duong %tol: dieu kien dung, cho epsilon=10^-9~0 %x0 \in R^n: Init vector %output:solution x \in R^n % numIter = number of iterations carried out % if nargin == 3; epsilon = 1.0e-9; end %save x_i,i=0,1 to var x r=b-A*x;%save r_i,i=0,1 to var r p=r;%save p_i,i=0,1 to var p n=length(b); for numIter=0:n if sqrt(dot(p,p)) errtol)) k=k+1; v(:,k+1)=A*v(:,k); for j=1:k h(j,k)=v(:,k+1)’*v(:,j); v(:,k+1)=v(:,k+1)-h(j,k)*v(:,j); end h(k+1,k)=norm(v(:,k+1)) if(h(k+1,k) ~= 0) v(:,k+1)=v(:,k+1)/h(k+1,k) end y=h(1:k+1,1:k)\(beta*eye(k+1,1)) roh=norm(beta*eye(k+1,1) - h(1:k+1,1:k)*y) end v h x = x + v(1:n,1:k)*y Thuật toán Lanczos function [V,W,alpha,beta,gama]=Lanczos(A,r0,k) %output V,W/ V’*W=I n=size(A,1); 48 V=zeros(n,k+1); W=V; V(:,2)=r0/norm(r0); W(:,2)=V(:,2); alpha=zeros(k+1,1); beta=alpha; gama=beta; V(:,1)=0; W(:,1)=0; for j=2:k+1 s=A*V(:,j); z=transpose(A)*W(:,j); alpha(j)=dot(W(:,j),s); vtemp=s-alpha(j)*V(:,j)-beta(j-1)*V(:,j-1); wtemp=z-alpha(j)*W(:,j)-gama(j-1)*W(:,j-1); gama(j)=norm(vtemp); V(:,j+1)=vtemp/gama(j); beta(j)=dot(wtemp,V(:,j+1)); W(:,j+1)=wtemp/beta(j); end V=V(:,2:k+1); W=W(:,2:k+1); alpha=alpha(2:k+1); beta=beta(2:k+1); gama=gama(2:k+1); end 49 Thuật toán QMR %su dung ham Lanczos Lanczos.m clear clc A=; b=; x0=; x=x0 r0=b-A*x0 beta=norm(r0)%be thuat toan kmax=5 dieukiendung=10^-6 [V,W,al,be,ga]=Lanczos(A,r0,kmax); display(V) %tao ma tran Tb T=full(gallery(’tridiag’,ga(1:kmax-1),al,be(1:kmax-1))) vthem=zeros(1,kmax); vthem(kmax)=ga(kmax); Tb=[T;vthem] for k=1:kmax display(k) y=Tb(1:k+1,1:k)\(beta*eye(k+1,1)) roh=norm(beta*eye(k+1,1) - Tb(1:k+1,1:k)*y) if roh dkdung) & (k < kmax)) display(k) k=k+1; if k==1 beta=(rho(k+1)/rho(k))*(ak/wk); p=r+beta*(p - wk*v); else beta=(rho(k+1)/rho(k))*(ak/wk) p=r+beta*(p - wk*v) end v=A*p 51 temp=rh0’*v; ak=rho(k+1)/temp s=r-ak*v t=A*s temp=t’*t; wk=t’*s/temp rho(k+2)=-wk*(rh0’*t) x=x+ak*p+wk*s r=s-wk*t chuan=norm(r) end [...]... Điều kiện hội tụ của phương pháp lặp Gauss-Seidel cũng giống với phương pháp lặp Jacobi Phương pháp Gauss-Seidel nói chung hội tụ nhanh hơn phương pháp Jacobi 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 1.2.3 Ví dụ số minh họa Ví dụ 1.2.1 Tìm nghiệm gần đúng của hệ phương trình sau theo phương pháp lặp Gauss-Seidel:... của hệ phương trình 2.4 Phương pháp QMR 2.4.1 Giới thiệu phương pháp Xét hệ phương trình tuyến tính Ax ✏ b, 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✁1 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ị x♣0q ✘ x✝ bất kỳ và phần dư r♣0q :✏ b ✁ Ax♣0q ✘ 0, phương. .. nghiệm của hệ phương trình 2.3 Phương pháp GMRES 2.3.1 Giới thiệu phương pháp Xét hệ phương trình tuyến tính Ax ✏ b, 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✁1 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ị x♣0q ✘ x✝ bất kỳ và phần dư r♣0q :✏ b ✁ Ax♣0q ✘ 0, phương pháp GMRES... sai số của x♣kq , (2.3) 21 • c là điều kiện số của ma trận A, c ✏ λ1 với λ1 , λn là các giá trị riêng λn của ma trận A Do đó tốc độ hội tụ của phương pháp gradient liên hợp được xác định ❄ ❄ bởi c Nếu 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 2.2.2 Ví dụ số minh họa Ví dụ 2.2.1 Ta tìm nghiệm của hệ phương trình sau bằng phương pháp. .. 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 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. .. độ 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... 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 ♣1q , , v ♣kq cho không gian Krylov Kk ♣r♣0q , Aq k chiều Sử dụng hệ cơ sở này, ta có thể tính toán xấp xỉ x♣kq € x♣0q   Kk ♣r♣0q , Aq với phần dư nhỏ nhất Phương pháp QMR sẽ được mô tả trong mục 2.4 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. .. 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 2.2.1 Giới thiệu phương pháp Xét hệ phương trình tuyến tính Ax ✏ b, (2.1) với A là ma trận thực, xác định dương, n ✂ n chiều, b chính xác x✝ ✏ A✁1 b Ta ký hiệu ⑥z ⑥A :✏ € Rn và nghiệm ❄ z T Az là chuẩn sinh ra từ ma trận A Xét phiếm hàm toàn phương F : Rn Ñ R có dạng... hình thành hệ trực giao trong Rn Kết quả là, m ↕ n Từ p♣mq ✏ 0 và ♣Am q ♣2q, ta có ♣r♣mq qT r♣mq ✏ ♣r♣mqqT p♣mq ✏ 0, và do đó r♣mq ✏ 0, để x♣mq là nghiệm của Ax ✏ b Định lý được chứng minh Như vậy, Định lý 2.2.1 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... phép lặp để sinh ra dãy tx♣kq ✉ thỏa mãn x♣kq € x♣0q   Kk ♣r♣0q, Aq, với mọi k ✏ 1, 2, , trong đó Kk ♣r♣0q , Aq là không gian Krylov được định nghĩa như sau: Kk ♣r♣0q , Aq :✏ spanrr♣0q , Ar♣0q , , Ak✁1 r♣0q s, k ✏ 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

Ngày đăng: 15/08/2016, 15:55

Từ khóa liên quan

Mục lục

  • Mục lục

  • Mở đầu

  • Một số phương pháp lặp cổ điển

    • Phương pháp Jacobi

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

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

      • Ví dụ số minh họa

      • Phương pháp Gauss - Seidel

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

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

        • Ví dụ số minh họa

        • Các phương pháp Krylov

          • Giới thiệu

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

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

            • Ví dụ số minh họa

            • Phương pháp GMRES

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

              • Ví dụ số minh họa

              • Phương pháp QMR

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

                • Ví dụ số minh họa

                • Phương pháp Bi-CGSTAB

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

                  • Ví dụ số minh họa

                  • Ứng dụng của phương pháp lặp

                    • Ứng dụng trong giải phương trình Poisson

                    • Ví dụ số minh họa

                    • Kết luận

Tài liệu cùng người dùng

Tài liệu liên quan