CHNG2:ĐISTUYNTÍNH §1.CÁCPHNGTRÌNHĐISTUYNTÍNH 1.Hphngtrìnhđyđ:TaxéthphngtrìnhAx=B.Đtìmnghimca htadùnglnhMATLAB: x=inv(A)*B hay: x=A\B 2.Hphngtrìnhcóít phngtrìnhhnsn(underdetermined):Khigii htrêntađãdùngnghchđomatrn.Nhvytachnhnđcktqukhi matrnAvuông(sphngtrìnhbngsnsvàđnhthcc aAphikhác không).HcósphngtrìnhíthnsnhayđnhthccamatrnAca hđyđbng0gilàhunderdetermined.Mthnhvycóthcóvôs nghimvimthaynhiubinphthucvàocácbincònli.Vimthnh vyphngphápCramerhayphngphápmatrnnghchđokhôngdùng đc.Khisphng trìnhnhiuhnsnphngphápchiatráicũngcho nghim vi mt vàin s đc cho bng 0. Mt ví dđn gin là phng trìnhx+3y=6.Phngtrìnhnàycór tnhiunghimtrongđócómtnghim làx=6vày=0: a=[13]; b=6; x=a\b x= 6 0 Snghimvôhncóthtnti ngayckhisphngtrìnhbngsn.Điu này xy ra khi det(A) = 0. Vi h này ta không dùngđc phng pháp Cramer và phng pháp ma trn nghchđo và phng pháp chia trái cho thông báolà matrnAsuy bin.Trongtrnghp nhvytacóthdùng phng pháp gi nghchđođtìmđc mt nghimgilànghimchun minimum. Víd:Chohphngtrình x+2y+z=8 0x+y+0z=2 x+y+z=6 29 Khidùngphépchiatráitanhnđc: y=a\b Warning:Matrixissingulartoworkingprecision. y= Inf Inf Inf Nutadùngphngphápginghchđothìcó: a=[121;010;111] b=[8;2;6] x=pinv(a)*b x= 2.00000000000000 2.00000000000000 2.00000000000000 Mthcũngcóthcóvôsnghimkhicóđsphngtrình.Vídta cóh: 2x4y+5z=4 4x2y+3z=4 2x+6y8z =0 Tronghnàyphngtrìnhth3làtngcahaiphngtrìnhtrênnênhtht schcó2phngtrình. Tómlimthmuncónghimduynhtphicócácph ngtrìnhđc lp.Vicxácđnhcácphngtrìnhtronghcóđclphaykhôngkhákhó, nht làđi vi h có nhiu phng trình. Tađa ra mt phng pháp cho phépxácđnhhph ngtrìnhcónghimvàliunghimđócóduynhthay không.Phngphápnàyđòihishiubitvhngcamatrn. Taxemxétđnhthccamatrnsau: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − 379 2106 143 Nutaloitrmthàngvàmtctcamatrnchúngtacònlimatrn2×2. Tutheohàngvàctbloitacó9matrncon.Đnhthccacácmatrnnày gilàđnhthccon.Vídnutabhàng1vàct1tacó: 44 37 210 = − 30 Cácđnh thcconcóthdùngđxácđnhhngcamatrn.Hngcama trnđcđnhnghĩanhsau: MtmatrnAm × ncóhngr ≥ 1nuvàchnu đnhthccaAchamtđnhthcr × rvàmiđnhthcconvuôngcór+1hàng hayhnbng0. Đxácđnhhngcamatrntacólnhrank Víd: a=[341;6102;973]; rank(a) ans= 2 HphngtrìnhAx=Bcómphngtrìnhvànncónghimnuvàchnu rank(A)=rank([AB]).GihngcaAlàr,nur=nthìnghimlàduynht. N ur<nthìhcóvôsnghimvàrncóthbiudinnhlàthptuyn tínhcanrncònlimàgiátrcóthchnbtkì. Víd:Giihphngtrình 3x2y+8z=48 6x+5y+z=12 9x+4y+2z=24 Tavit: a=[328;651;942]; b=[48;12;24]; rank(a) ans= 3 rank([ab]) ans= 3 Vyhcónghimduynht: x=a\b x= 2 1 5 Víd:Giih 2x4y+5z=4 6x2y+3z=4 2x+6y8z=0 31 Tavit: a=[245;623;268]; b=[4;4;0]; rank(a) ans= 2 rank([ab]) ans= 2 Vyhcóvôsnghim.Mttrongcácnghimlà: x=pinv(a)*b x= 1.21481481481481 0.20740740740741 0.14814814814815 3. Hphng trìnhoverdetermined: H phng trình trongđó s phng trìnhđc lp nhiu hn s n gi là h overdetermined.Đi vi h này phngphápCramervàphngphápnghchđomatrnkhôngdùngđc. Tuynhiênmtshchonghimđúngxácđnhbngphépchiatrái.Đivi các h khác không có nghim chính xác. Khi r = rank(a) = rank([a b]) h có nghimvànur=nnghimlàduynht.Khirank(a) ≠rank([ab])hkhôngcó nghim. Víd:Giimchđingm3nhánhnisongsong:nhánh1cótngtrZ1= 5+2jvàngune=100sin(314t+30 0 ),nhánh2cótngtrZ2=3+4jvànhánh3 cótngtr5+6j.Tavitphngtrìnhcamchđintheodòngnhánh.Sauđó rútramatrnAvàB.CáclnhMATLAB: 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.6348277775095011.44276084484129i 9.620864944806367.82848079514474i 32 §2.NISUY 1.Nisuyhàmmtbin:MATLABdùng2kiunisuy:nisuyđathcvà nisuytrêncsbinđiFourriernhanh, a.Nisuyđathc:MATLABdùnghàminterp1(x,y,xi,<phngpháp>) vix,làgiátrcahàmtinhngđimđãchovàxilàgiátrmàtiđótacn nisuyragiátryi.<phngpháp>cóthlà mttrongcácgiátrsau: ‘nearest’ phng pháp nàyđt giá tr ni suy vào giá tr đã cho gn nht,Phngphápnàynhanhnhngktqukémchínhxácnht Víd: x=[12345]; y=[5.543.1128290.7498.4]; yi=interp1(x,y,1.6,nearest) yi= 43.1000 ‘linear’ phng pháp này coiđng congđi qua 2đim cho trc là đngthng. Víd: yi=interp1(x,y,1.6,linear) yi= 28.0600 ‘spline”dùngphngphápnisuyspline Víd: yi=interp1(x,y,1.6,spline) yi= 24.9782 ‘cubic’phngphápnàycoiđngcongqua2đimlàđngcongbc 3 Víd: yi=interp1(x,y,1.6,cubic) yi= 22.3840 b.NisuyFTT:Hàminterpftthchinnisuyhàmmtbinsdng phngphápFFT(FastFourrierTransform).Phngphápnàytínhtoánbin điFourriermtvectchacácgiátrcamthàmchukì. Nhvyphng phápnàytínhbinđiFourrierngcsdngnhiuđim.Dnghàmlà: y=interpft(x,n) Víd: y=interpft(x,4) y= 1.00002.62363.00005.3764 33 2.Ni suyhàmhai bin : Hàm interp2 thchin ni suy hàm 2 bin.Dng hàmtngquát: ZI=interp2(X,Y,Z,XI,YI,<phngpháp>) Z–matrnchnhtchagiátrcahàm2bin X,Y–mngcócùngkíchthc,chagiátrx,yđãcho XI,YImngchagiátrcnnisuy Các<phngpháp>gm:‘nearest’,’linear’,’cubic’ 3.Nisuyvàmngnhiuchiu: interp3 nisuyhàm3bin interpn nisuyhàmnhiubin §3.TÍCHPHÂNVÀPHNGTRÌNHVIPHÂN 1.Tíchphân:Đtínhtíchphântadùnghàmquad(tínhtíchphântheophng phápSimpson)vàhàmquadl(tínhtíchphânbngphngphápLobatto). Víd(lutrongct2_1.m): f=inline(1./((x0.3).^2+0.01)+1./((x0.9).^2+0.04)6); q=quad(f,0,1) q= 29.8583 r=quadl(f,0,1) r= 29.8583 Víd(lutrongct2_2.m) y=sin(x) quad(‘sin’,0,pi) ans= 2.00001659104794 quadl(sin,0,pi) ans= 1.99999999999989 Tacũngcóthdùngphngpháphìnhthanhđtínhtíchphân: Víd(lutrongct2_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= 323234 3.Phngtrìnhviphân :Phngtrìnhviphâncpcaoy (n) =f(t,y,y’,..,y (n1) ) cóthđavhphngtrìnhviphâncp1bngcáchđty1=y;y2=y’,.., yn=y (n1) .Nhvy: )y.,,.y,y,t(fy yy yy n21n 32 21 = ′ = ′ = ′ làhcónphngtrìnhviphâncp1. Víd: y’’’3y”y’y=0viy(0)=0y’(0)=1y”=1 đcbinđithành 1233 32 21 yyy3y yy yy += ′ = ′ = ′ viđiukinđu:y 1(0)=0y2(0)=1y3(0)=1 ĐnhpphngtrìnhnàyvàoMATLABtadùngMfilef.mnhsau: functiondy=f(t,y); dy=[y(2);y(3);3*y(3)+y(3)*y(1)]; vàgiiphngtrìnhbnglnh: [t,f]=solver(‘file’,tspan,y0) vi “file”làMfilechaODE tspanlàvect[t0tfinal]xacđnhkhongtìmnghim y0làvectgiátrđiukinđu. solver là cách gii, thng dùng phng pháp RungeKutta bc 2/3(ode23)hay4/5(ode45) 35 [t,y]=ode45(‘f’,[01],[0;1;1]) Mihàngtrongvectnghimtngngvimtthiđimtrongvectctt. Nh vy trong ví d trên, y(:,1) là nghim, y(:,1) làđo hàm bc nht ca nghimvày(:,2)là đohàmbchaicanghim. Víd:TìmdòngquađkhiđóngmchRCnitipvàongunmtchiubit tíchsRC=0.1,đinápngunlà10Vvàđinápbanđutrêntlà2V. Phngtrìnhcam chlà: e(t)=RC C C u dt du + Thaysvàotacó: 0.1u′+u=10 u′=10u+100 TacócáclnhMATLABđtohàm: functionuc=rc(t,u) uc=10*u+100; vàgiibàitoán: [t,u]=ode45(rc,[04],2); plot(t,u,o) §4.ĐISMATRN 1.PhântíchCholesky:PhngphápCholeskyphântíchmatrnAxácđnh dng thành tích ca hai ma trn A = R’*R vi R là ma trn tam giác trên. MunnhnđcmatrnRtadù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íchmatrnA=L*UtrongđóLlàmatrntamgiác divàUlàmatrntamgiáctrên.Tavit[L,U]=lu(A). Víd(lutrongct2_4.m): 36 A=[ 123 456 780] [L,U]=lu(A) 3.PhântíchQR:TaphântíchmatrnA=Q*RviQlàmatrntrcgiaovàR làmatrntamgiáctrên. Víd(lutrongct2_5.m): A=[ 123 456 789 101112] [Q,R]=qr(A) 4.Lutha:NucómatrnAvuôngvàsp>0thìA^plàtíchplncaA: Y=A^2 5.Giátrriêngvàvectriêng:eig(A) [d,r]=eig(A) 6.Quaymatrn:b=rot90(a) a=[210;251;346] a= 210 251 346 b=rot90(a) b= 016 154 223 7.Đomatrn:fliplr(a)đomatrnttráisangphi c=fliplr(a) c= 37 012 152 643 flipud(a)đomatrnttrênxungdi d=flipud(a) d= 346 251 210 8.Cáchàmxlímatrnkhác: reshape(a,m,n)đnhdnglimatrnavishàngmimvàsctmi n a=[123;567;891]; reshape(a,1,9) ans= 158269371 diag(a)lycácphnttrênđngchéochínhcamatrnavàluvào mtvect diag(a,k)chnđngchéotutheogiátrcak k=0chnđngchéochính k>0chnđngchéothktrênđngchéochính k<0chnđngchéothkdiđngchéochính a= 123 567 891 v=diag(a,1) v= 2 7 a=diag(v)nuvlàvectthìalàmatrnvuôngvivlàđngchéo chính b=triu(a)toramatrnbcùngcvimatrna,chacácphntca ma trn a nm trênđng chéo chính và phía trênđng chéo chính. Các phntkhácbng0. a=[123;456;789] 38 [...]... 1.0473 + 1.1359i 1.0473 1.1359i 4 a th c c tính: Cho ma tr n A, hàm poly xác nh a th c c tính c a ma tr n A Ví d : a=[1 2 3;3 4 5;4 5 6] a= 1 2 3 3 4 5 4 5 6 poly(a) ans = 1.0000 11.0000 9.0000 0.0000 5 Tính tr a th c: tính tr c a a th c t i x = x0 ta dùng hàm polyval(p) Ví d : polyval(p,0.2) ans = 5.3920 Ta có th tính tr c a ma tr n a th c Trong tr ng h p ó a th c P(x) = x3 – 2x – 5 tr thành : P(X)... a th c : Cho a th c a = x2 + 2x + 3 và a th c b = 4x2 + 5x + 6 tính tích 2 a th c ta vi t : a=[1 2 3];b=[4 5 6]; c = conv(a,b) c= 4 13 28 27 18 tính th ng hai a th c ta vi t [ q , r ] = deconv(c,a) q= 4 5 6 r= 0 0 0 0 0 Trong ó q là th ng nguyên còn r là ph n d 7 o hàm a th c: Tính o hàm a th c b ng hàm polyder q = polyder(p) q= 3 0 2 tính o hàm c a tích hai a th c a và b ta vi t c = polyder(a,b)... th c tính tr c a a th c tính tr ma tr n a th c tìm nghi m c a a th c 2 Bi u di n a th c: MATLAB bi u di n a th c nh là m t vec t hàng ch a các h s c a a th c theo th t s m gi m d n Ví d : P(x) = x3 – 2x – 5 39 nh p a th c này vào MATLAB ta vi t : p = [ 1 0 – 2 –5 ] 3 Nghi m c a a th c : tìm nghi m c a a th c ta dùng hàm roots Ví d : roots(p) ans = 2.0946 1.0473 + 1.1359i 1.0473 1.1359i 4 a th c c tính: . CHNG 2: ĐISTUYNTÍNH §1.CÁCPHNGTRÌNHĐISTUYNTÍNH 1.Hphngtrìnhđyđ:TaxéthphngtrìnhAx=B.Đtìmnghimca. §3.TÍCHPHÂNVÀPHNGTRÌNHVIPHÂN 1.Tíchphân:Đ tính tíchphântadùnghàmquad (tính tíchphântheophng phápSimpson)vàhàmquadl (tính tíchphânbngphngphápLobatto).