Bài giảng môn Phương pháp số
Tóm tắt Bài giảng môn Phương pháp số: ... 𝑆 với sai số không vượt quá 10 −2 . III. Bài toán ngược của sai số Giả sử rằng cần tính 𝑦 = 𝑓(𝑥1, , 𝑥𝑛) với sai số Δ𝑦 ≤ 𝑎. Hãy xác định các Δ𝑥𝑖. Theo biểu thức tổng quát của sai số tính toán, ta phải có Δ𝑦 =∑| 𝜕𝑓 𝜕𝑥𝑖 | . Δ𝑥𝑖 ≤ 𝑎 𝑛 𝑖=1 Giả sử rằng | 𝜕𝑓 𝜕𝑥𝑖...ng trình trên sao cho sai số không vượt quá 10−9 b) Tính gần đúng tất cả các nghiệm của phương trình trên đến lần lặp thứ 4 và đánh giá sai số mắc phải. c) Tính gần đúng tất cả các nghiệm sao cho nghiệm gần đúng có 7 chữ số chắc phần thập phân. Giải: *) Xét 𝑓(𝑥) = 𝑥3 + 𝑥 − 1000 liên tục ...5𝑥 − 10000 = 0. Hãy tính gần đúng nghiệm của phương trình đã cho trên (−11;−10) đến bước lặp thứ 3 và đánh giá sai số mắc phải. Giải: *) Đặt 𝑓(𝑥) = 𝑥4 − 3𝑥2 + 75𝑥 − 10000. Khi đó 𝑓 liên tục trên [−11;−10] và 𝑓(−10) = −1050 < 0, 𝑓(−11) = 3453 > 0 nên 𝑓(𝑥) = 0 có nghiệm 𝑥∗ ∈ ...
�(10) < 0. *) Công thức lặp (*) { 𝑥0 = 10 𝑥𝑛+1 = √1000 − 𝑥𝑛 3 ∀𝑛 ≥ 0 a) Sai số |𝑥𝑛 − 𝑥 ∗| ≤ 𝑞 1−𝑞 |𝑥𝑛 − 𝑥𝑛−1|. Theo yêu cầu ta phải tìm 𝑥𝑛 sao cho |𝑥𝑛 − 𝑥𝑛−1| ≤ 1−𝑞 𝑞 10−9 = 2.97 × 10−7 Tính toán trên máy tính ta được bảng 𝑛 𝑥𝑛 |𝑥𝑛 − 𝑥𝑛−1| 0 10 1 9.966554 0.033556 2 9.966667 1.13 × 10−4 3 9.9666668 2 × 10−7 Vậy ta có 𝑥∗ ≈ 𝑥3 = 9.9666668 b) Ta sẽ lập bảng tính toán dùng công thức lặp (*) và cho ra bảng kết quả dạng như ở câu a) và tính đến 𝑛 = 4 được 𝑥4 = 9.966666791 và có sai số mắc phải |𝑥4 − 𝑥 ∗| ≤ 𝑞 1 − 𝑞 |𝑥4 − 𝑥3| ≤ 1 299 × 9.5 × 10−9 = 3.2 × 10−11 Ví dụ 2. Cho phương trình 𝑥9 + 𝑥 − 10 = 0 a) Tìm nghiệm gần đúng của nghiệm nhỏ nhất của phương trình trên theo phương pháp lặp đến lần lặp thứ 4 và đánh giá sai số mắc phải. b) Tìm nghiệm gần đúng của nghiệm nhỏ nhất của phương trình trên theo phương pháp lặp sao cho sai số không vượt quá 10−5. II.3. Phương pháp dây cung Tư tưởng của phương pháp dây cung là thay cung đồ thị 𝐴𝐵 của hàm 𝑦 = 𝑓(𝑥) bởi dây cung 𝐴𝐵 rồi lấy hoành độ 𝑥1 của giao điểm 𝑃 của dây cung với trục hoành làm giá trị gần đúng của nghiệm 𝑥 ∗. Ta minh họa phương pháp này bởi hình sau: Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 12 Phương trình dây cung 𝐴𝐵 là 𝑦 − 𝑓(𝑎) 𝑓(𝑏) − 𝑓(𝑎) = 𝑥 − 𝑎 𝑏 − 𝑎 Tại giao điểm 𝑃 ta có 𝑦 = 0, 𝑥 = 𝑥1 nên có −𝑓(𝑎) 𝑓(𝑏) − 𝑓(𝑎) = 𝑥1 − 𝑎 𝑏 − 𝑎 Từ đó suy ra 𝑥1 = 𝑎 − 𝑓(𝑎) 𝑓(𝑏) − 𝑓(𝑎) (𝑏 − 𝑎) Sau khi tính được 𝑥1 ta có thế xét khoảng chứa nghiệm mới [𝑎, 𝑥1] hoặc [𝑥1, 𝑏] rồi tiếp tục áp dụng phương pháp dây cung. Cứ thế tiếp tục ta sẽ được các giá trị 𝑥2, 𝑥3, ngày càng gần 𝑥 ∗ Tổng quát: Giả sử rằng hàm số 𝑦 = 𝑓(𝑥) liên tục trên đoạn [𝑎, 𝑏] và 𝑓(𝑎). 𝑓(𝑏) < 0. Giả sử rằng 𝑓(𝑥) có đạo hàm đến cấp 2 liên tục và ta có 𝑓′′(𝑥) > 0 trên [𝑎, 𝑏] ( nếu như 𝑓′′(𝑥) < 0 thì ta chuyển (1) về dạng – 𝑓(𝑥) = 0). Khi đó đồ thị 𝑦 = 𝑓(𝑥) nằm phía dưới dây cung 𝐴𝐵 với 𝐴(𝑎, 𝑓(𝑎)), 𝐵(𝑏, 𝑓(𝑏)). Trường hợp 1.Nếu như 𝑓(𝑎) > 0, ta xây dựng dãy {𝑥𝑛} theo hệ thức { 𝑥0 = 𝑏 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛) 𝑓(𝑥𝑛) − 𝑓(𝑎) (𝑥𝑛 − 𝑎) (6) Khi đó dãy {𝑥𝑛} đơn điệu giảm, bị chặn dưới và hội tụ đến 𝑥 ∗. Trường hợp 2.Nếu như 𝑓(𝑎) < 0, ta xây dựng dãy {𝑥𝑛} theo hệ thức { 𝑥0 = 𝑎 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛) 𝑓(𝑏) − 𝑓(𝑥𝑛) (𝑏 − 𝑥𝑛) (7) Khi đó dãy {𝑥𝑛} đơn điệu tăng, bị chặn trên và hội tụ đến 𝑥 ∗. y x* x P A B a b x1 Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 13 Giả sử rằng hàm số 𝑦 = 𝑓(𝑥) liên tục trên đoạn [𝑎, 𝑏] và dãy {𝑥𝑛} ⊂ [𝑎, 𝑏], 𝑓 ′(𝑥) giữ nguyên một dấu và ngoài ra có 0 < 𝑚 ≤ |𝑓′(𝑥)| ≤ 𝑀 < +∞ Khi đó có thể chứng minh ước lượng sai số sau: |𝑥𝑛 − 𝑥 ∗| ≤ 𝑀 −𝑚 𝑚 |𝑥𝑛 − 𝑥𝑛−1| Ví dụ1 : Tìm nghiệm dương của phương trình sau đây nhờ phương pháp dây cung với độ chính xác đến 0.0002 𝑥3 − 0.2𝑥2 − 0.2𝑥 − 1.2 = 0 Giải: *) Đặt 𝑓(𝑥) = 𝑥3 − 0.2𝑥2 − 0.2𝑥 − 1.2. *) Dùng phương pháp tách nghiệm bằng cách khảo sát hàm 𝑓 và dựa vào bảng biến thiên để khảng định nghiệm dương duy nhất trên ( 1 3 ; +∞) (Hãy tự khảo sát và yêu cầu viết rõ ra tại sao?) Mà có 𝑓(1) = −0.6 0 nên có 𝑥∗ ∈ (1; 1.5), *) Kiểm tra phương pháp: Có 𝑓′(𝑥) = 3𝑥2 − 0.4𝑥 − 0.2, 𝑓′′(𝑥) = 6𝑥 − 0.4 > 0 trên [1, 1.5]. Vì 𝑓(1) < 0 nên ta áp dụng (7) ta có công thức lặp: { 𝑥0 = 1 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛) 𝑓(1.5) − 𝑓(𝑥𝑛) (1.5 − 𝑥𝑛) ⇔ { 𝑥0 = 1 𝑥𝑛+1 = 𝑥𝑛 − 𝑥𝑛 3 − 0.2𝑥𝑛 2 − 0.2𝑥𝑛 − 1.2 2.625 − 𝑥𝑛 3 + 0.2𝑥𝑛2 + 0.2𝑥𝑛 (1.5 − 𝑥𝑛) *) Sai số để hạn chế bước lặp: Ta có sai số |𝑥𝑛 − 𝑥 ∗| ≤ 𝑀 −𝑚 𝑚 |𝑥𝑛 − 𝑥𝑛−1| Dễ có 𝑀 = |𝑓′(1.5)| = 5.95;𝑚 = |𝑓′(1)| = 2.4 Như vậy để có được nghiệm ở mức chính xác 0.002 khi dừng ở bước thứ 𝑛 sao cho |𝑥𝑛 − 𝑥𝑛−1| ≤ 𝑚 𝑀−𝑚 0.002 = 0.0071. *) Dùng công thức lặp và thao tác trên máy tính cầm tay ta có kết quả bởi bảng sau 𝑛 𝑥𝑛 |𝑥𝑛 − 𝑥𝑛−1| 0 1 1 1.148148 0.148148 2 1.187557 0.039409 3 1.197073 9.10−3 4 1.199315 2.2 × 10−3 Ta thấy ở bước thứ 4 thì nghiệm đã thỏa mãn sai số, nên 𝑥∗ ≈ 𝑥4 = 1.199315. Ví dụ 2: Cho phương trình: 𝑥3 − cos 𝑥 + 𝑥 = 0 a) Hãy tìm nghiệm gần đúng của phương trình trên bằng phương pháp dây cung đến lần lặp thứ 4 và đánh giá sai số mắc phải. b) Hãy tìm nghiệm gần đúng của phương trình trên bằng phương pháp dây cung sao cho sai số không vượt quá 10−2. Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 14 II.4. Phương pháp Newton (phương pháp tiếp tuyến) Tư tưởng của phương pháp Newton là thay cung đồ thị 𝐴𝐵 của hàm 𝑦 = 𝑓(𝑥) bởi tiếp tuyến tại 𝐴 hoặc 𝐵 rồi lấy hoành độ 𝑥1 của giao điểm 𝑃 của tiếp tuyến với trục hoành làm giá trị gần đúng của nghiệm 𝑥 ∗. Ta minh họa phương pháp này bởi hình sau: Cho 𝑥0 = 𝑏, phương trình tiếp tuyến tại 𝐵 là 𝑦 − 𝑓(𝑥0) = 𝑓 ′(𝑥0)(𝑥 − 𝑥0) Tại 𝑃 ta có 𝑥 = 𝑥1, 𝑦 = 0 ta có −𝑓(𝑥0) = 𝑓 ′(𝑥0)(𝑥1 − 𝑥0) Từ đó 𝑥1 = 𝑥0 − 𝑓(𝑥0) 𝑓′(𝑥0) Sau khi tính được 𝑥1 ta có thế xét khoảng chứa nghiệm mới [𝑎, 𝑥1] hoặc [𝑥1, 𝑏] rồi tiếp tục áp dụng phương pháp tiếp tuyến. Cứ thế tiếp tục ta sẽ được các giá trị 𝑥2, 𝑥3, ngày càng gần 𝑥 ∗ Tổng quát: Với hàm 𝑓(𝑥) thỏa mãn 𝑓′(𝑥) ≠ 0, 𝑓′′(𝑥) ≠ 0 và không đổi dấu trên [𝑎, 𝑏]. Khi đó ta thiết lập dãy lặp { 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛) 𝑓′(𝑥𝑛) 𝑥0 chọn trước ∈ [𝑎, 𝑏]sao cho 𝑓(𝑥0). 𝑓 ′′(𝑥0) > 0 (8) Khi đó có thể chứng minh dãy lặp hội tụ đến nghiệm đúng và ta có ước lượng sai số sau: |𝑥𝑛 − 𝑥 ∗| ≤ |𝑓(𝑥𝑛)| 𝑚 Với 0 < 𝑚 ≤ |𝑓′(𝑥)|, 𝑎 ≤ 𝑥 ≤ 𝑏 Nhận xét: Nhìn công thức (8) ta thấy phương pháp Newton thuộc loại phương pháp lặp đơn với hàm lặp 𝜑(𝑥) = 𝑥 − 𝑓(𝑥) 𝑓′(𝑥) y x A B a bM P Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 15 Ví dụ 1: Tìm nghiệm dương nhỏ nhất của phương trình sau bằng phương pháp Newton (Phương pháp tiếp tuyến) đến mức sai số 710 3 0xx e . Giải: Xét ( ) 3 xf x x e '( ) 3 '( ) 0 ln3xf x e f x x . Ta có bảng biến thiên X ln3 f’(x) + 0 + f(x) 3(ln3 1) 0 Vậy phương trình có nghiệm dương nhỏ nhất duy nhất trên khoảng ( ;ln3) . Ta có (0) 1 0 (1) 3 0 f f e phương trình có nghiệm dương nhỏ nhất duy nhât trên (0,1) . Có '( ) 3 0, [0,1] ''( ) 0, [0,1] x x f x e x f x e x vậy các điều kiện của phương pháp Newton thỏa mãn. Có * 7 ( ) 10nn f x x x m với [0,1] [0,1] min '( ) min 3 3 .xm f x e e * 83.10nx x Có (0) ''(0) 1 0f f , ta chọn 0 0 1 1 0 0 ( ) 3 '( ) 3 n n x n n n n n n x n x x f x x ex x x x f x e Ta có bảng Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 16 n nx ( )nf x 0 1 2 3 4 0 0.5 0.6100596 0.6189968 0.6190612 -1 0.1487217 0.010362 57.10 810 Vậy * 4 0.6190612x x . Ví dụ 2: Xét phương trình 𝑥4 − 3𝑥2 + 75𝑥 − 10000 = 0. Hãy tính gần đúng nghiệm của phương trình đã cho trên (−11;−10) đến bước lặp thứ 3 và đánh giá sai số mắc phải. Giải: *) Đặt 𝑓(𝑥) = 𝑥4 − 3𝑥2 + 75𝑥 − 10000. Khi đó 𝑓 liên tục trên [−11;−10] và 𝑓(−10) = −1050 < 0, 𝑓(−11) = 3453 > 0 nên 𝑓(𝑥) = 0 có nghiệm 𝑥∗ ∈ (−11,−10). *) Kiểm tra điều kiện của phương pháp: 𝑓′(𝑥) = 4𝑥3 − 6𝑥 + 75 0 trên [−11, −10]. Với 𝑥0 = −11, áp dụng (8) ta có công thức lặp khi đó (viết rõ biểu thức lặp) rồi tình toán trên máy tính ta có bảng 𝑛 𝑥𝑛 |𝑓(𝑥𝑛)| 0 1 2 3 -11 -10.3 -10.27 -10.261 3453 134.3 37.8 0.149 *) Nghiệm gần đúng lần lặp thứ 3 là 𝑥∗ ≈ 𝑥3 = −10.261. Hơn nữa dễ có m = min [−11;−10 ] |𝑓′(𝑥)| = |𝑓′(−10)| = 3865. Như vậy sai số mắc phải là |𝑥∗ − 𝑥3| ≤ |𝑓(𝑥3)| 𝑚 ≤ 4.10−5 Ví dụ 3 : Giải gần đúng nghiệm dương nhỏ nhất của phương trình sau theo phương pháp Newton với những yêu cầu như Ví dụ 2. 𝑥3 + 4𝑥2 − 15 = 0 Chú ý: Xem hướng dẫn ấn máy tính giải nhanh các phương pháp giải gần đúng phương trình theo công thức lặp ở cuối bài giảng. Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 17 Chương 3(Buổi 4) TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH I. Mở đầu Nhiều vấn đề của khoa học, kỹ thuật, kinh tế, môi trường qui về việc giải hệ phương trình đại số tuyến tính { 𝑎11𝑥1 + 𝑎12𝑥2 +⋯+ 𝑎1𝑛𝑥𝑛 = 𝑏1 𝑎21𝑥1 + 𝑎22𝑥2 +⋯+ 𝑎2𝑛𝑥𝑛 = 𝑏2 𝑎𝑛1𝑥1 + 𝑎𝑛2𝑥2 +⋯+ 𝑎𝑛𝑛𝑥𝑛 = 𝑏𝑛 (1) Đặt 𝐴 = (𝑎𝑖𝑗)𝑛×𝑛 là ma trận hệ số, 𝑏 ∈ 𝑅 𝑛 là ma trận cột các hệ số tự do cho trước, 𝑥 ∈ 𝑅𝑛 là vectơ phải tìm, thì hệ (1) được viết ở dạng 𝐴. 𝑥 = 𝑏 (2) Về phương diện lý thuyết, hệ (2) có thể giải được trọn vẹn nhờ lý thuyết ma trận và định thức. Tuy nhiên, với trường hợp ma trận không suy biến, nếu giải bằng phương pháp Cramer thì số phép tính là rất lớn, cỡ 𝑛! 𝑛2 phép tính nhân chia. Nhằm khắc phục hạn chế đó, trong chương này chúng ta xét một số phương pháp giải thực tế hệ phương trình (2) với đặc điểm chung là khối lương tính toán giảm nhẹ. Trong số các phương pháp đó chúng ta chia làm hai nhóm phương pháp lớn là nhóm phương pháp trực tiếp và nhóm phương pháp gián tiếp. Đặc điểm chung của nhóm phương pháp trực tiếp là sau một số hữu hạn phép tính sẽ có kết quả, vì vậy nhóm phương pháp này thường được áp dụng với một số bài toán có kích thước nhỏ, và các số liệu ban đầu là đúng. Tuy nhiên do phải thực hiện một số phép tính tương đối lớn nên có nguy cơ tích lũy sai số, nhất là đối với trường hợp các số liệu ban đầu không thật chính xác. Còn với nhóm phương pháp gián tiếp (phương pháp lặp) thường được áp dụng cho lớp các bài toán có kích thước lớn, số liệu ban đầu là có sai số. Ngoài nội dung chính là giải hệ phương trình đại số tuyến tính, trong chương này cũng nghiên cứu cách tính gần đúng của ma trận nghịch đảo. II. Phương pháp khử Gauss Tư tưởng của phương pháp khử Gauss là đưa hệ phương trình (2) về dạng tam giác trên, lúc đó nghiệm được tìm nhờ phương pháp thế ngược. Quá trình đưa hệ (2) về một hệ tương đương dạng tam giác được gọi là quá trình khử, được thực hiện bởi lược đồ sau đây: Ta chia phương trình thứ nhất cho 𝑎11 (nếu 𝑎11 = 0 thì ta có thể đổi chỗ các phương trình trong hệ để sao cho 𝑎11 ≠ 0). Sau đó lần lượt nhân phương trình đó với – 𝑎21, −𝑎31, , −𝑎𝑛1 và theo thứ tự, cộng vào phương trình thứ hai, thứ ba, thứ 𝑛. Bằng cách đó ta khử được 𝑥1 ra khỏi các phương trình của hệ từ phương trình thứ hai trở đi. Bước tiếp theo là ta khử 𝑥2 ra khỏi các phương trình từ thứ ba trở đi Sau một số hữu hạn bước, ta đưa được hệ (2) về dạng tam giác sau đây: { 𝑐11𝑥1 + 𝑐12𝑥2 +⋯+ 𝑐1𝑛𝑥𝑛 = 𝑑1 𝑐22𝑥2 +⋯+ 𝑐2𝑛𝑥𝑛 = 𝑑2 𝑐𝑛𝑛𝑥𝑛 = 𝑑𝑛 Khi đó nghiệm 𝑥∗ = (𝑥1 ∗, 𝑥𝑛 ∗) ∈ 𝑅𝑛 tìm được nhờ phép thế ngược. Ví dụ: Giải hệ phương trình: { 8𝑥1 − 3𝑥2 + 2𝑥3 = 20 4𝑥1 + 11𝑥2 − 𝑥3 = 33 6𝑥1 + 3𝑥2 + 12𝑥3 = 36 Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 18 Giải: Biến đổi ma trận hệ số ta được 𝐴 = [ 8 −3 2 20 4 11 −1 33 6 3 12 36 ] ℎ1 : 8 → [ 1 − 3 8 1 4 5 2 4 11 −1 33 6 3 12 36 ] (−4)×ℎ1 + ℎ2 → [ 1 − 3 8 1 4 5 2 0 25 2 −2 23 6 3 12 36] (−4)×ℎ1 + ℎ3 → [ 1 − 3 8 1 4 5 2 0 25 2 −2 23 0 21 4 21 2 21] ℎ2 ∶ 25 2 → [ 1 − 3 8 1 4 5 2 0 1 − 4 25 46 25 0 21 4 21 2 21] (− 21 4 )×ℎ2+ ℎ3 → [ 1 − 3 8 1 4 5 2 0 1 − 4 25 46 25 0 0 567 50 567 50 ] Như vậy hệ đã cho tương đương với hệ { 𝑥1 − 3 8 𝑥2 + 1 4 𝑥3 = 5 2 𝑥2 − 4 25 𝑥3 = 46 25 567 50 𝑥3 = 567 50 Vậy hệ có nghiệm 𝑥∗ = (3, 2, 1) III. Các phương pháp lặp đơn III.1.1. Kiến thức chuẩn bị Phương pháp khử Gauss đã xét ở trên, mặc dù có số phép tính ít hơn quy tắc Cramer rất nhiều, cũng không hiệu quả trong trường hợp hệ cỡ lớn hoặc ma trận hệ số có nhiều số 0. Do đó trong mục này, chúng ta tiến hành nghiên cứu nhóm phương pháp hiệu quả hơn để giải gần đúng nghiệm của hệ phương trình đại số tuyến tính với độ chính xác tùy ý. Tất cả các phương pháp giải gần đúng hệ ĐSTT sẽ trình bày đều có chung một đặc điểm là xây dựng dãy lặp vectơ hội tụ tới nghiệm đúng. Trước hết chúng ta có các khái niệm sau: III.1.1.1. Giới hạn của dãy vectơ Cho n dãy số {x1(k)}, {x2(k)}, ... , {xn(k)} với k N và xi(k) là số hạng thứ k của dãy số thứ i. Với mỗi k, đặt v(k) = (x1(k), x2(k), ... , xn(k)) Rn, ta có dãy vectơ v(1), v(2), v(3), ... Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 19 Khi k , nếu mỗi thành phần thứ i của v(k) có giới hạn là i, thì v = (1, 2, ... , n) được gọi là giới hạn của dãy {v(k)}, và ta cũng nói {v(k)} hội tụ tới v. Ví dụ: Xét ba dãy { 1 𝑘 } ; { 𝑘 2𝑘+1 } ; { 1 𝑘2 } Với mỗi 𝑘, đặt 𝑣𝑘 = ( 1 𝑘 , 𝑘 2𝑘+1 , 1 𝑘2 } thì ta được một dãy vectơ hội tụ đến 𝑣 = (0, 1 2 , 0). III.1.1.1. Chuẩn của vec tơ và chuẩn của ma trận Định nghĩa: Với v = (x1, x2, ... , xn)Rn, gọi max{|x|1, ... , |xn|} là chuẩn vô hạn của vectơ v, và ký hiệu ||v|| = max{|x|1, ... , |xn|}. Chuẩn vô hạn thỏa mãn ba tích chất sau: (i) ||v|| 0 với dấu "=" xảy ra khi và chỉ khi v = 0. (ii) ||cv|| = |c|||v|| đối với vô hướng c bất kỳ. (iii) ||v + w|| ||v|| + ||w|| (bất đẳng thức Tam giác) Nhờ khái niệm chuẩn vô hạn, ta có định lý về tiêu chuẩn hội tụ Định lý: {v(k)} hội tụ tới v nếu và chỉ nếu ||v(k) - v||0 khi k . Trong việc xác lập sự hội tụ của một dãy vectơ tới nghiệm đúng và đánh giá sai số của nghiệm xấp xỉ so với nghiệm đúng ta cũng cần đến khái niệm chuẩn của ma trận. Định nghĩa: Chuẩn vô hạn của ma trận thực B = (bij)nn, ký hiệu ||B||, là số thực ||𝐵|| ∞ = max{∑|𝑏1𝑗|, 𝑛 𝑗=1 ∑|𝑏2𝑗|, 𝑛 𝑗=1 ,∑|𝑏𝑛𝑗|} 𝑛 𝑗=1 Ví dụ: 𝐵 = [ 0 0.03 −0.02 0.02 0 0.04 −0.04 0.01 0 ] có ||B|| = max{0.05; 0.06; 0.05} = 0.06. III.1.2. Phương pháp lặp đơn III.1.2.1. Nội dung phương pháp Cho hệ Ax = b cỡ nn. Có nhiều cách để đưa hệ này về dạng x = Bx + g tương đương. Ví dụ, tách A = S - T, trong đó S khả nghịch, thì Ax = b Sx = Tx + b. Đặt B = S-1T, g = S-1b, ta có hệ x = Bx + g. Xây dựng dãy vectơ {v(k)}, như sau: Cho trước v(0) rồi tính v(k) theo công thức v(k+1) = Bv(k) + g (k = 0, 1, ... ). (1) (1) là công thức tính lặp, k 1 là số lần lặp. Phương pháp tính {v(k)} thế này là phương pháp lặp đơn. Nếu {v(k)} hội tụ thì ta nói phương pháp lặp đơn hội tụ. Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 20 Giả sử {v(k)} v. Lấy giới hạn ở hai vế của v(k+1) = Bv(k) + g ta có v = Bv + g, v là nghiệm của x = Bx + g, tức cũng là nghiệm của Ax = b. Với > 0 cho trước, nếu k đủ lớn ta luôn có ||v(k) - v|| . Khi đó ta nói v(k) là nghiệm xấp xỉ của nghiệm đúng với độ chính xác . Trong thực hành, ta bắt buộc phải dừng tính toán ở bước thứ k nào đó và xem v(k) là nghiệm gần đúng. Ví dụ 1: Xét hệ phương trình { 10𝑥1 + 2𝑥2 + 𝑥3 = 10 𝑥1 + 10𝑥2 + 2𝑥3 = 12 𝑥1 + 𝑥2 + 10𝑥3 = 8 ⇔ { 𝑥1 = −0.2𝑥2 − 0.1𝑥3 + 1 𝑥2 = −0.1𝑥1 − 0.2𝑥3 + 1.2 𝑥3 = −0.1𝑥1 − 0.1𝑥2 + 0.8 Hệ trên tương đương 𝑥 = 𝐵𝑥 + 𝑔 với 𝐵 = [ 0 −0.2 −0.1 −0.1 0 −0.2 −0.1 −0.1 0 ] , 𝑔 = [ 1 1.2 0.8 ] Với v(k+1) = (x1(k+1), x2(k+1), x3(k+1)), v(k) = (x1(k), x2(k), x3(k)), xây dựng công thức tính lặp v(k+1) = Bv(k) + g, tức x1 (k+1) = -0.2x2 (k) - 0.1x3 (k) + 1 x2 (k+1) = -0.1x1 (k) - 0.2x3 (k) + 1.2 x3 (k+1) = -0.1x1 (k) - 0.1x2 (k) + 0.8 Với xấp xỉ ban đầu 𝑥(0) = (0, 0, 0) ta thu được kết quả, thể hiện ở bảng sau: 𝑘 𝑥1 𝑥2 𝑥3 1 2 3 4 5 6 7 1 0.68 0.754 0.733 0.7383 0.73688 0.737250 1.2 0.94 1.016 0.997 1.0021 1.00077 1.00112 0.8 0.58 0.638 0.623 0.6273 0.62596 0.626235 Có thể thấy nghiệm đúng của hệ này là 𝑥∗ = ( 707 955 , 956 955 , 598 955 ) do đó nghiệm 𝑥(7) tương đối chính xác. III.1.2.2. Sự hội tụ của phương pháp và sai số của nghiệm xấp xỉ Phương pháp lặp đơn áp dụng cho x = Bx + g với B = (bij)nn Định lý: Nếu ||B||<1, thì với mọi v(0) Rn cho trước dãy {v(k)} xác định bởi v(k+1) = Bv(k) + g (k = 0, 1, ... ). đều hội tụ tới nghiệm duy nhất v của x = Bx + g. Hơn nữa, có đánh giá sai số Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 21 ||𝑣(𝑘) − 𝑣|| ∞ ≤ ||𝐵|| ∞ 𝑘 1 1 − ||𝐵|| ∞ ||𝑣(1) − 𝑣(0)|| ∞ Nhận xét: 1) Với điều kiện của định lý, và với v(0) và > 0 chọn trước, số lần lặp k để nghiệm xấp xỉ đạt độ chính xác (tức là ||v(k) - v|| < ), xác định từ bất phương trình ||𝐵|| ∞ 𝑘 1 − ||𝐵|| ∞ ||𝑣(1) − 𝑣(0)|| ∞ ≤ 𝜖 2) Sai số trong quá trình tính toán không ảnh hưởng đến kết quả cuối cùng (Phương pháp lặp đơn có khả năng tự sửa sai). Ví dụ 2: Quay lại Ví dụ 1. ||B|| = 0.3 < 1, nên phương pháp lặp đơn hội tụ. Đánh giá sai số của v(7) so với nghiệm đúng v : v(1) - v(0) = (1, 1.2, 0.8) ||𝑣(7) − 𝑣|| ∞ ≤ ||𝐵|| ∞ 7 1 1 − ||𝐵|| ∞ ||𝑣(1) − 𝑣(0)|| ∞ = 0.37 1 − 0.3 × 1.2 = 3.7 × 10−4 III.1.2.3. Phương pháp Jacobi Nếu trong hệ 𝐴𝑥 = 𝑏 ma trận 𝐴 có tất cả các phần tử trên đường chéo khác 0, tách 𝐴 = 𝑆 – 𝑇, với 𝑆 = [ 𝑎11 𝑎22 ⋱ 𝑎𝑛𝑛 ] , 𝑇 = [ 0 −𝑎12 −𝑎1𝑛 – 𝑎21 0 −𝑎2𝑛 ⋮ ⋱ ⋮ −𝑎𝑛1 – 𝑎𝑛2 0 ] thì 𝐴𝑥 = 𝑏 𝑆𝑥 = 𝑇𝑥 + 𝑏. Đặt 𝑔 = 𝑆−1𝑏, và 𝐵 = 𝑆−1𝑇 𝑥 = 𝐵𝑥 + 𝑔. Phương pháp lặp đơn tiến hành theo công thức v(k+1) = Bv(k) + g được gọi là phương pháp Jacobi. Phương pháp Jacobi sẽ hội tụ, nếu A = (aij)nn là ma trận đường chéo trội, tức là i = 1, ... , n, |aii| > |ai1| + |ai2| + + |ai i-1|+ |ai i+1|++|ain| III.1.3. Phương pháp Gauss-Seidel III.1.3.1. Nội dung phương pháp Quay lại Ví dụ 1 trong phương pháp lặp đơn v(k+1) = (x1 (k+1), x2 (k+1), x3 (k+1)) tính qua v(k) = (x1 (k), x2 (k), x3 (k)) nhờ x1 (k+1) = -0.2x2 (k) - 0.1x3 (k) + 1 x2 (k+1) = -0.1x1 (k) – 0.2x3(k) + 1.2 x3 (k+1) = -0.1x1 (k) – 0.1x2(k) + 0.8 Bài giảng Phương pháp số dành cho Khoa C-ĐH Thủy Lợi-Vũ Mạnh Tới 2012-2013 22 Cải tiến: Khi tính x2(k+1) sử dụng ngay x1(k+1) vừa tính được x2 (k+1) = -0.1x1 (k+1) – 0.2x3(k) + 1.2 Khi tính x3 (k+1) sử dụng ngay x1(k+1), x2(k+1) vừa tính được. x3 (k+1) = -0.1x1 (k+1) - 0.1x2 (k+1) + 0.8 Cụ thể: tính v(k+1) = (x1 (k+1), x2 (k+1), x3 (k+1)) qua v(k) = (x1 (k), x2 (k), x3 (k)) theo các công thức x1 (k+1) = -0.2x2 (k) – 0.1x3(k) + 1 x2 (k+1) = -0.1x1 (k+1) - 0.2x3 (k) + 1.2 x3 (k+1) = -0.1x1 (k+1) - 0.1x2 (k+1) + 0.8 Với v(0) = (0, 0, 0), ta tính được v(1) = (x1(1), x2(1), x3(1)) với x1 (1) = -0.2(0) - 0.1(0) + 1 = 1 x2 (1) = -0.1(1) - 0.2(0) + 1.2 = 1.1 x3 (1) = -0.1(1) - 0.1(1.1) + 0.8 = 0.59 v(1) = (1, 1.1, 0.59) Cách làm này được gọi là phương pháp Gauss-Seidel (một biến dạng của phương pháp lặp đơn). Tư tưởng chính của phương pháp Seidel là các thành phần vừa tính được của v(k+1) được sử dụng ngay để tính thành phần tiếp theo của nó. Ưu điểm của phương pháp Gauss-Seidel: * Tiết kiệm được bộ nhớ trong máy tính * Nói chung phương pháp Gauss Seidel hội tụ nhanh hơn phương pháp lặp đơn. III.1.3.2. Sự hội tụ của phương pháp Seidel và đánh giá sai số của nghiệm xấp xỉ Phương pháp Seidel áp dụng cho phương trình x = Bx + g với B = (bij)nn Định lý: Nếu ||B|| <1, thì với mọi v(0) Rn phương pháp Gauss Seidel đều hội tụ tới nghiệm duy nhất v của x = Bx + g. Hơn nữa có đánh giá sai số ||𝑣(𝑘) − 𝑣|| ∞ ≤ 𝜇𝑘 1 1 − 𝜇 ||𝑣(1) − 𝑣(0)|| ∞ Trong đó 𝜇 = max 1≤𝑖≤𝑛 𝛽𝑖 1−𝛼𝑖 với 𝛼𝑖 = |𝑏𝑖1| + ⋯+ |𝑏𝑖 𝑖−1|, 𝛽𝑖 = |𝑏𝑖𝑖| + ⋯+ |𝑏𝑖𝑛|.
File đính kèm:
- bai_giang_mon_phuong_phap_so.pdf