Sunteți pe pagina 1din 7

BAZELE PROGRAMRII N MEDIUL MATLAB

1. Noiuni generale
Sistemul de programare MatLa (Matrix Laboratory) reprezint un mediu interactiv
de calcul a problemelor inginereti i tiinifice avnd ca un singur tip de date -
!atri"ea !rogramele elaborate "n mediul MatLab se salveaz "n fiiere cu extensia .!#
numite M#$i%iere MatLab este dotat cu un puternic aparat al matematicii de calcul i
de reprezentare grafic !entru diferite aplicaii te$nice MatLab conine pac$ete
specializate numite Toolo&-uri cu destintaie "n domeniul respectiv Sistemul permite
sc$imbul informaiei cu editorul de texte Microsoft %ord# "n particular# a textului
programului i rezultatelor textuale# a graficelor
Lansarea sistemului MatLab are loc cu clic dublu pe iconia i apare fereastra de
lucru
Linia care conine caracterul && se numete linia 'e "o!en(i. 'up acest caracter
poate fi culeas o comand sau expresie 'ac se culege o expresie matematic atunci
MatLab-ul poate fi utilizat "n regim de calculator 'e exemplu# cu expresia
))*+,-
are loc calcularea sumei (la apsarea tastei ()*(+) i cu variabila de sistem an. se
afieaz rezultatul an. / *0. ,u comanda ))1el2 .3rt se lanseaz sistemul de
a-utorare MatLab# concret asupra funciei standard .3rt
'ac se dorete executarea comenzii sau a expresiei fr afiare atunci comanda se
finiseaz cu caracterul .4/ 0dentificarea variabilelor se realizeaz "n mod tradiional ca
o succesiune de litere latine# cifre i caracterul 1 # obligatoriu "ncep2ndu-se cu o liter.
Atenie5 n MatLa literele !ari %i !i"i nu .unt i'enti"e
3tergerea ferestrei de comenzi 4 prin executarea comenzii "l".
6un"ii MATLAB 'e intere. general
5 1el2 4 furnizeaz informaii despre M6*L67 i funciile acestuia
Sintax8
$elp nume 4 furnizeaz informaii despre nume (poate fi un nume de
funcie sau un nume de director)
Exemplu8
$elp fft 4 furnizeaz informaii despre transformata 9ourier discret
5 71o 4 listeaz numele variabilelor din spaiul de lucru
5 71o. 4 furnizeaz informaii suplimentare referitoare la variabilele din
spaiul de lucru (nume# dimensiune etc)
5 $or!at 4 stabilete formatul extern de afiare al numerelor pe ecran
Sintaxa8
format opiune 4 parametrul opiune poate fi8
- s$ort 4 : cifre ;; formatul implicit
- long 4 <: cifre
- s$ort e 4 : cifre = exp (puteri ale lui <>)
- long e 4 <: cifre = exp (puteri ale lui <>)
Exemple8
format s$ort
x?pi @ x ?
A<B<C
format long
x @ x ?
A<B<:DEC:A:FDGD
H matrice poate fi introdus prin atribuire# de exemplu cu expresiile
)) a/81 * 94 + - :;
)) &/81 #* - #+;
se formeaz matricea a "u 'ou< linii %i trei "oloane %i =e"torul#linie & cu patru
elemente. Ele!entele !atri"ei .unt in"lu.e >n 2arante(e 2<trate. Ele!entele unei
linii .e .e2ar< "u .2aiu .au =irgul<? iar liniile @ "u "ara"terul .4/ !entru selectarea
unor elemente se utilizeaz indecii inclui "n paranteze rotunde i separai prin virgule#
de exemplu# ABC?9D determin elementul al treilea din linia cu indicele I# iar aBE?9D 4
coloana a treia "n "ntregime
Jn MatLa 2ot $i utili(ate atFt !<ri!i reale? "Ft %i !<ri!ile "o!2le&e "u
"ara"terele i .au G >n "alitate 'e unitate i!aginar<E
&& a?<=Ei a ? <>>>> = E>>>>i
&& b?<-Ai b ? <>>>> - A>>>>i
!entru determinarea lungimei vectorului se utilizeaz functia lengt1 E
&& I?lengt$(KMesa-ul meuK)
I ? <<
&& L?M < > -A C G <ANO
&& I?lengt$(L)
I ? C
&& I?lengt$(M< B G O E > -EN)
I ? A
iar dimensiunile matricei - functia .i(e E
&& L ?M < > -A O C G <AN
&& I?size(L)
I ? E A
&& Mm# nN?size(L)
m ? <
n ? C
&& size(ME B GN)
ans ? < A
*. Ti2uri 'e o2eraii MatLa
O2eraii arit!eti"e
Denu!ire Notaie E&e!2lu Not<
6dunare
+
6=7
Scdere
-
6-7
Multiplicare vectorial
*
6P7
Se realizeaz
conform regulilor
prelucrrii vectoriale
Jmprirea vectorial la stnga (7 la 6)
\
6Q7
Jmprirea vectorial la dreapta (6 la 7)
/
6;7
+idicare la putere vectorial
^
6RI
*ransponare vectorial
'
6K
Multiplicare scalar
.*
6P7
Se prelucreaz
element cu element
Jmprirea vectorial la stnga (7 la 6)
.\
6Q7
Jmprirea vectorial la dreapta (6 la 7)
./
6;7
+idicare la putere vectorial
.^
6RI
*ransponare vectorial
.'
6K
O2eraii relaionale O2eraii logi"e
Denu!ire Notaie E&e!2lu Denu!ire Notaie E&e!2lu
Mai mare
> 6 & 7
Logic )H* S
S6
Mai mic
< 6 T 7
Logic 6)' H
6 H 7
Mai mare i egal
>= 6&? 7
Logic H+ U
6U7
Mai mare i egal
<= 6 T? 7
0dentic egal
== 6 ?? 7
'eferit
~= 6S?7
9. 6unii !ate!ati"e MatLa
Denu!ire Notaie E&e!2lu Not<
Mo'ulul
abs(X)
abs(-<A)?<A
Ung1iul
angle(X)
&& angle(A=Bi) ans ? >DEGA ,omlexul X=a+bi se
reprezint "n forma re
ij
#
unde a = r cosj, b = r sinj
Partea real< %i
i!aginar<
real(X)
imag(X)
IonGugat< nu!<rului
"o!2le&
conj(X)
&&con-(E=Ai) ans ? E>>-A>>i
6u!"ii 'e rotungire
ceil(X)
&&ceil(EB) an. /9 Rotunge.te la "el !ai
a2ro2iat intreg .2re ,J
fix(X)
&&fix(EB) an. / * Trun"1iea(< 2artea
(e"i!al<
floor(X)
&&floor(EC) an. / * Rotunge.te la "el !ai
a2ro2iat intreg .2re #J
round(X)
&&round(EC) an. / 9
&&round(EB) an. / *
Rotunge.te la "el !ai
a2ro2iat intreg
Re.tul >!2<ririi
>ntregi
mod(X,Y)
&& mod(G#E) an. /1
Ke!nul argu!entului
sign(X)
R<'<"in< 2<trat<
sqrt(X)
&& sVrt(:) ans ? EEAC<
Exponenta e
x
exp(X)
&& exp(<) ans ? EG<FA e
x=iy
? e
x
(cos y=i siny)
E&2onenta inar< 2
x pow(X)
Logarit! natural? >n
a(a *? >n a(a 1L
log(X) log(X) log!"(X)
L&>
6un"ii trigono!etri"e
sin(X) cos(X) tan(X) cot(X)
csc(X) sec(X)
6rgumentul L se exprim
"n radiani WWWW
6un"ii trigono!etri"e
in=er.e
asin(X) acos(X) atan(X)
acot(X) acsc(X) asec(X)
6un"ii 1i2eroli"e
sin#(X) cos#(X) tan#(X)
cot#(X) csc#(X) sec#(X)
sh(X)=(e
X
-e
-X
)/2 ,
ch(X)=(e
X
+e
-X
)/2
6un"ii 1i2eroli"e
asin#(X) acos#(X) atan#(X)
in=er.e
acot#(X) acsc#(X) asec#(X)
H expresie matematic include operanzi# operaii aritmetice# funcii standard i
paranteze rotunde.
+. Regi!uri 'e 2rogra!are
*recerea "n regimul MatLab de programare selectm meniul 6ile din fereastra de
comenzi. La a"ea.t< "o!an'< e'itorul 2ro2une 'ou< o2iuniE Ne7 B"rearea unui
nou M#$i%ierD .au O2en (desc$iderea fiierului existent cu extensia .!D.
(xist dou feluri de X-fiiere8 -scenariu (sau script) !i -"unc#ie$
-scenariu 4 reprezint un fiier care conine o succesiune de instruciuni i comentarii
(linii care se incep cu caracterul Y) 9iierul -"unc#ie poate avea parametri de
intrare i ie!ire, inclusi% !i %ariabile interne locale$ -"unc#ie poate fi
apelat &in alte pro'rame, se incli&e (n biblioteca &e "unc#ii ale sistemului
(n "orm &e "i!iere textuale$
6ntetul -"unc#iei are forma8
$un"tion 8)parametrii*ie!ire+;= )nume*"unc#ie+ ()parametri*intrare+)
Atenie5 Nu!ele $i%ierului treuie .< $ie i'enti" "u nu!ele $un"iei
'e exemplu# funcia de calcul a ariei i perimetrului dreptung$iului cu laturile a i b se
programeaz "n fiierul &rept$m
&rept$m
function [s,p]=drept(a,b)
% Calcul arie i perimetru
% al dreptunghiului cu laturile a i b
s=ab!
p=2(a"b)!
!entru setarea valorilor variabilor a i b elaborm utmtorul fisier script
c&rept$m
% #etarea $alorilor laturile a i b
% apelul functiei drept
a=%!
b=&!

[s,p]=drept(a,b)! %'pelul functiei

re(=[s p]! % )ormarea $ectorului cu re(ultate de
calcul

disp(re()! % 'fisare re(ultat
Lansarea fiierului script se realizeaz prin culegerea denumirii fiierului (cu litere
mici i fr extensia .!) "n linia de comenzi8
&& cdrept
*+ 22
'in variabilele s i p a fost creat vectorul rezultant re, 6fisarea valorilor vectorului
re, se realizeaz cu comanda MatLab 'i.2
9iierul script poate fi apelat direct din linia de comenzi indicnd valorile mri#ilor de
intrare "n partea dreapt a funciei8

&& Ms#pN?drept(A#:)
s ?<:
p ?<C
-. Progra!area .tru"turilor algorit!i"e
0nstruciunea de organizare a salturilor condiionate are una din urmtoarele forme8
i$ T condiie & i$ T condiie& i$ T condiie&
Tcomenzi& T comenzi& T comenzi&
en' el.e el.ei$ T comenzi&
T comenzi& T comenzi&
en' el.e
T comenzi&
en'
0n lor de condiie se utilizeaz orice expresie logic construit "n baza operaiilor
relaionale i logice
Ii"lu "u nu!<rul 'e re2et<ri "uno."ut poate fi organizat cu instruciune $or "n
felul urmtor8
$or Z?Zal0nit8!as8Zal9in
Tcomenzi&
en'
unde Zal0nit# !as i Zal9in 4 reprezinta valoarea iniial# pasul i valoare finala a
parametrului ciclului 0mplicit !as are valoarea < i poate fi omis Se admit cicluri
incluse8
for i?<8n for i?<8n-<
for -?<8m for I?i=<8n
a(i#-)?x(i)R-O if a(i) T a(I)
end m?a(i)
end a(i)?a(I)
a(I)?m
end
end
end
0n antetul ciclului poate fi i un vector# de exemplu# construcia
I?<O
for i?M> : GN
x(I)?ERiO
I?I=<O
end
formeaz vectorul [?M< AE <EFN
Ii"lu "u te.t initial are construciaE
71ile Tcondiie&
Tcomenzi&
en'
i asigur exeutarea comenzilor din ciclu at2t timp c2t condiia este adevrat ,iclu
poate "ntrerupt cu instruciunea reaCE
\$ile aT<
n?n=<
if n&E:>
breaI
end

end
In.tru"iunea "o!utator are construcia8
.7it"1 Texpresie&
"a.e Tvaloarea <&
Tcomenzi&
"a.e T valoarea E&
Tcomenzi&

ot1er7i.e Y poate lipsi
Tcomenzi&
en'
0ntroducerea datelor de la tastatur .e reali(ea(< "u in.tru"iunea
)%ariabila+= in2ut (-mesaj)
:. Ele!ente 'e gra$i"< MatLa
!entru trasarea graficului unei functie2i se utilizeaz instruciunea
2lotB&?M?."gD
unde & este vectorul argumentului# iar M -vectorul functiei# ."g 4 este ir de caractere
care specific tipul i culoare curbei *rasarea mai multor grafice pe ecran se seteaz cu
instruciunea
.u2lotBng=?ngo?ng"D
unde ng= 4 este numrul de grafice pe vertical# ngo 4 este numrul de grafice pe
orizontal# ng= 4 este numrul graficului curent "n ordine cresc2nd

ygfraxm
% ,rocesare unui $ector

x=+-pi./++-2pi!
0=sin(x)!
(=cos(x)122!

subplot(/2/)!
plot(x,0,3g3)!
grid!
title(3)unctia 0=sin(x)3)!
xlabel(3x3)!
0label(303)!

subplot(/22)!
plot(x,(,3r3)!
grid!
title(3)unctia (=cos
2
x3)!
xlabel(3x3)!
0label(3(3)!

Jn acest program se genereaz vectorul x cu valori de la > p2n la E] cu pasul ];<>>
!entru valorile vectorului x se calculeaz funciile y i z !entru fiecare funcie graficul
se construiete intr-o fereastr aparte ,u instruciunea gri' pe grafic se traseaz linii
verticale i orizontale ,u title se defineste titlu# iar cu &lael i Mlael se marc$eaz
axele graficului