Sunteți pe pagina 1din 47

Programarea in MATLAB

1. PREZENTARE GENERAL
MATLAB

= Limbaj de nalt performan pentru proiectarea asistat de calculator


MATLAB este n acelai timp un limbaj de programare i un sistem de dezvoltare care
integreaz calculul, izualizarea i programarea ntr!un mediu uor de utilizat "eas#!to!use$,
problemele i soluiile acestor probleme fiind e%primate ntr!un limbaj matematic accesibil&
Domenii de utilizare'
Matematic i calcul numeric
(ezoltarea algoritmilor
Modelare, simulare i testarea prototipurilor
Analiza i izualizarea datelor
)rafica inginereasc i din tiinele aplicate
(ezoltarea de aplicaii, inclusi )*+
MATLAB = sistem interacti care are ca element de baz tabloul, ceea ce permite
rezolarea problemelor de calcul numeric, n special cele care necesit prelucrarea de
ectori sau matrici&
,umele MATLAB proine de la Matrix Laboratory
-irma productoare este The MathWorks, In., !"A
MATLAB!ul a eoluat'
- n mediul uniersitar unde este pac.etul standard pentru cursurile introductie i aansate de
matematic, inginerie i tiine
- n industrie, unde este utilizat pentru cercetarea de nalt randament, dezoltare i producie
MATLAB permite dezoltarea unei familii de aplicaii sub forma toolbox!urilor& Aceste
toolbox-uri permit narea i aplicarea te.nologiilor specializate din dierse domenii& /unt
disponibile toolbo%!uri pentru domenii cum ar fi' procesarea numeric a semnalelor, sisteme
de conducere automat, reele neurale, logic fuzz#, 0aelet, simulare "!IM"LIN#$,
identificare etc&
Sistemul MATLAB const n cinci pri principale'
Lim$a%&' MATLAB
Me(i&' (e '&r& MATLAB
)an('e Gra*his

Bi$'iotea (e +&n,ii matematie a MATLAB-&'&i


Inter+a,a (e a*'ia,ii *rogram a MATLAB-&'&i .API/
Limbajul MATLAB: 1eprezint un limbaj de niel nalt de tip matrice2tablou cu instruciuni
de control al salturilor, funcii, structuri de date, intrri2ieiri i cu proprieti de programare
orientat pe obiecte& -acilitile de programare sunt organizate pe 3 directoare'
4
ops 5perators and special c.aracters&
Lang 6rogramming language constructs&
/trfun 7.aracter strings&
+ofun -ile input2output&
Timefun Time and dates&
(atat#pes (ata t#pes and structures&
Mediul de lucru MATLAB: 1eprezint un set de faciliti care permit manerarea
ariabilelor n spaiul de lucru, importul i e%portul de date, dezoltarea, manipularea, editarea i
depanarea fiierelor MATLAB "&m$ i a aplicaiilor MATLAB& Aceste faciliti sunt organizate n
directorul'
general )eneral purpose commands&
Handle Grapics
!
: 1eprezint sistemul grafic al MATLAB!ului& 7uprinde comenzi de nalt
niel pentru izualizarea datelor bi i tri!dimensionale, procesarea imaginilor, animaie, prezentri
de grafice& 6ermite de asemenea utilizarea unor comenzi de niel sczut pentru crearea unor
interfee grafice )*+& -unciile grafice sunt organizate n 8 directoare'
grap.9d T0o!dimensional grap.s&
)rap.:d T.ree!dimensional grap.s&
/pecgrap. /pecialized grap.s&
)rap.ics ;andle )rap.ics&
*itools )rap.ical user interface tools&
Biblioteca de "unc#ii matematice a MATLAB$ului: 1eprezint o colecie comple% de
algoritmi de calcul pornind de la funcii elementare "sinus, cosinus etc&$ p<n la funcii sofisticate
"inersarea de matrice, alori proprii, funcii Bessel, --T etc&$& -unciile matematice sunt organizate
n = directoare'
elmat >lementar# matrices and matri% manipulation&
>lfun >lementar# mat. functions&
/pecfun /pecialized mat. functions&
Matfun Matri% functions ? numerical linear algebra&
(atafun (ata anal#sis and -ourier transforms&
6ol#fun +nterpolation and pol#nomials&
-unfun -unction functions and 5(> solers&
/parfun /parse matrices&
%nter"a#a de aplica#ii program a MATLAB$ului &A'%( este o bibliotec care permite
scrierea de programe n 7 sau -ortran care interacioneaz cu MATLAB!ul& +nclude faciliti
9
pentru apelarea rutinelor din MATLAB, apelarea MATLAB!ului ca main de calcul, scrierea i
citirea fiierelor de tip &MAT &
Pahet&' !IM"LIN#
/+M*L+,@
A
este un pac.et soft0are ataat MATLAB!ului i reprezint un sistem
interacti pentru simularea dinamicii sistemelor neliniare "bineneles i a celor liniare$& >ste
conceput sub forma unei interfee grafice care permite crearea unui model prin BtrasareaC
sc.emei bloc a sistemului i apoi simularea dinamicii sistemului&
/+M*L+,@ poate lucra cu sisteme liniare, neliniare, continue, discrete,
multiariabile etc&
/+M*L+,@ bebeficiaz de aa!numitele Blockset!uri care sunt de fapt biblioteci
suplimentare care conin aplicaii specializate din domenii cum ar fi' comunicaii, procesarea
semnalelor etc&
Real-time Workshop

este un program foarte important care permite generarea unui


cod 7 pentru sc.emele bloc create n /+M*L+,@ i prin urmare permite rularea de aplicaii
n timp real de o mare diersitate&
Too'$o0-&ri'e MATLAB
Toolbo%!urile reprezint o familie de aplicaii care permit narea i aplicarea te.nologiilor
specializate din dierse domenii& Aceste toolbo%!uri sunt colecii de funcii MATLAB "functions$
"M!files$ care e%tind mediul MATLAB pentru rezolarea unor clase particulare de probleme&
7<tea din cele mai utilizate aplicaii sunt prezentate n figura urmtoare&
1. 2"N3AMENTELE PR4GRAMRII 5N MATLAB
1.1. E0*resii +&n(amenta'e
MATLAB!ul lucreaz cu e%presii matematice ca i celelalte limbaje de programare, dar spre
deosebire de majoritatea acestor limbaje, aceste e%presii implic la scar larg lucrul cu matrici&
>%presiile sunt alctuite cu ajutorul urmtoarelor tipuri'
Dariabile
,umere
5peratori
-uncii
)ariabile
MATLAB!ul nu necesit declararea dimensiunii ariabilelor, deoarece la nt<lnirea unui nou
nume de ariabil genereaz automat ariabila respecti i aloc spaiul necesar de
memorie&
,umele unei ariabile este o liter, urmat de un numr oric<t de mare de litere, cifre sau
simboluri& (in acest numr Boric<t de mareC sunt oprite primele :4 de caractere&
MATLAB!ul este case sensitive ! face distincie ntre literele mici i cele mari&
:
>%emplu'
E a = :F
creeaz o matrice 4 % 4 cu numele a i stoc.eaz aloarea acesteia :F ntr!o singur locaie
corespunztoare singurului element al matricei&
*umere
MATLAB!ul utilizeaz notaia zecimal, cu punct zecimal opional i cu semn G sau !& /e
utilizeaz i notaia tiinific cu litera e pentru a specifica o putere a lui 4F& 1eprezentarea
numerelor imaginare este realizat cu litera i sau j ca sufi%&
>%emple'
: !HH F&FFF4
H&3:HI9:= 4&3F94Fe!9F 3&F9989e9:
4i !:&4J48Hj :e8i
Toate numerele sunt stocate intern utiliz<nd formatul long specificat de standardul +>>> n
irgul mobil "precizie de 43 zecimale semnificatie n domeniul 4F
!:F=
la 4F
G:F=
$&
+peratori
>%presiile utilizeaz operatori aritmetici uzuali'

G Adunare
! /cdere
K Multiplicare
2 Lmprire
M Lmprire la st<nga
N 1idicarea la o putere
O Transpusa comple% conjugat
" $ 5peratorul de specificare a ordinii de ealuare
,unc#ii
MATLAB!ul furnizeaz un mare numr de funcii matematice elementare standard "abs, sPrt,
e%p, sin Q$&
>%ist i funcii matematice aansate "funcii Bessel, gama etc&$, multe dintre acestea accept<nd
argumente comple%e&
6entru izualizarea funciilor elementare se poate tasta'
E .elp elfun
6entru a edea lista funciilor aansate se poate tasta'
J
E .elp specfun
E .elp elmat
5 parte din funcii "cum ar fi sPrt, sin$sunt de tip built-in, adic sunt o parte a nucleului
MATLAB, au o mare eficien, dar detaliile constructie nu sunt accesibile utilizatorului&
Alte funcii sunt implementate ca fiiere MATLAB "M!files$ i pot fi c.iar modificate&
7<tea funcii furnizeaz alorile unor constante uniersale'
pi :&4J48H938
+ +maginar# unit, -1
R /ame as +
>ps
-loating-point relative precision, 2
-52
1ealmin /mallest floating!point number, 9
-1022
1ealma% Largest floating!point number, 2
1023
+nf +nfinit#
,a, ,ot!a!number
,umele funciilor nu sunt rezerate i deci este posibil suprascrierea lor&
>%emplu'
eps = 4&e!3
-uncia original este reconstituit prin comanda'
E clear eps
E0*resii
>%emple de e%presii i rezultatele corespunztoare ale ealurii acestor e%presii'
E r.o = "4GsPrt"8$$29
r.o =
4&34=F
E a = abs":GJi$
a =
8
E z = sPrt"besselS"J2:,r.o!i$$
z =
F&:I:FG F&:94Ji
E .uge = e%p"log"realma%$$
.uge =
4&IHIIeG:F=
8
E toobig = piK.uge
toobig =
+nf
1.1. )e'* on-'ine, +ormat&' (ate'or, o*,i&ni (e sa'6are
)e'* on-'ine
6entru rularea MATLAB pe un 67 trebuie pur i simplu e%ecutat un dublu clicS cu mouse!ul
pe icon!ul MATLAB& (ac sistemul de operare nu este de tip Tindo0s "este de tip *,+U$ trebuie
tastat matlab dup prompter!ul sistemului de operare&
o Limbajul MATLAB este mult mai simplu de nat dac se renun la inspectarea arid a
listelor cu ariabile, funcii i operatori i se utilizeaz n sc.imb comenzile .elp, .elpdesS,
demo tastate direct de la prompterul MATLAB&
o 6entru aflarea tuturor informaiilor utile despre o comand sau o funcie se tasteaz .elp
urmat de numele comenzii sau funciei respectie&
o 6ac.etul MATLAB dispune de asemenea de informaii complete despre utilizare sub forma
unei documentaii tip &pdf&
o Ln cazuri particulare se poate apela la +,T>1,>T, e%ist<nd o legtur la pagina Teb a
firmei productoare&
o Alte comenzi utile pentru aflarea de informaii sunt' .elp0in, looSfor, .elp .elp&
>%emple sugestie de utilizare a comenzii .elp'
E .elp sin
/+, /ine&
/+,"U$ is t.e sine of t.e elements of U&
5erloaded met.ods
.elp s#m2sin&m
E .elp e%p
>U6 >%ponential&
>U6"U$ is t.e e%ponential of t.e elements of U, e
to t.e U&
-or comple% V=UGiKW, >U6"V$ =
>U6"U$K"75/"W$GiK/+,"W$$&

/ee also L5), L5)4F, >U6M, >U6+,T&
5erloaded met.ods
.elp s#m2e%p&m
.elp demtseries2e%p&m
E .elp plot
6L5T Linear plot&
3
6L5T"U,W$ plots ector W ersus ector U& +f U or W is a matri%, t.en t.e ector is plotted
ersus t.e ro0s or columns of t.e matri%, 0.ic.eer line up& +f U is a scalar and W is a ector,
lengt."W$ disconnected points are plotted&
6L5T"W$ plots t.e columns of W ersus t.eir inde%& +f W is comple%, 6L5T"W$ is ePuialent
to 6L5T"real"W$,imag"W$$& +n all ot.er uses of 6L5T, t.e imaginar# part is ignored&
Darious line t#pes, plot s#mbols and colors ma# be obtained 0it. 6L5T"U,W,/$ 0.ere / is
a c.aracter string made from one element from an# or all t.e follo0ing : colunms'

# #ello0 & point ! solid
m magenta o circle ' dotted
c c#an % %!marS !& das.dot
r red G plus !! das.ed
g green K star
b blue s sPuare
0 0.ite d diamond
S blacS triangle "do0n$
N triangle "up$
X triangle "left$
Y triangle "rig.t$
p pentagram
. .e%agram

-or e%ample, 6L5T"U,W,OcG'O$ plots a c#an dotted line 0it. a plus at eac. data pointZ
6L5T"U,W,ObdO$ plots blue diamond at eac. data point but does not dra0 an# line&
6L5T"U4,W4,/4,U9,W9,/9,U:,W:,/:,&&&$ combines t.e plots defined b# t.e "U,W,/$ triples,
0.ere t.e UOs and WOs are ectors or matrices and t.e /Os are strings&
-or e%ample, 6L5T"U,W,O#!O,U,W,OgoO$ plots t.e data t0ice, 0it. a solid #ello0 line
interpolating green circles at t.e data points&
T.e 6L5T command, if no color is specified, maSes automatic use of t.e colors specified b#
t.e a%es 7olor5rder propert#& T.e default 7olor5rder is listed in t.e table aboe for color s#stems
0.ere t.e default is #ello0 for one line, and for multiple lines, to c#cle t.roug. t.e first si% colors
in t.e table& -or monoc.rome s#stems, 6L5T c#cles oer t.e a%es Line/t#le5rder propert#&
6L5T returns a column ector of .andles to L+,> objects, one .andle per line&
T.e U,W pairs, or U,W,/ triples, can be follo0ed b# parameter2alue pairs to specif#
additional properties of t.e lines&
/ee also />M+L5)U, />M+L5)W, L5)L5), )1+(, 7L-, 7L7, T+TL>, ULAB>L,
WLAB>L, AU+/, AU>/, ;5L(, 75L51(>-, L>)>,(, and /*B6L5T&
2ormat&' (ate'or
MATLAB!ul afieaz numerele cu 8 zecimale "setare implicit$& Aceast setare se poate
modifica cu ajutorul comenzii format'
-51MAT /et output format&
All computations in MATLAB are done in double precision&
-51MAT ma# be used to s0itc. bet0een different output
displa# formats as follo0s'
-51MAT (efault& /ame as /;51T&
-51MAT /;51T /caled fi%ed point format 0it. 8 digits&
-51MAT L5,) /caled fi%ed point format 0it. 48 digits&
-51MAT /;51T > -loating point format 0it. 8 digits&
I
-51MAT L5,) > -loating point format 0it. 48 digits&
-51MAT /;51T ) Best of fi%ed or floating point format 0it.
8 digits&
-51MAT L5,) ) Best of fi%ed or floating point format 0it.
48 digits&
-51MAT ;>U ;e%adecimal format&
-51MAT G T.e s#mbols G, ! and blanS are printed
for positie, negatie and zero elements&
+maginar# parts are ignored&
-51MAT BA,@ -i%ed format for dollars and cents&
-51MAT 1AT Appro%imation b# ratio of small integers&
/pacing'
-51MAT 75M6A7T /uppress e%tra line!feeds&
-51MAT L55/> 6uts t.e e%tra line!feeds bacS in&
>%emple'
E c=4&:::J83I=H9::
c =
4&:::8
E format long
E c
c =
4&:::J83I=H9::FF
E format s.ort e
E c
c =
4&:::8eGFFF
E format long e
E c
c =
4&:::J83I=H9::FFFeGFFF
E format
E c
c =
4&:::8
4*,i&ni (e sa'6are
6entru salarea ariabilelor curente cu care se lucreaz n MATLAB la nc.eierea unei
sesiuni de lucru se poate utiliza comanda sae&
Aceast comand a sala toate ariabilele curente generate de ctre utilizator ntr!un
fiier numit matlab.mat . (ac se dorete se poate da un nume fiierului de date n care se
saleaz ariabilele&
>%emplu'
E sae date c determ A
realizeaz salarea datelor c, determ i A ntr!un fiier date.mat &
=
6entru restituirea ariabilelor ntr!o sesiune de lucru ulterioar se folosete comanda
load& >%emplu'
E load date
(ac se dorete aflarea ariabilelor curente se pot utiliza comenzile 0.o,0.os'
E 0.o
Wour ariables are'
A c determ
E 0.os
,ame /ize B#tes 7lass
A 9%9 :9 double arra#
c 4%4 = double arra#
determ 4%4 = double arra#
)rand total is 3 elements using J= b#tes
6entru tergerea tuturor ariabilelor curente din memoria de lucru se poate utiliza
comanda clear&
1.7. 8rearea +i9iere'or MATLAB ..m +i'es/
(eoarece este mult mai comod i util dec<t introducerea comenzilor linie dup linie la
prompterul MATLAB, se lucreaz cu fiiere te%t care conin aceste linii program cu comenzile
necesare&
Aceste fiiere conin cod n limbajul MATLAB i sunt denumite &m files "sau M!files$&
-iierele se creeaz utiliz<nd un editor de te%t i apoi se utilizeaz ca o comand MATLAB
obinuit&
/unt dou tipuri de fiiere &m'
-iiere /cript, care nu accept argumente de intrare i nu returneaz argumente de ieire&
Aceste fiiere opereaz cu datele din spaiul de lucru&
1utine "funcii$, care accept argumente de intrare i returneaz argumente de ieire&
Dariabilele utilizate sunt ariabile locale "interne$ ale funciei&
6entru a edea coninutul unui fiier MATLAB, de e%emplu evolutie_studii.m, se folosete
comanda'
E t#pe eolutie[studii
,i-iere Script
Atunci c<nd se apeleaz la un fiier script, MATLAB!ul e%ecut comenzile gsite n fiierul
respecti& -iierele script pot lucra cu date din spaiul de lucru "0orSspace$ sau pot crea date noi cu
care opereaz& /cript!urile nu furnizeaz argumente de ieire, iar ariabilele create rm<n n
0orSspace, pentru a fi eentual folosite n calculele ulterioare&
-iierele script pot furniza ieiri grafice folosind funcii cum ar fi plot,bar&
H
>%emplu de fiier script' magicrank.m, cu urmtoarele comenzi MATLAB'
\ +nestigate t.e ranS of magic sPuares
r = zeros"4,:9$Z
for n = :':9
r"n$ = ranS"magic"n$$Z
end
r
bar"r$
La tastarea numelui fiierului script "fr e%tensia &m$'
E magicranS
MATLAB!ul e%ecut comenzile, calculeaz rangul unor matrici "matricile magice$, i traseaz
graficul cu rezultatele calculului& (up ce se termin e%ecuia fiierului, ariabilele n i r rm<n n
spaiul de lucru&
)raficul rezultat este prezentat n continuare'
,unc#ii &rutine(
Aceste fiiere accept argumente de intrare i furnizeaz argumente de ieire& ,umele fiierului
MATLAB "M!file$ i cel al funciei "subrutinei$ respectie trebuie s fie identice& -unciile
"subrutinele$ lucreaz cu ariabile proprii separate de spaiul de lucru uzual al MATLAB!ului&
>%emplu' funcia ranS& -iierul M!file ranS&m este disponibil n directorul
toolbo%2matlab2matfun
/e poate izualiza fiierul cu comanda'
E t#pe ranS
function r = ranS"A,tol$
\ 1A,@ Matri% ranS&
4F
\ 1A,@"A$ proides an estimate of t.e number of
\ linearl# independent ro0s or columns of a matri% A
\ 1A,@"A,tol$ is t.e number of singular alues of A
\ t.at are larger t.an tol&
\ 1A,@"A$ uses t.e default
\ tol = ma%"size"A$$ K norm"A$ K eps&
s = sd"A$Z
if nargin==4
tol = ma%"size"A$$ K ma%"s$ K epsZ
end
r = sum"s Y tol$Z
6rima linie a unei funcii M!file ncepe cu cu<ntul c.eie function& Aceast linie d numele
funciei, ordinea i numrul argumentelor&
Liniile urmtoare "care ncep cu caracterul \$ sunt linii de comentariu, care de fapt sunt i
liniile afiate atunci c<nd se apeleaz la comanda
E .elp ranS
1estul liniilor sunt e%ecutabile& Dariabila s, ca i r, A, tol sunt ariabile locale ale funciei i sunt
separate de ariabilele din 0orSspace&
-uncia ranS poate fi utilizat n diferite moduri'
E ranS"A$
E r = ranS"A$
E r = ranS"A,4&e!3$
)ariabile globale
(ac se dorete ca mai multe astfel de subrutine s utilizeze o anume ariabil comun, se
declar ariabila respecti ca global utiliz<nd comanda global n toate funciile respectie&
>%emplu' fiierul falling&m'
function . = falling"t$
global )1AD+TW
. = 429K)1AD+TWKt&N9Z
/e introduc apoi n mod interacti liniile'
E global )1AD+TW
E )1AD+TW = :9Z
E # = falling""F'&4'8$O$Z
,unc#ia eval
-uncia eal lucreaz cu ariabil te%t pentru implementarea unei faciliti puternice de tip
macro te%t&
>%presia
eal"s$
folosete interpreter!ul MATLAB pentru ealuarea e%presiei sau e%ecuia declaraiei din irul de
caractere s&
)ectorizarea
44
6entru a obine o itez de calcul mare, este foarte important aa!numita ectorizare a
algoritmilor n fiierele MATLAB& Acolo unde alte limbaje folosesc bucle de tip for sau (5,
MATLAB!ul poate utiliza operaii matriceale sau ectoriale&
*n e%emplu simplu este urmtorul'
% = FZ
for S = 4'4FF4
#"S$ = log4F"%$Z
% = % G &F4Z
end
Dersiunea ectorizat a aceluiai program este
% = F'&F4'4FZ
# = log4F"%$Z
,unc#ii de "unc#ii
Ln MATLAB e%ist o clas de funcii care lucreaz cu funcii neliniare ca argument& -unciile de
funcii includ'
)sirea zerourilor
5ptimizare
+ntegrare numeric
>cuaii difereniale ordinare
MATLAB!ul reprezint funcia neliniar ca o funcie M!file care poate fi ulterior utilizat ca
argument de alte funcii MATLAB&
>%emplu'
*rmtorul fiier creeaz o funcie neliniar'
function # = .umps"%$
# = 4&2""%!&:$&N9 G &F4$ G 4&2""%!&H$&N9 G &FJ$ ! 3Z
Aceast funcie poate fi ealuat pentru un set de puncte n interalul F % 4 cu programul'
% = F'&FF9'4Z
# = .umps"%$Z
i apoi se poate reprezenta grafic funcia cu comanda
plot"%,#$
)raficul arat c funcia are un minim local la apro%imati x = F&3& (ac de e%emplu utilizm
funcia fmins putem gsi imediat aloarea e%act a lui x & 6rimul argument al funciei fmins este
49
c.iar numele funciei pentru care calculm minimul "al doilea parametru este o apro%imare grosier
a localizrii minimului$&
E p = fmins"O.umpsO,&8$
p =
F&3:IF
/e poate acum ealua aloarea funciei n punctul de minim local'
E .umps"p$
ans =
44&989=
1.:. Matrii, 6etori 9i *o'inoame
6entru a lucra uor i bine cu limbajul MATLAB trebuie n primul r<nd s se nee
manipularea matricilor& Ln MATLAB, o matrice este un tablou dreptung.iular de numere& /calarii
de e%emplu sunt matrici 4 % 4, iar matricile cu o singur linie sau coloan sunt de fapt ectori&
%ntroducerea matricilor
Matricile se pot introduce n mai multe moduri&
+ntroducerea unei liste e%plicite cu elementele matricei&
Lncrcarea unor date din fiere e%terne de date&
)enerarea de matrici utiliz<nd funcii built!in&
7rearea de matrici n fiierele M!files&
Dom introduce matricea lui (]rer mai nt<i ca o list de elemente&
Trebuie respectate c<tea conenii simple'
>lementele unei linii sunt separate prin irgule sau spaii&
/f<ritul unei linii se marc.eaz cu punct i irgul&
Lista de elemente care formeaz matricea se delimiteaz cu paranteze drepte'
^ _
6entru introducerea matricii lui (]rer tastm'

E A = ^43 : 9 4:Z 8 4F 44 =Z H 3 I 49Z J 48 4J 4_
MATLAB!ul a afia matricea'
A =
43 : 9 4:
8 4F 44 =
H 6 7 12
4 15 14 1
4:
5 dat introdus, matricea este memorat n 0orSspace i poate fi apelat simplu, ca A&
/ edem acum' de ce este magic`
sum. transpose. diag
7aracterul magic deri din faptul c prin efectuarea unor operaii asupra elementelor matrici
rezult numere interesante i surprinztoare&
(ac de e%emplu nsumm elementele pe orice linie sau coloan sau de pe cele dou diagonale,
om obine acelai numr&
/ erificm acest lucru cu MATLAB!ul& /uma elementelor de pe cele J coloane se calculeaz
rapid cu'
E sum"A$
ans =
:J :J :J :J
6entru calcularea sumelor pe linii, efectum nt<i transpunerea matricii i apoi aplic din nou
comanda sum&
Transpusa se calculeaz cu'
E AO
ans =
43 8 H J
: 4F 3 48
9 44 I 4J
4: = 49 4
i apoi
E sum"AO$O
ans =
:J
:J
:J
:J
/uma elementelor de pe diagonal se calculeaz cu tot cu funcia sum, dar dup ce n prealabil
om sorta cu funcia diag elementele de pe diagonala principal'
E diag"A$
ans =
43
4F
I
4
E sum"diag"A$$
ans =
:J
*n anume element al matricii, de e%emplu elementul din linia i coloana j se noteaz A"i,j$&
6rin urmare o alt cale "mai puin rapid$ de a calcula suma de pe patra coloan de e%emplu
este urmtoarea'
E A(1,4) + A(2,4) + A(3,4) + A(4,4)
ans =
:J
4J
(ac specificm un element care nu e%ist n matrice, primim un mesaj de eroare'
E t = A"J,8$
+nde% e%ceeds matri% dimensions&
+peratorul ;
5peratorul ' este foarte important& (e e%emplu, e%presia
E 4'4F
este un ector linie
ans =
4 9 : J 8 3 I = H 4F
Alte e%emple'
E 4FF'!I'8F
ans =
4FF H: =3 IH I9 38 8= 84
E F'pi2J'pi
ans =
F F&I=8J 4&8IF= 9&:839 :&4J43
>%presia
A"4'S,j$
/e refer la primele S elemente ale coloanei j a lui A&
(ac este utilizat n paranteze operatorul ; atunci nseamn c ne referim la toate elementele
unei linii sau coloane
E sum"A"',:$$
calculeaz suma elementelor din coloana a treia a lui A'
ans =
:J
5 alt proprietate interesant a ptratului magic este c suma magic :J este obinut i prin
nsumarea elementelor matricii i prin mprirea la dimensiunea matricii "J$'
E sum"4'43$2J
ans =
:J
bserva!ie' suma magic pentru orice ptrat magic n % n este "n
:
G n$29 "se poate calcula cu
ajutorul "ymbolic #ath $oolbox$&
,unc#ia magic
MATLAB!ul are o funcie built!in care creeaz ptrate magice de orice dimensiune "funcie pe
care deja am utilizat!o$'
E B = magic"J$
B =
43 9 : 4:
48
8 44 4F =
H I 3 49
J 4J 48 4
Aceast matrice este aproape identic cu matricea lui (]rer singura diferen fiind c cele dou
coloane din mijloc sunt sc.imbate ntre ele& 6entru obinerea din B a matricii lui (]rer se poate
utiliza urmtoarea comand MATLAB'
E A = B"',^4 : 9 J_$
A =
43 : 9 4:
8 4F 44 =
H 3 I 49
J 48 4J 4
'olinoame
6olinoamele sunt descrise n MATLAB prin ectori linie ale cror elemente sunt de fapt
coeficienii polinoamelor n ordinea descresctoare a puterilor&
>%emplu' polinomul p"%$=%
:
G8%G3 este reprezentat n MATLAB astfel'
p = ^4 F 8 3_
*n polinom poate fi ealuat pentru o aloare a lui % cu ajutorul funciei pol#al'
E pol#al"p,4$
ans=
49
Ln e%emplul de mai sus este ealuat polinomul p n punctul % =4&
/e pot afla cu uurin rdcinile polinomului folosind funcia roots'
E r=roots"p$
r =
F&8FFF G 9&:HIHi
F&8FFF ! 9&:HIHi
!4&FFFF
>%ist numeroase alte funcii i comenzi care se ocup cu operaii asupra polinoamelor,
funcii care or fi abordate ntr!un capitol special& (intre acestea amintim comanda care
permite nmulirea a dou polinoame, i anume con'
E p4=^4 : 8_
p4 =
4 : 8
E p9=^9 F 4 F 8_
p9 =
9 F 4 F 8
43
E p:=con"p4,p9$
p: =
9 3 44 : 4F 48 98
1.<. 4*era,i&ni e'ementare & matrii 9i +&n,ii
MATLAB!ul opereaz cu matricile cu aceeai uurin cu care lucreaz cu scalarii& 6entru
adunarea a dou matrici de e%emplu se folosete pur i simplu semnul G ca la o adunare obinuit&
Bineneles c matricile trebuie s aib aceleai dimensiuni pentru a putea fi adunate&
>%emplu'
E A=^9 :Z48 !:_
A =
9 :
48 !:
E B=^44 !94Z 49 J_
B =
44 !94
49 J
E 7=AGB
7 =
4: !4=
9I 4
6entru nmulirea a dou matrici se folosete operatorul K , alabil de altfel i pentru operaiile
cu scalari& >%emplu'
E (=AKB
( =
8= !:F
49H !:9I
(ac dimensiunile matricilor care se nmulesc nu sunt corespunztoare, atunci a fi furnizat un
mesaj de eroare'
E >=^4 9:Z !49 9Z4 9_
> =
4 9:
!49 9
4 9
E -=AK>
``` >rror using ==Y K
+nner matri% dimensions must agree&
6entru BdepanareaC programului n cazul unor astfel de greeli se poate utiliza comanda size
care ne d informaii despre dimensiunile matricilor respectie i permite corectarea erorilor'
4I
E size"A$
ans =
9 9
E size">$
ans =
: 9
MATLAB!ul include multe alte funcii care opereaz cu matrici i care or fi descrise i
utilizate intensi n capitolele urmtoare& Amintim aici c<tea' det, in, ranS, eig etc&
5 facilitate interesant a MATLAB!ului este aceea c lucreaz cu matricile cu operatori logici
i relaionali ntr!un mod asemntor acestor operaii efectuate cu scalari&
(e e%emplu, pentru operaiunea scalar
E r=4IY88
r =
F
MATLAB!ul rspunde cu r = F, adic %als& (ac dorim de e%emplu s comparm fiecare element al
matricii A cu elementul corespunztor din matricea B, procedm asemntor'
E L=AX=B
L =
4 F
F 4
5peratorii logici, adic a pentru b+ "A,($, c pentru /A* "51$, d pentru ,* ",5T$, or
returna aloarea 4 pentru A(>De1AT i F pentru -AL/& >%emplu'
E AaB
ans =
4 4
4 4
E dA
ans =
F F
F F
4=
7. MATRI8I, ALGEBR LINIAR, P4LIN4AME, TE)NI8I 3E INTERP4LARE
7.1. Matrii'e =n MATLAB
6rin matrice nelegem un tablou bi!dimensional de numere reale sau comple%e& Ln
capitolul de -undamente ale programrii n MATLAB a fost prezentat modul de introducere a
matricilor i au fost analizate c<tea operaii simple cu matrici&
MATLAB!ul lucreaz direct cu multe operaii matriceale' aritmetica matricilor, ecuaii
liniare, alori proprii, factorizri etc&
-unciile de algebr liniar sunt localizate n directorul matfun& Ln continuare sunt prezentate
c<tea din funciile care lucreaz cu matrici&
8ategoria 2&n,ia 3esriere
Analiza matriceal norm ,orma unei matrice sau a unui ector&
normest >stimeaz norma!9 a matricei&
ranS 1angul matricei&
det (eterminant&
trace /uma elementelor de pe diagonal&
null /paiul ,ul&
ort. 5rtogonalizare&
subspace *ng.iul dintre 9 subspaii&
>cuaii liniare M i *tilizate la calculul soluiilor ecuaiilor liniare&
in +nersa matricei&
cond ,umrul de condiie pentru inersare&
c.ol -actorizarea 7.olesS#&
lu -actorizarea L*&
Pr (ecompoziia ortogonal!triung.iular&
pin 6seudoinersa&
lsco 7ele mai mici ptrate cu coarian cunoscut&
Dalori proprii i
alori singulare
eig Dalori proprii i ectori proprii&
sd (ecompoziia n alori singulare&
pol# 6olinomul caracteristic&
.ess -orma ;essenberg&
Pz -actorizarea fV&
4H
sc.ur (ecompoziia /c.ur&
-uncii de matrice e%pm >%poneniala de matrice&
logm Logaritmul de matrice&
sPrtm 1dcina ptrat de matrice&
funm >aluarea unei funcii generale de matrice&
5peraiunile elementare cu matrici au fost deja prezentate "adunarea matricilor, nmulirea
acestora, transpusa unei matrice, funciile sum, diag etc&$&
Ln continuare sunt prezentate c<tea matrici speciale utile n toate tipurile de
reprezentri matematice'
- #atricea identitate &unitate'
>ste o matrice cu elementele de pe diagonala principal egale cu 4 iar restul elementelor sunt
nule& ,otaia matematic ( proine de la denumirea matricii i nu este folosit n MATLAB,
pentru eitarea unor confuzii& /e utilizeaz sinta%a'
e#e"m,n$
Aceast funcie returneaz o matrice identitate m%n. (ac se folosete'
e#e"n$
atunci este orba de o matrice identitate ptratic n%n&
- #atricea ones
>ste o matrice care are toate elementele egale cu 4& -orme posibile'
ones"n$ este o matrice n%n cu elemente de 4
ones"m,n$ sau ones"^m,n_$ sunt matrici m%n cu elemente de 4&
ones"size"A$$ are aceeai dimensiune cu o matrice A i are elemente de 4
- #atricea zeros
>ste o matrice care are toate elementele egale cu F& -orme posibile'
zeros"n$ este o matrice n%n de zerouri
zeros"m,n$ sau zeros"^m,n_$ sunt matrici m%n de F
zeros"size"A$$are aceeai dimensiune cu o matrice A i are elemente de F
7.1. Re>o'6area e&a,ii'or 'iniare
*na din cele mai importante probleme ale calculului din domeniul te.nic este soluionarea
sistemelor de ecuaii liniare&
(efinirea problemei este pe scurt urmtoarea'
(ac se dau dou matrici ) i B, e%ist o matrice unic * astfel nc<t
)* + B sau *) + B `
MATLAB utilizeaz notaia din cazul scalar i pentru descrierea soluiei unui sistem de ecuaii
liniare& 7ele dou simboluri utilizate n cazul scalar al diiziunii "mpririi$ i anume slash, 2, i
backslash, M, sunt folosite pentru definirea soluiei'
U = AMB este soluia ecuaiei matriceale )* + B&
U = B2A este soluia ecuaiei matriceale *) + B&
Ln practic, ecuaiile liniare de forma )* + B sunt mai des nt<lnite&
9F
(eoarece matricea ), care conine de fapt coeficienii sistemului, poate s nu fie ptratic ci de
tipul general m%n, e%ist trei cazuri posibile'
m + n& /istem ptratic& /e poate cuta o soluie e%act&
m , n& /istem supradeterminat "incompatibil$& /e caut o soluie de tip cele
mai mici ptrate&
m - n& /istem nedeterminat& /e poate cuta o soluie cu cel mult m componente
nenule&
Ln multe cazuri MATLAB!ul d un diagnostic "o soluie$ automat prin e%aminarea
coeficienilor matricelor& 7<tea din aceste cazuri'
6ermutarea matricilor triung.iulare
Matrici simetrice, poziti definite
Matrici ptratice nesingulare
/isteme rectangulare supradeterminate
/isteme rectangulare nedeterminate
!isteme *?tratie
7el mai simplu caz este cel corespunztor unei matrice ptratice A i a unui ector coloan b&
/oluia % = AMb are aceeai dimensiune ca b&
(ac A i B sunt ptratice de aceleai dimensiuni atunci soluia U = AMB are aceeai
dimensiune ca ) sau B&
bserva!ie. (ac matricea ) este singular "determinant nul$ atunci soluia ecuaiei )* + B nu
e%ist sau nu este unic&
!isteme s&*ra(eterminate .inom*ati$i'e/
Aceste tipuri de sisteme sunt des nt<lnite n dierse situaii, cum ar fi de e%emplu apro%imarea
unor curbe din date e%perimentale&
!isteme ne(eterminate
/istemele liniare nedeterminate au mai multe necunoscute dec<t ecuaii& (ac e%ist i
constr<ngeri "restricii$ suplimentare, atunci este orba de o problem de programare liniar&
5peratorul backslash din MATLAB permite cutarea soluiei n cazul fr restricii& /oluia nu
este niciodat unic& MATLAB!ul gsete o soluie de baz "care are cel mult m componente
nenule$& )sirea soluiei particulare se bazeaz pe factorizarea f1 "decompoziia ortogonal!
triung.iular$&
Dom prezenta un e%emplu "care utilizeaz funcia matriceal random ? rand$&
E 1 = fi%"4FKrand"9,J$$
1 =
3 = I :
: 8 J 4
E b = fi%"4FKrand"9,4$$
b =
4
94
9
/istemul liniar Rx + b implic dou ecuaii cu J necunoscute& /oluia se poate afia n format
raional "coeficienii sunt numere ntregi$& /oluia particular se obine astfel'
E format rat
E p = 1Mb
p =
F
82I
F
!442I
/oluia complet a sistemului nedeterminat se obine prin adugarea unui ector arbitrar din
spaiul nul folosind funcia null'
E V = null"1,OrO$
V =
!429 !I23
!429 429
4 F
F 4
5rice ector de forma %=pGVKP pentru P ector arbitrar satisface 1K%=b&
7.7. In6erse 9i (eterminan,i
(ac matricea ) este ptratic i nesingular, ecuaiile )* + ( i *) + ( au aceeai soluie *&
Aceast soluie este c.iar inersa lui ), notat matematic prin )
!4
, i poate fi calculat cu funcia
in&
(eterminantul unei matrice se poate calcula cu funcia det "trebuie acordat atenie problemelor
de scalare i rotunjire care apar n calcule$&
>%emple'
E A=^4 4 4Z4 9 :Z4 : 3_Z
E d = det"A$
d =
4
E U = in"A$
U =
: !: 4
!: 8 !9
4 !9 4
Pse&(oin6erse
Matricile dreptung.iulare "rectangulare$ nu au inerse sau determinani& Atunci cel puin una
din ecuaiile )* + ( sau *) + ( nu are soluie& /e poate utiliza n acest caz o pseudoiners care
poate fi calculat cu funcia pin'
E A4=^AZ^4 : 8__
A4 =
99
4 4 4
4 9 :
4 : 3
4 : 8
E U=pin"A4$
U =
4&8FFF !F&FFFF 4&FFFF !4&8FFF
!F&=::: F&333I !9&FFFF 9&433I
F&433I !F&:::: 4&FFFF !F&=:::
7.:. 2&n,ii (e matrie. @a'ori *ro*rii

/uteri de matrice
(ac A este o matrice ptratic i p este un numr ntreg poziti, atunci ANp multiplic pe A cu
ea nsi de p ori&
E U = AN9
U =
: 3 4F
3 4J 98
4F 98 J3
(ac A este ptratic i nesingular, atunci AN"!p$ multiplic pe in"A$ cu ea nsi de p ori&
E W=AN"!9$
W =
4H&FFFF !93&FFFF 4F&FFFF
!93&FFFF :=&FFFF !48&FFFF
4F&FFFF !48&FFFF 3&FFFF
1idicarea la putere element cu element se face utiliz<nd operatorul "funcia$ &N& (e e%emplu'
E U = A&N9
A =
4 4 4
4 J H
4 H :3
R0d0cina p0trat0 de matrice
-uncia sPrtm"A$ permite calculul lui AN"429$ printr!un algoritm mai precis dec<t utilizarea
puterii de matrice&
1xponen!iala de matrice
*n sistem de ecuaii difereniale ordinare cu coeficieni constani poate fi scris'
unde x + x&t' este un ector de funcii de timp i ) este o matrice independent de timp&
/oluia sistemului poate fi scris prin intermediul e%ponenialei de matrice
9:
-uncia e%pm"A$permite calculul e%ponenialei de matrice&
@a'ori *ro*rii
5 aloare proprie i un ector propriu ale unei matrice ptratice ) sunt un scalar i un ector
v care satisfac egalitatea
7u alorile proprii pe diagonala unei matrice de tip diagonal i cu ectorii proprii
corespunztori care formeaz coloanele unei matrice 2 om aea
(ac 2 este nesingular obinem decompoziia "descompunerea$ pe baza alorilor proprii'
>%emplu'
E A=^!4 !: 4Z9 !9 !4ZF 4 !:_
A =
!4 !: 4
9 !9 !4
F 4 !:
E lambda=eig"A$
lambda =
!4&I8H: G 9&J=JIi
!4&I8H: ! 9&J=JIi
!9&J=4J
Lambda a fi un ector care conine alorile proprii ale matricei&
(ac funcia eig este utilizat cu dou argumente de ieire om obine ectorii proprii i
alorile proprii "acestea sub forma diagonal$'
E ^D,(_=eig"A$
D =
F&99:: G F&3=:8i F&99:: ! F&3=:8i F&:43F
F&3J=4 ! F&F=39i F&3J=4 G F&F=39i F&J:3=
F&FI38 ! F&999Ii F&FI38 G F&999Ii F&=J99
( =
!4&I8H: G 9&J=JIi F F
F !4&I8H: ! 9&J=JIi F
F F !9&J=4J
bserva!ie. Toolbo%!ul /#mbolic Mat. e%tinde capacitatea MATLAB!ului prin conectarea la
Maple, care este un sistem de calcul algebric performant& *na din funciile toolbo%!ului permite
calculul formei canonice Rordan&
E ^U,R_=jordan"A$
9J
U =
F&4494 F&JJJF G F&43H4i F&JJJF ! F&43H4i
F&48JH !F&FII8 G F&J98Fi !F&FII8 ! F&J98Fi
F&9H=I !F&4JHJ G F&FJ:Ji !F&4JHJ ! F&FJ:Ji
R =
!9&J=4J F F
F !4&I8H: ! 9&J=JIi F
F F !4&I8H: G 9&J=JIi
-orma canonic Rordan este un concept teoretic important, dar nu este indicat folosirea n
cazul matricilor mari sau pentru matricile cu elemente afectate de erori de rotunjire sau de alte
incertitudini& MATLAB!ul poate folosi n astfel de cazuri descompunerea /c.ur "funcia sc.ur$&
7.<. Re*re>entarea *o'inoame'or. Inter*o'area
Po'inoame
MATLAB!ul furnizeaz funcii pentru operaii polinomiale standard cum ar fi calculul
rdcinilor, ealuarea polinoamelor, deriarea etc& 5 parte din aceste operaii precum i modul de
reprezentare a polinoamelor ca ectori au fost descrise n capitolul de -undamente de programare&
-unciile polinomiale se afl n directorul pol#fun'
2&n,ie 3esriere
con Multiplic polinoamele&
decon Lmparte polinoamele&
pol#
1eturneaz coeficienii dac se dau
rdcinileZ 6olinomul caracteristic&
pol#der 7alcul deriatei unui polinom&
pol#fit
)sirea coeficienilor unui polinom din
apro%imarea unui set de date&
pol#al >aluarea unui polinom&
pol#alm >aluarea unui polinom cu argument
matriceal&
residue (escompunere n fracii simple&
roots )sirea rdcinilor unui polinom&
(up cum s!a precizat deja, MATLAB!ul reprezint polinoamele ca ectori linie care
conin coeficienii polinoamelor n ordinea descresctoare a puterilor&
-unciile uzuale care opereaz cu polinoame au fost prezentate "de e%emplu roots$& !n
continuare sunt parcurse alte c"teva e#e$ple utile%
-uncia pol# returneaz coeficienii unui polinom dac dispunem de rdcinile
acestuia "este o funcie iners fa de roots$'
E p=^4 !4 9 J 4_Z
E r=roots"p$
r =
4&F89H G 4&I9J=i
4&F89H ! 4&I9J=i
98
!F&IHH8
!F&:F3:
E coef=pol#"r$
coef =
4&FFFF !4&FFFF 9&FFFF J&FFFF 4&FFFF
5 alt utilizare a funciei pol# este aceea de calculare a coeficienilor polinomului caracteristic
al unei matrice'
E A
A =
!4 !: 4
9 !9 !4
F 4 !:
E pol#"A$
ans =
4 3 4= 9:
1dcinile acestui polinom sunt c.iar alorile proprii ale matricii A&
-uncia pol#al ealueaz un polinom pentru o aloare specificat a argumentului&
-uncia pol#alm permite ealuarea unui polinom n sens matriceal& Ln acest caz polinomul p
din e%emplul anterior' p"%$ = %
J
? %
:
G 9%
9
G J% G 4 deine p"U$ = U
J
? U
:
G 9U
9
G JU G +, unde U
este o matrice ptratic i + matricea unitate&
>%emplu'
E 7=pol#alm"p,A$
7 =
!I8 !34 =4
8= !4:F I8
89 !9: JH
-unciile con i decon implementeaz operaiile de nmulire i mprire a
polinoamelor&
>%emple'
-ie a"%$ = %
9
G 9% G: i b"%$ = J%
9
G 8% G 3&
E a = ^4 9 :_Z b = ^J 8 3_Z
E c = con"a,b$
c =
J 4: 9= 9I 4=
E ^P,r_ = decon"c,a$
P =
J 8 3
r =
F F F F F
-uncia *o'A(er permite calculul deriatei unui polinom&
>%emplu'
E p=^4 !4 9 J 4_Z
E pderiat=pol#der"p$
pderiat =
93
J !: J J
-uncia *o'A+it gsete coeficienii unui polinom "o curb$ care apro%imeaz un set de
date n sensul algoritmului celor mai mici ptrate'
p = pol#fit"%,#,n$
% i # sunt ectorii care conin setul de date iar n este ordinul polinomului ai crui coeficieni or fi
furnizai la apelarea funciei&
>%emplu'
E % = ^4 9 : J 8_Z # = ^8&8 J:&4 49= 9HF&I JH=&J_Z
E p = pol#fit"%,#,:$
p =
!F&4H4I :4&8=94 !3F&:939 :8&:JFF
6entru plotarea rezultatului se utilizeaz mai nt<i funcia pol#al pentru o trasare c<t mai
e%act a graficului polinomului i apoi se ploteaz estimarea ersus datele reale pentru comparaii&
E %9 = 4'&4'8Z
E #9 = pol#al"p,%9$Z
E plot"%,#,OoO,%9,#9$
-uncia resi(&e se utilizeaz pentru descompunerea n fracii simple&
/e aplic n cazul raportului a dou polinoame b i a,
unde r este un ector coloan, p tot un ector coloan care conine polii iar k un ector linie cu
termenii direci&
>%emplu'
E b = ^!J =_Z
E a = ^4 3 =_Z
E ^r,p,S_ = residue"b,a$
9I
r =
!49
=
p =
!J
!9
S =
^_
(ac se folosesc trei argumente de intrare "r, p, i S$, funcia residue asigur conersia napoi n
forma polinomial'
E ^b9,a9_ = residue"r,p,S$
b9 =
!J =
a9 =
4 3 =
Inter*o'area
+nterpolarea este un proces de estimare a alorilor dintre date "puncte$ cunoscute& Aplicaiile
interpolrii sunt numeroase n domenii cum ar fi procesarea numeric a semnalelor i imaginilor&
MATLAB!ul dispune de mai multe te.nici de interpolare, alegerea unei metode sau alteia
fc<ndu!se n funcie de acurateea necesar, de iteza de e%ecuie i de gradul de utilizare a
memoriei&
-unciile de interpolare se afl n directorul pol#fun&
2&n,ie 3esriere
griddata +nterpolare pe suprafee&
interp4 +nterpolare monodimensional&
interp9 +nterpolare bi!dimensional&
interp: +nterpolare tri!dimensional&
interpft
+nterpolare mono utiliz<nd metoda --T&
spline +nterpolare spline "cubic$&
/ompararea unor metode de interpolare bi$dimensional0
Ln continuare este preluat i prezentat "informati$ un e%emplu de folosire a unor metode de
interpolare bi!dimensional pentru o matrice de date I % I&
4& )enerarea funciei peaSs "cu rezoluie mic$'
^%,#_ = mes.grid"!:'4':$Z
z = peaSs"%,#$Z
9=
surf"%,#,z$
9& )enerarea unei suprafee mes. fine pentru interpolare'
^%i,#i_ = mes.grid"!:'F&98':$Z
:& +nterpolarea cu metoda celei mai apropiate ecinti'
zi4 = interp9"%,#,z,%i,#i,OnearestO$Z
J& +nterpolarea cu metoda biliniar'
zi9 = interp9"%,#,z,%i,#i,ObilinearO$Z
8& +nterpolarea cu metoda bicubic'
zi: = interp9"%,#,z,%i,#i,ObicubicO$Z
3& 7ompararea graficelor corespunztoare diferitelor metode de interpolare'
9H
I& 7ompararea contururilor suprafeelor n cazul diferitelor metode de interpolare'
/e obser c metoda bicubic produce cele mai netede contururi& 5 metod cum ar fi cea a
celor mai apropiate ecinti este preferat ns n anumite aplicaii, cum ar fi cele medicale unde
nu trebuie generate date noi&
:. REPREZENTAREA 2"N8BIIL4R. E8"ABII 3I2ERENBIALE
:.1. Re*re>entarea 9i *'otarea +&n,ii'or matematie
Re*re>entarea +&n,ii'or matematie
-unciile matematice uzuale sunt furnizate de MATLAB ca funcii buit!in "cum ar fi sin,
cos, log4F, log, atan etc&$&
6entru reprezentarea altor funcii matematice se utilizeaz e%primarea n fiiere tip &m &
(e e%emplu, o funcie cum este urmtoarea'
poate fi creat ntr!un fiier MATLAB de tip function i poate fi utilizat ulterior ca intrare n alte
funcii "aa!numitele funcii de funcii ? a se edea paragraful 9&:$&
-iierul care descrie aceast funcie a mai fost prezentat n paragraful 9&:'
function # = .umps"%$
# = 4&2""%!F&:$&N9GF&F4$G4&2""%!F&H$&N9GF&FJ$!3Z
5 alt posibilitate este crearea la nielul liniei de comand a unui obiect inline prin folosirea
unei e%presii tip ir de caractere'
E f=inline"g4&2""%!&:$&N9G&F4$G4&2""%!&H$&N9G&FJ$!3O$Z
6entru a ealua aceast funcie f n 9&F tastm simplu'
E f"9&F$
ans =
!J&=889
:F
Alt e%emplu'
E f = inline"O#Ksin"%$G%Kcos"#$O,O%O,O#O$
E f"pi,9Kpi$
ans =
:&4J43
P'otarea +&n,ii'or
6entru reprezentarea grafic a funciilor se poate utiliza funcia fplot& /e pot controla limitele
a%elor de reprezentare grafic&
>%emplu' trasarea graficului funciei .umps pentru limitele ^!8 8_ ale a%ei %'

fplot"O.umpsO,^!8 8_$
(ac dorim i precizarea limitelor de reprezentare pe a%a # "realizarea unui zoom$ folosim
comanda'

fplot"O.umpsO,^!8 8 !4F 98_$
:4
*n alt e%emplu de folosire direct a funciei fplot'
fplot"O9Ksin"%G:$O,^!4 4_$
/e poate realiza i reprezentarea mai multor funcii pe acelai grafic'
fplot"O^9Ksin"%G:$, .umps"%$_O,^!4 4_$
:.1. Re>o'6area e&a,ii'or (i+eren,ia'e
MATLAB!ul dispune de metode i funcii care pot rezola problema condiiilor iniiale
"7auc.#$ ale sistemelor de ecuaii difereniale ordinare "5(> ? 5rdinar# (ifferential >Puations$&
Ln tabelul urmtor sunt prezentate succint c<tea din aceste funcii&
:9
8ategorie 2&n,ie 3esriere
-uncii care rezol
5(>
odeJ8
1ezol ecuaii difereniale nonstiff, metod de ordin
mediu&
ode9:
1ezol ecuaii difereniale nonstiff, metod de ordin
sczut&
ode44:
1ezol ecuaii difereniale nonstiff, metod de ordin
ariabil&
ode48s
1ezol ecuaii difereniale stiff i ecuaii algebrice
difereniale, metod de ordin ariabil&
ode9:s
1ezol ecuaii difereniale stiff, metod de ordin
sczut&
ode9:t
>cuaii difereniale stiff i ecuaii algebrice difereniale,
metoda trapezelor&
ode9:tb
1ezol ecuaii difereniale stiff, metod de ordin
sczut&
5piuni 5(> odeset 7reeaz sau sc.imb opiuni de structur ale 5(>&
odeget 6ermite obinerea parametrilor din opiunile 5(>&
-uncii de ieire
5(>
odeplot 6lotarea soluiilor 5(> "n funcie de timp$&
odep.as9 Trasarea planului fazelor&
odep.as: Trasarea spaiului fazelor "tri!dimensional$&
odeprint 6ermite tiprirea soluiei 5(> n fereastra de comand&
bserva!ie. La ecuaiile difereniale ordinare de tip stiff "rigide$ soluiile pot aea ariaii
foarte rapide n timp n raport cu interalul de timp de integrare i este necesar folosirea unor pai
de integrare foarte mici, ceea ce nu mai este indicat la ecuaiile nonstiff&
E0em*'& (e re>o'6are; e&a,ia 6an (er Po'
>cuaia an der 6ol este un e%emplu clasic de ecuaie diferenial'

unde h Y F este un parametru scalar&
6entru implementarea algoritmului de rezolare este necesar rescrierea ecuaiei de ordinul 9 ca
un sistem de dou ecuaii difereniale de ordinul 4& 6entru aceasta se introduce ariabila 1
9
care este
deriata n raport cu timpul a ariabilei y
3
& Dom aea
::
6entru a reprezenta n MATLAB acest sistem de 5(> n scopul gsirii soluiilor, trebuie scris n
primul r<nd un fiier care descrie sistemul "un fiier de tip function$& *n fiier 5(> accept cel
puin dou argumente, t i #&
6entru ecuaia an der 6ol cu h = 4, fiierul este urmtorul "y
4
i y
9
dein #"4$ i #"9$$'
function d# = dp4"t,#$
d# = ^#"9$Z "4!#"4$N9$K#"9$!#"4$_Z
La pasul urmtor, dup ce sistemul de ecuaii a fost scris, se poate utiliza una din metodele de
rezolare prezentate n tabelul anterior& Trebuie furnizat un interal de timp pentru care se dorete
calculul soluiilor i bineneles condiiile iniiale&
6entru e%emplul an der 6ol, se poate apela la o(e:<. (ac interalul de timp este ^C 1CD iar
condiiile iniiale A.1/E1 i A.1/EC om aea
^t,#_ = odeJ8"Odp4O,^F 9F_,^9Z F_$Z
+eirea ^t,#_ este un ector coloan care conine ectorul timp t i soluia de tip tablou #& -iecare
linie din # corespunde unui element "moment$ din ectorul timp&
6entru trasarea graficului cu soluia se folosete comanda plot'
plot"t,#"',4$,O!O,t,#"',9$,O! !O$
title"O/olution of an der 6ol >Puation, mu = 4O$Z
%label"Otime tO$Z
#label"Osolution #O$Z
legend"O#4O,O#9O$
/e obine urmtorul grafic care conine eoluiile celor dou componente ale soluiei n timp'
(ac se dorete i trasarea planului fazelor se pot folosi liniile de comand'
options=odeset"O5utput-cnO,Oodep.as9O$Z
^t,#_ = odeJ8"Odp4O,^F 9F_,^9Z F_,options$Z
i obinem planul fazelor "este orba de trasarea componentei #"4$ ersus componenta #"9$$'
:J
-3 -2 -1 0 1 2 3
-3
-2
-1
0
1
2
3
<. GRA2I8E FI INTER2EBE GRA2I8E 5N MATLAB
<.1. P'ot?ri 1 3 e'ementare
Generarea gra+ie'or
-uncia plot are diferite forme n funcie de argumentele de intrare&
(ac de e%emplu # este un ector, plot"#$ produce un grafic liniar al elementelor lui #
ersus inde%ul elementelor sale&
(ac se specific doi ectori ca argumente, plot"%,#$ produce graficul lui # ersus %&
>%emplu' t = F'pi24FF'9KpiZ
# = sin"t$Z
plot"t,#$
grid on
:8
/e pot realiza grafice multiple utiliz<nd un singur apel al funciei plot& MATLAB!ul realizeaz
automat o reprezentare cu culori diferite pentru a permite distingerea graficelor& >%emplu'
#9 = sin"t!F&98$Z
#: = sin"t!F&8$Z
plot"t,#,t,#9,t,#:$
!*ei+iarea sti'&'&i (e 'inie
/e pot crea diferite tipuri de linii pentru fiecare set de date prin folosirea unor identificatori de
tip string n funcia plot& >%emplu'
t = F'pi24FF'9KpiZ
# = sin"t$Z
#9 = sin"t!F&98$Z
#: = sin"t!F&8$Z
plot"t,#,O!&,t,'2,&--&,t,'3,&(&)
-unciile de plotare accept deci argumente de tip caracter care specific stilul liniei,
simbolurile utilizate pentru marSer, culoarea etc& -orma general este'
:3
plot"%,#,Olinestyle_marker_colorO$
unde linestyle_marker_color este un ir de caractere construit din'
*n stil de linie "de e%emplu linie punctat, plin etc&$
*n tip de marSer "de e%emplu %, K, o, etc&$
*n specificator de culoare "c, m, #, S, r, g, b, 0$
/e poate folosi un specificator sau mai muli, n orice ordine& (e e%emplu,
Ogo!!O
definete o linie ntrerupt, cu marSere circulare, ambele colorate n erde&
!*ei+iarea &'orii 9i (imensi&nii 'inii'or
7aracteristicile liniilor se pot controla prin specificarea unor alori pentru proprietile linilor'
LineTidt. ? specific limea unei linii&
MarSer>dge7olor ? seteaz culoarea marSerului sau culoarea marginilor marSerului n cazul
anumitor forme "cerc, ptrat etc&$
MarSer-ace7olor ? seteaz culoarea interiorului marSerelor&
MarSer/ize ? specific dimensiunea marSerului&
>%emplu'

% = !pi'pi24F'piZ
# = tan"sin"%$$ ! sin"tan"%$$Z
plot"%,#,O!!rsO,OLineTidt.O,9,&&&
OMarSer>dge7olorO,OSO,&&&
OMarSer-ace7olorO,OgO,&&&
OMarSer/izeO,4F$
!&*ra*&nerea &nor gra+ie *este &n gra+i e0istent

/e pot aduga grafice peste unul e%istent cu comanda .old& (ac se seteaz .old on,
MATLAB!ul nu nltur graficul e%istent, ci suprapune noul grafic n aceeai fereastr grafic&
>%emplu'
semilog%"4'4FF,OGO$
.old on
:I
plot"4':':FF,4'4FF,O!!O$
.old off
P'otarea sim&'tan? a markere'or 9i 'inii'or
6entru plotarea marSerelor "care indic punctele corespunztoare datelor$ i a liniilor "care
unesc aceste date$ se specific at<t tipul marSerului c<t i stilul liniei& >%emplu'
% = F'pi248'JKpiZ
# = e%p"9Kcos"%$$Z
plot"%,#,O!rO,%,#,OoSO$
P'otarea (ate'or (in matrii

Atunci c<nd funcia plot este utilizat cu un singur argument de tip matrice'
plot"W$
a fi realizat un grafic pentru fiecare coloan a matricii, cu a%a x reprezent<nd inde%ul de linie 4'm,
cu m numrul liniilor din W&
>%emplu' cu instruciunea V = peaSsZ este creat o matrice JH%JH obinut printr!o ealuare de
funcie& (ac plotm matricea cu plot"V$om aea un grafic cu JH de linii&
:=
P'otarea & a0a G (&$'?
7omanda plot## permite crearea unor grafice pentru dou seturi de date i cu reprezentare dubl
a a%ei W, pe partea st<ng i pe partea dreapt&
>%emplu'
t = F'pi29F'9KpiZ
# = e%p"sin"t$$Z
plot##"t,#,t,#,OplotO,OstemO$
!etarea *arametri'or a0e'or
:H
MATLAB!ul seteaz automat limitele a%elor i gradarea acestora& /e pot ns folosi i setrile
utilizatorului, cu comenzile'
a%is ? seteaz a%ele pentru fereastra grafic curent&
a%es ? creeaz a%e noi cu caracteristici specificate&
get i set ? permit obinerea i setarea unor proprieti ale a%elor&
gca ? returneaz identificatorul a%elor curente&
/e pot parcurge n detaliu aceste comenzi prin apelarea la .elp&
2erestre (e ti* +ig&r?
MATLAB!ul direcioneaz ieirile grafice spre o fereastr distinct de fereastra de comand&
Aceast fereastr grafic este denumit %igur0 "%igure$& "a se edea paragraful :&:$&
-uncia figure genereaz ferestre grafice& (e e%emplu,
figure
genereaz o nou fereastr i o face fereastra curent&
A"i-area unor gra"ice multiple 2n aceea-i "ereastr0 gra"ic0
/e poate realiza o afiare a mai multor grafice n aceeai fereastr prin intermediul funciei
subplot&
-uncia subplot"m,n,i$ desparte fereastra de tip figur ntr!o matrice m % n de mici subploturi
"subgrafice$ i selecteaz subplotul i ca grafic curent& >%emplu'
t = F'pi29F'9KpiZ
^%,#_ = mes.grid"t$Z
subplot"9,9,4$
plot"sin"t$,cos"t$$
a%is ePual
subplot"9,9,9$
z = sin"%$Gcos"#$Z
plot"t,z$
a%is"^F 9Kpi !9 9_$
subplot"9,9,:$
z = sin"%$&Kcos"#$Z
plot"t,z$
a%is"^F 9Kpi !4 4_$
subplot"9,9,J$
z = "sin"%$&N9$!"cos"#$&N9$Z
plot"t,z$
a%is"^F 9Kpi !4 4_$
JF
8omen>i (e marare, etihetare 9i gra(are a gra+ie'or
MATLAB!ul furnizeaz comenzi de etic.etare a fiecrei a%e i de plasare a unui te%t n orice
loc din grafic& 7omenzile sunt prezentate n tabelul urmtor&
8oman(? 3esriere
title Adaug un titlu
%label Adaug o etic.et pe a%a x
#label Adaug o etic.et pe a%a y
zlabel Adaug o etic.et pe a%a z
legend Adaug o legend
Te%t
Afieaz un te%t la o locaie specificat
)te%t 6laseaz te%tul pe grafic utiliz<nd mouse!ul
3ticetarea axelor
/e pot aduga etic.ete pe a%e cu comenzile %label, #label, zlabel&
>%emplu'
%label"Ot = F to 9MpiO,O-ont/izeO,43$
#label"Osin"t$O,O-ont/izeO,43$
title"OMitiDalue of t.e /ine from Vero to T0o
6ijO,O-ont/izeO,43$
J4
MATLAB!ul interpreteaz caracterele care urmeaz dup bacSslas. kMk ca i comenzi TeU&
Aceste comenzi permit reprezentarea unor simboluri cum ar fi literele greceti sau sgeile&
Ad0ugarea textelor
6rin utilizarea funciei te%t se poate plasa un te%t "ir de caractere$ oriunde pe grafic& >%emplu'
te%t":Kpi2J,sin":Kpi2J$,&&&
OMleftarro0sin"t$ = &IFIO,&&&
O-ont/izeO,43$
te%t"pi,sin"pi$,OMleftarro0sin"t$ = FO,&&&
O-ont/izeO,43$
te%t"8Kpi2J,sin"8Kpi2J$,Osin"t$=!&IFIMrig.tarro0O,&&&
O;orizontalAlignmentO,Orig.tO,&&&
O-ont/izeO,43$
'lasarea textului 2n mod interactiv
(ac utilizm funcia gte%t se poate plasa un te%t n mod interacti, cu mouse!ul, oriunde pe
grafic& Aceast funcie accept ca argument un ir de caractere i ateapt p<n c<nd utilizatorul
selecteaz un loc pe grafic cu ajutorul mouse!ului&
J9
/e poate utiliza i 6lot >ditor pentru plasarea te%tului "a se edea paragraful :&:$&
<.1. P'ot?ri tri(imensiona'e .7-3/
6aii tipici care trebuie parcuri pentru trasarea unor grafice tridimensionale sunt prezentai n
continuare&
Eta*a Instr&,i&ni
4&6regtirea datelor V = peaSs"9F$Z
9& /electarea ferestrei
grafice i poziionarea
graficului n fereastr
figure"4$
subplot"9,4,9$
:& Apelarea unei funcii
de plotare :!(
. = surf"V$Z
Ja& /etarea unei .ri de
culori i a unui algoritm
de umbrire
colormap .ot
s.ading interp
set".,O>dge7olorO,OSO$
Jb& Adugarea unei
iluminri
lig.t"O6ositionO,^!9,9,9F_$
lig.ting p.ong
material"^F&J,F&3,F&8,:F_$
set".,O-ace7olorO,^F&I F&I F_,&&&
OBacS-aceLig.tingO,OlitO$
8& /etarea unui punct de
izualizare
ie0"^:F,98_$
set"gca,O7ameraDie0AngleModeO,OManualO$
3& /etarea limitelor a%elor
i a marcajelor
a%is"^8 48 8 48 != =_$
set"gcaOVTicSLabelO,O,egatiecc6ositieO$
I& /etarea
proporionalitii
set"gca,O6lotBo%Aspect1atioO,&&&
^9&8 9&8 4_$
=& 7ompletarea graficului
cu etic.ete, legend, te%t
%label"OU A%isO$
#label"OW A%isO$
zlabel"O-unction DalueO$
title"O6eaSsO$
H& 5peraiuni de tiprire set"gcf,O6aper6ositionModeO,OautoO$
print !dps9
Re*re>entarea &nei matrie a o s&*ra+a,?
J:
MATLAB!ul definete o suprafa prin coordonatele z ale punctelor de deasupra unui caroiaj
dreptung.iular n planul x!y& )raficul este format prin unirea punctelor adiacente cu linii drepte&
6lotrile de suprafee sunt utile pentru izualizarea matricilor care sunt prea mari pentru a fi afiate
n form numeric i pentru trasarea graficelor funciilor de dou ariabile&
MATLAB!ul poate crea diferite forme de trasare a suprafeelor'
2&n,ie "ti'i>are
mes., surf Trasare a unei suprafee
mes.c, surfc Trasarea suprafeei, inclusi conturul
mes.z
Trasarea suprafeei, inclusi planul de referin
pcolor
6lotare plan a suprafeei "alorile sunt proporionale doar cu culoarea$
surfl
Trasarea suprafeei luminat din direcia specificat
surface -uncie de niel sczut pentru crearea unor obiecte tip grafice suprafa
Gra+ie rea'i>ate & mes. 9i surf
7omenzile mes. i surf genereaz suprafee :!( din datele proenite de la matrici& (ac V este o
matrice pentru elementele creia V"i,j$ se definete nlimea unei suprafee peste un caroiaj "i,j$
atunci
mes."V$
genereaz o imagine colorat, caroiat a suprafeei i o afieaz n edere :!(&
/imilar,

surf"V$
genereaz o imagine colorat, continu a suprafeei i o afieaz n edere :!(&
Ln cazul comenzii mes. se pot folosi comenzi de tipul s.ading pentru eliminarea liniilor de tip
mes. "s.ading flat$ sau pentru interpolarea umbririlor de!a lungul faetelor suprafeei "s.ading
interp$&
@i>&a'i>area +&n,ii'or (e (o&? 6aria$i'e
6rimul pas care trebuie parcurs pentru trasarea graficului unei funcii de dou ariabile, z =
%&x,y', este de a genera matricile U i W care definesc domeniul n care a fi izualizat funcia&
Apoi se utilizeaz aceste matrici pentru ealuare i trasarea graficului funciei&
-uncia mes.grid transform domeniul specificat prin doi ectori, % i #, n matricile U i W&
Liniile matricei U sunt copii ale ectorului % i coloanele matricei W sunt copii ale ectorului #&
6entru a edea cum se folosete mes.grid, om considera funcia sin&r'4r "numit funcia sinc$&
6entru a ealua funcia ntre != i = i pentru x i pentru y, este necesar doar un argument de tip
ector pentru mes.grid, care a fi utilizat n ambele direcii'
^U,W_ = mes.grid"!='&8'=$Z
JJ
1 = sPrt"U&N9 G W&N9$ G epsZ
Matricea 1 conine distanele de la centru "originea$, iar eps este adugat pentru a eita
mprirea la zero&
Acum se poate forma funcia sinc i se poate realiza plotarea cu mes.&
V = sin"1$&21Z
mes."V$
/e poate realiza o mbuntire a reprezentrii grafice n condiiile utilizrii acelorai date, prin
folosirea unor faciliti de iluminare i ajustare a imaginii "daspect, a%is, camlig.t, ie0$&
>%emplu'
surf"U,W,V,O-ace7olorO,OinterpO,O>dge7olorO,OnoneO,&&&
O-aceLig.tingO,Op.ongO$
daspect"^8 8 4_$Za%is tig.tZie0"!8F,:F$Zcamlig.t left
J8

)arta &'ori'or
-iecare fereastr grafic MATLAB are asociat o .art a culorilor "colormap$, care este o
matrice cu trei coloane a cror lungime este egal cu numrul de culori definite& -iecare linie a
matricii definete o culoare particular prin specificarea a trei alori n domeniul F ? 4& Aceste
alori definesc componentele 1)B "red, green, blue$ "adic intensitile componentelor ideo rou,
erde i albastru$& -uncia colormap fr argumente returneaz .arta figurii curente&
-uncia colorbar afieaz n fereastra grafic .arta curent a culorilor, sub forma unei bare aezate
l<ng grafic& >%emplu'
^%,#_ = mes.grid"^!9'&9'9_$ZV = %&Ke%p"!%&N9!#&N9$Z
surf"%,#,V,gradient"V$$Zcolorbar
J3
JI

S-ar putea să vă placă și