c12-infoii

10
   ş Vocabular si sintaxa Matlab Structuri de date Matlab  Matlab – paradigma functionala, calcul orientat vectorial şi matricial  Instructiuni pentru controlul fluxului programului MATLAB®, acronim al sintag mei Matrix laboratory, este un limbaj de programare şi sistem de dezvoltare pentru aplicaţii ştiinţifice şiinginereşti, din diverse domenii. Este dezvoltat de The MathWork s, Inc., SUA si utilizatori , beneficiind de o dezvoltare continua. Aplicatii: • Matematică, calcul numeric şi simbolic • Dezvoltarea algoritmilor • Modelare, simulare şi testarea prototipurilor • Analiza şi vizualizarea datelor • Grafica • Dezvoltarea de aplicaţii, inclusiv GUI S-a dezvoltat prin Toolbox-uri, care sunt colectii de functii (scripturi .m/ macroinstructiuni) . Ca limbaj, este un limbaj de nivel înalt. Orientat spre calcul vectorial şi matricial, Matricea fiind structura fundamentală pentru acest limbaj. Este un fimbaj orientat pe funcţii, dispunând de funcţii pentru orice operaţie se doreşte efectuată, funcţii simple sau complexe aplicate matricilor, ale cor elemente pot fi de acelaşi tip sou pot fi date eterogene, caz pentru care s-a introdus o nouă structură, celula. Vom avea deci matrici de celule. De asemenea limbajul dispune de instrucţiuni de control al fluxului program, alte structuri de date, functii de intrare/ieşire, având proprietăţi de  programare orientată pe obiecte. Mediul matlab este organizat pe 6 directoare:  ops - Operators and special characters. lang - Programming language constructs.  strfun - Character strings. iofun - File input/output. timefun - Time and dates. datatypes - Data types and structures. Pachetul Matlab conţine: 1. limbajul MATLAB, 2. mediul de lucru MATLAB ce include  facilitati pentru manevrarea variabilelor în spaţiul de lucru, importul/exportul de date, dezvoltarea, manipularea, editarea şi depanarea fişierelor

Upload: blx1994

Post on 06-Oct-2015

7 views

Category:

Documents


0 download

DESCRIPTION

.

