Tải bản đầy đủ (.pdf) (28 trang)

Tài liệu Chương 1: Matlab cơ bản docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (338.7 KB, 28 trang )

CHNG1:MATLABCBN

§1.KHIĐNGMATLAB
1.KhiđngMATLAB:MATLAB(Matrixlaboratory)làphnmmdùngđ
giimtlotcácbàitoánkĩ thut,đcbitlàcácbàitoánliênquanđnma
trn. MATLAB cung cp các toolboxes,
 tc các hàm m rng môi trng
MATLABđgiiquytcácvnđđcbitnhxlítínhius,hthngđiu
khin,mngneuron,fuzzylogic,môphngv.v.
ĐkhiđngMATLABta
nhnđúpvàoiconcanótrênmànhình.

2.Đánhlnhtrongcaslnh:Khitađánhlnhvàocaslnh,nósđc
thihànhngayvàktquhinlênmànhình.Nu
takhôngmunchoktqu
hinlênmànhìnhthìsaulnhtađtthêmdu“;”.Nulnhquádài,không
vamtdòngdòngcóthđánhlnhtrênnhiudòngvàcuimi
dòngđt
thêmdu...rixungdòng.Khisontholnhtacóthdùngcácphímtt:
 ↑CtrlPgililnhtrcđó
 ↓CtrlN gilnhsau
←CtrlB
lùilimtkít
→CtrlFtinlênmtkít
Ctrl→ CtrlR sangphimtt
Ctrl← CrtlLsangphimtt
home CtrlA vđudòng
end CtrlEvcuidòng
escCtrlU xoádòng
delCtrlD xoákíttichconnháyđng
 backspace CtrlH xoákíttrcchconnháyđng



3.Setpath:KhichycácchngtrìnhMATLABcácthmckhácthmc
hin
hinhànhtaphiđithmcbnglnhFile|SetPath...

4. Help và Demo: Phn nay giúp chúng ta hiu bit các hàm, các lnh ca
MATLABvàchythcácchngtrìnhdemo

§2.CÁCMATRN
1.Cáctoán t: MATLAB khôngđòi hi phi khai báo bin trc khi dùng.
MATLABphânbitchhoavàchthng.

1
Cácphéptoán:
+,,*,/,\(chiatrái),^(mũ),‘(chuynvhaysphcliênhip).
 x=2+3
 a=5
 b=2
 a/b
 a\b
Cáctoántquanh:
 <
,<=,>,>=,==,~=
Cáctoántlogic:
&,|(or),~(not)
Cáchng:
pi3.14159265
iso
jtngti
eps  sais2

52
realmin sthcnhnht2
1022
realmax sthclnnht2
1023
infvôcùngln
NaN Notanumber

2.Cácmatrn:
 a.Nhpmatrn:Ma trnlàmtmngcácsliucómhàngvànct.
Trnghpmatrnch
cómtphnt(matrn11)tacómts.Matrnch
cómtctđcgilàmtvect.TacóthnhpmatrnvàoMATLABbng
nhiucách:
•nhpmtdanhsáchcácphnttbànphím
•npmatrntfilesliu
•tomatrnnhcáchàmcósntrongMATLAB
•tomatrnnhhàmtto
Khinhpmatrntbànphímtaphituântheocácquyđnhsau:

•ngăncáchcácphntcamatrnbngdu“,”haydutrng
 •dùngdu“;”đktthúcmthàng
 •baocácphntcamatrnbngcpdungocvuông[]
Víd:Tanhpmtmatrn
A=[163213;510118;96712;
415141]
Bâygitađánhlnh:

2
sum(A)

ans=
34343434
nghĩalànóđãlytngcácctvìMATLABđcvitđlàvicvicácct.Khi
takhôngchbinchaktquthìMATLABdùngbinmc
đnhlàans,vit
ttcaanswer.
 Munlytngcacáchàngtacnchuynvmatrn bngcáchđánh
vàolnh:
A’
ans=
   16594
   310615
   
211714
   138121
vàđâylàchuynvcamatrnA.
 Matrna=[]làmatrnrng
 b.Chs:Phnthàngictjcamatrn
cókíhiulàA(i,j).Tuynhiên
tacũngcóth thamchiu tiphntcamngnhmtchs,vídA(k).
Cáchnàythngdùngđthamchiuvecthànghayct.Trongtrng
hp
matrnđyđthìnóđcxemlàmatrnmtctdàitotcácctcama
trnbanđu.NhvyvitA(8)cónghĩalàthamchiuphntA(4,2).
 c.Toánt“:”:Toánt“:”làmttoántquantrngcaMATLAB.Nó
xuthinnhiudngkhácnhau.Biuthc
 1:10
làmtvecthàngcha10snguyênt1đn
10
ans=

  12345678910
 100:7:50
tomtdãyst100đn51,gim7miln
ans=
10093867972655851

 0:pi/4:pi
tomt
dãyst0đnpi,cáchđunhaupi/4
ans=
 00.78541.57082.35623.1416
