Sunteți pe pagina 1din 6

BAZELE PROGRAMRII N MEDIUL MATLAB

1. Noiuni generale Sistemul de programare MatLab (Matrix Laboratory) reprezint un mediu interactiv de calcul a problemelor inginereti i tiinifice avnd ca un singur tip de date matricea. Programele elaborate n mediul MatLab se salveaz n fiiere cu extensia .m, numite M-fiiere. MatLab este dotat cu un puternic aparat al matematicii de calcul i de reprezentare grafic. Pentru diferite aplicaii tehnice MatLab conine pachete specializate numite Toolbox-uri cu destintaie n domeniul respectiv. Sistemul permite schimbul informaiei cu editorul de texte Microsoft Word, 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 de comenzi. Dup acest caracter poate fi culeas o comand sau expresie. Dac se culege o expresie matematic atunci MatLab-ul poate fi utilizat n regim de calculator. De exemplu, cu expresia >>24+5 are loc calcularea sumei (la apsarea tastei ENTER) i cu variabila de sistem ans se afieaz rezultatul ans = 29. Cu comanda >>help sqrt se lanseaz sistemul de ajutorare MatLab, concret asupra funciei standard sqrt. Dac se dorete executarea comenzii sau a expresiei fr afiare atunci comanda se finiseaz cu caracterul ;. Identificarea variabilelor se realizeaz n mod tradiional ca o succesiune de litere latine, cifre i caracterul _ , obligatoriu ncepndu-se cu o liter. Atenie! n MatLab literele mari i mici nu sunt identice tergerea ferestrei de comenzi prin executarea comenzii clc. Funcii MATLAB de interes general help furnizeaz informaii despre MATLAB i funciile acestuia. Sintax: help nume furnizeaz informaii despre nume (poate fi un nume de funcie sau un nume de director).

Exemplu: help fft furnizeaz informaii despre transformata Fourier discret. who listeaz numele variabilelor din spaiul de lucru. whos furnizeaz informaii suplimentare referitoare la variabilele din spaiul de lucru (nume, dimensiune etc.). format stabilete formatul extern de afiare al numerelor pe ecran. Sintaxa: format opiune parametrul opiune poate fi: - short 5 cifre // formatul implicit - long 15 cifre - short e 5 cifre + exp (puteri ale lui 10) - long e 15 cifre + exp (puteri ale lui 10) Exemple: format short x=pi x = 3.1416 format long xx= 3.14159265358979 O matrice poate fi introdus prin atribuire, de exemplu cu expresiile >> a=[1 2 3; 4 5 6] >> x=[1 -2 5 -4] se formeaz matricea a cu dou linii i trei coloane i vectorul-linie x cu patru elemente. Elementele matricei sunt incluse n paranteze ptrate. Elementele unei linii se separ cu spaiu sau virgul, iar liniile cu caracterul ;. Pentru selectarea unor elemente se utilizeaz indecii inclui n paranteze rotunde i separai prin virgule, de exemplu, (k,3) determin elementul al treilea din linia cu indicele k, iar a(:,3) coloana a treia n ntregime. n MatLab pot fi utilizate att mrimi reale, ct i mrimile complexe cu caracterele i sau j n calitate de unitate imaginar:

>> a=1+2i >> b=1-3i

a = 1.0000 + 2.0000i b = 1.0000 - 3.0000i

Pentru determinarea lungimei vectorului se utilizeaz functia length : >> X=[ 1 0 -3 6 7 13]; >> k=length('Mesajul meu') >> k=length([1 4 7 ; 2 0 -2]) >> k=length(X) k = 11 k=3 k=6 iar dimensiunile matricei - functia size : >> X =[ 1 0 -3 ; 6 7 13] >> [m, n]=size(X) >> size([2 4 7]) >> k=size(X) m=1 ans = 1 3 k= 2 3 n=6 2. Tipuri de operaii MatLab

