BAZELE PROGRAMRII ! ME"I#L MA$LAB 1. !o%iuni generale Sistemul de programare MatLa& (Matrix Laboratory) reprezint un mediu interactiv de calcul a problemelor inginereti i tiiniice avnd ca un singur tip de date ! 'atricea. "rogramele elaborate #n mediul MatLab se salveaz #n iiere cu extensia .'$ numite M()i*iere. MatLab este dotat cu un puternic aparat al matematicii de calcul i de reprezentare graic. "entru dierite aplicaii te%nice MatLab conine pac%ete specializate numite $ool&o+!uri cu destintaie #n domeniul respectiv. Sistemul permite sc%imbul inormaiei cu editorul de texte Microsot &ord$ #n particular$ a textului programului i rezultatelor textuale$ a graicelor. Lansarea sistemului MatLab are loc cu clic dublu pe iconia i apare ereastra de lucru Linia care conine caracterul '' se numete linia de co'enzi. (up acest caracter poate i culeas o comand sau expresie. (ac se culege o expresie matematic atunci MatLab!ul poate i utilizat #n regim de calculator. (e exemplu$ cu expresia ,,-./0 are loc calcularea sumei (la apsarea tastei )*+),) i cu variabila de sistem ans se aieaz rezultatul ans 1 -2. -u comanda ,,3el4 s5rt se lanseaz sistemul de a.utorare MatLab$ concret asupra unciei standard s5rt. (ac se dorete executarea comenzii sau a expresiei r aiare atunci comanda se iniseaz cu caracterul /60. 1dentiicarea variabilelor se realizeaz #n mod tradiional ca o succesiune de litere latine$ cire i caracterul 2 $ obligatoriu #ncep3ndu!se cu o liter. Aten%ie7 n MatLa& literele 'ari *i 'ici nu sunt identice 4tergerea erestrei de comenzi 5 prin executarea comenzii clc. 8unc%ii MA$LAB de interes general 6 3el4 5 urnizeaz inormaii despre M7+L78 i unciile acestuia. Sintax9 www.cartiaz.ro Carti si articole online gratuite de la A la Z %elp nume 5 urnizeaz inormaii despre nume (poate i un nume de uncie sau un nume de director). Exemplu9 %elp t 5 urnizeaz inormaii despre transormata :ourier discret. 6 w3o 5 listeaz numele variabilelor din spaiul de lucru. 6 w3os 5 urnizeaz inormaii suplimentare reeritoare la variabilele din spaiul de lucru (nume$ dimensiune etc.). 6 )or'at 5 stabilete ormatul extern de aiare al numerelor pe ecran. Sintaxa9 ormat opiune 5 parametrul opiune poate i9 ! s%ort 5 ; cire << ormatul implicit ! long 5 1; cire ! s%ort e 5 ; cire = exp (puteri ale lui 1>) ! long e 5 1; cire = exp (puteri ale lui 1>) Exemple9 ormat s%ort x?pi @ x ? A.1B1C ormat long x @ x ? A.1B1;DEC;A;FDGD H matrice poate i introdus prin atribuire$ de exemplu cu expresiile ,, a19: - ;6 . 0 <= ,, +19: (- 0 (.= se ormeaz matricea a cu dou linii i trei coloane i vectorul!linie + cu patru elemente. )lementele matricei sunt incluse #n paranteze ptrate. )lementele unei linii se separ cu spaiu sau virgul$ iar liniile 5 cu caracterul /60. "entru selectarea unor elemente se utilizeaz indecii inclui #n paranteze rotunde i separai prin virgule$ de exemplu$ >?@A;B determin elementul al treilea din linia cu indicele I$ iar a?CA;B 5 coloana a treia #n #ntregime. Jn MatLab pot i utilizate at3t mrimi reale$ c3t i mrimile complexe cu caracterele i sau . #n calitate de unitate imaginar9 '' a?1=Ei a ? 1.>>>> = E.>>>>i '' b?1!Ai b ? 1.>>>> ! A.>>>>i "entru determinarea lungimei vectorului se utilizeaz unctia lengt3 C '' I?lengt%(KMesa.ul meuK) I ? 11 '' L?M 1 > !A C G 1ANO '' I?lengt%(L) I ? C '' I?lengt%(M1 B G O E > !EN) I ? A iar dimensiunile matricei ! unctia size C '' L ?M 1 > !A O C G 1AN '' I?size(L) I ? E A '' Mm$ nN?size(L) m ? 1 n ? C '' size(ME B GN) ans ? 1 A -. $i4uri de o4era%ii MatLa& O4era%ii arit'etice www.cartiaz.ro Carti si articole online gratuite de la A la Z "enu'ire !ota%ie E+e'4lu !otD 7dunare + 7=8 Scdere - 7!8 Multiplicare vectorial * 7P8 Se realizeaz conorm regulilor prelucrrii vectoriale Jmprirea vectorial la stnga (8 la 7) \ 7Q8 Jmprirea vectorial la dreapta (7 la 8) / 7<8 ,idicare la putere vectorial ^ 7RI +ransponare vectorial ' 7K Multiplicare scalar .* 7..P8 Se prelucreaz element cu element Jmprirea vectorial la stnga (8 la 7) .\ 7.Q8 Jmprirea vectorial la dreapta (7 la 8) ./ 7.<8 ,idicare la putere vectorial .^ 7..RI +ransponare vectorial .' 7..K O4era%ii rela%ionale O4era%ii logice "enu'ire !ota%ie E+e'4lu "enu'ire !ota%ie E+e'4lu Mai mare > 7 ' 8 Logic *H+ S S7 Mai mic < 7 T 8 Logic 7*( E 7 E 8 Mai mare i egal >= 7'? 8 Logic H, U 7U8 Mai mare i egal <= 7 T? 8 1dentic egal == 7 ?? 8 (eerit ~= 7S?8 ;. 8un%ii 'ate'atice MatLa& "enu'ire !ota%ie E+e'4lu !otD Modulul abs(X) abs(!1A)?1A Vng%iul angle(X) '' angle(A=Bi) ans ? >.DEGA -omlexul X=a+bi se reprezint #n orma re ij $ unde a = r cosj, b = r sinj "artea real i imaginar real(X) imag(X) -on.ugat numrului complex conj(X) ''con.(E=Ai) ans ? E.>>!A.>>i :umcii de rotungire ceil(X) ''ceil(E.B) ans ?A ,otungeste la cel mai apropiat intreg spre =W fix(X) ''ix(E.B) ans ? E +runc%ieaz partea zecimal floor(X) ''loor(E.C) ans ? E ,otungeste la cel mai apropiat intreg spre !W round(X) ''round(E.C) ans ? A ''round(E.B) ans ? E ,otungeste la cel mai apropiat intreg ,estul #mpririi #ntregi mod(X,Y) '' mod(G$E) ans ?1 Semnul argumentului sign(X) ,dcin ptrat sqrt(X) '' sXrt(;) ans ? E.EAC1 Exponenta e x exp(X) '' exp(1) ans ? E.G1FA e x=iy ? e x (cos y=i siny) )xponenta binar 2 x pow(X) Logaritm natural$ #n baza E$ #n baza 1> log(X) log(X) log!"(X) L'> :uncii trigonometrice sin(X) cos(X) tan(X) cot(X) csc(X) sec(X) 7rgumentul L se exprim #n radiani YYYY www.cartiaz.ro Carti si articole online gratuite de la A la Z :uncii trigonometrice inverse asin(X) acos(X) atan(X) acot(X) acsc(X) asec(X) :uncii %iperbolice 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 :uncii %iperbolice inverse asin#(X) acos#(X) atan#(X) acot#(X) acsc#(X) asec#(X) H expresie matematic include operanzi$ operaii aritmetice$ uncii standard i paranteze rotunde. .. Regi'uri de 4rogra'are +recerea #n regimul MatLab de programare selectm meniul 8ile din ereastra de comenzi. La aceast comand editorul propune dou opiuni9 !ew (crearea unui nou M!iier) sau O4en (desc%iderea iierului existent cu extensia .'B. )xist dou eluri de Z!iiere9 -scenariu (sau script) !i -"unc#ie$ -scenariu 5 reprezint un iier care conine o succesiune de instruciuni i comentarii (linii care se incep cu caracterul [). :iierul -"unc#ie poate avea parametri de intrare i ieire$ inclusiv i variabile interne locale. -"unc#ie poate i apelat din alte programe$ se inclide #n biblioteca de uncii ale sistemului #n orm de iiere textuale. 7ntetul -"unc#iei are orma9 )unction 9%parametrii&ie!ire'== %nume&"unc#ie' (%parametri&intrare') Aten%ie7 !u'ele )i*ierului tre&uie sD )ie identic cu nu'ele )unc%iei (e exemplu$ uncia de calcul a ariei i perimetrului dreptung%iului cu laturile a i b se programeaz #n iierul (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 isier 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 www.cartiaz.ro Carti si articole online gratuite de la A la Z Lansarea iierului script se realizeaz prin culegerea denumirii iierului (cu litere mici i r extensia .') #n linia de comenzi9 '' cdrept *+ 22 (in variabilele s i p a ost creat vectorul rezultant re). 7isarea valorilor vectorului re) se realizeaz cu comanda MatLab dis4. :iierul script poate i apelat direct din linia de comenzi indicnd valorile mri$ilor de intrare #n partea dreapt a unciei9
'' Ms$pN?drept(A$;) s ?1; p ?1C 0. Progra'area structurilor algorit'ice 1nstruciunea de organizare a salturilor condiionate are una din urmtoarele orme9 i) T condiie ' i) T condiie' i) T condiie' Tcomenzi' T comenzi' T comenzi' end else elsei) T comenzi' T comenzi' T comenzi' end else T comenzi' end 1n lor de condiie se utilizeaz orice expresie logic construit #n baza operaiilor relaionale i logice. Ciclu cu nu'Drul de re4etDri cunoscut poate i organizat cu instruciune )or #n elul urmtor9 )or \?\al1nit9"as9\al:in Tcomenzi' end unde \al1nit$ "as i \al:in 5 reprezinta valoarea iniial$ pasul i valoare inala a parametrului ciclului. 1mplicit "as are valoarea 1 i poate i omis. Se admit cicluri incluse9 or i?19n or i?19n!1 or .?19m or I?i=19n a(i$.)?x(i)R.O i a(i) T a(I) end m?a(i) end a(i)?a(I) a(I)?m end end end 1n antetul ciclului poate i i un vector$ de exemplu$ construcia I?1O or i?M> ; GN x(I)?ERiO I?I=1O end www.cartiaz.ro Carti si articole online gratuite de la A la Z ormeaz vectorul ]?M1 AE 1EFN. Ciclu cu test initial are construciaC w3ile Tcondiie' Tcomenzi' end i asigur exeutarea comenzilor din ciclu at3t timp c3t condiia este adevrat. -iclu poate #ntrerupt cu instruciunea &rea@C ^%ile aT1 n?n=1 i n'E;> breaI end ... end Instruc%iunea co'utator are construcia9 switc3 Texpresie' case Tvaloarea 1' Tcomenzi' case T valoarea E' Tcomenzi' . . . . . ot3erwise [ poate lipsi Tcomenzi' end 1ntroducerea datelor de la tastatur se realizeaz cu instruciunea %*ariabila'= in4ut (+mesaj) <. Ele'ente de gra)icD MatLa& "entru trasarea graicului unei unctie3i se utilizeaz instruciunea 4lot?+AFAscgB unde + este vectorul argumentului$ iar F !vectorul unctiei$ scg 5 este ir de caractere care speciic tipul i culoare curbei. +rasarea mai multor graice pe ecran se seteaz cu instruciunea su&4lot?ngGAngoAngcB unde ngG 5 este numrul de graice pe vertical$ ngo 5 este numrul de graice pe orizontal$ ngG 5 este numrul graicului curent #n ordine cresc3nd.
ygrax.m % ,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)! www.cartiaz.ro Carti si articole online gratuite de la A la Z 0label(303)!
Jn acest program se genereaz vectorul x cu valori de la > p3n la E_ cu pasul _<1>>. "entru valorile vectorului x se calculeaz unciile y i z. "entru iecare uncie graicul se construiete intr!o ereastr aparte. -u instruciunea grid pe graic se traseaz linii verticale i orizontale. -u title se deineste titlu$ iar cu +la&el i Fla&el se marc%eaz axele graicului.