Sunteți pe pagina 1din 28

Curs 1

MATLAB The Language of Technical Computing

numere/variabile/functii uzuale

Ce este Matlab-ul?

Pachet de programe de inalta performanta pentru calcul numeric si reprezentari grafice in domeniul stiintei si ingineriei. Produs de firma MathWorks Inc. MATLAB este un limbaj de programare, mai exact un interpretor pentru programarea calculelor numerice complexe. MATLAB integreaza analiza numerica cu calculul matriceal, cu prelucrarea semnalelor s i cu grafica intr-un mediu u sor de utilizat. MATLAB este construit pe baza unui soft sofisticat de calcul matricial de analiza a ecuat iilor liniare. Poate fi utilizate in domenii: matematica aplicata , fizica , chimie, tehnic , finan te s i in orice domeniu care utilizeaza modele ce necesita calcule numerice complexe.

Resurse de calcul
Elementul de baza cu care lucreaza MATLAB-ul este matricea numerica rectangulara, cu elemente reale sau complexe.

Resurse de calcul si reprezentare grafica: Operatii matematice fundamentale, Programare, Algebra liniara si functii matriceale, Analiza datelor si transformatelor Fourier, Analiza numerica neliniara, Reprezentarea graficelor 2D si 3D,Vizualizarea graficelor,Import si export de documente

Programele elaborate in mediul MATLAB se salveaza in fisiere cu extensia .m, numite M-fisiere.

Realizare structurala
MATLAB este realizat sub forma unui nucleu de baza, cu interpretor propriu, in jurul caruia sunt construite Toolbox-uri - aplicatii specifice Toolbox o colectie extinsa de functii MATLAB care dezvolta mediul de programare, pentru a rezolva probleme din domenii variate

Toolbox-uri disponibile
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 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 Optimization pentru optimizare liniara si neliniare Symbolic Math nucleu integrat bazat pe pachetul software MAPLE V

Structura sistemului MATLAB

Structura sistemului MATLAB consta in 5 parti principale:

1. Mediul de dezvoltare - set de unelte care faciliteaza folosirea functiilor si fisierelor MATLAB. Multe dintre acestea reprezinta de fapt interfetele grafice si includ: fereastra principala MATLAB sau MATLAB Desktop, fereastra de comenzi sau Command Window, fereastra ce memoreaza istoria comenzilor sau Command History, browser-ele de Help, Workspace, Files, Search Path etc.

Structura sistemului MATLAB

2. Biblioteca de funcii matematice MATLAB - vasta colectie de algoritmi de calcul, pornind de la functii elementare precum suma, sinus, cosinus si aritmetica complexa, pana la funcii mai sofisticate precum inversare de matrici, calcul de valori proprii, functii Bessel, si transformata Fourier.

Structura sistemului MATLAB

3. Limbajul MATLAB - un limbaj matrice/vector de inalt nivel ce include instructiuni de control al buclelor, functii, structuri de date, comenzi de intrare/iesire si instructiuni de programare orientata pe obiecte. Limbajul MATLAB permite atat programarea superficiala pentru crearea rapida a unor mici programe de calcul specifice, cat si "programarea in detaliu" in vederea dezvoltarii unor programe complexe de nivel superior.

Structura sistemului MATLAB

4. Handle Graphics. Handle Graphics - reprezinta sistemul de grafica MATLAB si include atat comenzi de inalt nivel pentru vizualizarea 2D i 3D a datelor, procesare de imagini, animatie si grafica, cat si comenzi de jos nivel ce permit personalizarea completa a reprezentarilor grafice si construirea integrala a interfetelor grafice (GUI) pentru aplicatiile MATLAB.

Structura sistemului MATLAB

5. MATLAB Application Program Interface (API) - este o biblioteca ce permite scrierea programelor C si Fortran ce interactioneaza cu MATLAB. Biblioteca contine facilitati de apel de subrutine din MATLAB (dynamic linking), de apelare a MATLAB-ul ca pe o masina de calcul, si de citire si scriere de fisiere MAT-files.

