Tài liệu CHƯƠNG 1: MATLAB CƠ BẢN §1. CÁC TOÁN TỬ CƠ BẢN CỦA MATLAB  doc - Pdf 99


1
CHƯƠNG 1: MATLAB CƠ BẢN

§1.CÁCTOÁNTỬCƠBẢNCỦAMATLAB
1.Cáctoántửcơbản:Matlablàmộtphầnmềmcaocấpdùngđểgiảicácbài
toán.ĐểkhởiđộngMATLABtabấmđúpvàoiconcủanó.CácfileMATLAB
códạng*.mvàchỉchạytrongmôitrườngMATLAB.MATLABxửlísốliệu
nhưlàmatrận.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

)CácphéptoáncơbảncủaMATLABgồm:
+ cộng


realmax sốthựclớnnhất2
1023

infvôcùnglớn
NaN Notanumber

2.Nhậpxuấtdữliệutừdònglệnh: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.Cács ố
liệuđưavàomôitrườnglàmviệccủaMATLABđượclưulạisuốtphiênlàm 
việcchođếnkhigặplệnhclearall.MATLABchophéptanhậpsốliệutừdòng
lệnh.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[]
Đểnhậpcácmatrậnsau:

⎡⎤ ⎡⎤
⎢⎥ ⎢⎥
=− = − =
⎡⎤
⎣⎦
⎢⎥ ⎢⎥
⎢⎥ ⎢⎥
⎣⎦ ⎣⎦
124 1

Taviếtchươngtrình
ct1_1.mnhưsau:

clear
A=[123;456]
B=[3;‐2;1];
C(2)=2;C(4)=4
disp(’Nhanphimbatkydexemnhap/xuatdulieutufile’)
saveABCABC%luuA,B&CduoidangMAT‐filecoten’ABC.mat’
clear(’A’,’C’)%xoaA
vaCkhoibonho
loadABCAC%docMAT‐filedenhapAvaCvaobonho
saveb.datB/ascii%luuBduoidangfileASCIIcoten’b.dat’
clearB
loadb.dat%docASCII
b
x=input(’Nhapx:’)
formatshorte
x
formatrat,
x
formatlong,x
formatshort,x


4.Nhậpxuấtdữliệutừbànphím:Lệnhinputchophéptanhậpsốliệutừ
bànphím.Vídụ:


4


Trongtrườnghợptamuốnnhậpmộtchuỗitừbànphím,tacầnphảithêmkí
tựsvàođốisố.Vídụ:

ans=input(ʹBantraloi<co>hoac<khong>:ʹ,ʹsʹ)

5.Cáchàmtoánhọc:

a.Cáchàmtoánhọccơbản:
 exp(x) hàm
x
e 
 sqrt(x) cănbậchaicủax
 log(x)logarittựnhiên

5
 log10(x) logaritcơsố10
 abs(x)moduncủa sốphứcx
 angle(x) argumentcủasốphứca
 conj(x) sốphứcliênhợpcủax
 imag(x) phầnảocủax
 real(x) phầnthựccủax
 sign(x)
dấucủax
 cos(x)
 sin(x)
 tan(x)
 acos(x)
 asin(x)
 atan(x)

f(x)
f(x,x)
2x 2x 3x 2.5
⎡⎤
+−
⎡⎤
==
⎢⎥
⎢⎥
−−−
⎣⎦
⎣⎦


Muốnthếtatạorafile
f1.mnhưsau:

functiony=f1(x)
y=1./(1+8*x.^2);

vàfilef2.m:

6
functiony=f2(x)
y(1)=x(1)*x(1)+4*x(2)*x(2)‐5;
y(2) = 2*x(1)*x(1)-2*x(1)-3*x(2) -2.5;

Khinhậplệnh
f1(2)tacógiátrịcủahàmf1tạix=2.Khinhậplệnhf2([24])ta
cógiátrịcủahàmf2tạix

