introducere_in_matlab.docx

Upload: mihai-alexx

Post on 14-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

dedicat calcului numeric i opereaz este matricea, de aici

. Resursele sale de calcul i aii matematice fundamentale, D i 3D, realizarea de interfee i sale, MATLAB este alctuit ate TOOLBOX-urile. Acestea pt colecii extinse de funcii e la o versiune la alta, pentru a area numeric a semnalelor cel SSING.

TLAB tre:

rea pe ecranul calculatorului de meniuri aferent. Simbolul la nceputul fiecrei linii de entru reprezentri grafice vor ce afiarea unor grafice.

duse n linia de comand prin a se face ca ntr-o list).

1. INTRODUCERE N MATLAB

1.2.1. 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)

etc.

Pentru mai multe informaii tastai help format.

Exemple:

format short

x=pix =3.1416

format long

xx =3.14159265358979

S se verifice i celelalte tipuri de format folosind aceeai valoare x.

clear terge din memorie una sau mai multe variabile.

Sintaxe: clear v terge din memorie variabila v. clear v1 v2 terge din memorie variabilele v1 i v2 (sintaxa e valabil pentru oricte variabile).

clear terge din memorie toate variabilele definite pn n acel moment.

lookfor listeaz toate numele de fiiere care au n prima linie a help-ului cuvintele menionate ca argument, precum i prima linie din help.

2

de fiiere care conin n prima e din help.

iiere care conin n prima linie lp.

rectorul curent sau din orice alt

rectorul curent.

r din directorul nume. schimb directorul de lucru.

himb directorul de lucru n B este instalat pe c:\ ).

un anumit director nu poate fi ul de lucru .

AB

returnat rezultatul unui calcul, e.

enzi):

s-a alocat nici un nume alocat numele x

plexe.

1. INTRODUCERE N MATLAB

Atenie:

- dac dup o linie de comand urmeaz semnul ; atunci rezultatul nu va

mai fi afiat (excepie fac comenzile grafice);

- dac n faa unei linii de comand se pune semnul % atunci se face

abstrac ie de linia respectiv (este interpret ca o linie de comentariu );

- dac se dorete continuarea unei instruciuni pe linia urmtoare se folosesc

urmate de enter;

Verificai urmtoarele exemple (se va tasta direct n fereastra de comenzi):

p=pi;// nu se va afia valoarea p (dar exist n memorie)

q=pi/2// va afi a valoarea q

%r=pi/4// nu se ia n considerare aceast linie

v=r/2// va rezulta o eroare deoarece nu l cunoate pe r

s=1+2+3+... enter

4+5+6// instruciunea se continu i pe linia urmtoare

1.2.3. Matricea element de baz n MATLAB

MATLAB lucreaz numai cu un singur tip de obiecte i anume matrice

numerice, avnd elemente reale sau complexe. Astfel scalarii sunt privii ca

matrice de dimensiune 1 x 1, iar vectorii ca matrice de dimensiune 1 x n (dac

este vector linie) sau n x 1 (dac este vector coloan).

Reguli privind modul de definire a matricelor:

- elementele matricei sunt cuprinse ntre paranteze drepte [ ]

- elementele unei linii se separ prin pauz (blanc) sau virgul

- liniile matricei se separ prin;sau enter.

Exemplu: Fie matricea A =123B = (78 9),1

i vectoriiC =

4 5 6 2

A=[1,2,3;4,5,6]A =123

A=[1 2 3;4 5 6]A =456

123

A=[1 2 3 enter456

4 5 6]A =123

B=[7 8 9]B =456

789

4

-1 -2

M corespunztor liniei i i mrarea elementelor fcndu-se

vector.

i:

= 6 = 5 == 8 -2

i matrice sau s mai adugm ice, procedm ca n exemplul

123

450

123

450

00-3

-1 -2 6

mari pornind de la matrice de folosi matricea A i vectorii B 3 x 1):

1. INTRODUCERE N MATLAB

