Tính toán khoa học - Chương 2: Hệ phương trình tuyến tính

12,287 views
12,086 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,287
On SlideShare
0
From Embeds
0
Number of Embeds
311
Actions
Shares
0
Downloads
197
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Tính toán khoa học - Chương 2: Hệ phương trình tuyến tính

  1. 1. Chương 2: Hệ Phương Trình Tuyến Tính Nguyễn Đức Nghĩa, Vũ Văn Thiệu, Trịnh Anh Phúc 1 Bộ 1 môn Khoa Học Máy Tính, Viện CNTT & TT, Trường Đại Học Bách Khoa Hà Nội. Ngày 4 tháng 12 năm 2012 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 1 / 68
  2. 2. Giới thiệu 1 Thế nào là hệ phương trình tuyến tính ? 2 Ví dụ 3 chiều 3 Ma trận hoán vị và ma trận tam giác 4 Phân tích LU 5 Vai trò của phần tử trụ 6 Hiệu ứng của sai số làm tròn 7 Hệ xác định tồi và số điều kiện của ma trận 8 Giải hệ phương trình tuyến tính bằng phân tích ma trận Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 2 / 68
  3. 3. Hệ phương trình tuyến tính Định nghĩa a11 x1 + a12 x2 + · · · + a1n xn = b1 a21 x1 + a22 x2 + · · · + a2n xn = b2 ··· am1 x1 + am2 x2 + · · · + amn xn = bm Ký hiệu A = (aij ) với i = 1, · · · , m và j = 1, · · · , n là ma trận hệ số A. b = (b1 , b2 , · · · , bm )T là vectơ vế phải. x = (x1 , x2 , · · · , xn )T là vectơ biến. ta có thể viết lại hệ phương trình tuyến tính dưới dạng ma trận Ax = b Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 3 / 68
  4. 4. Hệ phương trình tuyến tính Ví dụ 1 : Xét hệ phương trình tuyến tính có Ma trận hệ số A = 3 2 1 −1 Vec tơ vế phải là b = −1 1 thì hệ có nghiệm duy nhất x = 0.2 −0.8 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 4 / 68
  5. 5. Hệ phương trình tuyến tính Ví dụ 2 : Xét hệ phương trình tuyến tính có Ma trận hệ số A = 1 0 3 0 1 −5 1 2   1 − 3t   thì hệ có vô số nghiệm x = 2 + 5t  với mọi t ∈ R. t Vec tơ vế phải là b = Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 5 / 68
  6. 6. Hệ phương trình tuyến tính Ví dụ 3 : Xét hệ phương trình tuyến tính có   1 0   Ma trận hệ số A = 0 1 3 4   1   Vec tơ vế phải là b = 2 3 thì hệ vô nghiệm. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 6 / 68
  7. 7. Hệ phương trình tuyến tính Đối với hệ phương trình tuyến tính có thể xảy ra m = n : hệ vuông (số phương trình bằng số ẩn, thường có nghiệm duy nhất) m < n : hệ thiếu (số phương trình ít hơn số ẩn số, hệ thường vô số nghiệm) m > n : hệ dư (số phương trình nhiều hơn số ẩn số, hệ thường vô nghiệm) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 7 / 68
  8. 8. Giải hệ phương trình tuyến tính Hệ phương trình vuông Ax = b trong đó A ∈ Rn×n còn x và b là các vec tơ ∈ Rn Giải hệ phương trình vuông Nếu ma trận A không suy biến (singular) thì nghiệm duy nhất của phương trình là x = A−1 b Matlab » x=inv(A)*b Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 8 / 68
  9. 9. Giải hệ phương trình tuyến tính Ví dụ 4 : Giải hệ phương trình A = (7) và b = (21) hay phương trình 7x = 21 Cách 1 : Giải trực tiếp phép chia x = 21/7 = 3 Cách 2 : Nghịch đảo 7−1 rồi nhân với 21 sẽ dẫn đến x = 7−1 × 21 = 0.142857 × 21 = 2.99997 Rõ ràng cách 1 tốt hơn cách 2, thêm nữa cách 2 còn có khối lượng tính toán lớn hơn khi xác định nghịch đảo 7−1 . Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hà Nội. ) 12 năm 2012 Tính TT, Trường Ngày 4 tháng 9 / 68
  10. 10. Giải hệ phương trình tuyến tính Nhận xét Ngay cả trong lời giải tổng quát, khi ta xét hệ gồm nhiều phương trình thì việc giải nó thường là tạo ra lời giải trực tiếp mà không qua tính giá trị nghịch đảo A−1 . Chẳng hạn các cách giải : Phân tích LU (LU Factorization) Phân tích Cholesky (Cholesky Factorization) Phân rã QR (QR Decomposition) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 10 / 68
  11. 11. Giải hệ phương trình tuyến tính Toán tử chia ma trận trong Matlab Nếu A là ma trận bất kỳ và B là ma trận có số hàng giống A thì lời giải của hệ phương trình AX = B thì ta dùng phép chia trái X = AB. Còn lời giải của hệ phương trình XA = B thì ta dùng phép chia phải X = B/A. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 11 / 68
  12. 12. Giải hệ phương trình tuyến tính Ví dụ 5 : Chia trái » A=[3 2;1 -1];b=[-1;1]; » x = Ab; x = 0.2000 -0.8000 Ví dụ 6 : Chia phải » AA=A’;bb=b’; » xx = bb/AA; xx = 0.2000 -0.8000 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 12 / 68
  13. 13. Giải hệ phương trình tuyến tính Các định lượng cơ bản khi giải hệ phương trình vuông Định thức (Determinant) để xác định hình thức nghiệm (vô nghiệm hoặc vô số nghiệm, hay nghiệm duy nhất). Vết (Trace) là tổng các phần tử đường chéo chính. Hạng (Rank) là số dòng hay cột độc lập tuyến tính lớn nhất của ma trận. Matlab » D=det(A) » T=trace(A) » R=rank(A) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 13 / 68
  14. 14. Giải hệ phương trình tuyến tính Định lý Kronecker-Capelli Hệ phương trình tuyến tính Ax = b có nghiệm khi và chỉ khi rank(A) = rank(Ab) Ví dụ 7 : cùng hạng » A=[1 2 3; 4 5 6; 8 10 12]; » b=[5;6;12]; » rA=rank(A); » rAb=rank([Ab]) rA = 2 rAb = 2 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 14 / 68
  15. 15. Giải hệ phương trình tuyến tính vuông Các tình huống xảy ra khi có giá trị định thức khi giải Ax = b Hệ phương trình có nghiệm duy nhất nếu det(A) = 0. Khi det(A) = 0 hệ phương trình có thể có vô số nghiệm hoặc vô nghiệm (Ta có thể áp dụng định lý Kronecker-Capelli để xác định rõ nó vô nghiệm hay vô số nghiệm). Khi det(A) = 0 thì tồn tại ma trận nghịch đảo của A và A được gọi là ma trận không suy biến. Khi det(A) = 0 thì nghịch đảo A−1 không tồn tại và A được gọi là ma trận suy biến. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 15 / 68
  16. 16. Giải hệ phương trình tuyến tính vuông Ví dụ 8 : » A1=[-1 1; -2 2];b1=[1 ; 0]; % hệ vô nghiệm » x1 = A1b1, D1 = det(A1) Warning : Matrix is singular to working precision. x1 = Inf Inf D1=0 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 16 / 68
  17. 17. Giải hệ phương trình tuyến tính vuông Ví dụ 9 : » A2=[-1 1; -2 2];b2=[1 ; 2]; % hệ vô số nghiệm » x2 = A2b2 Warning : Matrix is singular to working precision. x2 = -1 0 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 17 / 68
  18. 18. Giải hệ phương trình tuyến tính vuông Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 18 / 68
  19. 19. Giải hệ phương trình tuyến tính vuông Ví dụ 3 chiều Cho hệ phương trình cấp 3 sau :      7 10 −7 0 x1      −3 2 6 x2  = 4 6 x3 5 −1 5 ta viết lại dưới dạng hệ phương trình tuyến tính 10x1 − 7x2 =7 −3x1 + 2x2 + 6x3 = 4 5x1 − x2 + 5x3 = 6 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 19 / 68
  20. 20. Giải hệ phương trình tuyến tính vuông Ví dụ 3 chiều (tiếp) Hệ phương trình tuyến tính 10x1 − 7x2 =7 (1) −3x1 + 2x2 + 6x3 = 4 (2) 5x1 − x2 + 5x3 = 6 (3) ta tiến hành giải Khử x1 ⇒ (1) × −0.3 + (2) và (1) × 0.5 − (3) Hệ số 10 của ẩn x1 trong (1) đc gọi là phần tử trụ, các hệ số -0.3 và 0.5 đc gọi là nhân tử. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 20 / 68
  21. 21. Giải hệ phương trình tuyến tính vuông Ví dụ 3 chiều (tiếp) Hệ phương trình tuyến tính sau khi khử x1 10x1 − 7x2 =7 (4) −0.1x2 + 6x3 = 6.1 (5) 2.5x2 + 5x3 = 2.5 (6) ta tiếp tục giải Khử x2 ⇒ do phần tử trụ của x2 trong (5) là -0.1 có trị tuyệt đối nhỏ, ta tiến hành đổi chỗ hai phương trình (5) và (6) rồi mới tiến hành khử x2 . Việc làm này gọi là phép xoay Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 21 / 68
  22. 22. Giải hệ phương trình tuyến tính vuông Ví dụ 3 chiều (tiếp) Hệ phương trình tuyến tính sau khi thực hiện phép xoay 10x1 − 7x2 =7 (7) 2.5x2 + 5x3 = 2.5 (8) −0.1x2 + 6x3 = 6.1 (9) ta tiếp tục giải Khử x2 ⇒ (8) × 0.04 + (9) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 22 / 68
  23. 23. Giải hệ phương trình tuyến tính vuông Ví dụ 3 chiều (tiếp) Hệ phương trình tuyến tính sau khi thực hiện phép khử x2 10x1 − 7x2 =7 (10) 2.5x2 + 5x3 = 2.5 (11) 6.2x3 = 6.2 (12) ta tiếp tục giải Từ phương trình (12) ⇒ x3 = 1. thay x3 vào (11) thì 2.5x2 + 5 × (1) = 2.5 ⇒ x2 = −1. thay x2 vào (10) thì 10x1 − 7 × (−1) = 7 ⇒ x1 = 0. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 23 / 68
  24. 24. Giải hệ phương trình tuyến tính vuông Các ma trận L,U,P Toàn bộ cách giải vừa trình bày có thể được gói gọn trong các      1 0 0 10 −7 0 1      L =  0.5 1 0 , U =  0 2.5 5  , P = 0 −0.3 0.04 1 0 0 6.2 0 ma trận sau  0 0  0 1 1 0 Với L là ma trận chứa các nhân tử U là ma trận hệ số cuối cùng P là ma trận hoán vị mô tả phép xoay thì chúng ta có LU = PA Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 24 / 68
  25. 25. Giải hệ phương trình tuyến tính vuông Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 25 / 68
  26. 26. Giải hệ phương trình tuyến tính vuông Ma trận hoán vị Ma trận hoán vị là thu được từ ma trận đơn vị I bằng cách hoán vị các hàng của nó. Với ma trận hoán vị : P −1 = P T Phép nhân PX dùng để hoán vị hàng ma trận X Phép nhân XP dùng để hoán vị cột ma trận X Ví dụ 10  0  0 P = 0  1 1 0 0 0 0 0 1 0  0  1  0  0 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 26 / 68
  27. 27. Giải hệ phương trình tuyến tính vuông Ví dụ 10 (tiếp)  0  0 P = 0  1 1 0 0 0 0 0 1 0  0  1  0  0 Dạng rút gọn trong Matlab p = [2 4 3 1] Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 27 / 68
  28. 28. Giải hệ phương trình tuyến tính vuông Ma trận tam giác Ma trận X ∈ Rn×n là ma trận tam giác trên nếu xij = 0 ∈ X ∀i < j nghĩa là có dạng   x11 x12 · · · x1n    0 x22 · · · x2n   . X = . .. .   . . . .  . .  . 0 0 · · · xnn Khi ma trận này có các phần tử đường chéo chính xii = 1 ∀i = 1, · · · , n thì đc gọi là ma trận tam giác trên đơn vị. Định thức ma trận tam giác trên khác không khi và chỉ khi tất cả các phần tử nằm trên đường chéo chính là khác không. ⇒ Định nghĩa tương tự ta có ma trận tam giác dưới và ma trận tam giác dưới đơn vị. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 28 / 68
  29. 29. Giải hệ phương trình tuyến tính vuông Ma trận tam giác Việc giải hệ phương trình ma trận tam giác đều dễ dàng. Ta giải hệ phương trình hàng cuối cùng để có ẩn số cuối, sau đó lần lượt thay vào các phương trình trên để tìm ra các ẩn số còn lại. Ví dụ 11 : Giải hệ phương trình tam giác trên Ux = b »x = zeros(n,1); for k = n:-1:1 x(k) = b(k)/U(k,k); i=(1:k-1)’; b(i) = b(i) - x(k) * U(i,k); end Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 29 / 68
  30. 30. Giải hệ phương trình tuyến tính vuông Ví dụ 12 : Giải hệ phương trình tuyến tính 3x1 + 4x2 + 5x3 = 7 2x2 − 3x3 = 8 5x3 = 11 % Chương trình Matlab » U=[3,4,5;0,2,-3;0,0,5]; b = [7;8;11];n=3;x=zeros(n,1); » for k=n:-1:1 » x(k) = b(k)/U(k,k); » i=(1:k-1)’; » b(i) = b(i) - x(k) * U(i,k); » end; Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 30 / 68
  31. 31. Giải hệ phương trình tuyến tính vuông Phân tích LU Thuật toán phổ biến dùng để giải hệ phương trình tuyến tính vuông có hai giai đoạn Khử xuôi (Forward elimination) chính là phép chuyển ma trận vuông về dạng tam giác trên dùng để khử từng ẩn số, với nhân tử, phần tử trụ tương thích kết hợp phép xoay. - gồm n − 1 bước - tại bước k = 1, · · · , n − 1 nhân phương trình thứ k với nhân tử rồi trừ các phương trình còn lại để khử ẩn số xk . Thế ngược (Backward subtitution) giải phương trình hàng cuối cùng để tìm ẩn cuối cùng, sau đó thế ngược lần lượt lên các hàng trên để tìm ra các ẩn còn lại. (xem lại ví dụ 12) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 31 / 68
  32. 32. Giải hệ phương trình tuyến tính vuông Phân tích LU (tiếp) Gọi Pk là các ma trận hoán vị tại các bước k = 1, · · · , n − 1 Gọi Mk là các ma trận tam giác dưới đơn vị thu được bằng cách chèn các nhân tử được sử dụng ở bước k xuống dưới vị trí đường chéo của cột k của ma trận đơn vị. Gọi U là ma trận tam giác trên thu được cuối cùng khi kêt thúc giai đoạn khử xuôi. Quá trình khử được viết lại dưới dạng ma trận như sau U = Mn−1 Pn−1 · · · M1 P1 A Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 32 / 68
  33. 33. Giải hệ phương trình tuyến tính vuông Phân tích LU (tiếp) Phương trình có thể viêt lại tương đương như sau L1 L2 · · · Ln−1 U = Pn−1 · · · P1 A trong đó Lk thu được từ Mk bằng cách hoán vị và đổi dấu các nhân tử ở dưới đường chéo. Vậy nếu ta đặt L = L1 L2 · · · Ln−1 P = Pn−1 · · · P2 P1 thì ta thu được công thức ban đầu LU = PA Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 33 / 68
  34. 34. Giải hệ phương trình tuyến tính vuông Ví dụ 12 :   10 −7 0   Quay lại ví dụ 3 chiều đầu tiên, ta có A = −3 2 6 thì các ma trận 5 −1 5 xác định trong quá trình khử xuôi là     1 0 0 1 0 0     P1 = 0 1 0 , M1 =  0.3 1 0 0 0 1 −0.5 0 1     1 0 0 1 0 0     P2 = 0 0 1 , M2 = 0 1 0 0 1 0 0 0.04 1 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 34 / 68
  35. 35. Giải hệ phương trình tuyến tính vuông Ví dụ 12 (tiếp): Các ma trận L1 ,L2 tương ứng là     1 0 0 1 0 0     L1 =  0.5 1 0 , L2 = 0 1 0 −0.3 0 1 0 −0.04 1 Chú ý : Khi tính toán giai đoạn khử, ta sẽ tính toán trực tiếp trên các hàng của ma trận chứ không thực hiện phép nhân ma trận như trên. Phân tích LU Hệ thức LU = PA vừa trình bày được gọi là phân tích LU hay phân rã tam giác của ma trận A. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 35 / 68
  36. 36. Giải hệ phương trình tuyến tính vuông Giải hệ phương trình bằng phân tích LU Với hệ phương trình Ax = b với ma trận A là không suy biến đồng thới PA = LU là phân tích LU của A thì hệ phương trình có thể được giải bới hai bước. Khử xuôi Giải hệ Ly = Pb để tìm y , do L là ma trận đơn vị dưới nên y có thể tìm được nhở phép khử xuôi (từ trên xuống dưới). Thế ngược Giải hệ Ux = y bằng cách thế ngược để tìm được x. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 36 / 68
  37. 37. Vai trò của phần tử trụ Phần tử trụ Các phần tử nằm trên đường chéo chính của ma trận U. Phần tử trụ thứ k là hệ số của ẩn xk trong phương trình thứ k tại bước k của giai đoạn khử. Trong cả hai bước khử xuôi và thế ngược đều cần chia cho phần tử trụ nên chúng không thể có giá trị không. Trực giác : hệ phương trình giải tồi nếu phần tử trụ gần không. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 37 / 68
  38. 38. Vai trò của phần tử trụ Ví dụ 13 : Thay đổi chút ít tại hàng hai trong các ví dụ trên      7 10 −7 0 x1      −3 2.099 6 x2  = 3.901 5 −1 5 x3 6 Như vậy, giả sử mọi tính toán chính xác đến 4 chữ số thập phân Hệ số ẩn x2 tại hàng hai thay đổi từ 2.000 thành 2.099 Đồng thời vế phải tương ứng thay đổi từ 4.000 thành 3.901 mục đích là giữ nguyên nghiệm (0, −1, 1)T của hệ phương trình. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 38 / 68
  39. 39. Vai trò của phần tử trụ Ví dụ 13 (tiếp) : Bước đầu tiên của giai đoạn khử      7 10 −7 0 x1       0 −0.001 6 x2  = 6.001 0 2.5 5 x3 2.5 tiếp tục thực hiện khử dù phần tử trụ dù −0.001 là nhỏ so với các hệ số khác của ma trận mà không thực hiện phép xoay. Vậy ta Nhân phương trình hàng thứ hai với 2.5 × 103 rồi cộng với hàng thứ ba. Vế phải của phương trình này, khi nhân 6.001 với 2.5 × 103 thì kết quả 1.50025 × 104 làm tròn thành 1.5002 × 104 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 39 / 68
  40. 40. Vai trò của phần tử trụ Ví dụ 13 (tiếp) :      7 10 −7 0 x1      6.001 6   0 −0.001  x2  =  4 4 x3 1.5004 × 10 0 0 1.5005 × 10 tiếp tục ... Kết quả vế phải phương trình hai làm tròn 1.5001 × 104 được cộng với 2.5 là vế phải của phương trình thứ ba và lại được làm tròn. Vậy phương trình ba trở thành 1.5005 × 104 x3 = 1.5004 × 104 giải ra ta có x3 = 1.5004 × 104 = 0.99993 1.5005 × 104 Rõ ràng, với giá trị chính xác của ẩn số x3 = 1 thì giá trị giải được bởi phương trình này chưa đáng ngại. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 40 / 68
  41. 41. Vai trò của phần tử trụ Ví dụ 13 (tiếp) :      7 x1 10 −7 0      6.001 6   x2  =   0 −0.001 4 4 x3 1.5004 × 10 0 0 1.5005 × 10 tiếp tục ... đối với ẩn số x2 −0.001x2 + 6 × (0.99993) = 6.001 nên x2 = 1.5×10−3 −1.0×10−3 = −1.5 Cuối cùng thế lên phương trình đầu tìm ẩn x1 10x1 − 7 × (−1.5) = 7 suy ra x1 = −3.5 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 41 / 68
  42. 42. Vai trò của phần tử trụ Ví dụ 13 (tiếp) : Như vậy khi không thực hiện phép xoay chọn phần tử trụ      7 10 −7 0 x1      −3 −0.001 6 x2  = 6.001 5 2.5 5 x3 2.5 thay vì được nghiệm (0, −1, 1)T ta lại được nghiệm (−0.35, −1.5, 0.99993)T . Vì sao có sự cố này ? Sai số là do chúng ta chọn phần tử trụ quá nhỏ. Vậy ta nên chọn phần tử trụ có trị tuyệt đối lớn nhất tại mỗi bước khử k. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 42 / 68
  43. 43. Hiệu ứng của sai số làm tròn Cách đo sự khác biệt Thông thường, khi thu được lời giải x ∗ khác với lời giải đúng x ta thường sử dụng hai cách đo sự khác biệt Sai số : e = x − x ∗ Độ lệch : r = b − Ax ∗ Về lý thuyết nếu A không suy biến thì hai đại lượng này cùng bằng không, tuy nhiên khi tính toán trong máy tính hai đại lượng này không đồng điệu. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 43 / 68
  44. 44. Hiệu ứng của sai số làm tròn Ví dụ 14 : Xét hệ phương trình 0.780x1 + 0.563x2 = 0.217 0.913x1 + 0.659x2 = 0.254 Khử Gauss như ví dụ trước, áp dụng quy tắc chọn phần tử trụ lớn nhất tuy nhiên mọi tính toán chỉ chính xác đến 3 chữ số thập phân. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 44 / 68
  45. 45. Hiệu ứng của sai số làm tròn Ví dụ 14 (tiếp): tiếp tục .... Thực hiện phép xoay, để 0.913 trở thành phẩn tử trụ. 0.913x1 + 0.659x2 = 0.254 0.780x1 + 0.563x2 = 0.217 Tính hệ số 0.780/0.913 = 0.854 Nhân hệ số 0.854 với pt thứ nhất rồi trừ đi pt thứ hai. Ta được 0.913x1 + 0.659x2 = 0.254 0.001x2 = 0.001 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 45 / 68
  46. 46. Hiệu ứng của sai số làm tròn Ví dụ 14 (tiếp): 0.913x1 + 0.659x2 = 0.254 0.001x2 = 0.001 tiếp tục .... Ẩn x2 = 0.001/0.001 = 1.000 (chính xác) Thế lên pt trên, x1 = (0.254 − 0.659x2 )/0.913 = −0.443 Cuối cùng ta thu được nghiệm x ∗ = (−0.443, 1.000)T Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 46 / 68
  47. 47. Hiệu ứng của sai số làm tròn Ví dụ 14 (tiếp): Đo sự khác biệt, rõ ràng nghiệm đúng của hệ x = (1, −1)T Sai số : e = x − x ∗ = (1.433, −2)T Độ lệch : r = b − Ax ∗ = = 0.217 − (0.780(−0.443) + 0.563(1.000)) 0.254 − (0.913(−0.443) + 0.659(1.000)) −0.000460 −0.000541 Rõ ràng trong khi độ lệch chấp nhận được khi ta làm tròn sai số 3 số thập phân sau dấu phẩy thì sai số thậm chí còn lớn hơn cả lời giải. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 47 / 68
  48. 48. Hiệu ứng của sai số làm tròn Các câu hỏi đặt ra khi có hiện tượng sai số khi làm tròn Vì sao độ lệch lại có giá trị nhỏ ? Vì sao sai số lại có giá trị quá lớn ? Định thức của hệ 0.780 × 0.659 − 0.913 × 0.563 = 10−6 gần không có phải là nguyên nhân gây hiện tượng này ? Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 48 / 68
  49. 49. Hiệu ứng của sai số làm tròn Ví dụ 14 (tiếp): Thay giả thiết làm tròn với 3 số thập phân thành làm tròn với 6 số thập phân sau dấu phẩy, ta thu được hệ phương trình sau khi khử Gauss 0.913000 0.659000 0.000000 0.000001 x1 x2 = 0.254000 −0.000001 Chú ý, giá trị vế phải của pt thứ hai đã thay đổi. Thực tế nghiệm gần đúng cũng là nghiệm chính xác của hệ −0.000001 = −1.000000 0.000001 0.254 − 0.659x2 x2 = = 1.000000 0.913 x1 = Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 49 / 68
  50. 50. Hiệu ứng của sai số làm tròn Giải thích tại sao độ lệch nhỏ Độ lệch của phương trình hai nhỏ do ma trận gần suy biến det(A) = 10−6 dẫn đến hai phương trình gần như phụ thuộc tuyến tính. Vì thế cặp ẩn (x1 , x2 ) thỏa mãn phương trình thứ nhất cũng thỏa mãn phương trình thứ hai ⇒ Nếu như ta biết chắc định thức bằng không thì ta không cần phải quan tâm đến phương trình thứ hai vì mọi nghiệm của hệ phương trình thứ nhất đều thỏa mãn hệ phương trình thứ hai. Kết luận quan trọng : Khi ta tiếng hành khử Gauss với phần tử trụ tối đại trên cột đảm bảo cho độ lệch r = b − Ax ∗ là nhỏ. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 50 / 68
  51. 51. Hiệu ứng của sai số làm tròn Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 51 / 68
  52. 52. Hệ xác định tồi và số điều kiện của ma trận Các hệ số ít khi được biết tới một cách chính xác bởi vì Đối với các hệ phương trình xuất hiện trong ứng dụng, các hệ số thường được quy cho giá trị thực nghiệm nên gắn với sai số quan sát. Nhiều hệ phương trình khác có các hệ số được tính bới các công thức và vì thế chúng được biết chính xác tới sai số làm tròn khi tính toán theo công thức đã cho. Ngay cả đối với các hệ phương trình được cất giữ chính xác trong máy tính cũng không thể tránh khỏi sai số (Xem lại các cách biểu diễn số nguyên, số nguyên có dấu, số thực dấu phẩy động trong giáo trình Tin học đại cương) Vậy câu hỏi được đặt ra là : Nếu có sai số trong biểu diễn các hệ số của hệ phương trình tuyến tính thì điều đó ảnh hưởng đến lời giải như thế nào ? Hay khi giải Ax = b làm sao có thể đo được độ nhạy của x khi có thay đổi trong A, b ? Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 52 / 68
  53. 53. Hệ xác định tồi và số điều kiện của ma trận Có một vài nhận xét sau Nếu A suy biến thì đối với b nào đó x hoặc vô nghiệm hoặc vô số nghiệm. Trong trường hợp A có đinh thức nhỏ thì một sự thay đổi nhỏ trong A và b có thể dẫn sự thay đổi lớn trong lời giải. Hãy nghĩ đến kích thước các phần tử trụ và khái niệm gần suy biến. Bới vì nếu các phép toán số học được thực hiện chính xác thì tất cả các phần tử trụ khác không khi và chỉ khi ma trận không suy biến. Từ đó rút ra khẳng định sau :’Nếu các phần tử trụ là nhỏ thì ma trận gần suy biến’ điều ngược lại không đúng, hay nói cách khác có ma trận gần suy biến mà các phần tử trụ đều không nhỏ. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 53 / 68
  54. 54. Hệ xác định tồi và số điều kiện của ma trận Chuẩn vec tơ Định nghĩa : Hàm v : Rn → R được gọi là chuẩn vec tơ (vector norm) trên Rn khi và chỉ khi 1 v (x) ≥ 0 ∀x ∈ Rn và v (x) = 0 khi và chỉ khi x = 0 2 v (αx) = |α|v (x) ∀x ∈ Rn , ∀α ∈ R 3 v (x + y ) ≤ v (x) + v (y ) ∀x, y ∈ Rn đây là bất đẳng thức tam giác. Thông thường v (x) được ký hiệu là ||x|| Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 54 / 68
  55. 55. Hệ xác định tồi và số điều kiện của ma trận Chuẩn vec tơ (tiếp) Một số chuẩn thường dùng ||x||2 = ||x||1 = n 2 i=1 xi n i=1 |xi | là (l2 ) hay chuẩn Euclid là (l1 ) ||x||∞ = max1≤i≤n |xi | là (l∞ ) ||x||p = ( n 2 1/p i=1 xi ) là (lp ) Matlab norm(x,p) dùng cho lp còn với p = 2 thì hàm đơn giản hơn norm(x) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 55 / 68
  56. 56. Hệ xác định tồi và số điều kiện của ma trận Chuẩn ma trận Định nghĩa : Hàm ||.|| : Rn×n → R được gọi là chuẩn ma trận nếu ||A|| = max ||x||=1,x∈Rn ||Ax|| = max ||x||=1,x∈Rn ||Ax|| ||x|| trong đó ||Ax|| là chuẩn của vec tơ Ax. Tất nhiên, ta có bất đẳng thức ||Ax|| ≤ ||A|| ||x|| Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 56 / 68
  57. 57. Hệ xác định tồi và số điều kiện của ma trận Chuẩn ma trận (tiếp) Các tính chất của chuẩn ma trận 1 ||A|| ≥ 0;||A|| = 0 khi và chỉ khi A = 0. 2 ||αA|| = ||α||||A||, α ∈ R 3 ||A + B|| ≤ ||A|| + ||B|| 4 ||AB|| ≤ ||A|| × ||B|| 5 ||Ax|| ≤ ||A||||x|| Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 57 / 68
  58. 58. Hệ xác định tồi và số điều kiện của ma trận Chuẩn ma trận (tiếp) Các chuẩn vec tơ sinh ra các chuẩn ma trận tương ứng Chuẩn Euclid : ||A||2 = max||x||2 =1 ||Ax||2 Chuẩn max "tổng dòng" : ||A||∞ = max||x||∞ =1 ||Ax||∞ = max1≤i≤n Chuẩn max "tổng cột" : ||A||1 = max||x||1 =1 ||Ax||1 = max1≤j≤n n j=1 |aij | n i=1 |aij | Chuẩn Frobenius : ||A||F = Tr (AT A)1/2 = n 2 i,j=1 aij 1/2 Trong Matlab norm(A,p) trong đó p = 1, 2, inf Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 58 / 68
  59. 59. Hệ xác định tồi và số điều kiện của ma trận Số điều kiện của ma trận Định nghĩa : Số điều kiện (condition number) cond(A), thường được ký hiệu là κp (A), của ma trận vuông A tính đối với một chuẩn ma trận p cho trước là số cond (A) = ||A|| · ||A−1 || trong đó, ta quy ước cond (A) = ∞ khi A là suy biến. Bởi vì, ||A|| · ||A −1 || = ||Ax|| ||x|| ||Ax|| minx=0 ||x|| maxx=0 nên số điều kiện đo tỷ số giữa độ giãn nở lớn nhất và độ co hẹp lớn nhất mà ma trận có thể tác động đối với một vec tơ khác không. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 59 / 68
  60. 60. Hệ xác định tồi và số điều kiện của ma trận Số điều kiện của ma trận (tiếp) Số điều kiện cho biết ma trận gần suy biến đến mức độ nào : ma trận càng lớn càng gần suy biến (hệ phương trình tương ứng xác định tồi), trái lại ma trận với số điều kiện càng gần 1 càng xa với gần suy biến. Chú ý : Định thức ma trận không là đặc trưng tốt cho tính gần suy biến. Mặc dù khi det(A) = 0 thì ma trận suy biến nhưng độ lớn hay nhỏ của định thức không chứa thông tin về việc ma trận có gần suy biến hay không. Ví dụ, cho ma trận det(αIn ) = αn có thể là số rất nhỏ khi |α| < 1 nhưng ma trận αIn lại có điều kiện tốt với cond (αIn ) = 1. Trong đó In là ma trận đơn vị n chiều. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 60 / 68
  61. 61. Hệ xác định tồi và số điều kiện của ma trận Một số tính chất số điều kiện của ma trận 1 Với mọi ma trận A : cond (A) ≥ 1 2 Với mọi ma trận đơn vị I : cond (I) = 1 3 Với mọi ma trận hoán vị P : cond (P) = 1 4 Với mọi ma trận A và số thực khác không α : cond (αA) = cond (A) 5 Với mọi ma trận đường chéo D = diag (di ) : cond (D) = 6 Số điều kiện có ý nghĩa quan trọng trong việc đánh giá tính chính xác của lời giải của hệ phương trình tuyến tính. max{di } min{di } Matlab với số điều kiện cond(A,p) để tính κp (A) với p = 1, 2, inf condest(A) để đánh giá κ1 (A) rcond(A) để đánh giá 1/κ1 (A) Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 61 / 68
  62. 62. Hệ xác định tồi và số điều kiện của ma trận Đánh giá sai số khi biết số điều kiện của ma trận Gọi x là lời giải chính xác của Ax = b, còn x ∗ là lời giải của hệ Ax ∗ = b + ∆b (chú ý ta chỉ coi b bị nhiễu cộng). Đặt ∆x = x ∗ − x, ta có b + ∆b = Ax ∗ = A(x + ∆x) = Ax + A∆x do Ax = b thế vào suy ra ∆x = A−1 ∆b. b = Ax ⇒ ||b|| ≤ ||A||||x|| (13) ∆x = A−1 ∆b ⇒ ||∆x|| ≤ ||A−1 ||||∆b|| (14) Nhân hai bất đẳng thức (13) (14) và sử dụng định nghĩa cond (A) = ||A||||A−1 || ta có đánh giá ||∆x|| ||∆b|| ≤ cond (A) ||x|| ||b|| Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 62 / 68
  63. 63. Hệ xác định tồi và số điều kiện của ma trận Đánh giá sai số khi biết số điều kiện của ma trận (tiếp) tiếp tục... ||∆x|| ||∆b|| ≤ cond (A) ||x|| ||b|| Vậy số điều kiện cho phép ta xác định khả năng biến đổi sai số tương đối trong lời giải ||∆x|| khi biết sự thay đổi tương đối trong vế phải ||∆b|| ||x|| ||b|| Khi cond (A) lớn hay hệ gần suy biến thì sự biến đổi tương đối của vế phải sẽ ’ép’ sự thay đổi sai số tương ứng trong lời giải. Ngược lại, khi cond (A) tiến về 1 hay hệ có điều kiện tốt thì sự biến đổi tương đương của vế phải và lời giải là như nhau. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 63 / 68
  64. 64. Hệ xác định tồi và số điều kiện của ma trận Đánh giá sai số khi biết số điều kiện của ma trận (Kết luận) Nếu dữ liệu vào được biểu diễn gần đúng với độ chính xác máy tính thì đánh giá sai số tương đối của lời giải tính được sẽ cho bởi công thức: ||x ∗ − x|| ≈ cond (A) ||x|| M lời giải tính được sẽ mất đi một quãng log10 (cond (A)) chữ số thập phân trong sai số tương đối so với độ chính xác của dữ liệu. Kết luận Hệ phương trình tuyến tính Ax = b là có điều kiện tồi nếu cond (A) là lớn, khi đó sự thay đổi không lớn của dữ liệu có thể dẫn đến sự thay đổi lớn của lời giải. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 64 / 68
  65. 65. Hệ xác định tồi và số điều kiện của ma trận Ví dụ 15 : Xét hệ phương trình 0.789x1 + 0.563x2 = 0.127 0.913x1 + 0.659x2 = 0.254 Kết quả khi dùng Matlab » A=[0.789 0.563;0.913 0.659]; » fprintf(’cond(A)=%d ; det(A)=%d ’,cond(A),det(A)) » cond(A) = 2.193219e+006 ; det(A)=1.000000e-006 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 65 / 68
  66. 66. Hệ xác định tồi và số điều kiện của ma trận Ví dụ 16 : Xét hệ phương trình 4.1 2.8 9.7 6.6 x1 x2 = 4.1 9.7 Đây là hệ có điều kiện tồi do cond (A, 1) = 2494.4 đồng thời nghiệm chính xác của hệ là x = (1, 0)T . Nếu ta thay vế phải b + ∆b = (4.11, 9.70)T thì nghiệm của hệ sẽ là x ∗ = (0.34, 0.97)T . Trong Matlab ta có » A = [4.1 2.8; 9.7 6.6]; b = [4.1 ; 9.7]; b1=[4.11 ; 9.7]; » x = (A b)’, x1 = (A b1)’ x=10 x1 = 0.3400 0.9700 Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 66 / 68
  67. 67. Hệ xác định tồi và số điều kiện của ma trận Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 67 / 68
  68. 68. Giải hệ phương trình tuyến tính bằng phân tích ma trận Bài đọc thêm về nhà Chúng ta có thể sử dụng nhiều phương pháp ngoài phân tích LU để giải hệ phương trình Phân tích Cholesky Khái niệm ma trận bán xác định dương Nếu A là ma trận xác định dương thì tồn tại ma trận tam giác dưới dương L sao cho A = LLT Khử xuôi Ly = b, thế ngược LT x = y Phân rã QR Khái niệm ma trận trực giao Phân rã QR : nếu A có hạng n thì tồn tại A = QR Giải bài toán bình phương tối thiểu min{||Ax − b||2 |x ∈ R} vậy nghiệm x là điểm dừng khi cực tiểu hóa bài toán trên. Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT &toán khoa họcĐại Học Bách Khoa Hàtháng )12 năm 2012 Tính TT, Trường Ngày 4 Nội. 68 / 68

×