Sunteți pe pagina 1din 29

Curs 1

MATLAB
The Language of Technical
Computing

numere/variabile/functii uzuale
Ce este MATLAB-ul?
 MATrixLABoratory este un limbaj de programare, mai exact
un interpretor pentru programarea calculelor numerice
complexe. Produs de firma MathWorks Inc.

 Pachet de programe de inalta performanta pentru calcul si


analiza numerica, simulari si reprezentari grafice in domeniul
stiintei si ingineriei.

 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.
Structura

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
Aerospace, Bioinformatics, Computer Vision, Curve Fitting,
Econometrics, Filter Design, Financial, Global Optimization ,
Image Acquisition, Parallel Computing, Symbolic Math,
SimBiology, Wavelet, Simulink
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,
Import si export de documente

Elementul de baza cu care lucreaza MATLAB-ul este


matricea numerica rectangulara, cu elemente reale sau
complexe.

Programele elaborate in mediul MATLAB se salveaza in


fisiere cu extensia .m, numite M-fisiere.
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 funcţii matematice MATLAB - vasta


colectie de algoritmi de calcul, pornind de la functii
elementare precum suma, sinus, cosinus si aritmetica
complexa, pana la funcţii 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 :
– comenzi de nivel inalt pentru vizualizarea 2D şi 3D a
datelor, procesare de imagini, animatie si grafica

– comenzi de nivel jos 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 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.
• ATENŢIE ! 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 3.14159265...

i, j sqrt(-1)

eps Variabila permanentea in care este memorata


precizia relativa in virgula mobila 2.2204e-016

realmin Cel mai mic număr in virgula mobila 2.2251e-308


Operatori
Operatorii pot si aritmetici,logici si relationali. Operatiile
aritmetice raman valabile ptr nr. complexe si ptr vectori si ptr
matrici a caror elemente sunt nr. complexe.
+ Adunare - Scadere

* Inmultire / Impartire

.* Inmultire element cu element

./ Impartire la dreapta .\ Impartire la stanga

.^ Ridicare la putere element cu element

' Transpusa, complex conjugata


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


Taste ajutatoare in MATLAB
1. Tasta sageata in sus

>> y=sin(45)

dar din greseala scrieti

>> y=sine(45)

MATLAB returneaza urmatorul mesaj:


??? Undefined function or method 'sine' for input arguments
of type 'double'.

Apasand tasta sageata in sus se rescrie comanda tiparita


anterior.
Taste ajutatoare in MATLAB
2. Tasta Tab

Ati uitat numele functiei pe care vreti s-o folositi :


>> y=sq
Apasati tasta TAB si selectati functia
>> y=sqrt(45)

3. Tasta ;

Aplicata la sfarsitul comenzii suprima afisajul din fereastra


Command Window.
>> y=25+3 ;
MATLAB salveaza valoarea variabilei y in memorie :
>> y
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/laun
chpad.html

S-ar putea să vă placă și