D=[A;B]D =123

450

00-3

789

// s-a construit matricea D de dimensiune 4 x 3, prin adugarea vectorului B la

matricea A (ca ultim linie).

Atenie: A i B au acelai numr de coloane (3) pentru a fi posibil construcia.

E=[A,C]E = 123-1

450-2

00-36

// s-a construit matricea E de dimensiune 3 x 4, prin adugarea vectorului C la matricea A (ca ultim coloan).

Atenie: A i C au acelai numr de linii (3) pentru a fi posibil construcia.

Dac v este un vector atunci:

v(i:k) selecteaz elementele de pe poziiile i, i + 1, i + 2, , k ale vectorului v; dac i > k atunci vectorul rezultat este gol (nu are nici un element).

v(i:j:k) selecteaz elementele de pe poziiile i, i + j, i + 2j, pn la k, ale vectorului v (selecteaz cu pasul j); dac j > 0 i i > k sau j < 0 i i < k atunci vectorul rezultat este gol. v([i,j,k]) selecteaz elementele de pe poziiile i, j i k.

v(:) dac vectorul este linie atunci el devine coloan; dac vectorul este coloan atunci el rmne nemodificat.

Dac M este o matrice atunci: M(:,j) selecteaz coloana j a matricei M. M(i,:) selecteaz linia i a matricei M. M(:,i:j) selecteaz coloanele de la i la j ale matricei M. M(i:j,:) selecteaz liniile de la i la j ale matricei M. M(:,i:j:k) selecteaz coloanele i, i + j, i + 2j , pn la k ale matricei M (selecteaz cu pasul j). M(i:j:k,:) selecteaz liniile i, i + j, i + 2j , pn la k ale matricei M.

M(i:j,k:l) extrage submatricea format cu elementele aflate la intersecia liniilor de la i la j i coloanelor de la k la l ale matricei M. M(:,[i,j,k]) selecteaz coloanele i, j i k ale matricei M. M([i,j,k],:) selecteaz liniile i, j i k ale matricei M.

6

// unde D este matricea definit anterior (vezi pag. 6)

tricea format cu elementele r l, m i n ale matricei M.

matricei M i le pune sub forma numr pe coloane).

M i le pune sub forma unui una sub alta, sub forma unui

ea A i vectorii B i C din i vectori.

n vector linie v cu elementele egal cu pas (pasul poate fi i fie mai mare dect valoarea

vector linie v cu elementele egal cu 1.

_elemente) se genereaz la minim la maxim, cu pas u numr_de_elemente .

eaz un vector linie v avnd 50i 10maxim .

_elemente) se genereaz emente elemente distribuite

1. INTRODUCERE N MATLAB

Atenie: Dac maxim=pi atunci elementele vor fi distribuite logaritmic ntre

10minim i .

Verificai urmtoarele exemple: g=logspace(1,2) r=logspace(1,pi) h=logspace(1,2,5) k=logspace(0,pi,5)

Matricea goal

Sintaxa:- x=[] genereaz o matrice goal (fr nici un element)

Exemplu:

x=[]x = []

ones - Matricea unitateSintaxe:

-ones(n) returneaz o matrice de dimensiune n x n cu toate elementele egale cu 1.-ones(m,n) returneaz o matrice de dimensiune m x n cu toate elementele egale cu 1.-ones(size(M)) returneaz o matrice de dimensiunea matricei M cu toate elementele egale cu 1.

Verificai urmtoarele exemple:

ones(3)

ones(1,5)

ones(5,1)

ones(3,2)

ones(size(D))

zeros - Matricea zeroSintaxe:

-zeros(n) returneaz o matrice de dimensiune n x n cu toate elementele egale cu 0.-zeros(m,n) returneaz o matrice de dimensiune m x n cu toate elementele egale cu 0.-zeros(size(M)) returneaz o matrice de dimensiunea matricei M cu toate elementele egale cu 0.

8

