CHƯƠNG2:ĐẠISỐTUYẾNTÍNH §1.CÁCPHƯƠNGTRÌNHĐẠISỐTUYẾNTÍNH 1.Hệphươngtrìnhđầyđủ:TaxéthệphươngtrìnhAx=B.Đểtìmnghiệmcủa hệtadùnglệnhMATLAB: x=inv(A)*B hay: x=A\B 2.Hệphươngtrìnhcóít phươngtrìnhhơnsốẩn(underdetermined):Khigiải hệtrêntađãdùngnghịchđảomatrận.Nhưvậy tachỉnhậnđượckếtquảkhi matrậnAvuông(sốphương trìnhbằngsốẩnsốvàđịnhthứcc ủaAphảikhác không).HệcósốphươngtrìnhíthơnsốẩnhayđịnhthứccủamatrậnAcủa hệđầyđủbằng0gọilàhệunderdetermined.Mộthệnhưvậycóthểcóvôs ố nghiệmvớimộthaynhiềubiếnphụthuộcvàocácbiếncònlại.Vớimộthệnhư vậyphươngphápCramerhayphươngphápmatrậnnghịchđảokhôngdùng được.Khisốphương trìnhnhiềuhơnsốẩnphươngphápchiatráicũngcho nghiệm với một vàiẩn số đượcchobằng0.Mộtvídụđơngiản là phương trìnhx+3y=6.Phươngtrìnhnàycór ấtnhiềunghiệm trongđócómộtnghiệm làx=6vày=0: a=[13]; b=6; x=a\b x= 6 0 Sốnghiệmvôhạncóthểtồn tại ngaycảkhisốphươngtrìnhbằngsốẩn.Điều này xảy ra khi det(A) = 0. Với hệ này ta không dùngđược phương pháp Cramervàphươngpháp matrậnnghịchđảo vàphươngphápchiatráicho thông báolàma trậnAsuybiến.Trongtrườnghợpnhưvậytacóthểdùng phươngphápgiảnghịchđảođểtìmđượcmộtnghiệmgọilànghiệmchuẩn minimum. Vídụ:Chohệphươngtrình x+2y+z=8 0x+y+0z=2 x+y+z=6 29 Khidùngphépchiatráitanhậnđược: y=a\b Warning:Matrixissingulartoworkingprecision. y= Inf Inf Inf Nếutadùngphươngphápgiảnghịchđảothìcó: a=[121;010;111] b=[8;2;6] x=pinv(a)*b x= 2.00000000000000 2.00000000000000 2.00000000000000 Mộthệcũngcóthểcóvôsốnghiệmkhicóđủsốphươngtrình.Vídụta cóhệ: 2x‐4y+5z=‐4 ‐4x‐2y+3z=4 2x+6y‐8z =0 Tronghệnàyphươngtrìnhthứ3làtổngcủahaiphương trìnhtrênnênhệthật sựchỉcó2phươngtrình. Tómlạimộthệmuốncónghiệmduynhấtphảicócácph ươngtrìnhđộc lập.Việcxácđịnhcácphươngtrìnhtronghệcóđộclậphaykhôngkhákhó, nhấtlàđối vớihệcónhiềuphươngtrình.Tađưaramộtphươngphápcho phépxácđịnhhệphươ ngtrìnhcónghiệmvàliệunghiệmđócóduynhấthay không.Phươngphápnàyđòihỏisựhiểubiếtvềhạngcủamatrận. Taxemxétđịnhthứccủamatrậnsau: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − 379 2106 143 Nếutaloạitrừmộthàngvàmộtcộtcủamatrậnchúngta cònlạimatrận2 ×2. Tuỳtheohàngvàcộtbịloạitacó9matrậncon.Địnhthứccủacácmatrậnnày gọilàđịnhthứccon.Vídụnếutabỏhàng1vàcột1tacó: 44 37 210 = − 30 Cácđịnhthứcconcóthểdùngđểxácđịnhhạngcủamatrận.Hạngcủama trậnđượcđịnhnghĩanhưsau: MộtmatrậnAm × ncóhạngr ≥ 1nếuvàchỉnếu địnhthứccủaAchứamộtđịnh thứcr × rvàmọiđịnhthứcconvuôngcór+1hàng hayhơnbằng0. Đểxácđịnhhạngcủamatrậntacólệnhrank Vídụ: a=[3‐41;6102;9‐73]; rank(a) ans= 2 HệphươngtrìnhAx=Bcómphươngtrìnhvànẩncónghiệmnếuvàchỉnếu rank(A)=rank([AB]).GọihạngcủaAlàr,nếur=nthìnghiệmlàduynhất. Nế ur<nthìhệcóvôsốnghiệmvàrẩncóth ểbiểudiễnnhưlàtổhợptuyến tínhcủan‐rẩncònlạimàgiátrịcóthểchọnbấtkì. Vídụ:Giảihệphươngtrình 3x‐2y+8z=48 ‐6x+5y+z=‐12 9x+4y+2z=24 Taviết: a=[3‐28;‐651;942]; b=[48;‐12;24]; rank(a) ans= 3 rank([ab]) ans= 3 Vậyhệcónghiệmduynhất: x=a\b x= 2 ‐1 5 Vídụ:Giảihệ 2x‐4y+5z=‐4 ‐6x‐2y+3z=4 2x+6y‐8z=0 31 Taviết: a=[2‐45;‐6‐23;26‐8]; b=[‐4;4;0]; rank(a) ans= 2 rank([ab]) ans= 2 Vậyhệcóvôsốnghiệm.Mộttrongcácnghiệmlà: x=pinv(a)*b x= ‐1.21481481481481 0.20740740740741 ‐0.14814814814815 3.Hệphươngtrìnhoverdetermined:Hệphương trình trongđó số phương trìnhđộc lập nhiều hơn số ẩn gọi là hệ overdetermined.Đối với hệ này phươngphápCramervàphươngphápnghịchđảomatrậnkhôngdùngđược. Tuynhiênmột sốhệchonghiệmđúngxácđịnhbằngphépchiatrái.Đốivới các hệ khác không có nghiệm chính xác. Khi r = rank(a)=rank([ab])hệcó nghiệmvànếur=nnghiệmlàduynhất.Khirank(a) ≠rank([ab])hệkhôngcó nghiệm. Vídụ:Giảimạchđiệngồm3nhánhnốisongsong:nhánh1cótổngtrởZ1= 5+2jvànguồne=100sin(314t+30 0 ),nhánh2cótổngtrởZ2=3+4jvànhánh3 cótổngtrở5+6j.Taviếtphương trìnhcủamạchđiệntheodòngnhánh.Sauđó rútramatrậnAvàB.CáclệnhMATLAB: a=[111;5+2*i3+4*i0;0‐(3+4*i)5+6*i] e=100*exp(i*(30*pi/180)) b=[0;e;0]; i=a\b i= 25.25569272231586+19.27124163998603i ‐15.63482777750950‐11.44276084484129i ‐9.62086494480636‐7.82848079514474i 32 §2.NỘISUY 1.Nộisuyhàmmộtbiến :MATLABdùng2kiểunộisuy:nộisuyđathứcvà nộisuytrêncơsởbiếnđổiFourriernhanh, a.Nộisuyđathức:MATLABdùnghàminterp1(x,y,xi,<phươngpháp>) vớix,làgiátrịcủahàmtạinhữngđiểmđãchovàxilàgiátrịmàtạiđótacần nộisuyragiátrịyi.<phươngpháp>cóthểlà mộttrongcácgiátrịsau: ‘nearest’‐ phương pháp nàyđặt giá trị nội suy vàogiá trị đã cho gần nhất,Phươngphápnàynhanhnhưngkếtquảkémchínhxácnhất Vídụ: x=[12345]; y=[5.543.1128290.7498.4]; yi=interp1(x,y,1.6,ʹnearestʹ) yi= 43.1000 ‘linear’‐phươngphápnày coiđường congđi qua 2điểmchotrướclà đườngthẳng. Vídụ: yi=interp1(x,y,1.6,ʹlinearʹ) yi= 28.0600 ‘spline”‐dùngphươngphápnộisuyspline Vídụ: yi=interp1(x,y,1.6,ʹsplineʹ) yi= 24.9782 ‘cubic’‐phươngphápnàycoiđườngcongqua2điểmlàđườngcongbậc 3 Vídụ: yi=interp1(x,y,1.6,ʹcubicʹ) yi= 22.3840 b.NộisuyFTT:Hàminterpftth ựchiệnnộisuyhàmmộtbiếnsửdụng phươngphápFFT(FastFourrierTransform).Phươngphápnàytínhtoánbiến đổiFourriermộtvectơchứacácgiátrịcủamộthàmchukì. Nhưvậyphương phápnàytínhbiếnđổiFourrierngượcsửdụngnhiềuđiểm.Dạnghàmlà: y=interpft(x,n) Vídụ: y=interpft(x,4) y= 1.00002.62363.00005.3764 33 2.Nộisuy hàmhaibiến:Hàm interp2thựchiệnnộisuyhàm2 biến.Dạng hàmtổngquát: ZI=interp2(X,Y,Z,XI,YI,<phươngpháp>) Z–matrậnchữnhậtchứagiátrịcủahàm2biến X,Y–mảngcócùng kíchthước,chứagiátrịx,yđãcho XI,YI‐mảngchứagiátrịcầnnộisuy Các<phươngpháp>gồm:‘nearest’,’linear’,’cubic’ 3.Nộisuyvàmảngnhiềuchiều: interp3 nộisuyhàm3biến interpn nộisuyhàmnhiềubiến §3.TÍCHPHÂNVÀPHƯƠNGTRÌNHVIPHÂN 1.Tíchphân :Đểtínhtíchphântadùnghàmquad(tínhtíchphântheophương phápSimpson)vàhàmquadl(tínhtíchphânbằngphươngphápLobatto). Vídụ(lưutrongct2_1.m): f=inline(ʹ1./((x‐0.3).^2+0.01)+1./((x‐0.9).^2+0.04)‐6ʹ); q=quad(f,0,1) q= 29.8583 r=quadl(f,0,1) r= 29.8583 Vídụ(lưutrongct2_2.m) y=sin(x) quad(‘sin’,0,pi) ans= 2.00001659104794 quadl(ʹsinʹ,0,pi) ans= 1.99999999999989 Tacũngcóthểdùngphươngpháphìnhthanhđểtínhtíchphân: Vídụ(lưutrongct2_3.m): y=sin(x) x=[0:pi/100:pi]]; y=sin(x); 34 trapz(x,y) ans= 1.99983550388744 2.Viphânsố :Đểtínhviphântadùngdiff Vídụ: a=[1425748]; diff(a) ans= 3‐232‐34 3.Phươngtrìnhviphân :Phươngtrìnhviphâncấpcaoy (n) =f(t,y,y’,..,y (n‐1) ) cóthểđưavềhệphươngtrìnhviphâncấp1bằngcáchđặty 1=y;y2=y’,.., yn=y (n‐1) .Nhưvậy: )y.,,.y,y,t(fy yy yy n21n 32 21 = ′ = ′ = ′ làhệcónphươngtrìnhviphâncấp1. Vídụ: y’’’‐3y”‐y’y=0vớiy(0)=0y’(0)=1y”=‐1 đượcbiếnđổithành 1233 32 21 yyy3y yy yy += ′ = ′ = ′ vớiđiềukiệnđầu:y 1(0)=0y2(0)=1y3(0)=‐1 ĐểnhậpphươngtrìnhnàyvàoMATLABtadùngM‐filef.mnhưsau: functiondy=f(t,y); dy=[y(2);y(3);3*y(3)+y(3)*y(1)]; vàgiảiphươngtrìnhbằnglệnh: [t,f]=solver(‘file’,tspan,y0) với “file”làM‐filechứaODE tspanlàvectơ[t0tfinal]xacđịnhkhoảngtìmnghiệm y0làvectơgiátrịđiềukiệnđầu. solver là cách giải, thường dùng phương pháp Runge‐Kutta bậc 2/3(ode23)hay4/5(ode45) 35 [t,y]=ode45(‘f’,[01],[0;1;‐1]) Mỗihàngtrongvectơnghiệmtươngứngvớimộtthờiđiểmtrongvectơcộtt. Như vậy trong ví dụ trên, y(:,1) là nghiệm, y(:,1) làđạo hàm bậc nhất của nghiệmvày(:,2)là đạohàmbậchaicủanghiệm. Vídụ:TìmdòngquađộkhiđóngmạchRCnốitiếpvàonguồnmộtchiềubiết tíchsốRC=0.1,điệnápnguồnlà10Vvàđiệnápbanđầutrêntụlà2V. Phươngtrìnhcủamạ chlà: e(t)=RC C C u dt du + Thaysốvàotacó: 0.1u′+u=10 u′=‐10u+100 TacócáclệnhMATLABđểtạohàm: functionuc=rc(t,u) uc=‐10*u+100; vàgiảibàitoán: [t,u]=ode45(ʹrcʹ,[04],2); plot(t,u,ʹ‐oʹ) §4.ĐẠISỐMATRẬN 1.PhântíchCholesky:PhươngphápCholeskyphântíchmatrậnAxácđịnh dương thành tích của hai ma trận A=R’*RvớiRlàmatrậntamgiác trên. MuốnnhậnđượcmatrậnRtadùnghàmchol(A). Vídụ: n=5; X=pascal(n) X= 11111 12345 1361015 14102035 15153570 R=chol(X) 2.PhântíchLU:TaphântíchmatrậnA=L*UtrongđóLlàmatrậntamgiác dướivàUlàmatrậntamgiáctrên.Taviết[L,U]=lu(A). Vídụ(lưutrongct2_4.m): 36 A=[ 123 456 780] [L,U]=lu(A) 3.PhântíchQR:TaphântíchmatrậnA=Q*RvớiQlàmatrậntrựcgiaovàR làmatrậntamgiáctrên. Vídụ(lưutrongct2_5.m): A=[ 123 456 789 101112] [Q,R]=qr(A) 4.Luỹthừa:NếucómatrậnAvuôngvàsốp>0thìA^plàtíchplầncủaA: Y=A^2 5.Giátrịriêngvàvectơriêng:eig(A) [d,r]=eig(A) 6.Quaymatrận :b=rot90(a) a=[210;‐25‐1;346] a= 210 ‐25‐1 346 b=rot90(a) b= 0‐16 154 2‐23 7.Đảomatrận:fliplr(a)đảomatrậntừtráisangphải c=fliplr(a) c= 37 012 ‐15‐2 643 flipud(a)đảomatrậntừtrênxuốngdưới d=flipud(a) d= 346 ‐25‐1 210 8.Cáchàmxửlímatrậnkhác: reshape(a,m,n)địnhdạnglạimatrậnavớisốhàngmớimvàsốcộtmới n a=[123;567;891]; reshape(a,1,9) ans= 158269371 diag(a)lấycácphầntửtrênđườngchéochínhcủamatrậnavàlưuvào mộtvectơ diag(a,k)chọnđườngchéotuỳtheogiátrịcủak k=0‐chọnđườngchéochính k>0‐chọnđườngchéothứktrênđườngchéochính k<0‐chọnđườngchéothứkdướiđườngchéochính a= 123 567 891 v=diag(a,1) v= 2 7 a=diag(v)n ếuvlàvectơthìalàmatrậnvuôngvớivlàđườngchéo chính b=triu(a)tạora matrậnbcùngcỡvớimatrậna,chứacácphầntửcủa ma trận a nằm trênđường chéo chính và phía trênđường chéo chính. Các phầntửkhácbằng0. a=[123;456;789] 38