deconv.Muốntínhtrịsốcủađathứctadùnglệnhpolyvalvàlệnhpolyvalm
dùngkhiđathứclàmatrận.

c.Cáclệnhxửlíhàm:Lệnhfplotvẽđồthịhàmtoánhọcgiữacácgiátrị
đãcho.Vídụ:

fplot(‘f1’,[‐55])
 gridon


Chomộthàmtoánhọcmộtbiến,tacóthểdùnglệnh
fminbndcủaMATLAB
đểtìmcựctiểuđịaphươngcủahàmtrongkhoảngđãcho.Vídụ:


7
f=inline(ʹ1./((x‐0.3).^2+0.01)+1./((x‐0.9).^2+0.04)‐6ʹ);
 x=fminbnd(f,0.3,1)

Lệnh
fminsearch tương tự hàm fminbnd dùngđểtìm cực tiểuđịa
phươngcủahàmnhiềubiến.Tacóhàm3biếnlưutrongfile
three_var.mnhư
sau:

functionb=three_var(v)
 x=v(1);
y=v(2);
z=v(3);
b=x.^2+2.5*sin(y)‐z^2*x^2*y^2;



8
 A=[a;789]
B=[b;[10‐1]]ʹ

Toántử‘dùngđểchuyểnvịmộtmatrậnthựcvàchuyểnvịliênhợpmộtma
trậnphức.Nếuchỉmuốnchuyểnvịmatrậnphức,tadùngthêmtoántử“.”
nghĩa
làphảiviết“.’”.Vídụ:

C=[1+2*i2‐4*i;3+i2‐2*j];
X=Cʹ
Y=C.’

 b.Chỉsố
:Phầntửởhàngicộtjcủamatrậnm×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)
vớik=i+(j‐1)m.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(5)cónghĩa làtham
chiếuphầntửA(2,2).
Đểxácđịnhkíchthướccủamộtmatrậntadùnglệnh
length(trảvềkích
thướclớnnhất)hay
size(sốhàngvàcột).Vídụ:



B=A(:,[132])

tạoramatrậnBtừmatrậnAbằngcáchđổithứtựcáccộttừ[123]thành
[132]
 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)

 ones tạoramatrậnmàcácphầntửđềulà1

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

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)

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)

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

cách2rồisắpxếplạimatrận.
 g.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)
7. Tạo số ngẫu nhiên: MATLAB cócác lệnh tạo số ngẫu nhiên là rand và
randntạoracácsốngẫunhiêntheophânbốGauss.

rand(m,n)tạoramatrậncácsốngẫunhiênphânbốđồngnhất.

randn(m,n)tạoramatrậncácsốngẫunhiêntheophânbốchuẩnGauss.

rand(3,3)

11
randn(3,3)

 disp(
‘Banbangtuoitoi’);
end

b.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

c.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:

12
 while<biểuthức>
<phátbiểu>
 end
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_5.mnhưsau:

clc
disp(ʹxinchaoʹ);
gu=input(ʹNhapsolanin:ʹ);
i=0;
whilei~=gu
disp([ʹXinchaoʹi]);

n=n‐1;
end
ift>0
disp(ʹBankhongdoanraroiʹ);
numx=int2str(x);
disp([ʹDolaso:ʹ,numx]);
end

e.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.

§2.ĐỒHOẠTRONGMATLAB
1.Cáclệnhvẽ:MATLABcungcấpmộtloạthàmđểvẽbiểu diễncácvectơsố
liệucũngnhưgiảithíchvàincácđườngcongnày.

plotđồhọa2‐Dvớisốliệu2trụcvôhướngvàtuyếntính

plot3 đồhọa3‐Dvớisốliệu2trụcvôhướngvàtuyếntính

polar đồhoạtronghệtoạđộcực

loglogđồhoạvớicáctrụclogarit

semilogxđồhoạvớitrụcxlogaritvàtrụcytuyếntính