// unde D este matricea definit anterior (vezi pag. 6)

a definit anterior (vezi pag. 6)

imensiune n x n.

siune m x n avnd elementele lor egale cu 0.

e de dimensiune egal cu rimei diagonale egale cu 1 iar

definit anterior (vezi pag. 6) ribuie uniformne n x n avnd drept elemente 0 i 1.

mensiune m x n avnd drept rm ntre 0 i 1.

dimensiunea matricei M avnd uniform ntre 0 i 1.

a definit anterior (vezi pag. 6) stribuie normal (gaussian)

une n x n avnd drept elemente ian) de medie nul i variana

1. INTRODUCERE N MATLAB

randn(m,n) returneaz o matrice de dimensiune m x n avnd drept elemente numere aleatoare cu distribuie normal de medie nul i variana unitar. randn(size(M)) returneaz o matrice de dimensiunea matricei M avnd drept elemente numere aleatoare cu distribu ie normal (gaussian) de medie nul i variana unitar.

Verificai urmtoarele exemple:

randn(3)

randn(1,5)

randn(5,1)

randn(3,2)

randn(size(D))

diag - Matricea diagonalSintaxe:Dac v este un vector (linie sau coloan) atunci

-diag(v) returneaz o matrice ptrat diagonal, cu elementele vectorului v pe diagonala principal .

-diag(v,k) returneaz o matrice ptrat cu elementele vectorului v pe diagonala k deasupra celei principale, dac k > 0, sau sub cea principal dac k < 0; restul elementelor sunt 0.

Dac M este o matrice atunci

-diag(M) returneaz un vector coloan ce conine elementele de pe diagonala principal a matricei M.-diag(M,k) returneaz un vector coloan ce conine elementele din matricea M de pe diagonala k deasupra celei principale, dac k > 0, sau sub cea principal, dac k < 0.

Se va defini un vector linie a i o matrice A: a=randn(1,5)

A=randn(5)

Verificai urmtoarele exemple: diag(a)

diag(a,1) diag(a,-1) diag(a,2) diag(a,-2) diag(A) diag(A,2) diag(A,-2) diag(diag(A))

10

ular din matricea M (anuleaz nalei principale).

ntele de deasupra diagonalei k a principal vezi sintaxa de la

toarele exemple:

ular din matricea M (anuleaz principal)

ntele de sub diagonala k din principal vezi sintaxa de la

toarele exemple:

ul i inversa unei matrice variabilelor

unci

e (lungimea) vectorului v. umrul de linii i numrul de

inii (l) i numrul de coloane

mensiuni va fi egal cu 1; dac e coloan atunci c = 1.

1. INTRODUCERE N MATLAB

Se va defini un vector linie a, un vector coloan b i o matrice C: a=randn(1,5)

b=randn(5,1)

C=randn(3,4)

Verificai urmtoarele exemple: length(a)

length(b)

length(C)

size(a)

size(b)

size(C)

det Determinantul unei matriceSintax:Dac M este o matrice ptratic (numrul de linii = numrul de coloane) atunci - det(M) calculeaz determinantul matricei M.

Se vor defini dou matrice:

M=randn(4)

N=randn(4,3)

Verificai urmtoarele exemple: det(M)

det(N)

inv Inversa unei matriceSintax:Dac M este o matrice ptratic cu determinantul diferit de zero atunci - inv(M) calculeaz inversa matricei M.

Verificai folosind matricele M i N definite la punctul precedent.

1.2.6. Instruciuni de control logic. Operatori relaionali i operatori logici

if,else,elseif Execuia condiionatSintaxe:

- if expresie instruciuni

end

// dac expresie este adevrat se execut instruciuni; dac expresie este fals se trece dup end.

12

nstruciuni_1; ruciuni_2.

instruciuni_1;

_ 2 este adevrat se execut

de un anumit numr de ori

niial la final cu pasul

iuni atta timp ct o condiie

instruciuni.

1. INTRODUCERE N MATLAB

