58 CHƯƠNG 2: MA TRẬN §1.MỘTSỐKHÁINIỆM (Matrận[A]gọilà đối x ứngnếu[A] T =[A] (Chomộtmatrậnvuông[A],cấpn.Tanóimatrận[A]khôngsuybiến (nonsingular)nếumatrậncóthểnghịchđảođượchaynóicáchkhác,định thứccủamatrậnkhác không. (Ma trận Hermitelàmột ma trận vuông cócácphần tử là s ố phức bằngchuyểnvịliênhợpcủanó,nghĩalàphầntửởhàngicộtjbằngsốphức liên hợp của phân tử ở hàng j cột i T AA ∗ ⎡ ⎤ ⎡⎤ = ⎣⎦ ⎣ ⎦ . Ví dụ ma trận [] 32j A 2j 1 + ⎡⎤ = ⎢⎥ − ⎣⎦ làmatrậnHermite. (MatrậnHouseholderlàmộtmatrậnvuôngdạng: [][] [][] [][] =− T T 2 HE UU UU Trongđóvlàvectơcộtkháczero (Matrận[A]gọilàtrựcgiaonếu[A] T [A]=[E] (Matrậnphức[U]gọilàmatrậnunitanếu T UU E ∗ ⎡ ⎤⎡⎤ ⎡⎤ = ⎣⎦ ⎣ ⎦⎣⎦ .Vídụma trận [] 1j 1j 22 U 1j 1j 22 +−+ ⎡⎤ ⎢⎥ = ⎢⎥ +− ⎢⎥ ⎢⎥ ⎣⎦ làmatrậnunita (Mộtmatrậnchỉcómộtcộtgọilàmộtvectơ (ChuẩncủamộtvectơX,kíhiệulà X ,làmộtsốthựcthoảmãn: ‐ X >0 ‐ cX c X= ‐ XY X Y+≤ + GiảthiếtX=[x 1,x2,…,xn] T ,tathườngdùngmộttrong3chuẩnsauđây: ‐ j 1 j Xmaxx= ‐ n j 2 j1 Xx = = ∑ 59 ‐ n 2 j 3 j1 Xx = = ∑ (Chuẩncủamộtmatrận[A],kíhiệulà A,làmộtsốthựcthoảmãn: ‐ A >0 ‐ cA c A= ‐ AB A B+≤ + ‐ AB A B ≤ Tathườngdùngmộttrong3chuẩnsauđây: ‐ n i,j 1 i j1 Amaxa = = ∑ ‐ n i,j 1 j i1 Amaxa = = ∑ ‐ n 2 i,j 3 i,j 1 Aa = = ∑ (Matrận[A]gọilàxácđịnhdươngnếuvớivectơ[x]bấtkìtacó: [][ ][] T xAx 0> (Matrận[A]gọilànửaxácđịnhdươngnếuvớivectơ[x]bấtkìtacó: [][ ][] T xAx 0≥ Tađịnhnghĩamatrậnxácđịnhâmvànửaxácđịnhâmmộtcáchtương tự. (Hạngcủamatrậnlàcấpcủamatrậnconcủamatrậnấycóđịnhthức khác không còn mọi ma trận con cấp cao hơnđều cóđịnh thưc bằng không(matrậnconlàmatrậncóđược bằngcáchxoámộtsốhàngvàcộtcủa matrậnbanđầu). §2.BIẾNĐỔIHOUSEHOLDER 1. Ma trận Householder : Ta bi ếnđổi ma trận [A] về dạng có các phần tử thuộcđường chéo chính, các phần tử phía trên và phía dướiđường chéo chínhkháczero,còncácphầntửcònlạibằngzero(matrậnba đườngchéo) bằngcáchdùngphépbiếnđổiHouseholder. PhépbiếnđổiHouseholderdùngmatrậnHouseholder. [][] [][] =− T UU HE Q (1) 60 Trongđó: [][] [] == 2 T 11 QUU U 22 (2) Do[H]đốixứngnên: [][][][] [] [][] [] [][] ⎛⎞⎛⎞ ==− − ⎜⎟⎜⎟ ⎝⎠⎝⎠ TT T UU UU HH HH E E QQ [] [][] [][][] ( ) [] =− + TT T 2 UUU U UU E2 QQ [] [][] [ ] () [ ] [] =− + = T T 2 U2QU UU E2 E QQ Từđâytathấy[H]cũnglàmatrậntrựcgiao. Cho[X]làvectơbấtkỳvàkhảosátphépbiếnđổi[H][X].Chọn: [U]=[X]+k[I 1](3) Trongđó: [] =±kX [] = ⎡ ⎤ ⎣ ⎦ L T 1 I10 0 Tacó: [][] [] [][] [] [] [][] [] ( ) [] ⎧⎫ + ⎛⎞ ⎪⎪ =− =− ⎨⎬ ⎜⎟ ⎝⎠ ⎪⎪ ⎩⎭ T T 1 UX kI UU HX E X E X QQ [] [][][] [] [] ( ) [] [] [] () + + =− =− T T 2 1 1 UXX kI X Uk kX XX QQ Nhưng: [] [] ( ) [] [] ( ) [] [] [][] [] ( ) [][] =+ + = + + + T 2 TT T 2 11 1111 2Q X k I X k I X k X I I X k I I =+ += + 222 11 k 2 kx k 2( k kx ) Nhưvậy: [][][][] [] =−=− =− ⎡ ⎤ ⎣ ⎦ L T 1 HX X U kI k 0 0 0 (4) nghĩalàphépbiếnđổiloạitrừtấtcảcácphầntửcủa[X]trừphầntửđầutiên. 2.BiếnđổiHouseholdermộtmatrậnđốixứng: Bây giờ ta ápdụng phép biếnđổichomatrận[A]đốixứng: [] [] [] [ ] [] [] [] [] [][][] [] ⎡⎤⎡ ⎤ ⎡⎤ == ⎡⎤ ⎢⎥⎢ ⎥ ⎢⎥ ⎣⎦ ′ ′ ⎣⎦ ⎣⎦⎣ ⎦ TT T 11 11 1 aX a X 10 PA X A HX HA 0H (5) 61 Trongđó[X]làcộtđầutiêncủa[A]vớiphầntửđầutiênbịbỏđi.[A’]cóđược từ[A]bằngcáchbỏđicộtvàhàngđầutiên.Matrận[H]cấp(n‐1)đượcxây dựngtheocác côngthức(1)÷(3).Do(4)tathấyphépbiếnđổinàylàmcột đầutiêncủa[A]trởthành: [][] ⎡⎤ ⎢⎥ − ⎢⎥ ⎡⎤ ⎢⎥ = ⎢⎥ ⎢⎥ ⎣⎦ ⎢⎥ ⎢⎥ ⎣⎦ M 11 11 a k a 0 HH 0 Phépbiếnđổi: [] [][] () [][][] [] [] [] ⎡⎤ =→ ⎡⎤ ⎡⎤ ⎢⎥ ⎣⎦ ⎣⎦ ′ ⎢⎥ ⎣⎦ T 11 11 aHX PAP A HX HA H (6) sẽđườngchéohoáhàngđầutiênvàcộtđầutiêncủamatrận[A].Sơđồbiến đổicủamatrận4 ×4là: Hàngvà cộtthứ2củamatrận[A]đượcbiếnđổitiếpbằngcáchdùngphép biếnđổiđốivớiphầnbênphải,phíadướicủamatrận.Phépbiếnđổinàycó thểbiểudiễnbằng [] [] [] [ ] → 22 PAP A,trongđó: [] [] [] [] [ ] ⎡⎤ = ⎢⎥ ⎣⎦ T 2 2 E0 P 0H (7) với[E 2]làmatrậnđơnvị2×2và[H]làmatrận(n‐2)×(n‐2)cóđượcbằng cáchchọn[X]từ(n‐2)phầntửphíadướicủacộtthứ2củamatrận[A].Thực hiện(n‐2)phépbiếnđổi: [] [] [] [] [ ] ⎡⎤ = ⎢⎥ ⎣⎦ T i i E0 P 0H i=1,2, ,n‐2 đểcóđượcmatrậnbađườngchéo(tridiagonal).Tacó: × 1 0 0 0 0 0 0 [Q] a11 a12 a13 a14 a21 a31 a41 [A’] 1 0 0 0 0 0 0 [Q] × = a11 ‐k 0 0 ‐k 0 0 [Q][A’] [Q] 62 [] [] [] [] [][] [] [ ] [] [] [] [][] ⎛⎞ ′ ′′ ′ ′ = − =− =− ⎜⎟ ⎝⎠ T TT AU UU AH A E A U A VU QQ Trongđó: [] [] [] ′ = AU V Q (8) Dovậy: [] [] [] [] [][] [] [][] () ⎛⎞ ′′ =− − ⎜⎟ ⎝⎠ T T UU HA H E A VU Q [] [][] [ ] [ ] [] [][] () ′′ =− − − T TT UU AVU AVU Q [] [][] [][] [ ] ( ) [][][] ( ) [] ′ ′ =− − + TTT T UUA UUVU AVU QQ [] [] [ ] [ ] [ ] [ ] [ ] ′ =−−+ TT T AVU UV2gUU Trongđó: [][] = T UV g 2Q (9) Đặt:[W]=[V]‐g[U](10) Tathấyngayphépbiếnđổicódạng: [] [] [] [] [] [ ] [ ] [ ] ′′ =− − TT HA H A WU UW(11) Thuậttoáncóthểtómlạinhưsau: ‐Cho[A’]làmatrậnvuôngcấp(n‐i)cóđượctừphầndướibênphải củamatrận[A] ‐Đặt ++ = ⎡⎤ ⎡⎤ ⎣⎦ ⎣⎦ L T i 1,i i 2,i n,i Xa a a ‐Tính [] X.Chok= [] X nếux1>0vàk=‐ [ ] X nếux1<0 ‐Cho − =+ ⎡⎤ ⎡⎤ ⎣⎦ ⎣⎦ L T 12 ni Ukxx x ‐Tính [] = 2 U Q 2 ‐Tính [] [] [] ′ = AU V Q ‐Tính [][] = T UV g 2Q 63 ‐Tính[W]=[V]‐g[U] ‐Tính [] [] [][] [ ] [ ] ′ =− − TT AAWU UW ‐Đặt ++ ==− i,i 1 i 1,i aa k Taxâydựnghàm housetrans()đểthựchiệnthuậttoántrên: functionA=housetrans(A) %BiendoiHouseholdermatranAthanhmatran %bađườngchéodang[c\d\c]. %Decocvaddungd=diag(A),c=diag(A,1). n=size(A,1); fork=1:n‐2 u=A(k+1:n,k); uMag=sqrt(dot(u,u)); ifu(1)<0; uMag=‐uMag; end u(1)=u(1)+uMag; A(k+1:n,k)=u;%LuuuvaophanduoicuaA. H=dot(u,u)/2; v=A(k+1:n,k+1:n)*u/H; g=dot(u,v)/(2*H); v=v‐g*u; A(k+1:n,k+1:n)=A(k+1:n,k+1:n)‐v*uʹ‐ u*vʹ; A(k,k+1)=‐uMag; end k=zeros(n); fori=1:n k(i,i)=A(i,i); end fori=1:n‐1 k(i,i+1)=A(i,i+1); k(i+1,i)=A(i,i+1); end A=k; 64 Để tính ma trận bađường chéo theo phép biếnđổi Householder ta dùng chươngtrình cthousetrans.m: clearall,clc a=[1234;2935;3337;4576]; b=householder(a) d=diag(b) c=diag(b,1) §3.BIẾNĐỔITHÀNHMATRẬNHESSENBERG Nếumatrận[A]làmatrậnđốixứng,phươngphápHouseholdercóthể đượcsửdụngđểbiếnđổinóthànhmatrậnđồngdạngđốixứngbađường chéo.Nếumatrận[A]khôngđốixứ ng,phươngphápHouseholderbiếnđổi matrận[A]thànhmatrậnđồngdạngHessenberg. MatrậnHessenberglàmatrậncódạng: [] 11 12 13 1,n 21 22 23 2n 32 33 2n nn aaa a aaa a 0a a a H 000 a ⎡⎤ ⎢⎥ ⎢⎥ ⎢⎥ = ⎢⎥ ⎢⎥ ⎢⎥ ⎣⎦ L L L MMML M L TathựchiệnphépbiếnđổiHouseholdertrênmatrận[A]vàcóđược: [Q][H][Q’]=[A] trongđó[Q]làmatrậntrựcgiao(tagọiđâylàphântíchHessenbergmatrận [A]). Thuậttoáncóthểtóm lạinhưsau: ‐Cho[Q]làmatrậnđơnvịcấpn ‐Đặt + = ⎡⎤ ⎡⎤ ⎣⎦ ⎣⎦ L T i2,i n,i X0a a ‐Tính [] X.Choα= [] X nếuai+2,i>0vàα=‐ [ ] X nếuai+2,i<0 ‐Cho − =α+ ⎡⎤ ⎡⎤ ⎣⎦ ⎣⎦ L T 2ni U0 x x ‐Tính [] β= 2 U 2 ‐Tính [] [] [] [] ′ =− β UU PE 65 ‐Tính [] [][] =QQP ‐Tính [ ] [][ ][] =APAP Taxâydựnghàm hessenberg()đểthựchiệnphépphântíchtrên: function[H,Q]=hessenberg(a) [n,n]=size(a); q=eye(n); fork=1:n‐2 alfa=0; forj=k+1:n alfa=alfa+a(j,k)^2; end alfa=sign(a(k+1,k))*sqrt(alfa); u=zeros(1,n); u(k+1:n)=a(k+1:n,k); u(k+1)=u(k+1)+ alfa; beta=.5*u*uʹ; p=eye(n); fori=1:n p(i,1:n)=p(i,1:n)‐(u(i)*u(1:n))/beta; end q=q*p; a=p*a*p; end H=a; Q=q; Đểphântíchmatrậntadùngchươngtrìnhcthessenberg.m: clearall,clc a=[1234;5674;648 9;3579]; [H,Q]=hessenberg(a) §4.PHÂNTÍCHMATRẬNTHEOPHƯƠNGPHÁPDOOLITTLE 66 Mộtmatrậnkhôngsuybiến[A]gọilàphântíchđượcthànhtíchhaima trận[L]và[R]nếu: [A]=[L][R] Việcphântíchnày,nếutồntại,làkhôngduynhất. Nếuma trận[L]cócácphầntửnằmtrênđườngchéochínhbằng1,tacó phépphântíchDoolittle. Nếumatrận[R]cócácphầntửnằmtrênđườngchéochínhb ằng1,ta cóphépphântíchCrout. Nếu [R]=[L] T (hay[L]=[R] T )tacóphépphântíchCholeski. Vớimatrậnbậc3,[L]và[R]códạng: [] [] 11 12 13 21 22 23 31 32 33 100 rrr Ll 10 R0rr ll1 00r ⎡⎤ ⎡ ⎤ ⎢⎥ ⎢ ⎥ == ⎢⎥ ⎢ ⎥ ⎢⎥ ⎢ ⎥ ⎣⎦ ⎣ ⎦ Đểtìml ijvàrijtathựchiệnphépnhân.Saukhinhântacó: [] 11 12 13 11 21 12 21 22 13 21 23 11 31 12 31 22 32 13 31 23 32 33 rr r Arlrlr rlr rl rl rl rl rl r ⎡⎤ ⎢⎥ =++ ⎢⎥ ⎢⎥ +++ ⎣⎦ BâygiờtathựchiệnphépkhửGaussđốivớiphươngtrìnhtrên.Đầutiênta chọnhàngthứnhấtlàmtrụvàthựchiênphépbiếnđổi: hàng2‐l 21×hàng1(khửa21)→hàng2 hàng3‐l 31×hàng1(khửa31)→hàng3 kếtquảtacó: [] 11 12 13 12223 22 32 23 32 33 rr r A0r r 0rl rl r ⎡⎤ ⎢⎥ = ⎢⎥ ⎢⎥ + ⎣⎦ Sauđótalấyhàngthứhailàmtrụvàthựchiệnbiếnđổi: hàng3‐l32 ×hàng2(khửa32)→hàng3 vàcó: [] 11 12 13 22223 33 rrr A0rr 00r ⎡⎤ ⎢⎥ = ⎢⎥ ⎢⎥ ⎣⎦ Nhưvậytathấyngayrằngmatrận[R]làmatrậncóđượckhithựchiện loạitrừGausstiếnma trận[A]vàcácphầntửcủa[L]làcácnhânt ửdùngkhi 67 loạitrừa ij.Điềuđócónghĩalàđểtìmmatrận[L]và[R]tadùngphépkhử Gausstiến.Taxâydựnghàm doolittle()đểthựchiệnloạiphântíchDoolittle. function[l,r]=doolittle(A) %PhantichmatranAthanhA=L*U n=size(A,1); u=zeros(n); fork=1:n‐1 fori=k+1:n ifA(i,k)~=0.0 lambda=A(i,k)/A(k,k); A(i,k+1:n)=A(i,k+1:n)‐lambda*A(k,k+1:n); A(i,k)= lambda; end end end l=tril(A); fori=1:n l(i,i)=1; end l=triu(A); fori=1:n l(i,i)=A(i,i); end §5.PHÂNTÍCHMATRẬNTHEOPHƯƠNGPHÁPCROUT TươngtựnhưthuậttoánDoolittle,tacóthểphântíchmatrận[A]theo thuậttoánCroutthànhtíchcủamatrận[L]và[R].Cácmatrậnbậc3theo Croutcódạng: [] [] 11 12 13 21 22 23 31 32 33 l00 1rr Lll 0 R01r lll 001 ⎡⎤ ⎡⎤ ⎢⎥ ⎢⎥ == ⎢⎥ ⎢⎥ ⎢⎥ ⎢⎥ ⎣⎦ ⎣⎦ Đểtìml ijvàrijtathựchiệnphépnhân.Saukhinhântacó: [...]... [A][X] = λ[X] Nếu ta đặt [U] là một ma trận mà các cột của nó là các vec tơ riêng của ma trận [A] và ma trận [Λ] là ma trận đường chéo có các phần tử trên đường chéo chính là λi thì: [A][U] = [Λ][U] hay: [A] = [U][Λ][U]‐1 Dạng này của ma trận được gọi là dạng phân tích theo giá trị riêng và vec tơ riêng. Ta dùng chương trình cteigdecom.m để phân tích ma trận: clear all, clc 76 a = [ 1 3 5; 3 4 9; 5 9 6]; ... function Z = nulld(A, small) norma = sqrt(mean(mean(abs(A)))); tiny = norma*eps; if nargin . 58 CHƯƠNG 2: MA TRẬN §1.MỘTSỐKHÁINIỆM ( Ma trận [A]gọilà đối x ứngnếu[A] T =[A] (Chomột ma trận vuông[A],cấpn.Tanói ma trận [A]khôngsuybiến (nonsingular)nếu ma trận cóthểnghịchđảođượchaynóicáchkhác,định thứccủa ma trận khác không. . Tađịnhnghĩa ma trận xácđịnhâmvànửaxácđịnhâmmộtcáchtương tự. (Hạngcủa ma trận làcấpcủa ma trận concủa ma trận ấycóđịnhthức khác không còn mọi ma trận con cấp cao hơnđều cóđịnh thưc bằng không (ma trận conlà ma trận cóđược bằngcáchxoámộtsốhàngvàcộtcủa ma trận banđầu). §2.BIẾNĐỔIHOUSEHOLDER 1.