semilogyđồhoạvớitrục ylogaritvàtrụcxtuyếntính

plotyyđồhoạvớitrụcycónhãnởbêntráivàbênphải

2.Tạohìnhvẽ:Hàmplotcócácdạngkhácnhauphụthuộcvàocácđốisố


MarkerEdgeColor màucủacáccạnhcủakhốiđánhdấu

MarkerFaceColormàucủakhốiđánhdấu

MarkerSizekíchthướccủakhốiđánhdấu
Màuđượcxácđịnhbằngcácthamsố:

Mã Màu Mã Màu
r red m magenta
g green y yellow
b blue k black
c cyan w white

Cácdạngđiểmđánhdấuxácđịnhbằng:

Mã Kiểuđánhdấu Mã Kiểuđánhdấu
+ dấucộng .điểm
o vòngtròn x chữthập
* dấusao s hìnhvuông
d hạtkimcương vđiểmtamgiáchướngxuống
^điểmtamgiáchướnglên < tamgiácsangtrái
> tamgiácsangphải h lụcgiác
p ngũgiác

Cácdạngđườngthẳngxácđịnhbằng:

Mã Kiểuđường Mã Kiểuđường
‐ đườngliền :đườngchấmchấm
‐‐ đườngđứtnét‐.đườngchấmgạch

plotchỉvớiđặctảmàuvàđiểmđánhdấu.Taxétchương
trình
ct1_9.mnhưsau:


x=‐pi:pi/10:pi;
 y=tan(sin(x))‐sin(tan(x));
 plot(x,y,ʹsʹ,ʹMarkerEdgeColorʹ,ʹkʹ)

7.Vẽcácđiểmvàđường:Đểvẽ cảcácđiểmđánhdấu vàđườngn ối giữa
chúngtacầnmôtảkiểuđườngvàkiểuđiểm.Taxétchươngtrình
ct1_10.m:


x=0:pi/15:4*pi;
 
y=exp(2*sin(x));
 plot(x,y,ʹ‐rʹ,x,y,ʹokʹ)

dùngvẽđườngcongy=f(x)cóđườngnốiliền,màuđỏ.Điểmđánhdấulà

16
chữocómàuđen.

8.Vẽvớihaitrụcy
:Lệnhplotyychophéptạomộtđồthịcó haitrụcy.Ta
cũngcóthểdùng
plotyyđểchogiátr ịtrênhaitrụcycókiểukhácnhaunhằm
tiệnsosánh.Taxétchươngtrình
ct1_11.m:

dấudựa
trênsốliệudùngđểvẽ.Dùnglệnh
axiscóthểđặtlạigiớihạnnày.Cúpháp
củalệnh:
 axis[xmin,xmax,ymin,ymax]
Taxétchươngtrình
ct1_13.mnhưsau:


17
x=0:0.025:pi/2;
plot(x,tan(x),ʹ‐roʹ)
axis([0pi/205])

MATLABchiavạchtrêntrụcdựatrênphạmvidữliệuvàchiađều.Tacóthể
môtảcáchchianhờthôngsố
xtickvàytickbằngmộtvectơtăngdần.Vídụ
xétchươngtrình
ct1_14.m:

x=‐pi:.1:pi;
 y=sin(x);
 plot(x,y)
 set(gca,ʹxtickʹ,‐pi:pi/2:p);
 set(gca,ʹxticklabelʹ,{ʹ‐piʹ,ʹ‐pi/2ʹ,ʹ0ʹ,ʹpi/2ʹ,ʹpiʹ})

11.Ghinhãnlêncáctrụctoạđộ:MATLABcungcấpcáclệnhghinhãnlênđồ
hoạgồm:

title thêmnhãnvàođồhoạ

 xlabel(ʹt=0to2\piʹ,ʹFontsizeʹ,16)
 ylabel(ʹsin(t)ʹ,ʹFontsizeʹ,16)