Moduri de lucru (mediu de programare)


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)

Fisierele .m
Fisiere script cand trebuie executate in mod repetat

o secventa de comenzi MATLAB. Trebuie salvate cu extensia .m Nu permit integrarea in programe mari, construite pe principiul modularizarii. Sunt apelabile prin tastarea numelui lor.

Fisiere function declararea propriilor functii. Pot lucra cu argumente. Pot fi apelate din alte functii. Numele functiei trebuie sa fie acelasi cu numele fisierului in care se salveaza funtia si trebuie salvat cu extensia .m MATLAB presupune implicit ca noile functii lucreaza pe matrici
Fisierele .m sunt salvate implicit in subdirectorul Work, al directorului MATLAB

Exportul fisierelor functia save

Salvarea unui fisier de date se face cu functia save

Sintaxa: save nume_fisier nume_variabile- format_date

Exemple: save salveaza toate variabilele in fisierul matlab.mat save nume_fisier salveaza toate variabilele/datele in format binar, nume_fisier .mat save nume_fisier x y - salveaza variabilele x si y in format binar, nume_fisier .mat save nume_fisier.ext -ascii -tabs se salveaza toate variabilele in fisierul nume_fisier.ext cu toate datele separate de TAB

Importul fisierelor functia load

Incarcarea unui fisier de date se face cu functia load

load nume_fisier variabilele si valorile lor sunt stocate in workspace si pot si folosite. Implicit se considera extensia .mat

load masuratori.txt datele din fisierul masuratori.txt sunt stocate intr-o variabila numita masuratori. Orice extensie in afara de .mat indica MATLAB-ului ca datele sunt incarcate ca date ASCII, text.

File\Import Data se incarca fisiere extensii diferite.

Caractere speciale
: Se foloseste la generarea diviziunilor / range ( ) Folosite pentru corpul unei functii [ ] Pentru desemnarea unei matrici/vector Continuarea unei comenzi Matlab pe linia de comanda urmatoare , Separator intre instructiuni pe aceiasi linie de comanda (cu ecou pe ecran) ; Separator intre instructiuni pe aceiasi linie de comanda ( fara ecou pe ecran) % Se foloseste pentru a anunta comentarii in program ! Parasirea mediului Matlab pentru o sesiune de lucru extern = Asignare ' Transpusa unei matrici [;] Separator intre liniile unei matrici

Tipuri de date - Numere

In afara datelor de tip numeric, MATLAB lucreaza si cu date de tip logic sau de tip caracter. Notatia zecimala conventionala, cu punct zecimal optional si semne plus sau minus. Notatia stiintifica foloseste litera e pentru a specifica 10 la puterea corespunzatoare. Numerele imaginare folosesc fie i fie j ca sufix. Toate numerele sunt stocate intern folosind formatul long, 64biti standardizat, avand o precizie de circa 16 cifre semnificative si variind intre aproximativ 10-308 si 10+308. Pentru a economisi memorie, numerele pot fi folosite si in forma intreg sau zecimal cu simpla precizie. Exemple de numere: 3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 1i -3.14159j 3e5i

Functia format
Stabileste formatul extern de afisare a numerelor pe ecran. Afecteaza doar afisarea numerelor, nu si precizia de calcul sau modul de salvare . MATLAB-ul executa calculele in dupla precizie, 64 biti. Precizie simpla insemana 32 biti. Sintaxa: format optiune. Optiunile sunt: short afiseaza 5 cifre: 7.4567 short e afiseaza 5 cifre + exponent: 7.4346e+5 long afiseaza 15 cifre 1.333333333333333 long e afiseaza 15 cifre + exponent: 1.333333333333333e+4 hex afiseaza hexazecimal: 3efd4acd5679b1f rat afiseaza rational: 346/127 Bank- afiseaza cu 2 zecimale: 123.45