Operaii aritmetice
Denumire Adunare Scdere Multiplicare vectorial Notaie Exemplu
A+B A-B A*B

Not

mprirea vectorial la stnga (B la A) mprirea vectorial la dreapta (A la B) Ridicare la putere vectorial Transponare vectorial Multiplicare scalar mprirea vectorial la stnga (B la A) mprirea vectorial la dreapta (A la B) Ridicare la putere vectorial Transponare vectorial

A\B A/B A^k A' A..*B A.\B A./B A..^k A..'

Se realizeaz conform regulilor prelucrrii vectoriale

Se prelucreaz element cu element

Operaii relaionale
Denumire Mai mare Mai mic Mai mare i egal Mai mare i egal Identic egal Deferit Notaie > < >= <= == ~= Exemplu
A>B A<B A>= B A <= B A == B A~=B

Operaii logice
Denumire Logic NOT Logic AND Logic OR Notaie Exemplu ~A ~ A &B & A|B |

3. Funii matematice MatLab Denumire Notaie Exemplu abs(X) abs(-13)=13 Modulul angle(X) >> angle(3+4i) ans = 0.9273 Unghiul Partea real i imaginar Conjugat numrului complex Fumcii de rotungire
real(X) imag(X) conj(X) ceil(X) fix(X) floor(X) round(X) >>conj(2+3i) ans = 2.00-3.00i >>ceil(2.4) ans =3

Not
Comlexul X=a+bi se reprezint n forma reij, unde a = r cosj, b = r sinj

>>fix(2.4) ans = 2 >>floor(2.6) ans = 2 >>round(2.6) ans = 3 >>round(2.4) ans = 2 >> mod(7,2) ans =1

Rotungeste la cel mai apropiat intreg spre + Trunchieaz partea zecimal Rotungeste la cel mai apropiat intreg spre - Rotungeste la cel mai apropiat intreg

Restul mpririi ntregi Semnul argumentului Rdcin ptrat Exponenta ex Exponenta binar 2x Logaritm natural, n baza 2, n baza 10 Funcii trigonometrice Funcii trigonometrice inverse Funcii hiperbolice Funcii hiperbolice inverse

mod(X,Y) sign(X) sqrt(X) >> sqrt(5) ans = 2.2361 exp(X) >> exp(1) ans = 2.7183 pow2(X) log(X) log2(X) log10(X) sin(X) cos(X) tan(X) cot(X) csc(X) sec(X) asin(X) acos(X) atan(X) acot(X) acsc(X) asec(X) sinh(X) cosh(X) tanh(X) coth(X) csch(X) sech(X) asinh(X) acosh(X) atanh(X) acoth(X) acsch(X) asech(X)

ex+iy= ex(cos y+i siny) X>0 Argumentul X se exprim n radiani !!!!

sh(X)=(eX-e-X)/2 , ch(X)=(eX+e-X)/2

O expresie matematic include operanzi, operaii aritmetice, funcii standard i paranteze rotunde. 4. Regimuri de programare Trecerea n regimul MatLab de programare selectm meniul File din fereastra de comenzi. La aceast comand editorul propune dou opiuni: New (crearea unui nou M-fiier) sau Open (deschiderea fiierului existent cu extensia .m). Exist dou feluri de -fiiere: -scenariu (sau script) i -funcie. -scenariu reprezint un fiier care conine o succesiune de instruciuni i comentarii (linii care se incep cu caracterul %). Fiierul -funcie poate avea parametri de intrare i ieire, inclusiv i variabile interne locale. -funcie poate fi apelat din alte programe, se inclide n biblioteca de funcii ale sistemului n form de fiiere textuale. Antetul -funciei are forma: function [<parametrii_ieire>]= <nume_funcie> (<parametri_intrare>) Atenie! Numele fiierului trebuie s fie identic cu numele funciei De exemplu, funcia de calcul a ariei i perimetrului dreptunghiului cu laturile a i b se programeaz n fiierul drept.m drept.m
function [s,p]=drept(a,b) % Calcul arie i perimetru % al dreptunghiului cu laturile a i b s=a*b; p=2*(a+b);