Cácbiuthcchsthamchiutimtphncamatrn.VitA(1:k,j)là

3
thamchiuđnkphntđutiêncactj.
Ngoàiratoánt“:”thamchiutittccácphntcamthànghaymt
ct.
A(:,3)
ans=
2
11
7
14
và  A(3,:)
ans=
96712
Vit B=A(:,[1324])
tatođcmatrnBtmatrnAbngcáchđithtcácctt[1234]
thành[1
324]

B=
162313
511108
97612
414151 

 d.Tomatrnbnghàmcósn:MATLABcungcpmtshàmđto
cácmatr
ncbn:
 zeros toramatrnmàcácphntđulàzeros
z=zeros(2,4)
z=
0000
    0000

 ones toramatrnmàcácphntđulà1
x
=ones(2,3)
x=
111
   111

y=5*ones(2,2)
y=

4
55
    55

rand toramatrnmàcácphntngunhiênphânbđu  

d=rand(4,4)
d=
 0.95010.89130.82140.9218
 0.23110.76210.44470.7382
0.60680.45650.61540.1763
0.48600.01850.79190.4057
randnto
ramatrnmàcácphntngunhiênphânbtrcgiao
e=randn(3,3)
e=
 0.43260.28771.1892
 1.66561.14650.0376
 0.12531.19090.3273
magic(n)toramatrncpngmcácsnguyênt1đ
nn
2
vitngcác
hàngbngtngcácct.nphilnhnhaybng3.
pascal(n)toramatrnxácđnhdngmàcácphntlyttamgiác
Pascal.
pascal(4)
ans=
11
11
  1234
  13610
  141020

eye(n)tomatrnđnv
eye(3)

ans=
  100
  010
  001

 eye(m,n)tomatrnđnvmrông
eye(3,4)
 ans
=

5
  1000
  0100
  0010
 e.Lnhload:Lnhloaddùngđđcmtfiledliu.Vìvytacóthto
mtfilechamatrnvànpvào.Ví
dcófilemtran.datchamtmatrnthì
tanpmatrnnàynhsau:
 loadmtran.dat
Khidùngmttrìnhsonthovănbnđtomatrncnchúý:
- filechama
trnlàmtbnghìnhchnht
- mihàngvittrênmtdòng
- sphntcáchàngphibngnhau
- cácphntphicáchnhaubngdutrng
 f.Mfile:
Mfilelàmtfile text cha các mãcaMATLAB.Đtomt
ma trn ta vit mt mfile và cho MATLABđc file này. Ví d ta to file
ct1_1.mnhsau
 A=[

1 23
2
 34
3 45]
vànpvàoMATLABbngcáchđánhlnh:
 ct1_1
 g.Lpghép:Tacóthlpghép(concatenation)cácmatrncósnthành
mtmatrnmi.Víd:
 a
=ones(3,3)
a=
111
  111
  111
b=5*ones(3,3)
b=
 555
  555
  555
c=[a+2;b]
c=
 333
  333

6
  333
  555
  555
  555
 h.Xoáhàngvàct:Tacóthxoáhàngvàcttmatrnbngdùngdu

[].
Víd:
b=
 555
  555

  555
Đxoáctth2tavit:
 b(:,2)=[]
b=
 55
  55
  55
Vitx(1:2:5)=[]nghĩalàtaxoácácphntbtđutđnphn
tth5và
cách2rispxplimatrn.

3.Cáclnhxlímatrn:
 Cng:X=A+B
 Tr:X=AB
 Nhân   :X=A*B
  :X.*Anhân
cácphnttngngvinhau
 Chia:X=A/BlúcđóX*B=A
  :X=A\BlúcđóA*X=B
  :X=A./Bchiacácphnttngngvinhau
 Lutha :X=A^2

  :X=A.^2
 Nghchđo :X=inv(A)

 Đnhthc  :d=det(A)

§3.LPTRÌNHTRONGMATLAB
1.Cácphátbiuđiukinif,else,elseif:
Cúphápcaif:
 if<biuthcđi
ukin>

7
<phátbiu>
 end
Nu<biu thcđiukin>choktquđúngthìphnlnhtrongthâncaif
đcthchin.
 Cácphátbiuelsevàleseifcũngtngt.
Víd
:Taxétchngtrìnhct1_2.mđđoántuinhsau:
 disp(‘Xinchao!Hanhanhduoclamquen’);
 x=fix(30*rand);
 disp(‘Tuoitoitrongkhoang030’);
 gu=input(‘Xinnhaptuoicuaban:‘);
ifgu<x
 disp(‘
Bantrehontoi’);
elseifgu>x
 disp(‘Banlonhontoi’);
else
 disp(‘Banbangtuoitoi’);
end

2.switch:Cúphápcaswitchnhsau:

 switch<biuthc>
casen1:<lnh1>
casen2
:<lnh2>
...............
casenn:<lnhn>
otherwise:<lnhn+1>
 end

3.While:vònglpwhiledùngkhikhôngbittrcslnl
p.Cúphápcanó
nhsau:
 while<biuthc>