Variabile
Instructiunile introduse creaza variabile care sunt memorate in spatiul de lucru. MATLAB nu necesita nici un tip de instructiuni de declarare sau dimensionare a variabilelor. Cand MATLAB intalneste un nou nume de variabila, acesta creeaza automat variabila si aloca memoria necesara. Daca variabila deja exista, MATLAB schimba continutul acesteia si daca este necesar aloca o alta cantitate de memorie. Numele de variabile incep obligatoriu cu o litera, urmata de orice numar de litere, cifre, etc. MATLAB foloseste doar primele 63 de caractere ale unui nume de variabil. MATLAB face deosebirea intre litere mari si mici. A si a variabile diferite. ATENIE ! Daca unei variabile i se da numele unei functii, functia nu mai poate fi folosita pana cand variabila nu este stearsa. Exista si un numar de cuvinte rezervate, care nu pot fi folosite ca nume de variabile ('break, 'continue, 'else, 'end, 'for, 'function, 'if, 'return, 'switch, 'while, etc)

Functii si Comenzi pentru Variabile


Datorita faptului ca intr-o sesiune de lucru numarul de variabile folosite poate fi foarte mare, MATLAB dispune de o serie de comenzi si functii care sa usureze munca programatorului: who - pentru a lista variabilele din workspace-ul curent; whos - pentru a lista variabilele si informatii despre dimensiunile lor. exist nume_variabila - pentru a vedea daca variabila specificata se afla in workspace. isvarname nume_variabila - verific daca numele variabilei propuse este valid, returnand valorile 0 sau 1. which -all nume_variabila - verifica daca numele variabilei propuse este folosit de o functie. clear nume_variabila sterge din memorie numele variabilei. Folosita fara un nume, comanda sterge din memorie toate variabilele.

Variabile speciale si constante


Variabile speciale nu pot fi declarate si sunt accesibile global in orice fisier .m. ans Variabila creata automat in care se returneaza rezultatul unei expresii care nu a avut niciun nume

pi
i, j eps realmin realmax inf

3.14159265...
sqrt(-1) Variabila permanentea in care este memorata precizia relativa in virgula mobila 2.2204e-016 Cel mai mic numr in virgula mobila 2.2251e-308 Cel mai mare numr in virgula mobila 1.7977e+308 Infinit, rezultatul impartirii la 0

NaN

Not-a number rezultatul impartirii 0/0

Operatori
Operatorii pot si aritmetici,logici si relationali. Operatiile aritmetice raman valabile ptr nr. Complexe si ptr vectori si matrici a caror elemente sunt nr. complexe.
+ .* ./ .\ .^ ' Adunare Scadere Inmultire Impartire la dreapta Impartire la stanga Putere Transpusa complex conjugata

()

Ordinea operatiilor

Functii de aproximare a numerelor


Aceste functii pot fi aplicate unor scalari sau element cu element unor vectori sau matrici: ceil returneaza un nr. intreg rotunjit la cel mai apropiat numar intreg spre infinit: ceil (5.2)= 6 fix - returneaza un nr. intreg rotunjit la cel mai apropiat numar intreg spre 0: fix (-5.2)= -5 floor returneaza un nr. intreg rotunjit la cel mai apropiat numar intreg spre -infinit: floor (5.2)= 5 round returneaza un nr. intreg rotunjit la cel mai apropiat numar intreg: round(5.2)= 5 rem returneaza restul impartirii argumentelor: rem(-5,2) =-1 mod returneaza modulul restului impartirii argumentelor : mod(5,2)=1 rat returneaza aproximarea unui nr. cu fractii rationale continue: rat(5.2) = 5 +1/5 rats returneaza aproximarea unui nr. cu fractii rationale rats(5.2)=26/5 sign returneaza semnul argumentului sign(-5.2)=-1

