Giáo trình tính toán khoa học - Chương 4 pot

18 726 2
Giáo trình tính toán khoa học - Chương 4 pot

Đ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

93 Chương 4 TÍNH TRỊ RIÊNG VÀ VECTOR RIÊNG CỦA MA TRẬN 4.1 MỞ ĐẦU Cho một ma trận vuông cấp n. Nếu tồn tại một số  và một vector x0 sao cho Ax=x thì  được gọi là trị riêng của ma trận A và x được gọi là vectơ riêng của A ứng với trị riêng . Có nhiều bài toán ứng dụng trong cơ học và vật lí được qui dẫn về việc tìm trị riêng và vector riêng của ma trận. Trong các bài toán tìm trị riêng và vectơ riêng của ma trận người ta chia ra làm 2 loại: - Bài toán nhỏ: tìm các trị riêng có modul lớn nhất và nhỏ nhất của ma trận và các vector riêng tương ứng. Bài toán này đến nay đã giải được cho ma trận có cỡ n= 0(10 6 ). - Bài toán lớn: tìm tất cả các trị riêng và vector riêng của một ma trận. Bài toán này đến nay đã giải được cho ma trận có cỡ n=0(10 2 ). Giải bài toán tìm trị riêng và vector riêng theo phương pháp đại số: - Đầu tiên phải giải phương trình đặc trưng của ma trận A: det(E-A) =0 để tìm các trị riêng . - Sau đó thế  vào hệ phương trình thuần nhất: Ax=x hay (E-A)x = 0 để tìm vector riêng tương ứng. Chú ý rằng đa thức đặc trưng của ma trận là đa thức bậc cao (bằng cấp của ma trận A) đối với . Mặt khác do hệ phương trình thuần nhất (E-A )x =0 có ma trận hệ số suy biến và do đó tập nghiệm của hệ là không gian con của R n , nên không thể giải bằng các phương pháp đã trình bày trong chương 3. Trong chương này chúng ta sẽ nghiên cứu các phương pháp: - Phương pháp trực tiếp: dùng các phép biến đổi tương đương đưa ma trận A về ma trận có cấu trúc đơn giản hơn để dễ dàng tìm đa thức đặc trưng và các vectơ riêng. 94 - Phương pháp lặp: khuếch đại sự khác biệt về modul của các trị riêng bằng luỹ thừa bậc cao. 4.2 CÁC PHƯƠNG PHÁP TRỰC TIẾP 4.2.1 Phương pháp Krylov Giả sử ma trận A có đa thức đặc trưng là: 1 0 ( ) n n k n n k k p           . Do  n (A)= det(E-A), nên theo định lí Haminton-Kelly ta có  n (A)=0. Xét dãy lặp v k+1 = Av k , với k= 0, 1 n  và vector ban đầu v 0 ≠ 0 tuỳ ý của R n , ta có:  n (A)v 0 = 1 0 n n n k k k v p v      = 0 (4.1) Do đó các hệ số p i chính là nghiệm của hệ phương trình (4.1). Việc giải hệ phương trình (4.1) để tìm các hệ số p i gọi là các phương pháp trực tiếp. Tuy nhiên nếu ma trận A có trị riêng bội thì hệ phương trình (4.1) suy biến với mọi vector v 0 . Do đó phương pháp trực tiếp không ổn định. Một thay đổi nhỏ hệ số có thể làm cho hệ vô nghiệm. Nghiệm của hệ phương trình cũng không ổn định nếu các trị riêng của ma trận A có modul gần nhau. Vì vậy khả năng ứng dụng của các phương pháp này không lớn. Để xây dựng hệ phương trình đại số tuyến tính (4.1) ta làm như sau: Đặt v k =         1 2 , , , T k k k n v v v , k= n,1 . Từ (4.1) ta có     1 0 n k n n k j j k p v v       , với j= n,1 . Hoặc                         1 2 0 1 1 1 1 1 1 2 0 2 2 2 2 2 1 2 0 n n n n n n n n n n n n n n v v v v p p v v v v p v v v v                                                     . (4.2) Vì v k+1 =Av k nên         1 1 n k k k i ij j i j v Av a v      với i 1,n , 0, 1 k n    . (4.3) 95  Quá trình tính toán của phương pháp Krylov - Chọn v 0 tuỳ ý, sau đó lần lượt tính   k j v , j 1,n ; k 1,n   theo (4.3). - Giải hệ (4.2) để tính các hệ số p k , k= n,1 . của phương trình đặc trưng. Nếu hệ phương trình (4.2) không duy nhất nghiệm thì bài toán trở nên phức tạp. Để khắc phục, thông thường người ta chọn v (0) mới và tính toán lại. - Sau khi tính được các hệ số p k , giải phương trình đặc trưng 0)(    n để tìm các trị riêng .,1, ni i   - Tìm các vector riêng : Giả sử phương trình đặc trưng có n trị riêng phân biệt .,1, ni i   ( ji   ), khi đó trong R n tồn tại một cơ sở gồm n vector riêng n ii e 1 }{  tương ứng. Phân tích v o theo cơ sở vừa nêu : v o = 1 n j j j e    . Vì vậy: v k = A k v 0 = 1 1 n n k k j j j j j j j A e e         , k=1,2… Bây giờ ta đặt   ( ) n i i         . Do  i là một nghiệm của ( ) n   nên ( ) i   là một đa thức bậc n-1 của : ( ) i    in n i n qq ,1 2 ,1 1     = 1 1, 0 n k n k i k q       Từ ( ) ( ) ( ) n i i         hay 1 0 n n k n k k p         ( i   ) 1 1, 0 n k n k i j k q       suy ra các hệ số q ji có thể được tính theo sơ đồ Horner như sau:       jijiji i pqq q ,1 0 1  . Ta có    0 vA i  v n-1 +q 1,i v n-2 + +q n-1,i v 0 = 1 1 1, 1, 0 0 1 n n n k n k i k n k i j j j k k j q v q e                   1 1, 1 0 1 n n n k j n k i j j j i j j j k j q e e                         . 96 Chú ý rằng     0 khi i ' 0 khi i j i j n i j            (4.4) nên    0 vA i      n j jjij e 1  =   iiii e    . Từ đó suy ra nếu 0  i  thì:    0 vA i  v n-1 +q 1,i v n-2 + +q n-1,i v 0 là một vector riêng của ma trận A tương ứng với trị riêng i  . Thí dụ 1. Tìm đa thức đặc trưng của ma trận theo phương pháp Krylov: 1 2 3 4 2 1 2 3 3 2 1 2 4 3 2 1 A              . Giải. Chọn 0 1 0 0 0 v              . Tính v k =Av k-1 ta có: 1 2 3 4 1 30 208 2108 2 22 178 1704 , , , 3 18 192 1656 4 20 242 1992 v v v v                                                     . Xây dựng được hệ phương trình: 1 2 3 4 208 30 1 1 2108 178 22 2 0 1704 192 18 3 0 1656 242 20 4 0 1992 p p p p                                       . Giải hệ phương trình trên ta được : p 1 = -4, p 2 =-40, p 3 =- 56 , p 4 =-20 . Từ đó đa thức đặc trưng của ma trận A là:     4 = 20 56 40 4 234   . 97 Để tìm nghiệm của đa thức     4 trong Matlab, có thể làm như sau: >> p=[ 1 -4 -40 -56 -20]; >> roots (p) %% Tính các trị riêng ans= 9.0990 -3.4142 -1.0990 -0.5858 4.2.2 Phương pháp Leverier Phương pháp Leverier dùng để tính các hệ số của đa thức đặc trưng của một ma trận vuông. Giả sử A là một ma trận vuông cấp n và đa thức đặc trưng là: 1 2 1 2 ( ) n n n n n p p p             có các nghiệm ni i ,1,   kể cả bội. Đặt S k =   n i k i 1  , với nk ,0 . Theo công thức Newton ta có : S k + p 1 S k-1 + p 2 S k-2 + + p k-1 S 1 = - kp k , với nk ,1 hay     1 1 2 2 1 1 1 1 1 1 1 2 1 n n n n p S p S p S p S p S p S n                      . (4.5) Các hệ số S k được tính theo công thức S k =Trace(A k ) (Trace là hàm vết của ma trận) với nk ,1 .  Quá trình tính toán của phương pháp Leverier - Tính A k , S k =Trace(A k ) =     n i k ii a 1 với nk ,1 ; - Tính các p i ,với ni ,1 theo công thức (4.5). 98 Công thức tính của phương pháp tương đối đơn giản, không cần xây dựng và giải hệ phương trình như phương pháp Krylov. Tuy nhiên, khối lượng tính toán của phương pháp này rất lớn. Thí dụ 2. Tìm đa thức đặc trưng của ma trận theo phương pháp Leverier: 1 2 3 4 2 1 2 3 3 2 1 2 4 3 2 1 A              . Giải: Tính các ma trận 2 3 30 208 18 * 148 * , * 18 * 148 30 208 A A                           , và 4 2108 1388 * * 1388 2108 A              . Sau đó, dùng hàm vết tính được S 1 =4, S 2 =96, S 3 =712, S 4 =6992. Tính tiếp theo công thức (4.5) ta được: p 1 =-4, p 2 =- 40, p 3 =-56, p 4 =-20. Do đó     4 = 20 56 40 4 234   4.2.2 Một số hàm dùng để tính hệ số của đa thức đặc trưng của ma trận  Hàm POLY Cú pháp : p = poly(A) Giải thích. Hàm POLY dùng để tính hệ số của đa thức đặc trưng của ma trận. Hàm POLY còn dùng để tính hệ số của một đa thức khi biết các nghiệm của nó. - Nếu A là vector, thì p là vector hệ số của đa thức có nghiệm là vector A. - Nếu A là ma trận vuông thì p là vector hệ số của đa thức đặc trưng của ma trận A: det(  E-A). 99 Thí dụ 3. Tính hệ số của đa thức đặc trưng của ma trận: 1 2 3 4 2 1 2 3 . 3 2 1 2 4 3 2 1 A              Giải. >> A=[ 1 2 3 4; 2 1 2 3; 3 2 1 2 ; 4 3 2 1]; >> p = poly(A) p = 1.0000 -4.0000 -40.0000 -56.0000 -20.0000 Chú ý: Hàm ROOTS và hàm POLY là hai hàm ngược của nhau. Thí dụ 4. >> x =[ 2 3 4]; >> poly(x) ans = 1 -9 26 -24 >> roots([1 -9 26 -24]) ans = 4.0000 3.0000 2.0000  Hàm TRACE Cú pháp : s = trace (A) Giải thích. Hàm TRACE dùng để tính vết (tổng các phần tử trên đường chéo chính) của một ma trận vuông. Nếu gọi s = trace (A) thì hàm trả sẽ về s là tổng của các phần tử trên đường chéo gốc của ma trận vuông A, đổng thời đó cũng chính là tổng các trị riêng của ma trận A. 100 Thí dụ 5. >> A=pascal(5); >> trace(A) ans = 99 >> sum(eig(A)) ans = 99.0000 4.3 PHƯƠNG PHÁP LẶP Giả sử ma trận A có một trị riêng trội và các trị riêng được đánh số thứ tự 1 2 3 n         và họ các vector riêng tương ứng e 1 , e 2 , ,e n ( 1 i e ) lập thành cơ sở của không gian R n . Ta cần tính trị riêng có modul lớn nhất  1 . Khi đó với giả thiết trên, mọi vectơ x (0)  R n đều có khai triển (0) 1 n i i i x c e    . Xét dãy lặp x (k+1) =Ax (k) k=1,2, Ta có: x (k) = 1 n k i i i c A e   =   n i i k i ec 1  = )(0 2111 k k ec   . Do đó các tích vô hướng: <x (k) ,x (k) > = )(0 21 2 1 2 1 kk c   và <x (k+1) ,x (k) >= )(0 2 1 1 2 1 2 11 kkk c    . Đặt         1 2 1 1 2 1 , 0 k k k k k x x x                   . Rõ ràng   1 1   k k nếu c 1 0. Để tìm vector riêng tương ứng ta đặt: 101         1 1 1 2 1 1 1 1 1 1 1 2 2 1 0 0 1 0 k k n k k i i i k k i k k k k c e c e c x e c x                                  . Nếu đặt  k =   )arg( 1 1 k c  thì     1 1 1 1 1 1 1 k k i k c e e e c e     . Như vậy            k i k eee k 1 2 11 0    , do đó             k k i eee k 1 2 11 0    . Xét một trường hợp phức tạp hơn: 1 2 3 n         , trong đó 1 2 1 0 và 0        là hai trị riêng thực của ma trận A. Khi đó x (k) =     k k k ecec 3212111 0   và x (k+2) =     2 2 2 1 1 1 2 1 2 3 0 kk k c e c e          2 1   {     k k k ecec 3212111 0   } Đặt         2 2 3 1 2 1 , 0 k k k k k x x x                   , và             1 1,2 1,2 1,.2 , k k k k k k z x x         . - Nếu k chẵn thì :         1 1 11 ( ) ( ) 1 1 1 1 1 2 1 2 3 1 0 k k kk k k k z x x c e c e                     /2 3 1 1 1 1 2 1 2 3 1 0 0 k k k k c e c e                              =   1 31 1 11 02    k k ec  102 và       1 1 3 1 1 1 1 1 1 0 k k k k i k z e e e z                  , trong đó )arg( 1 11   k k c   . - Tương tự nếu k lẻ thì         1 2 2 k k k k z x x     và       1 1 3 2 2 2 1 1 2 0 k k k k i k z e e e z                  trong đó )arg( 1 11   k k c  . 4.4 CÁC HÀM TÍNH TRỊ RIÊNG CỦA MA TRẬN TRONG MATLAB 4.4.1 Hàm EIG Cú pháp: [V,D] = eig(A,B) Giải thích. Hàm EIG được dùng để tính tất cả các trị riêng và các vector riêng của ma trận. E = eig(A) : Sinh ra một vector E gồm các trị riêng của ma trận vuông A; [V,D] = eig(A) : Sinh ra ma trận đường chéo D, trên đường chéo là các trị riêng của ma trận A và ma trận vuông V gồm các vector riêng tương ứng sao cho AV=VD; E = eig(A,B) : Sinh ra một vector chứa các trị riêng suy rộng của các ma trận vuông A và B sao cho A.V= B.V.D; [V,D] = eig(A,B) : Sinh ra ma trận đường chéo D gồm các trị riêng suy rộng và ma trận vuông V chứa các vectơ riêng tương ứng. Thí dụ 6. Tính tất cả các trị riêng và vector riêng của ma trận: 1 2 3 4 2 1 2 3 . 3 2 1 2 4 3 2 1 A              Giải. [...]... 4; 2 1 2 3; 3 2 1 2 ; 4 3 2 1]; >> [ V, D] = eig(A) V= 0.2706 0 .44 83 0.6533 0. 546 8 -0 .6533 -0 . 546 8 0.2706 0 .44 83 0.6533 -0 . 546 8 -0 .2706 0 .44 83 -0 .2706 0 .44 83 -0 .6533 0. 546 8 D= -0 .5858 0 0 0 0 -1 .0990 0 0 0 0 -3 .41 42 0 0 0 0 9.0990 >> B=pascal (4) ; >> [ V, D] = eig(A,B) V= -0 .3003 -0 .9789 -0 .7395 -0 .44 17 0.7258 -0 .1382 0.2 644 -0 .3299 -0 .5957 -0 . 149 8 0.5591 -0 .47 26 0.1678 -0 .0168 -0 .2659 0.6875 -1 5. 748 2... mong muốn 1 04 Thí dụ 7 >> A=[ 1 2 3 4; 2 1 2 3; 3 2 1 2; 4 3 2 1]; >> [V,D,F] = eigs(A) iter = 1 eigs = 9.0990 -3 .41 42 -1 .0990 -0 .5858 stopcrit = 8.2712e-016 ========================== iter = 2 eigs = 9.0990 -3 .41 42 -1 .0990 -0 .5858 stopcrit = 1.7764e-016 ========================== V= -0 . 546 8 -0 .6533 0 .44 83 -0 .2706 -0 .44 83 -0 .2706 -0 . 546 8 0.6533 -0 .44 83 0.2706 -0 . 546 8 -0 .6533 -0 . 546 8 0.6533 0 .44 83 0.2706... được tính, và ma trận S sẽ có cỡ nn Thí dụ 8 >> A=[ 1 2 3; 4 5 6; 7 8 9]; >> eig(A) ans = 16.1168 -1 .1168 -0 .0000 >> svd(A) ans = 16. 848 1 1.06 84 0.0000 >> C=[ 1 2 3 4; 5 6 7 8]; >> svd(C) ans = 14. 22 74 1.2573 >> [U,S,V] = svd (C,0) U= -0 .3762 -0 .9266 -0 .9266 0.3762 107 S= 14. 22 74 0 0 0 0 1.2573 0 0 V= -0 .3521 0.7590 -0 . 540 0 -0 .44 36 0.3212 0.0917 0.7883 0.2803 -0 .5352 -0 .1165 0. 043 4 -0 .8355 -0 .6268 -0 .5 542 ... -0 .44 83 -0 .2706 -0 . 546 8 0.6533 -0 .44 83 0.2706 -0 . 546 8 -0 .6533 -0 . 546 8 0.6533 0 .44 83 0.2706 D= 105 9.0990 0 0 0 -3 .41 42 0 0 0 0 -1 .0990 0 0 0 0 0 -0 .5858 F= 0 >> B=pascal (4) ; >> [ V, D, F] = eigs(A,B,2) V= -0 .8770 0.8899 0.1808 -0 . 248 4 0 .41 46 -0 .3522 -0 .1622 0. 149 1 D= 101.5 543 0 0 -8 3 .49 36 F= 2 4. 4.3 Hàm SVD (Singular Value Decomposition: Phân tích trị kì dị) Giả sử A là ma trận thực cấp n thì ATA là ma... -0 .44 36 0.3212 0.0917 0.7883 0.2803 -0 .5352 -0 .1165 0. 043 4 -0 .8355 -0 .6268 -0 .5 542 -0 .2917 0 .46 36 Khi A là ma trận thực đối xứng xác định không âm thì trị kỳ dị cũng chính là trị riêng Thí dụ 9 >> B=pascal (4) ; >> svd(B) ans = 26.3 047 2.20 34 0 .45 38 0.0380 >> eig(B) ans = 0.0380 0 .45 38 2.20 34 26.3 047 108 BÀI TẬP A Cài đặt chương trình và lập hàm 1 Cài đặt hàm Krylov.m tìm hệ số của đa thức đặc trưng của... 0.6875 -1 5. 748 2 0 D= 0 1.38 04 0 0 0 0 0 0 -2 .2172 0 0 0 0 -0 .41 50 4. 4.2 Hàm EIGS Cú pháp: [V,D,F] = eigs(A,B,K,SIG) Giải thích Hàm EIGS tính một số trị riêng có modul lớn nhất hoặc nhỏ nhất bằng phương pháp lặp 103 Hàm dùng để giải từng bước bài toán tìm trị riêng Av =  v hoặc tìm trị riêng suy rộng theo nghĩa Av =  Bv Tuy nhiên chỉ một vài trị riêng hoặc vector riêng được tính toán Trong đó A là một... EigVec(A,L), trong đó : - A là ma trận vuông; - L là trị riêng đã biết; - V vector riêng tương ứng cần tìm ( V  1 ) 4 Nếu ma trận A có một trị riêng thực trội Cài đặt hàm tìm trị riêng có modul lớn nhất đó và vector riêng tương ứng của ma trận vuông A theo phương pháp lặp với sai số 1 0-8 Lệnh gọi hàm có dạng: [L,V] = MaxEig(A), trong đó : - A là ma trận vuông; - L là trị riêng trội cần tính và V là vector... 4  1 0  A0   0 0  2 4 0 2 0 0 0 0 0 0 0  0 0  0   2 4  1 4 2 0 1 4 0 0 0 0 0 0 1 0 4 1 3  1 1  1 1 1 1  3 1 1 1 3 1  1 1 3 0 0 0 0 5 Tìm ma trận P làm chéo hoá ma trận :  2 1  1 1 A  -1 2  0 1 0 3  2 1  , B 3 1  2 1 6 Tìm ma trận P làm chéo hoá trực giao ma trận: 1  2 1 1   2   A   1 2 1  , B   3  1 1 2     4. .. 2 Tính hệ số của đa thức đặc trưng, chuẩn và số điều kiện loại 2; 109 Tìm 2 trị riêng có modul lớn nhất của ma trận Hilbert cấp 20 3 Tính hệ số của đa thức đặc trưng, tất cả các trị riêng và vector riêng tương ứng của các ma trận: 0  2 A 3  1 1 3 4  1 1   0 1 3 2 3 , B 3 1 1 0 2   3 2 0 9 0 5 0 1   0 8 1 , C  3 6 7   7 2 4 1 3 1 2 4  3 2 1 5   3 5 1  4 Tính. .. phải có Các đối số còn lại là tuỳ chọn và có thể như sau: - B : là một ma trận đối xứng xác định dương, có cùng cỡ với A Nếu B không xác định thì xem B như ma trận đơn vị cùng cấp với A; Còn nếu B xác định thì phương pháp phân tích Cholesky được sử dụng để tính - K : là số trị riêng cần tính Nếu K không xác định thì K = min(N,6) trị riêng được tính - SIG : là một số thực hoặc phức hay một xâu gồm 2 chữ . -3 .41 42 -1 .0990 -0 .5858 stopcrit = 1.7764e-016 ========================== V = -0 . 546 8 -0 .6533 0 .44 83 -0 .2706 -0 .44 83 -0 .2706 -0 . 546 8 0.6533 -0 .44 83 0.2706 -0 . 546 8 -0 .6533 -0 . 546 8. V = 0.2706 0 .44 83 0.6533 0. 546 8 -0 .6533 -0 . 546 8 0.2706 0 .44 83 0.6533 -0 . 546 8 -0 .2706 0 .44 83 -0 .2706 0 .44 83 -0 .6533 0. 546 8 D = -0 .5858 0 0 0 0 -1 .0990 0 0 0 0 -3 .41 42 0 0 0 0 9.0990. B=pascal (4) ; >> [ V, D] = eig(A,B) V = -0 .3003 -0 .9789 -0 .7395 -0 .44 17 0.7258 -0 .1382 0.2 644 -0 .3299 -0 .5957 -0 . 149 8 0.5591 -0 .47 26 0.1678 -0 .0168 -0 .2659 0.6875 D = -1 5. 748 2

Ngày đăng: 11/07/2014, 09:20

Từ khóa liên quan

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

Tài liệu liên quan