Operatori logici

-&- operatorul I logic

-|- operatorul SAU logic

-~- operatorul NU logic

1.2.7. Crearea programelor MATLAB (crearea fiierelor de comenzi *.m)

Pentru secvene lungi de comenzi se recomand crearea i lansarea n execuie a unui program MATLAB. Acesta este un fiier text avnd extensia

.m i coninnd succesiunea dorit de comenzi MATLAB. Dup creare, fiierul devine o nou comand extern MATLAB, care poate fi lansat n execu ie prin simpla introducere de la tastatur a numelui fiierului (fr extensia .m).Pentru crearea unui astfel de fiier se parcurg urmtorii pa i:

-n bara de meniuri a ferestrei de comenzi se selecteaz File, iar n interiorul acesteia New, urmat de M-file. Se va deschide astfel o nou fereastr (sesiune de editare cu editorul NOTEPAD) cu bar de meniuri proprie i cu numele Untitled. n acest fiier se scrie programul MATLAB dorit.

-pentru a salva fiierul astfel creat sub un alt nume se selecteaz din bara de meniuri a noii ferestre comanda File, urmat de Save As; va aprea o nou fereastr de dialog n care vom preciza numele fiierului (File name:) nsoit de extensia .m i locul unde dorim s l salvm (Save in:).

Atenie:

-pentru a rula un program MATLAB trebuie ca directorul n care a fost salvat s fie directorul de lucru ( vezi comanda cd , pagina 3).-pentru a fi luate n considerare eventualele modificri fcut ntr-un program MATLAB, nainte de o nou rulare, fiierul trebuie salvat (File, urmat de Save).

E1.Exerciiu:

Folosind sintaxele i indicaiile din seciunile 1.2.6. i 1.2.7. realizai un program MATLAB care s genereze un vector cu elemente aleatoare cu distribuie normal (gaussian) i s afieze elementele negative ale acestui vector.

1.2.8. Crearea funciilor MATLAB (crearea fiierelor funcie)

Dac prima linie a unui fiier MATLAB (*.m) conine la nceput cuvntul function atunci fiierul respectiv e declarat ca fi ier funcie. Aceste fiiere pot fi adugate ca funcii noi n structura MATLAB. Forma general a primei linii a unui fiier funcie este:

14

(parametrii_intrare)

l ca fiier funcie.

ub care se salveaz fiierul .m me nu poate fi identic cu cel al

trii de ieire ai funciei; trebuie drepte.

metrii de intrare ai funciei; ranteze rotunde.

erelor complexe

ctori) element cu element

ctori) element cu element

u vector) element cu element

3 0), b = 1/3 2 2

A.*B , A*B. , a.*a , B. , A , A. , A^2 , 3 , b.^3 , 2/A , 2./A ,

1. INTRODUCERE N MATLAB

Operaii asupra numerelor complexe

- abs calculeaz valoarea absolut (modulul). - angle calculeaz faza.

- conj calculeaz complex conjugatul. - real extrage partea real.- imag extrage partea imaginar.

Verificai comenzile utiliznd drept argumente elementele A, B, a i b definite anterior.

1.2.10. Funii matematice uzuale

Funciile radical, exponenial i logaritm

- sqrt extragere radical de ordinul 2 (rdcina ptrat). - exp calculeaz exponeiala (puteri ale numrului e).

- log calculeaz logaritmul natural (logaritm n baza e). - log2 calculeaz logaritmul n baz 2.- log10 calculeaz logaritmul zecimal (logaritm n baza 10). - pow2 calculeaz puteri ale lui 2.

Funciile trigonometrice directe- sin calculeaz sinusul

- cos calculeaz cosinusul - tan calculeaz tangeta- cot calculeaz cotangenta - sec calculeaz secanta- csc calculeaz cosecanta

Funciile trigonometrice inverse- asin calculeaz arcsinus

- acos calculeaz arccosinus - atan calculeaz arctangenta- atan2 calculeaz arctangenta dac argumentul este complex - acot calculeaz arccotangenta- asec calculeaz arcsecanta

- acsc calculeaz arccosecanta

Funciile hiperbolice directe- sinh calculeaz sinusul hiperbolic

- cosh calculeaz cosinusul hiperbolic

16

cestor funcii folosii comanda axa de la pagina 2).

rului v. ectorului v.

ca elemente suma elementelor

avnd caelemente produsul

3, a = (13 8)

6

1. INTRODUCERE N MATLAB

max,min Maximul i minimulSintaxe:

Dac v este un vector i M este o matrice atunci

- max(v) returneaz elementul maxim al vectorului v. - min(v) returneaz elementul minim al vectorului v.-[m,p]=max(v) returneaz elementul maxim al vectorului (m) precum i indicele elementului maxim (p); dac exist maxime multiple se returneaz indicele primului dintre ele.

-[m,p]=min(v) returneaz elementul minim al vectorului (m) precum i indicele elementului minim (p ); dac exist minime multiple se returneaz indicele primului dintre ele.-max(M) returneaz un vector linie avnd ca elemente maximul elementelor din fiecare coloan a matricei M.

-min(M) returneaz un vector linie avnd ca elemente minimul elementelor din fiecare coloan a matricei M.

-[m,p]=max(M) returneaz un vector linie m avnd ca elemente maximul elementelor din fiecare coloan a matricei M precum i un vector linie p ce conine pozi ia maximului respectiv n cadrul fiecrei coloane.

-[m,p]=min(M) returneaz un vector linie m avnd ca elemente minimul elementelor din fiecare coloan a matricei M precum i un vector linie p ce conine pozi ia minimului respectiv n cadrul fiecrei coloane.

Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.

mean Media aritmeticSintaxe:Dac v este un vector i M este o matrice atunci- mean(v) calculeaz media aritmetic a elementelor vectorului v.

-mean(M) returneaz un vector linie avnd ca elemente media aritmetic a elementelor fiecrei coloane din matricei M.

Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.

E2.Exerciiu:

Realizai o funcie MATLAB care avnd drept parametru de intrare un vector cu elemente complexe returneaz ca parametri de ieire:- media aritmetic a prilor reale ale elementelor vectorului;- un vector ce con ine elementele vectorului iniial ridicate la ptrat;- o matrice obinut din nmulirea vectorului iniial cu transpusul su.

18

onate liniare

e reale se vor reprezenta grafic dice este 1, ultimul indice este vector cu elemente complexe e partea real (pe abscis) i de ale.c coloanele matricei M (fiecare tor i reprezentat ca n sintaxa

i N este o matrice de aceeai

ntele vectorului y n funcie de ctorului x nu este egal cu osibil.

ste egal cu numrul de linii al grafic coloanele matricei M n imea vectorului x este egal cu or reprezenta pe acelai grafic vectorului x; dac lungimea mensiunile matricei M atunci

grafic coloanele matricei N n n matricea N va fi reprezentat 1, 2, , numrul de coloane); siune atunci reprezentarea nu

i fereastr grafic, utiliznd o

or reprezenta pe acelai grafic n funcie de xn (pot fi vectori fcute n sintaxele anterioare, rice; dac xi i yi (i =1, 2,,n) a nu este posibil.

reprezentare a graficelor. Vezi

1. INTRODUCERE N MATLAB

Funcia stem realizeaz o reprezentare n form discret a datelor. Pentru variantele de MATLAB 5 sau MATLAB 6 se pot folosi oricare din sintaxele prezentate la plot, exceptnd ultima sintax. Pentru variantele de MATLAB 4 argumentele de intrare ale funciei stem nu pot fi dect vectori, iar reprezentarea grafic nu se poate face dect cu o singur culoare (se pot folosi ns mai multe tipuri de linii i markere).Vezi help stem.

loglog,semilogx,semilogy Reprezentri grafice n coordonate

logaritmice

Pentru acest tip de reprezentri se folosesc func iile loglog, semilogx

i semilogy. Sintaxele rmn aceleai ca la funcia plot, singura deosebire

fiind modul de scalare al axelor. Astfel funcia loglog scaleaz ambele axe

(abscisa i ordonata) folosind logaritmul n baz 10, deci pe axe vom avea puteri

ale lui 10. Funciasemilogx realizeaz acela i tip de scalare ns numai pe

abscis iar funciasemilogy procedeaz n acelai mod ns numai pe

ordonat.

subplot Divizarea ferestrei grafice

Dac dorim ca fereastra grafic s conin mai multe reprezentri grafice

se poate folosi funcia subplot care mparte fereastra grafic n mai multe

miniferestre, n fiecare dintre acestea putnd fi plasat cte un grafic. Fereastra

grafic este astfel privit sub forma unei matrice cu m linii i n coloane, deci n

total mn miniferestre. Numrarea acestor miniferestre se face pe linii. De

exemplu, dac vrem s mprim fereastra grafic n 33 = 9 miniferestre vom

avea urmtoarea ordine:123

456

Sintaxa:789

-subplot(m,n,p) mparte fereastra grafic ntr-o matrice m x n (mn

miniferestre), iar p reprezint numrul fiecrei miniferestre n matricea

grafic respectiv (numrarea se face pe linii); sintaxa respectiv este urmat de comanda propriu-zis de afiare a graficului, care poate fi oricare din cele prezentate pn acum (stem, plot , loglog, semilogx, semilogy).

axis Schimbarea limitelor axelor

Dac se dorete vizualizarea numai a unei anumite poriuni dintr-un grafic, corespunztoare unor anumite intervale pe abscis i ordonat, se va folosi comanda axis.

20

a vizualiza ntre valorile x0 i ax se plaseaz dup comanda

Precizarea titlului graficului e grafic. Plasarea unui text pe

ului, ca titlu, textul text. cheta de pe abscis.

cheta de pe ordonat.

nind astfel citirea graficului. text (folosind mouse-ul). prezentare grafic.

adugm n aceeai fereastr olosi funcia hold.

n aceeai fereastr grafic eprezentarea n ferestre grafice

1. INTRODUCERE N MATLAB

plot(n,s,r*),grid,title(sinus),xlabel(n) hold on stem(n,s),grid,xlabel(n),ylabel(amplitudine) hold off

figure(1)

plot(n,s),grid,axis([0 pi min(s) max(s)]) figure(2)plot(n,s,n,s-pi/2),grid

// se nchid ambele ferestre grafice i se continu tastarea n fereastra de comenzi c=cos(x); subplot(2,1,1),stem(n,s),title(sinus),grid subplot(2,1,2),stem(n,c),title(cosinus),grid M=[c;s];

plot(n,M),grid

N=[n;n];

plot(N,M),grid

plot(N,M),grid

z=1:1000;

p=z.^2;

plot(z,p),grid

loglog(z,p),grid

semilogx(z,p),grid

semilogy(z,p),grid gtext(Ultimul grafic!!!)

// cu ajutorul mouse-ului plasai pe grafic textul respectiv, n poziia dorit.

entarea mai multor grafice n trebui s fie precedat de un rul figurii respective. n caz rea numai ultima reprezentare ce va fi tears de fiecare

nzi, explicnd rezultatele:

l(n)

l(n)

));

E3.Exerciiu:

Realizai un program MATLAB care genereaz dou secvene x1[n] definite astfel:

,pentru 15 n 25

x1[n] =sin17n

x2,pentru0 n 50

[n] = cos23n

i reprezint cele dou secven e:

-figura 1 n acela i sistem de coordonate (pe acelai grafic);

-figura 2 folosind dou miniferestre grafice plasate una sub alta.

Reprezentai cele dou figuri folosind comandaplotiar apoi

reprezentarea lor folosind comanda stem.

i x2[n]

ncercai

22