Pentru setarea valorilor variabilor a i b elaborm utmtorul fisier script cdrept.m


% Setarea valorilor laturile a i b % apelul functiei drept a=5; b=6; [s,p]=drept(a,b); rez=[s p]; calcul disp(rez); %Apelul functiei

% Formarea vectorului cu rezultate de % Afisare rezultat

Lansarea fiierului script se realizeaz prin culegerea denumirii fiierului (cu litere mici i fr extensia .m) n linia de comenzi: >> cdrept
30 22

Din variabilele s i p a fost creat vectorul rezultant rez. Afisarea valorilor vectorului rez se realizeaz cu comanda MatLab disp. Fiierul script poate fi apelat direct din linia de comenzi indicnd valorile mri,ilor de intrare n partea dreapt a functiei:

>> [s,p]=drept(3,5) s =15 p =16 5. Programarea structurilor algoritmice Instruciunea de organizare a salturilor condiionate are una din urmtoarele forme: if < condiie > <comenzi> end if < condiie> < comenzi> else < comenzi> end if < condiie> < comenzi> elseif < comenzi> < comenzi> else < comenzi>

end In lor de condiie se utilizeaz orice expresie logic construit n baza operaiilor relaionale i logice. Ciclu cu numrul de repetri cunoscut poate fi organizat cu instruciune for n felul urmtor: for V=ValInit:Pas:ValFin <comenzi> end unde ValInit, Pas i ValFin reprezinta valoarea iniial, pasul i valoare finala a parametrului ciclului. Implicit Pas are valoarea 1 i poate fi omis. Se admit cicluri incluse: for i=1:n for i=1:n-1 for j=1:m for k=i+1:n a(i,j)=x(i)^j; if a(i) < a(k) end m=a(i) end a(i)=a(k) a(k)=m end end end In antetul ciclului poate fi i un vector, de exemplu, construcia k=1; for i=[0 5 7] x(k)=2^i; k=k+1; end formeaz vectorul =[1 32 128]. Ciclu cu test initial are construcia: while <condiie> <comenzi> end i asigura exeutarea comenzilor din ciclu att timp ct condiia este adevrat. Ciclu poate ntrerupt cu instruciunea break: while a<1 n=n+1 if n>250

break end ... end Instruciunea comutator are construcia: switch <expresie> case <valoarea 1> <comenzi> case < valoarea 2> <comenzi> ..... otherwise % poate lipsi <comenzi> end Introducerea datelor de la tastatur se realizeaz cu instruciunea <variabila>= input ('mesaj) 6. Elemente de grafic MatLab Pentru trasarea graficului unei functiei se utilizeaz instruciunea plot(x,y,scg) unde x este vectorul argumentului, iar y -vectorul functiei, scg este ir de caractere care specific tipul i culoare curbei. Trasarea mai multor grafice pe ecran se seteaz cu instruciunea subplot(ngv,ngo,ngc) unde ngv este numrul de grafice pe vertical, ngo este numrul de grafice pe orizontal, ngv este numrul graficului curent n ordine crescnd. ygfrax.m
% Procesare unui vector x=0:pi/100:2*pi; y=sin(x); z=cos(x).^2; subplot(121); plot(x,y,'g'); grid; title('Functia y=sin(x)'); xlabel('x'); ylabel('y'); subplot(122); plot(x,z,'r'); grid; title('Functia z=cos2x'); xlabel('x'); ylabel('z');

n acest program se genereaz vectorul x cu valori de la 0 pn la 2 cu pasul /100. Pentru valorile vectorului x se calculeaz funciile y i z. Pentru fiecare funcie graficul se construiete intr-o fereastr aparte. Cu instruciunea grid pe grafic se traseaz linii verticale i orizontale. Cu title se defineste titlu, iar cu xlabel i ylabel se marcheaz axele graficului.