Thứ Năm, 20 tháng 2, 2014
Tài liệu CHƯƠNG 1: MATLAB CƠ BẢN §1. CÁC TOÁN TỬ CƠ BẢN CỦA MATLAB doc
5
log10(x) logaritcơsố10
abs(x)moduncủa sốphứcx
angle(x) argumentcủasốphứca
conj(x) sốphứcliênhợpcủax
imag(x) phầnảocủax
real(x) phầnthựccủax
sign(x)
dấucủax
cos(x)
sin(x)
tan(x)
acos(x)
asin(x)
atan(x)
cosh(x)
coth(x)
sinh(x)
tanh(x)
acosh(x)
acoth(x)
asinh(x)
atanh(x)
b.Cáchàmtoánhọctựtạo:MATLABchophéptatạohàmtoánhọcvà
lưunóvàomộtfileđểdùngnhưlàhàmcósẵn củaMATLAB.Vídụtacầntạo
hàm:
1
2
1
f(x)
18x
=
+
vàhàm:
22
112
12
2
2
212
112
f(x ,x )
x4x5
f(x)
f(x,x)
2x 2x 3x 2.5
⎡⎤
+−
⎡⎤
==
⎢⎥
⎢⎥
−−−
⎣⎦
⎣⎦
Muốnthếtatạorafile
f1.mnhưsau:
functiony=f1(x)
y=1./(1+8*x.^2);
vàfilef2.m:
6
functiony=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;
Khinhậplệnh
f1(2)tacógiátrịcủahàmf1tạix=2.Khinhậplệnhf2([24])ta
cógiátrịcủahàmf2tạix
1=2vàx2=4.Lệnhfeval(‘f1’,2)vàfeval(‘f2’,[24])
cũngchokếtquảtươngtự.
Cáchthứhaiđểbiểudiễnmộthàmtoánhọcmộtbiếntrêndònglệnhlà
tạoramộtđốitượnginlinetừmộtbi ểuthứcchuỗi.
Vídụtacóthểnhậptừ
dònglệnhhàmnhưsau:
f1=inline(’1./(1+8*x.^2)’,’x’);
f1([01]),feval(f1,[01])
Tacũngcóthểviết:
f1=ʹ1./(1+8*x.^2)ʹ;
x=[01];
eval(f1)
Nếuhàmlàđathứctachỉcầnnhậpmatrậncáchệsốtừsốmũcaonhất.
VídụvớiđathứcP
4(x)=x
4
+4x
3
+2x+1taviết:
P=[14021]
Đểnhânhaiđathứctadùnglệnh
conv;đểchia2đathứctadùnglệnh
deconv.Muốntínhtrịsốcủađathứctadùnglệnhpolyvalvàlệnhpolyvalm
dùngkhiđathứclàmatrận.
c.Cáclệnhxửlíhàm:Lệnhfplotvẽđồthịhàmtoánhọcgiữacácgiátrị
đãcho.Vídụ:
fplot(‘f1’,[‐55])
gridon
Chomộthàmtoánhọcmộtbiến,tacóthểdùnglệnh
fminbndcủaMATLAB
đểtìmcựctiểuđịaphươngcủahàmtrongkhoả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ươngcủahàmnhiềubiến.Tacóhàm3biếnlưutrongfile
three_var.mnhư
sau:
functionb=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;
Bâygiờtìmcựctiểuđốivớihàmnàybắtđầutừx=‐0.6,y=‐1.2vàz=0.135
bằngcáclệnh:
v=[‐0.6‐1.20.135];
a=fminsearch(ʹthree_varʹ,v)
Lệnh
fzero dùngđểtìmđiểm zero của hàmmột biến. Ví dụđểtìm giá trị
khôngcủahàmlâncậngiátrị‐0.2taviết:
f=inline(ʹ1./((x‐0.3).^2+0.01)+1./((x‐0.9).^2+0.04)‐6ʹ);
a=fzero(f,‐0.2)
Zerofoundintheinterval:[‐0.10949,‐0.264].
a=
‐0.1316
6.Cácphéptoántrênmatrậnvàvectơ:
a.Kháiniệmchung:Giảsửtatạoracácmatrậnavàbbằngcáclệnh:
a=[123;456];
b=[3‐21];
Tacóthểsửađổichúng:
8
A=[a;789]
B=[b;[10‐1]]ʹ
Toántử‘dùngđểchuyểnvịmộtmatrậnthựcvàchuyểnvịliênhợpmộtma
trậnphức.Nếuchỉmuốnchuyểnvịmatrậnphức,tadùngthêmtoántử“.”
nghĩa
làphảiviết“.’”.Vídụ:
C=[1+2*i2‐4*i;3+i2‐2*j];
X=Cʹ
Y=C.’
b.Chỉsố
:Phầntửởhàngicộtjcủamatrậnm×ncókíhiệulàA(i,j).
Tuynhiêntacũngcóthểthamchiếutớiphầntửcủamảngnhờmộtchỉsố,ví
dụA(k)
vớik=i+(j‐1)m.Cáchnàythườngdùngđểthamchiếuvectơhàng
haycột.Trongtrườnghợpmatrậnđầyđủthìnóđượcxemlàmatrậnmộtcột
dàitạotừcáccột
củamatrậnban đầu.NhưvậyviếtA(5)cónghĩa làtham
chiếuphầntửA(2,2).
Đểxácđịnhkíchthướccủamộtmatrậntadùnglệnh
length(trảvềkích
thướclớnnhất)hay
size(sốhàngvàcột).Vídụ:
c=[1234;5678];
length(c)
[m,n]=size(c)
c.Toántử“:”:Toántử“:”làmộttoántửquantrọngcủaMATLAB.Nó
xuấthiệnởnhiềudạngkhácnhau.Vídụ:
1:10
tạomộtvectơhàngchứa10sốnguyêntừ1đến10.Lệnh:
100:‐7:50
tạomộtdãysốtừ100đến51,giảm7mỗilần.Lệnh:
0:pi/4:pi
9
tạomộtdãysốtừ0đếnpi,cáchđềunhaupi/4
Cácbiểuthứcchỉsốthamchiếutớimộtphầncủamatrận.ViếtA(1:k,j)
là thamchiếuđến k phần tử đầu tiên
của cộtj.Ngoàiratoán tử “:” tham
chiếutớitấtcảcácphầntửcủamộthànghaymộtcột.Vídụ:
B=A(:,[132])
tạoramatrậnBtừmatrậnAbằngcáchđổithứtựcáccộttừ[123]thành
[132]
d.Tạomatrậnbằnghàmcósẵn:MATLABcungcấpmộtsốhàmđểtạo
cácmatrậncơbản:
zeros tạoramatrậnmàcácphầntửđềulàzeros
z=zeros(2,4)
ones tạoramatrậnmàcácphầntửđềulà1
x=ones(2,3)
y=5*ones(2,2)
rand tạoramatrậnmàcácphầntửngẫunhiênphânbốđều
d=rand(4,4)
randntạoramatrậnmàcácphầntửngẫunhiênphânbốtrựcgiao
e=randn(3,3)
magic(n)tạoramatrậncấpngồmcácsốnguyêntừ1đếnn
2
vớitổng
cáchàngbằngtổngcáccộtnphảilớnhơnhaybằng3.
pascal(n)tạoramatrậnxácđịnhdươngmàcá cphầntửlấytừtamgiác
Pascal.
pascal(4)
eye(n)tạomatrậnđơnvị
10
eye(3)
eye(m,n)tạomatrậnđơnvịmởrộng
eye(3,4)
e.Lắpghép
:Tacóthểlắpghép(concatenation)cácmatrậncósẵnthành
mộtmatrậnmới.Vídụ:
a=ones(3,3)
b=5*ones(3,3)
c=[a+2;b]
f.Xoáhàngvàcột:Tacóthểxoáhàngvàcộttừmatrậnbằngdùngdấu
[].Đểxoácộtthứ2củamatrậnbtaviết:
b(:,2)=[]
Viết
x(1:2:5)=[]nghĩalàtaxoácácphầntửbắtđầutừđếnphầntửthứ5và
cách2rồisắpxếplạimatrận.
g.Cáclệnhxửlímatrận:
Cộng:X=A+B
Trừ:X=A‐B
Nhân :X=A*B
:X.*Anhâncácphầntửtươngứngvớinhau
Chia:X=A/BlúcđóX*B=A
:X=A\BlúcđóA*X=B
:X=A./Bchiacácphầntửtươngứngvớinhau
Luỹthừa :X=A^2
:X=A.^2
Nghịchđảo :X=inv(A)
Địnhthứ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à
randntạoracácsốngẫunhiêntheophânbốGauss.
rand(m,n)tạoramatrậncácsốngẫunhiênphânbốđồngnhất.
randn(m,n)tạoramatrậncácsốngẫunhiêntheophânbốchuẩnGauss.
rand(3,3)
11
randn(3,3)
8.Cáclệnhdùnglậptrình:
a.Cácphátbiểuđiềukiệnif,else,elseif:
Cúphápcủaif:
if<biểuthứcđiềukiện>
<phátbiểu>
end
Nếu<biểuthứcđiềukiện>chokếtquảđúngthìphầnlệnhtrongthâncủaif
đượcthựchiện.
Cácphátbiểuelsevàleseifcũngtươngtự.
Vídụ
:Taxétchươngtrình)ct1_4.mđểđoántuổinhưsau:
clc
disp(
‘Xinchao!Hanhanhduoclamquen’);
x=fix(30*rand);
disp(
‘Tuoitoitrongkhoang0‐30’ );
gu=input(
‘Xinnhaptuoicuaban:‘);
ifgu<x
disp(
‘Bantrehontoi’);
elseifgu>x
disp(
‘Banlonhontoi’);
else
disp(
‘Banbangtuoitoi’);
end
b.switch:Cúphápcủaswitchnhưsau:
switch<biểuthức>
casen1:<lệnh1>
casen2:<lệnh2>
...............
casenn:<lệnhn>
otherwise:<lệnhn+1>
end
c.while:vònglặpwhiledùngkhikhôngbiếttrướcsốlầnlặp.Cúpháp
củanónhưsau:
12
while<biểuthức>
<phátbiểu>
end
Xétchươngtrìnhinrachuoi“Xinchao”lênmàhìnhvớisốlầnnhậptừ
bànphím
ct1_5.mnhưsau:
clc
disp(ʹxinchaoʹ);
gu=input(ʹNhapsolanin:ʹ);
i=0;
whilei~=gu
disp([ʹXinchaoʹi]);
i=i+1
end
d.for
:vònglặpfordùngkhibiếttrướcsốlầnlặp.Cúphápnhưsau:
for<chỉsố>=<giátrịđầu>:<mứctăng>:<giátrịcuối>
Taxâydựngchươngtrìnhđoánsố
ct1_6.m:
clc
x=fix(100*rand);
n=7;
t=1;
fork=1:7
num=int2str(n);
disp([ʹBancoquyendudoanʹ,num,ʹlanʹ]);
disp(ʹSocandoannamtrongkhoang0‐100ʹ);
gu=input(ʹNhapsomabandoan:ʹ);
ifgu
<x
disp(ʹBandoannhohonʹ);
elseifgu>x
disp(ʹSobandoanlonhonʹ);
else
disp(ʹBandadoandung.Xinchucmungʹ);
t=0;
break;
end
13
n=n‐1;
end
ift>0
disp(ʹBankhongdoanraroiʹ);
numx=int2str(x);
disp([ʹDolaso:ʹ,numx]);
end
e.break:phátbiểubreak đểkếtthúcvònglặpforhaywhilemàkhông
quantâmđếnđiềukiệnkếtthúcvònglặpđãthoảmãnhaychưa.
§2.ĐỒHOẠTRONGMATLAB
1.Cáclệnhvẽ:MATLABcungcấpmộtloạthàmđểvẽbiểu diễncácvectơsố
liệucũngnhưgiảithíchvàincácđườngcongnày.
plotđồhọa2‐Dvớisốliệu2trụcvôhướngvàtuyếntính
plot3 đồhọa3‐Dvớisốliệu2trụcvôhướngvàtuyếntính
polar đồhoạtronghệtoạđộcực
loglogđồhoạvớicáctrụclogarit
semilogxđồhoạvớitrụcxlogaritvàtrụcytuyếntính
semilogyđồhoạvớitrục ylogaritvàtrụcxtuyếntính
plotyyđồhoạvớitrụcycónhãnởbêntráivàbênphải
2.Tạohìnhvẽ:Hàmplotcócácdạngkhácnhauphụthuộcvàocácđốisố
đưavào.Vídụnếuylàmộtvectơth ì
plot(y)tạoramộtđườngthẳngquanhệ
giữacácgiátrịcủayvàchỉsốcủanó.Nếutacó2vectơxvàythì
plot(x,y)
tạorađồthịquanhệgiữaxvày.
t=
[0:pi/100:2*pi]
y=sin(t);
plot(t,y)
gridon
polar(t,y)
3.Đặctảkiểuđườngvẽ:Tacó thểdùngcáckiểuđườngvẽkhácnhaukhivẽ
hình.Muốnthếtachuyểnkiểuđườngvẽchohàm
plot.Taviếtchươngtrình
ct1_7.mtạorađồthịhàmhìnhsin:
14
t=[0:pi/100:2*pi];
y=sin(t);
plot(t,y,
’.‘)%vẽbằngđườngchấmchấm
gridon
4.Đặctảmàuvàkíchthướcđườngv ẽ:Đểđặctảmàuvàkíchthướcđường
vẽtadùngcácthamsốsau:
LineWidthđộrộngđườngthẳng,tínhbằngsốđiểm
MarkerEdgeColor màucủacáccạnhcủakhốiđánhdấu
MarkerFaceColormàucủakhốiđánhdấu
MarkerSizekíchthướccủakhốiđánhdấu
Màuđượcxácđịnhbằngcácthamsố:
Mã Màu Mã Màu
r red m magenta
g green y yellow
b blue k black
c cyan w white
Cácdạngđiểmđánhdấuxácđịnhbằng:
Mã Kiểuđánhdấu Mã Kiểuđánhdấu
+ dấucộng .điểm
o vòngtròn x chữthập
* dấusao s hìnhvuông
d hạtkimcương vđiểmtamgiáchướngxuống
^điểmtamgiáchướnglên < tamgiácsangtrái
> tamgiácsangphải h lụcgiác
p ngũgiác
Cácdạngđườngthẳngxácđịnhbằng:
Mã Kiểuđường Mã Kiểuđường
‐ đườngliền :đườngchấmchấm
‐‐ đườngđứtnét‐.đườngchấmgạch
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét