Documente Academic
Documente Profesional
Documente Cultură
Matrix Laboratory Math Work Inc Pachet de programe de inalta performanta pentru calcul numeric si reprezentari grafice in domeniul stiintei si ingineriei Bibliografie: M. Ghinea, V Fireteanu. Mathlab. Calcul numeric-grafica-aplicatii Ed. Teora 2001
Resurse de calcul
Operatii matematice fundamentale Programare Algebra liniara si functii matriceale Analiza datelor si transformatelor Fourier Analiza numerica neliniara Reprezentarea graficelor 2D si 3D Vizualizarea graficelor Proprietati si resurse grafice Utilizarea interfetei grafice Import si export de documente
Realizare structurala
MATLAB este realizat sub forma unui nucleu de baza, cu interpretor propriu, in jurul caruia sunt construite Toolbox-uri Toolbox=o colectie extinsa de functii MATLAB care dezvolta mediul de programare, pentru a rezolva probleme din domenii variate
Signal Processing - pentru procesarea semnalelor si analiza seriilor temporale Image Processing pentru procesarea imaginilor si a semnalelor bidimensionale Neural Network pentru proiectarea si simularea retelelor neurale Statistics pentru analiza, modelarea si simularea datelor Spline aproximare si modelare folosind functii spline
Symbolic Math este un nucleu integrat, bazat pe pachetul MAPLE V, care cuprinde: - calcul simbolic pentru rezolvarea problemelor de algebra liniara si a ecuatiilor - simplificarea simbolica a expresiilor - evaluarea simbolica a functiilor speciale - accesul la nucleul MAPLE
Control System Design pentru analiza si proiectarea sistemelor automate de control Robust Control pentru sinteza sistemelor care trebuie sa functioneze in conditii de incertitudine System Identification pentru procesarea semnalului in vederea modelarii parametrice si analiza seriilor temporale Analysis and Synthesis pentru analiza si proiectarea sistemelor in prezenta incertitudinii
Meniul Matlab/Start
Matlab Toolboxes Simulink Blocksets Desktop Tools Web Preferences Help Demos
modul linie de comanda fiecare linie este prelucrata imediat si rezultatele sunt afisate (comenzile se introduc in Command Window) modul de lucru cu programe continute in fisiere. Fisierele ce contin instructiuni MATLAB se numesc fisiere M, deoarece au extensia .m (fisierele M pot apele alte fisiere M sau pot contine apeluri recursive)
Fisiere M
fisiere script contin o secventa de comenzi MATLAB . Nu permit integrarea in programe mari, construite pe principiul modularizarii. Sunt apelabile prin tastarea numelui lor. fisiere function pot lucra cu argumente. Pot fi apelate din alte functii Fisierele M sunt salvate implicit in subdirectorul Work, al directorului MATLAB utilizatorul poate extinde functionalitatea MATLAB pentru domeniul in care lucreaza, adaugand noi fisiere M.
Elementul de baza cu care lucreaza Matlab este matricea numerica rectangulara, cu elemente reale sau complexe
ans variabila creata automat, in care se returneaza rezultatul unei expresii care nu a avut nici un nume eps variabila permanenta in care este memorata eroarea relativa pentru calcule in virgula mobila (implicit 2.2204e-016). pi i sau j unitatea complexa inf plus infinit (rezultatul impartirii 1.0/0.0) NaN Not a Number (rezultatul impartirii 0.0/0.0)
nargin variabila pentru testarea numarului de argumente de intrare a unei functii nargout variabila pentru testarea numarului de argumente de iesire a unei functii realmax cea mai mare valoare pozitiva in virgula mobila (1.7977e+308) realmin- cea mai mica valoare pozitiva in virgula mobila (2.2251e-308)
clear X - sterge variabila X clear X Y Z - sterge variabilele X, Y, Z clear sterge toate variabilele disp X afiseaza X. X poate fi un sir de caractere(pus intre apostrofuri), sau o matrice pack compacteaza memoria clc sterge fereastra de comenzi
load incarca date din fisierul matlab.mat load nume fisier[.ext] incarca date din fisierul specificat. Fisierul poate fi in format binar (in acest caz are extensia .mat) sau poate fi un fisier ASCII. Datele continute in fisierul incarcat se regasesc in memorie cu numele temp save nume_fisier nume_variabile format date - salveaza variabilele din zona de lucru, in fisierul specificat. Formatul poate fi ascii sau binar save salveaza toate variabilele din spatiul de lucru in fisierul matlab.mat
Dimensiunile matricilor
size(A) returneaza un vector [nlinii, ncol] [x,y] = size(A) x=nlinii, y=ncol max(size(A)) min(size(A)) maximul si minimul dintre cele 2 dimensiuni ale matricilor length(V) lungimea unui sir u = ones(size(A))
a+rand(n) matrice patratica cu numere aleatoare cu distributie uniforma in intervalul (a, a+1) a*rand(n) matrice patratica cu numere aleatoare cu distributie uniforma in intervalul (0, a) a+(b-a)*rand(n) matrice patratica cu numere aleatoare cu distributie uniforma in intervalul ( a,b)
X = diag(v) construieste o matrice X avand pe diagona principala elementele din vectorul v. Este echivalent cu X=diag(v,0) v = diag(X,k) pentru matricea X, returneaza un vector coloana care contine elementele de pe diagonala k a matricii X.
k=0 diagonala principala. k>0 diagonala k de deasupra diagonalei principale k<0 diagonala k de sub diagonala principala
v = diag(X) e echivalent cu v=diag(X,0) Obs. Daca X nu e matrice patratica, este luata in considerare cea mai mare matrice patratica ce sa poate forma pornind cu X(1,1)
Operatii
operaii dup regulile calculului matriceal operaii cu matrice + , - , * , / A/B=A*B-1, \ (A\B=A-1*B),^. (transpunere); operaii dup regulile calculului scalar operaii cu tablouri (element cu element). Sunt prefixate de simbolul punct .* , ./, .\, .^ C=A.*B C(k,l)=A(k,l)*B(k,l) pentru un scalar k=conjugatul lui k A. se transpune fiecare element O matrice cu numere complexe la transpunere conjuga elementele det(A) determinantul lui A rank(A) rangul matricei A
Elementele matricilor
A(5,8) A(1,: ) linia 1 A( :, 1) coloana 1 A(2:3, 1:2) submatrice T=A(2,: ) >4 matrice de test pentru elementele de pe linia 2, care sunt >4. Coloanele care satisfac cond. dau 1, celelalte dau 0 B=A( : , T ) acele coloane din A care satisfac conditia ca au pe a doua linie o val >4
Generarea vectorilor.
cu pas liniar
V = vmin : pas :vmax rezulta N r= [(vmax vmin)/pas] + 1 V = linspace( Vmin, Vmax, Nr puncte) pas = (Vmax Vmin ) / (Nr-1) v = logspace( vmin, vmax, Nr) N r elemente distribuite logaritmic intre [10vmin, 10vmax].
cu pas logaritmic
Operatori relationali.
< mai mic <= mai mic sau egal > mai mare >= mai mare sau egal == ~= identic diferit
Operatori logici.
Simbol matlab Prioritate
nu si sau
&
2 3
sunt tablouri. v=info este echivalenta cu v = [i, n, f, o] char - creaza un vector de caractere (sir) pornind de la codurile numerice ale caracterelor: ex. char(34,23,78,6) double - converteste un sir intr-un vector al codurilor numerice ale fiecarui caracter. ex: double(jy34)
Redimensionarea matricilor
reshape(A,p,q) reaseaza elementele matricii A, considerate pe coloane, sub forma unei alte matrici cu p linii si q coloane. Daca notam [m,n]= size(A), este necesar ca m*n=p*q Elementele in noua matrice sunt asezate coloana dupa coloana
Redimensionarea matricilor
Exemplu V=1:8 A=reshape(V,4,2) A=A B=reshape(V,2,4) Matricile generate sunt
1 3 5 7 1 2 3 4 A ; B 2 4 6 8 5 6 7 8
Redimensionarea matricilor
flipud(A) simetrizeaza matricea A fata de axa sa de simetrie orizontala (updown) fliplr(A) - simetrizeaza matricea A fata de axa sa de simetrie verticala (left-right) rot90(A) roteste matricea A cu 90 fata de coltul dreapta sus in sens antiorar
abs(x) modul angle(x) argumentul numarului complex sqrt(x) radacina patrata real(x) partea reala imag(x) partea imaginara conj(x) conjugatul round(x) rotunjire la cel mai apropiat intreg
rem(X,Y) = X- fix(X. /Y).*Y , pentru Y~=0 mod(X,Y) = X-floor(X./Y).*Y pentru Y~=0 u si v sunt congruente modulo m daca si numai daca mod(u,m) == mod(v,m) rem(X,0) = NaN rem(X,X) =0, pentru X~=0 rem(X,Y) pt. X~=Y si Y~=0 are acelasi semn ca X. mod(X,Y) for X~=Y and Y~=0 has the same sign as Y. rem(-11,5)=-1 ; rem(11,-5)= mod(-11,5)=4 ; mod(11,-5)= rem(X,Y) si mod(X,Y) sunt egale daca X si Y au acelasi semn dar difera daca X si Y au semne diferite. rem returneaza o valoare intre 0 si sign(X)*abs(Y).
Functii agregat
se aplica vectorilor si matricelor; daca argumentul este un vector rezultatul este un numar; daca argumentul este o matrice, functia se aplica fiecarei coloane, iar rezultatul este un vector linie. Exemplu: Daca A=[1,2,3] Atunci 1 2 3 B sum(A)=6 4 5 6 sum(B)=[5,7,9] sum(sum(B))=21 sum(A,2)=[6 15] Sum(A,2) se aplica liniilor lui A si rezultatul e un vector coloana
Sort
sorteaza elementele unui vector in ordine crescatoare. argumentele complexe sunt sortate crescator dupa modulul lor, iar valorile de modul identic se sorteaza crescator dupa unghi. Forma [y,L] = sort(x) returneaza in y matricea x sortata, iar L este o matrice de indici. Daca x este un vector, atunci y=x(L);
SORT
v=[9 -1 5 0 4] [w,k]=sort(v) u=v(k) a=[1, -9, 5; -3, 7, 9;10, 0, 7] [b,l]=sort(a) Returneaza w =[ -1 0 4 5 9] k =[ 2 4 5 3 1] u =[ -1 0 4 5 9] b =[ -3 -9 5; 1 0 7; 10 l =[ 2 1 1; 1 3 3; 3 2
7 9] 2]