18
 title(ʹ\it{Giatricuasintuzerođến2pi}ʹ,ʹFontsizeʹ,16)

text(3*pi/4,sin(3*pi/4),ʹ\leftarrowsin(t)=0.707ʹ,ʹFontSizeʹ,12)

12.Địnhvịvănbảntrênhìnhvẽ:Tacóthểsửdụngđốitượngvănbảnđểghi
chúcáctrụcởvịtríbấtkì.MATLABđịnhvịvănbảntheođơnvịdữliệutrên
trục.Vídụđểvẽhàmy=Ae
α
t
vớiA=0.25,t=0đến900vàα=0.005taviết
chươngtrình
ct1_16.m:

t=0:900;

plot(t,0.25*exp(‐0.005*t))
 plot(t,y)
text(300,.25*exp(‐.005*300), 
ʹ\bullet\leftarrow\fontname{times}0.25{\ite}^{‐0.005{\itt}}tai, 
{\itt}=300ʹ,ʹFontSizeʹ,14)%ghichutait=300

ThamsốHorizontalAlignmentvàVerticalAlignmentđịnhvịvănbảnsovới
cáctoạđộx,y,zđãcho.

13.Đồhoạđặcbiệt
: 


nhdo=[2923272520232327];
ngay=0:5:35;
bar(ngay,nhdo)
xlabel(ʹNgayʹ)
ylabel(ʹNhietdo(^{o}C)ʹ)
set(gca,ʹYLimʹ,[1530],ʹLayerʹ,ʹtopʹ)
gridon
set(gca,ʹYLimʹ,[1530])

Mặcđịnh,phạm vigiátrịcủatrụcy làtừ 0đến30.Đểxemnhiệtđộtrong
khoảngtừ15đến30tathayđổiphạmvigiátrịcủatrụcy:


set(gca,ʹYLimʹ,[1530],ʹLayerʹ,ʹtopʹ)

vàtrênđồthị,phạmvigiátrịcủatrụcyđãthayđổi.

c.Xếpchồngđồthị:Tacóthểxếpchồngsốliệutrênđồthịthanhbằng
cáchtạoramộttrụckháctrêncùngmộtvịtrívànhưvậytacómộttrụcyđộc
lậpvớibộsốliệu
khác.


TCE=[5154203702501351206020];
 nhdo=[2923272520232327];
 ngay=0:5:35;
 bar(ngay,nhdo)
 xlabel(ʹNgayʹ)
 ylabel(ʹNhietdo(^{o}C)ʹ)



Y=[512

837
968
555
423];
 area(Y)

hiểnthịđồthịcó3vùng,mỗivùngmộtcột.Độcaocủamỗiđồthịvùnglà
tổngcácphầntửtrongmộthàng.Mỗiđườngcongsausửdụngđườngcong
trướclàmcơsở.Đểhiển
thịđườngchialướitadùnglệnh:


set(gca,ʹLayerʹ,ʹtopʹ)
 set(gca,ʹXTickʹ,1:5)
 gridon

 f.Đồthịpie
:Đồthịpiehiểnthịtheotỉlệphầntrămcủa mộtphầntử
củamộtvectơhaymộtmatrậnsovớitổngcácphầntử.Cáclệnh
pievàpie3
tạorađồthị2Dvà3D.taxétchươngtrình
ct1_21.m:


X=[19.3 22.1 51.6;
34.2 70.3 82.4;

•tạovàlưunhiềuhìnhkhácnhauvàlầnlượthiểnthịchúng

•vẽvàxoá liêntụcmộtđốitượngtrênmànhình,mỗilầnv ẽlạicósự
thayđổi.
Vớicáchthứnhấttathựchiệnhìnhchuyểnđộngqua3bước:

•dùnghàmmovieinđểdànhbộnhớchomộtmatrậnđủlớnnhằmlưu
cáckhunghình.

•dùnghàmgetframesđểtạocáckhunghình.

•dùnghàmmovieđểhiểnthịcáckhunghình.
Sauđâylàvídụsửdụng
movieđểquansáthàmfft(eye(n)).Tatạochương
trình
ct1_22.mnhưsau:

axisequal
 M=moviein(16,gcf);
 set(gca,ʹNextPlotʹ,ʹreplacechildrenʹ)
 h=uicontrol(ʹstyleʹ,ʹsliderʹ,ʹpositionʹ,[1001050020],ʹMinʹ,1,ʹMaxʹ,16)
 forj=1:16
  plot(fft(eye(j+16)))

22
  set(h,ʹValueʹ,j)
 M(:,j)=getframe(gcf);
 end
 clf;
 axes(ʹPositionʹ,[0011]);

•background MATLABxoáđốitượngbằngcáchvẽnócómàu
nền

•xorMATLABchỉxoáđốitượng
TatạoraM‐filecótênlà
ct1_23.mnhưsau:


A=[‐8/300;0‐1010;028‐1];
 y=[35‐10‐7]ʹ;
 h=0.01;
 p=plot3(y(1),y(2),y(3),ʹ.ʹ, 
ʹEraseModeʹ,ʹnoneʹ,ʹMarkerSizeʹ,5);
 axis([050‐2525‐2525])

23
 holdon
 fori=1:4000
A(1,3)=y(2);
A(3,1)=‐y(2);
ydot=A*y;
y=y+h*ydot;
set(p,ʹXDataʹ,y(1),ʹYDataʹ,y(2),ʹZDataʹ,y(3))%thaydoitoado
drawnow
i=i+1;
 end

13.Đồhoạ3D
:
 a.Cáclệnhcơbản:Lệnhmeshvàsurftạoralướivàmặt3Dtừmatrận


clabel tạocácnhãnsửdụngmatrậncontourvàhiểnthịnhãn
contour hiểnthịcácđườngđẳngmứctạobởimộtgiátrịchotrước
củamatrậnZ.

24
contour3 hiểnthịcácmặtđẳngmứctạobởimộtgiátrịchotrướccủa
matrậnZ.

contourf hiểnthịđồthịcontour2Dvàtômàuvùnggiữa2cácđường

contourc hàmcấpthấpđểtínhmatrậncontour
Hàm
meshchiểnthịcontourvàlướivàsurfchiểnthịmặtcontour.


[X,Y,Z]=peaks;
contour(X,Y,Z,20)

Mỗicontourcómộtgiátrịgắnvớinó.Hàmclabeldùnggiátrịnàyđểhiểnthị
nhãnđườngđồngmức2D.Matrậncontourchứagiátrịclabeldùngchocác
đường contour 2D. Ma  trận nàyđược xácđịnh bởi
contour, contour3 và
contourf.
Đểhiểnthị10đườngđẳngmứccủahàm
peaktaviết:


Z=peaks;
 [C,h]=contour(Z,10);

ct1_27.m:


xrange=‐3:.125:3;
 yrange=xrange;
 [X,Y]=meshgrid(xrange,yrange);
 Z=peaks(X,Y);
 contour3(X,Y,Z)

ĐểhiểnthịmộtmứcởZ=1,tachovlà[11]


v=[11]
 contour3(X,Y,Z,v)

Hàm
ginputchophéptadùngchuộthaycácphímmũitênđểchọncác
điểmvẽ.Nótrảv ềtoạđộcủavịtrícontrỏ.Vídụsausẽminhhoạcácdùng
hàm
ginputvàhàmsplineđểtạorađườngcongnộisuyhaibiến.
TatạomộtM‐filecótên
ct1_28.mnhưsau:


disp(ʹChuotphaitrocacdiemtrenduongveʹ)
 disp(ʹChuottraitrodiemcuoicuaduongveʹ)
 axis([010010])
 holdon
 x=[];
 y=[];


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status