TRANSCRIPT

  • 1

    Informatica II

    Calcul vectorial i matricial n Matlab

    Vocabular si sintaxa Matlab

    Structuri de date Matlab

    Matlab paradigma functionala, calcul orientat vectorial i matricial

    Instructiuni pentru controlul fluxului programului

    Introducere

    MATLAB, acronim al sintagmei Matrix laboratory, este un limbaj de programare i sistem de dezvoltare pentru aplicaii tiinifice iinginereti, din diverse domenii. Este dezvoltat de The MathWorks, Inc., SUA si utilizatori , beneficiind de o dezvoltare continua. Aplicatii: Matematic, calcul numeric i simbolic Dezvoltarea algoritmilor Modelare, simulare i testarea prototipurilor Analiza i vizualizarea datelor Grafica Dezvoltarea de aplicaii, inclusiv GUI S-a dezvoltat prin Toolbox-uri, care sunt colectii de functii (scripturi .m/ macroinstructiuni) . Ca limbaj, este un limbaj de nivel nalt. Orientat spre calcul vectorial i matricial, Matricea fiind structura fundamental pentru acest limbaj. Este un fimbaj orientat pe funcii, dispunnd de funcii pentru orice operaie se dorete efectuat, funcii simple sau complexe aplicate matricilor, ale cor elemente pot fi de acelai tip sou pot fi date eterogene, caz pentru care s-a introdus o nou structur, celula. Vom avea deci matrici de celule. De asemenea limbajul dispune de instruciuni de control al fluxului program, alte structuri de date, functii de intrare/ieire, avnd proprieti de programare orientat pe obiecte. Mediul matlab este organizat pe 6 directoare:

    ops - Operators and special characters. lang - Programming language constructs. strfun - Character strings. iofun - File input/output. timefun - Time and dates. datatypes - Data types and structures.

    Mediul integrat de dezvoltare (IDE) Matlab

    Pachetul Matlab conine: 1. limbajul MATLAB, 2. mediul de lucru MATLAB ce include facilitati pentru manevrarea variabilelor n spaiul de lucru, importul/exportul de date, dezvoltarea, manipularea, editarea i depanarea fiierelor

  • 2

    MATLAB (.m) i a aplicaiilor MATLAB, organizate in directorul general - General purpose commands ; 3. Handle Graphics , ce conine comenzi de nivel nalt pentru vizualizarea datelor bi i tri-dimensionale, procesarea imaginilor, animaie, prezentri grafice si comenzi de nivel sczut pentru crearea unor interfee grafice GUI; organizate n 5 directoare:

    graph2d -Two-dimensional graphs. graph3d - Three-dimensional graphs. Specgraph - Specialized graphs. graphics - Handle Graphics. uitools - Graphical user interface tools.

    4. Biblioteca de funcii matematice , o colecie de algoritmi pentru funcii elementare (sinus, cosinus etc.) si funcii complexe (inversarea de matrice, valori proprii, funcii Bessel, FFT etc.), organizate n 8 directoare:

    elmat - Elementary matrices and matrix manipulation. elfun - Elementary math functions. specfun - Specialized math functions. matfun - Matrix functions numerical linear algebra. datafun - data analysis and Fourier transforms. polyfun - Interpolation and polynomials. funfun - Function functions and ODE solvers. sparfun - Sparse matrices.,

    5. Interfaa de aplicaii program a MATLAB-ului (API), o bibliotec care permite scrierea de programe n C sau Fortran care interacioneaz cu MATLAB-ul; include faciliti pentru apelarea rutinelor din MATLAB, apelarea MATLAB-ului ca main de calcul, scrierea i citirea fiierelor de tip .MAT .

    Simulink

    SIMULINK este un pachet software pentru modelarea, simularea i analiza sistemelor dinamice. Pot fi modelate sisteme mecanice, electrice, etc., liniare, neliniare, continue, discrete, hibride. SIMULINK are interfa grafic utilizator (GUI) pentru

    crearea modelelor sub forma unor diagrame construite din blocuri, pe baza unor tehnici de tip click-and-drag realizate cu mouse-ul.

    se evit formularea matematic laborioas (sistemele dinamice sunt de regul descrise de ecuaii difereniale).

    Real-time Workshop este un program care permite generarea de cod C pentru schemele bloc create n SIMULINK i astfel permite rularea de aplicaii n timp real.

    Vocabular i sintaxa Matlab Cuvinte rezervate (Keywords) - 'break' , 'case', try catch, 'continue' ,'else, 'elseif, 'end, 'for' 'function, global, 'if, 'otherwise, 'persistent, 'return, 'switch, 'try, 'while, s.a. sunt listate cu ajutorul iskeyword. Sintaxa generala functie nume functie si argumente, legare variabile prin instantiere: variabila = expresie

  • 3

    unde expresia = niruire de operanzi i operatori; operanzii: nume de variabile, constante, nume (sau apel) de funcii. Matlab lucreaz n mod linie avnd la baz un interpretor (i nu compilator): fiecare instruciune pe rnd este trimis interpretorului i evaluat. Prin variabil MATLAB nelegem un nume care se asigneaz unei zone de memorie unde sunt stocate valori. Prin nume citim/scriem valoarea din/n memorie, i folosim valoarea n expresii. MATLAB dispune de trei tipuri de variabile:

    locale, globale persistente.

    MATLAB-ul nu necesit declararea dimensiunii variabilelor, deoarece la ntlnirea unui nou nume de variabil genereaz automat variabila respectiv i aloc spaiul necesar de memorie. Numele unei variabile este o liter, urmat de un numr orict de mare de litere, cifre sau simboluri. Din nume numai primele 31 de caractere sunt folosite pentru identificare. MATLAB-ul este case sensitive .

    Operatori i funcii

    Operatori aritmetici n cadrul expresiilor: + adunare, - scdere, , * multiplicare / mprire, \ mprire la stnga,^ ridicare la putere, ` transpusa unei matrice sau complex conjugata unui numr complex, ( ) operatorul de specificare a ordinii de evaluare (cu prioritate maxim)

    Functii: sunt un numr mare de funcii matematice elementare standard (abs, sqrt, exp, sin ) (help elfun) si funcii matematice avansate (funcii Bessel, gama etc.), multe dintre acestea acceptnd argumente complexe (help elmat / help specfun). Functii built-in, fac parte din nucleul Matlab, compilate, au vitez de execuie sporit (accesul la structura funciei nepermis). Unele funcii sunt implementate ca fiiere MATLAB (M-files) i pot fi modificate. Pentru a gsi calea spre codul surs a unei funcii MATLAB M-file folosi funcia which. Functii constante: pi, Exp, i/j, Realmin, Realmax, Inf, NaN. Este posibil suprascrierea lor.

    Tipuri si structuri de date Matlab

    Structura fundamental de dat, la baza produsului Matlab, este matricea. Elementele matriceisunt de acelai tip de dat: ntreg sau real, logic, caracter, structur etc. Tipurile structur i celule de tablouri stocheaz tipuri diferite de date n cmpurile lor. Pot fi de asemenea dezvoltate tipuri noi de date proprii utilizatorului folosind clase Matlab (user classes i Java classes). Sunt 15 tipuri fundamentale de date (matrice sau tablou) variind de la minim 0 x 0 elemente la n dimensionale. Structura array, este vzut n Matlab ca tip de dat.

  • 4

  • 5

  • 6

    Structuri:

    Exemple: >>patient(1) ans = name: John Doe' billing: 127.00 test: [3x3 double] >> patient(1).test ans =

    Cell array:

    Tabloul(matricea) de celule este folosit la stocarea indexat a datelor de tipuri diferite. Celulele sunt cmpuri fr nume (dar indexate pentru a putea fi referite).

    Exemplu: A = {[1 4 3; 0 5 8; 7 2 9], 'Maria Rotariu' ; 3+7i, -pi : pi/4 : pi};

    Se poate iniializa individual fiecare celul: >>A(1,1) = {[1 4 3; 0 5 8; 7 2 9]} >>A(1,2) = {'Maria Rotariu'}; Extindere tablou: >>A(3,3) = {5}; >>A{1,1} = {[1 4 3; 0 5 8; 7 2 9]} se obine cell array pentru A{1,1}

  • 7

    Prioritatea operaiilor: Ordinea de evaluare a unei expresii este dat de nivelele de precedena/prioritate ale operatorilor implicati. 1. Paranteze () 2. Transpusa (.'), putere (.^), complex conjugate transpose ('), matrice la putere (^) 3. plus unar (+), minus unar (-), negare logic (~) 4. nmulire (.*), mprire la dreapta (./), la stnga (.\), nmulire de matrice (*), mprire matrice dreapta (/),mprire matrice stnga (\) 5. adunare (+), scdere (-) 6. operatorul dou punce (:) 7. mai mic (=), test egalitate (==), test diferit (~=) 8. AND (&) 9. OR (|)

    Instruciuni pentru controlul derulrii unui program - if, if else, -I elseif

    - switch case otherwise

  • 8

    - ciclu cu contor: for

  • 9

    0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

    0.7

    0.8

    0.9

    1

    1.1

    1.2

    1.3

    1.4

    - ciclu cu test iniial: while while expresie grup de instructiuni end expresie poate include operatori relationali: ==, , =, sau ~=.

    Exemplu: aproximarea Euler a ecuatiei diferentiale: y=x-|y|, y(0)=1; >> h = 0.001; >> x = [0:h:2]; >> y = 0*x; >> y(1) = 1; >> i = 1; >> size(x) ans = 1 2001 >> max(size(x)) ans = 2001 >> while(i> plot(x,y,'go') >> plot(x,y) - break Exemplu: for i=1:10 a(i)=i*10

  • 10

    break b(i)=a(i)+5 end care calculeaza numai a(1), rezultnd: a = 10 - continue Instructiunea continue transfera controlul la urmatoarea iteratie din bucla for sau while n care apare, sarind celelalte instructiuni ramase ntre aceasta si end. Exemplu: for i=1:10 a(i)=i*10 b(i)=a(i)+5 end Secventa va calcula: a = 10 20 30 40 50 60 70 80 90 100 b = 15 25 35 45 55 65 75 85 95 105 - return

    Instructiunea return comanda o iesire normala din fisierul de tip .m (nume_fisier.m) catre functia care l-a apelat sau catre tastatura. Exemplu: function d = det(A) if isempty(A) d = 1; return else ... end

    Bibliografie 1. Cleve Moler, Numerical Computing with MATLAB, Electronic Edition: The MathWorks, Inc., Natick, MA, 2004, http://www.mathworks.com/moler. 2. Hunt, Brian R., Lipsman, Ronald L., Rosenberg, Jonathan M., A Guide to MATLAB for Beginners and Experienced Users, Cambridge University Press, 2001. 3. Learning SIMULINK, The Mathworks, Student version, 2004. 4. MATLAB - The Language of Technical Computing, MATLAB 7, The MathWorks Inc., 2009.