<phátbiu>
 end
Víd:Xétchngtrìnhinrachuoi“Xinchao”lênmàhìnhvislnnhpt
bànphím(ct1_3.m)nhsau:
disp(xin
chao);
gu=input(Nhapsolanin:);
i=0;

8
whilei~=gu
disp([Xinchaoi]);
i=i+1
end

4.For:vònglpfordùngkhibittrcslnlp.Cúphápnhsau:
 for<chs>=<giátrđu>:<mctăng>:<giá

trcui>
Víd:Xâydngchngtrìnhđoáns(ct1_4.m)
x=fix(100*rand);
n=7;
t=1;
fork=1:7
num=int2str(n);
disp([Bancoquyendudoan,num,lan]);
disp(Socandoannamtrongkhoang0
100);
gu=input(Nhapsomabandoan:);
ifgu<x
disp(Bandoannhohon);
elseifgu>x
disp(Sobandoanlonhon);
else
disp(Bandadoandung.Xinchucmung);
t=0;
break;
end
n
=n1;
end
ift>0
disp(Bankhongdoanraroi);
numx=int2str(x);
disp([Dolaso:,numx]);
end

5.Break:phátbiubreakđktthúcvònglpforhaywhilemàkhôngquan

tâmđnđiukin
ktthúcvònglpđãthomãnhaycha.



9
§4.CÁCFILEVÀHÀM
1.Scriptfile:KchbnlàMfileđnginnht,khôngcóđis.Nórtcóích
khithihànhmtlotlnhMATLABtheomttrìnhtnhtđnh.Taxét
víd
hàmfibnođtoracácsFibonnaci.
 f=[11];
 i=1;
 while(f(i)+f(i+1))<1000
  f(i+2)=f(i)+f(i+1);
  i=i+1;
 end
 plot(f)
 Taluđonmãlnhnàyvàomtfiletênlà
ct1_5.m.Đâychínhlàmt
scriptfile.Đthchincácmãchatrongfilect1_5.mtcaslnhtanhp
ct1_5vànhnenter.

2.Filehàm:HàmlàMfilecóchacácđis.Tacó
mtvídvhàm:
 functiony=tb(x)
 %Tinhtritrungbinhcuacacphantu
[m,n]=size(x);
ifm==1
   m=n;

end
y=sum(x)/m;
TvídtrêntathymthàmM
filegmcácphncbnsau:
 • Mt dòngđnh nghĩa hàm gm: function y = tb(x) gm t khoá
function,đistrvy,tênhàmtbvàđisvàox.

•Mtdòngh1làdòngtrgiúpđutiên.Vìđâylàdòngvănbnnênnó
phiđtsau%.Nóxuthintanhplnhlookfor<tênhàm>

•Phnvănbntrgiúpđgiúpngidùnghiutácdngcahàm.
 •ThânhàmchamãMATLAB
 •Cácligiithíchdùngđchochngtrìnhsángrõ.Nóđcđtsau
du%.
Cnchúýlàtênhàmphibtđubngkítvàcùngtênvifilechahàm.
TcasMATLAB
tađánhlnh:
 z=1:99;
 tb(z)
Ghichú:tênhàmlàtbthìtênfilecũnglàtb.m

10
CácbinkhaibáotrongmthàmcaMATLABlàbinđaphng.Các
hàm khác không nhìn thy và s dngđc bin này. Mun các hàm khác
dùngđcbinnàođócahàmtacnkhai
báonólàglobal.Vídtacngii
hphngtrình:
2122
2111
yyyy

yyyy
β+−=
α−=
&
&

TatoraMfiletênlàct1_6.m
 functionyp=lotka(t,y)
 globalalphabeta
 yp=[y(1)alpha*y(1)*y(2);y(2)+beta*y(1)*y(2)];

vàsauđótdònglnhtanhpcáclnhsau:
 globalalphabeta
 alpha=0.01;
 beta=0.02;
 [t,y]=ode23(
‘ct1_6’,[010],[11]);
 plot(t,y)

ĐtindngtacóthluđonlnhtrênvàoMfilect1_7.m.
 Mtbincóthđnhnghĩalàpersistentđgiátrcanókhôngthayđi
tlnginàysanglngikhác.Cácbinpersistentchcóthkhaibáotrong
hàm.Chúngtntitrongbnhchođnkhihàmbxoáhaythayđi.

3.Điukhinvàovàra:Cáclnhsaudùngđsliuđavàovàra
 disp(a) hinthnidungcamngahayvănbn
a=[123];
disp(a)
t=Xinchao;
disp(t)


 format điukhinkhuôndngs

Lnh Ktqu Víd
format Default.Sameasshort.
formatshort 5digitscaledfixedpoint 3.1416
formatlong 15digitscaledfixedpoint 3.14159265358979
formatshorte 5digitfloatingpoint 3.1416e+00
formatlonge 15digitfloatingpoint 3.141592653589793e+00
formatshortg Bestof5digitfixedorfloating 3.1416

11

×