Functii de operare cu numere complexe


abs calculeaza modulul numerelor complexe (valoare absoluta): abs(3+4i)=5 angle calculeaza faza numerelor complexe: angle(1+i)=0.7854 unwrap calculeaza partea reala si imaginara a numerelor complexe exprimate sub forma polara: unwrap(1+i) =1+i conj calculeaza conjugata complexa a numerelor complexe: conj(3+i)=3-i imag calculeaza partea imaginara a numerelor complexe: imag(3+5i) =5 real calculeaza partea reala a numerelor complexe: real(7+2i)=7 complex construieste numere complexe daca se cunosc partea reala si imaginara: complex(7,6)=7+6i isreal determina daca elementele matricilor sau vectorilor sunt numere reale: isreal([2 3])=1

Functii putere, radical, exponentiala, logaritm


^ ridicare la putere a numerelor sau a matricilor: 2^2=4 power ridicare la putere a numerelor sau a matricilor element cu element: power(2,2)=4 exp calculeaza exponentiala: exp(2)=7.3891 log- calculeaza logaritmul natural:log(7.3891)=2 log2- calculeaza logaritmul in baza 2:log2(4)=2 log10- calculeaza logaritmul natural:log10(100)=2 pow2- calculeaza puterea lui 2 :pow2(5)=32 sqrt- calculeaza radicalul de ordinul 2 al numerelor: sqrt(81)=9

Functii de matematica discreta


factor intoarce un vector ce contine factorii primi ai unui nr n: factor(39)= 3 13 factorial calculeaza factorialul unui numar: factorial(4)=24 gcd calculeaza cel mai mare divizor comun a doua numere: gcd(115, 35)=5 lcm- calculeaza cel mai mic multiplu comun a doua numere: lcm(115, 35)=805 primes- intoarce un vector ce contine numele prime mai mici decat n: primes(7)= 2 3 5 7 isprime- determina daca elementele unui vector sau matrice sunt numere prime: isprime([4 5 7])= 0 1 1 nchoosek- calculeaza combinari de n luate cate k: nchoosek(3,2)=3 perms- calculeaza toate permutarile posibile: perms([2,3])= 3 2 ; 2 3

Functii trigonometrice
Aceste functii pot fi aplicate unor scalari sau elementelor unor vectori sau matrici. Unghiurile sunt considerate in radiani: sin, asin, sinh, asinh calculeaza sinusul, arcsinusul, sinusul hiperbolic, arcsinusul hiperbolic a argumentului cos, acos, cosh, acosh - calculeaza cosinusul, arcosinusul, cosinusul hiperbolic, arcosinusul hiperbolic a argumentului Tan, atan, tanh, atanh -calculeaza tangenta, arctangenta, tangenta hiperbolica, arctangenta hiperbolica a argumentului cot,acot,coth, acoth - calculeaza cotangenta, arcotangenta, cotangenta hiperbolica, arcotangenta hiperbolica a argumentului sec,asec,sech, asech- calculeaza secanta, arcsecanta, secanta hiperbolica, arcsecanta hiperbolica a argumentului csc,acsc, csch,acsh - calculeaza cosecanta, arcosecanta, cosecanta hiperbolica, arc0secanta hiperbolica a argumentului

Utilizarea functiei help


lookfor 'topic'- afiseaza in Command Window o lista si o scurta descriere pentru toate functiile a caror scurta descriere include cuvantul cheie specificat

help afiseaza M-file help in Command Window pentru functia specificata

Exemplu: help trace

TRACE Sum of diagonal elements. TRACE(A) is the sum of the diagonal elements of A, which is also the sum of the eigenvalues of A. Class support for input A: float: double, single

Bibliografie

Calcul numeric-grafica-aplicatii M. Ghinea, V Fireteanu. Mathlab. Ed. Teora 2001


http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf

http://www.mathworks.com/academia/student_center/tutorials/lau nchpad.html