Curs Matlab

33
Medii Medii de de calcul calcul ingineresc ingineresc Titular disciplină: Sl. Dr. Ing. Florin CÃLIN Structura disciplinei: 7 x 2 ore curs + 14 x 2 ore lab. Mod de evaluare: Laborator 50 %; Teme de casă 30 %; Colocviu 20 % Bibliografie: 1) T. Tudorache, “Medii de calcul în inginerie electrică – MATLAB”, Ed. MATRIXROM, 2006; 2) M. Ghinea, V. Fireţeanu, “MATLAB, calcul numeric – grafică aplicaţii”, Ed. TEORA, 1999; 3) Matworks, “MATLAB and SIMULINK User’s Guide”; 4) JP Chancelier, F. Delebecque et al, “Introduction a Scilab”.

description

curs matlab

Transcript of Curs Matlab

Page 1: Curs Matlab

MediiMedii de de calculcalcul inginerescingineresc

� Titular disciplină: Sl. Dr. Ing. Florin CÃLIN

� Structura disciplinei: 7 x 2 ore curs + 14 x 2 ore lab.

� Mod de evaluare: Laborator 50 %;Teme de casă 30 %; Colocviu 20 %

� Bibliografie: 1) T. Tudorache, “Medii de calcul în inginerie electrică – MATLAB”, Ed. MATRIXROM, 2006;2) M. Ghinea, V. Fireţeanu, “MATLAB, calcul numeric – grafică –aplicaţii”, Ed. TEORA, 1999;3) Matworks, “MATLAB and SIMULINK User’s Guide”;4) JP Chancelier, F. Delebecque et al, “Introduction a Scilab”.

root
Note
MigrationConfirmed set by root
root
Note
Accepted set by root
root
Note
Completed set by root
root
Note
MigrationConfirmed set by root
root
Note
Accepted set by root
root
Note
Completed set by root
root
Note
Accepted set by root
Page 2: Curs Matlab

Însuşirea Însuşirea principalelorprincipalelor comencomenzi, zi, funcţiifuncţiişişi noţiuninoţiuni de de programareprogramare specificespecifice

mediilormediilor de de calculcalcul inginerescingineresc

MatlabMatlab, , SimulinkSimulink şi şi ScilabScilab

Obiectivul disciplineiObiectivul disciplinei

Page 3: Curs Matlab

� MATLAB® (MATtrix LABoratory) este un pachet de programe de înaltă performanţă, interactiv, destinat calculului matematic, ştiinţific şi ingineresc.

� MATLAB integrează elemente solide de calcul, programare şi reprezentare grafică, într-un mediu de lucru prietenos, soluţionarea problemelor abordate presupunând folosirea notaţiilor matematice clasice.

� Versiunea completă include o bibliotecă de module denumite toolbox-uri sau blockset-uri care extind puterea de calcul a pachetului de programe MATLAB, în vederea rezolvării unor categorii specifice de probleme. Exemple de module: Simulink, SimPowerSystems, SymMechanics, Partial Differential Equations, Optimization, System Identification etc.

1.1. Introducere în MATLABIntroducere în MATLAB1.1. Ce este MATLAB 1.1. Ce este MATLAB ??

Page 4: Curs Matlab

1.1.22. . StructuraStructura sistemuluisistemului MATLABMATLAB

•• Mediul de dezvoltareMediul de dezvoltare

•• Biblioteca de Biblioteca de funcfuncttii matematice MATLABii matematice MATLAB

•• Limbajul MATLABLimbajul MATLAB

•• Manipularea graficelor (Manipularea graficelor (Handle GraphicsHandle Graphics) )

•• InterfaInterfattaa program a aplicaprogram a aplicattiilor MATLAB (iilor MATLAB (Application Application

Program Program InterfaceInterface -- APIAPI). ).

Page 5: Curs Matlab

1.3. 1.3. FuncFuncţii de intrare şi ieşireţii de intrare şi ieşire

Comenzi de lansare MATLAB

- dublu-clic pe icoana

- clic pe meniul urmat de clic pe

- etc.

Page 6: Curs Matlab

Comenzi de iesire din MATLAB

- clic pe meniul File + Exit MATLAB

- clic pe icoana close-box a ferestrei MATLAB Desktop

- etc.

1.3. 1.3. FuncFuncţii de intrare şi ieşireţii de intrare şi ieşire

Page 7: Curs Matlab

1.1.44. F. Ferestreleerestrele de lucru de lucru MATLABMATLAB ((versiuneaversiunea 6.5)6.5)Prin expandare se pot

obţine informaţii despre

diverse module

MATLAB

Prin clic se pot

obţine informaţii

ajutătoare

Se pot introduce

funcţii şi

comenzi

MATLAB

Vizualizare sau

schimbarea

directorului curent

Clic pentru a muta

fereastra în afara

desktopului

Clic pentru a

închide fereastra

Vizualizare sau lansarea

funcţiilor folosite anterior

Afişare în prim plan a

Workspace sau Current

Directory

Redimensionarea ferestrelor prin

mutarea separatorului

Page 8: Curs Matlab

1.1.44. F. Ferestreleerestrele de lucru de lucru MATLABMATLAB ((versiuneaversiunea 4.2)4.2)

Page 9: Curs Matlab

� Definirea explicită a matricelor în Command Window

� Definirea matricelor prin încărcarea datelor din fişiere externe

� Generarea matricelor de bază folosind funcţii MATLAB incluse

� Generarea matricelor folosind funcţii scrise în fişiere M

2. 2. MManipulareaanipularea matricelormatricelor2.12.1. Definirea matricelor. Definirea matricelor

Page 10: Curs Matlab

Definirea explicitDefinirea explicită ă a matricelor îna matricelor în Command WindowCommand Window

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Se tastează în Command Window instrucţiunea de mai jos + Enter:

Convenţii de bază în definirea matricelor:a) Elementele unui rând se separă cu spaţii blanc sau virgule;b) Se foloseşte semnul punct şi virgulă ”;” pentru a indica sfârşitul fiecărui rând;c) Se include întreaga listă între paranteze pătrate, ”[ ]”.

Răspuns MATLABA =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Page 11: Curs Matlab

Definirea explicitDefinirea explicită ă a matricelor îna matricelor în Command WindowCommand Window

>> A

Matricea se regăseşte în MATLAB Workspace tastând înCommand Window instrucţiunea de mai jos + Enter:

Răspuns MATLAB:A =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Page 12: Curs Matlab

Definirea matricelor prin încărcarea datelor din fişiere Definirea matricelor prin încărcarea datelor din fişiere externeexterne

>> load matrice.txt

Se tastează în Command Window instrucţiunea de mai jos + Enter:

matrice.txt

1 2 3

2 3 4

Matricea se regăseşte în MATLAB Workspace tastând în Command

Window instrucţiunea de mai jos + Enter:

> matrice

Răspuns MATLAB:

matrice =

1 2 32 3 4

Page 13: Curs Matlab

Definirea matricelor Definirea matricelor folosindfolosind funcfuncţii MATLAB incluseţii MATLAB incluse

Vectori cu elemente având valori distribuite logaritmic logspace

Vectori cu elemente având valori distribuite liniar linspace

Matrice diagonalădiag

Matrice cu elemente nule, cu exceptia diagonalei principale ce contine elemente unitate

eye

Matrice cu elemente aleatoare, uniform distribuite, cuprinse între 0 şi 1rand

Matrice ce contine doar elemente unitateones

Matrice ce contine doar elemente nulezeros

Page 14: Curs Matlab

Definirea matricelor Definirea matricelor folosindfolosind funcfuncţii MATLAB incluseţii MATLAB incluse

--exempleexemple--

>> Z = zeros(2, 3)

Z =

0 0 0

0 0 0

>> F = 5*ones(2, 2)

F =

5 5

5 5

>> N = 10*rand(1, 5)

N =

9.5013 2.3114 6.0684 4.8598 8.9130

>> S = eye(2, 3)

S =

1 0 0

0 1 0

Se tastează în Command Window instrucţiunile de mai jos + Enter :

Page 15: Curs Matlab

Definirea matricelor Definirea matricelor folosindfolosind funcfuncţii ţii scrise în fişiere Mscrise în fişiere M

--exempleexemple--

exemplu.m

for i = 1:3

for j = 1:3

A (i, j) = i + j + 10;

end

end

A

A =

12 13 14

13 14 15

14 15 16

Page 16: Curs Matlab

2.2.22. . IndexareaIndexarea elementelorelementelor

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

A = 16 3 2 135 10 11 89 6 7 124 15 14 1

>> A(2, 4)

ans =8

>> b =A(2, 4)

b =8

>> b =A(2, 4);

Page 17: Curs Matlab

2.2.22..1.1. OperatorulOperatorul “:”“:”

>> 1:5

ans =1 2 3 4 5

>> 10:-2:5

ans =10 8 6

>> A = [1 3 2; 5 10 11; 9 6 7]

A = 1 3 2 5 10 11 9 6 7

>> b = A(:,3)

b = 2 11 7

Page 18: Curs Matlab

2.2.22..2.2. IndexareIndexareaa logiclogicăă

>> x = [1/0 2 3]

Warning: Divide by zero

x =

Inf 2 3

>> isinf(x)

ans =

1 0 0

>> ~isinf(x)

x =

0 1 1

>> x = x(~isinf(x))

x =

2 3

Page 19: Curs Matlab

2.2.22.2.2.. IndexareIndexareaa logiclogicăă –– exempleexemple de de functiifunctii

isinf(M) → 0 0 0

0 0 0 Testează dacă vectorii sau matricele continelementul Inf (infinity)

isinf

isnan(M) → 0 0 0

0 0 0 Testează dacă vectorii sau matricele continelementul nan (not a number)

isnan

isfinite(M) → 1 1 1

1 1 1Testează dacă vectorii sau matricele contin elemente de valoare finită

isfinite

issparse(M) → 0Testează dacă vectorii sau matricele sunt de tip rarissparse

isnumeric(M) → 1Testează dacă elementele vectorilor sau matricelor sunt numere

isnumeric

isequal(M, N) → 0Testează dacă vectorii sau matricele sunt egaleisequal

isempty(M) → 0Testează dacă vectorii sau matricele sunt goaleisempty

ExempluDescriereFunctie

M = [1 2 3; 2 3 4], N = [1 2 3; 2 3 5]

Page 20: Curs Matlab

2.2.33. . OperaOperaţiuni de bază cu matriceţiuni de bază cu matrice2.3.1. Operaţiuni matematice cu matrice2.3.1. Operaţiuni matematice cu matrice

Pentru ordinea operatiilor( )

Transpusa complex conjugată’

Putere^

Împărtire la stânga\

Împărtire/

Înmultire*

Scădere-

Adunare+

OperatieOperator

Page 21: Curs Matlab

2.3.1. Operaţiuni matematice cu matrice2.3.1. Operaţiuni matematice cu matrice -- exempleexemple

>> A = [1 3+i; 2 3]A =

1 3+i

2 3

>> A'

ans =

1 2

3-i 3

A+A'

ans =

2 5+i

5-i 6

>> A*A

ans =

7+2i 12+4i

8 15+2i

>> A^2

ans =

7+2i 12+4i

8 15+2i

Page 22: Curs Matlab

2.3.2. Operaţiuni matematice 2.3.2. Operaţiuni matematice element element cu cu elementelement

Transpusa matricei cu elementele neconjugate complex.’

Putere element cu element.^

Împarţire la stânga element cu element.\

Împarţire element cu element./

Înmulţire element cu element.*

Scădere-

Adunare+

OperaţieOperator

Page 23: Curs Matlab

2.3.2. Operaţiuni matematice element cu element2.3.2. Operaţiuni matematice element cu element -- exempleexemple

>> n = (0:9)’;

>> tablou = [n n.^2 2.^n]

tablou =

0 0 1

1 1 2

2 4 4

3 9 8

4 16 16

5 25 32

6 36 64

7 49 128

8 64 256

9 81 512

>> A = [1 3; 2 3]

A =

1 3

2 3

>> A.^2

ans =

1 9

4 9

>> A^2

ans =

7 12

8 15

Page 24: Curs Matlab

2.3.3. Funcţii de informare generală2.3.3. Funcţii de informare generală

size(A) → 2 3Determină dimensiunile vectorilor si matricelor size

numel(A) → 6Determină numărul de elemente al vectorilor şi matricelor numel

ndims(A) → 2Determină numărul de dimensiuni al matricelor ndims

length(A) → 3Determină lungimea unui vector si cea mai mare dimensiune a unei matrice

length

display(A) →A= 1 2 32 3 4

Afisează vectori sau matricedisplay

disp(A) →1 2 32 3 4

Afisează vectori sau matricedisp

ExempluDescriereFunctie

A = [1 2 3; 2 3 4]

Page 25: Curs Matlab

2.3.4. Funcţii de prelucrare a matricelor2.3.4. Funcţii de prelucrare a matricelor

dot(C, D) → 20Calculează produsul scalar a doi vectori dot

diag(A) → 1 3

Defineste sau întoarce diagonalele matricelordiag

cumsum(D) → 2 5 9Calculează suma cumulativă a elementelor unui vectorcumsum

cumprod(D) → 2 6 24Calculează produsul cumulativ al elementelor unui vectorcumprod

cross(C, D) → -1 2 -1Calculează produsul vectorial a doi vectoricross

cat(1, A, B) →1 2 32 3 41 2 32 3 5

Concatenează vectori cat

blkdiag([1 2; 3 4], 2) →1 2 0 3 4 0 0 0 2

Crează o matrice cu diagonala formată din blocuriblkdiag

ExempluDescriereFunctie

A = [1 2 3; 2 3 4], B = [1 2 3; 2 3 5], C = [1 2 3], D = [2 3 4], E = [5 2; 1 3]

Page 26: Curs Matlab

2.3.4. Funcţii de prelucrare a matricelor2.3.4. Funcţii de prelucrare a matricelor -- continuarecontinuare

max(C) → 1Calculează minimul elementelor unui vector sau minimul elementelor după o anumită directie

min

max(C) → 3Calculează maximul elementelor unui vector sau maximul elementelor după o anumită directie

max

horzcat(A, B) →1 2 3 1 2 32 3 4 2 3 5

Realizează concatenarea orizontală a matricelorhorzcat

flipdim(A,1) → 2 3 41 2 3

Permută matricele după o dimensiuneflipdim

flipud(A) → 2 3 41 2 3

Permută matricele sus-josflipud

fliplr(A) → 3 2 14 3 2

Permută matricele stânga-dreapta fliplr

find(A) → 1 2 3 4 5 6Găseste indicii si elementele nenule ale vectorilor sau matricelorfind

A(1:end, 2) → 23

Incheie buclele for, while, switch, try, if sau defineste ultimul index al matricelor sau vectorilor

end

A = [1 2 3; 2 3 4], B = [1 2 3; 2 3 5], C = [1 2 3], D = [2 3 4], E = [5 2; 1 3]

Page 27: Curs Matlab

2.3.4. Funcţii de prelucrare a matricelor2.3.4. Funcţii de prelucrare a matricelor -- continuarecontinuare

A = [1 2 3; 2 3 4], B = [1 2 3; 2 3 5], C = [1 2 3], D = [2 3 4], E = [5 2; 1 3]

sqrtm(E) → 2.2065 0.51280.2564 1.6937

Calculează matricea radical, adică matricea care se obtine astfel încât X*X = E

sqrtm

sum(C) → 6Însumează elementele unui vectorsum

sortrows(E) → 1 35 2

Sortează rândurile în ordine crescătoaresortrows

sort(E) → 1 25 3

Sortează fiecare coloană în ordine crescătoaresort

rot90(A) → 3 42 31 2

Roteste o matrice cu 90˚rot90

reshape(A,3,2) → 1 32 32 4

Crează o altă matrice de dimensiuni impusereshape

prod(C) → 6Calculează produsul elementelor unui vectorprod

Page 28: Curs Matlab

2.3.4. Funcţii de prelucrare a matricelor2.3.4. Funcţii de prelucrare a matricelor -- continuarecontinuare

A = [1 2 3; 2 3 4], B = [1 2 3; 2 3 5], C = [1 2 3], D = [2 3 4], E = [5 2; 1 3]

vertcat(A, B) → 1 2 32 3 41 2 32 3 5

Realizează concatenarea verticală a matricelorvertcat

triu(E) → 5 20 3

Returnează elementele de deasupra diagonalei principale a unei matrice, inclusiv aceasta (triunghiul superior), restul elementelor fiind nule

triu

tril(E) → 5 01 3

Returnează elementele de sub diagonala principală a unei matrice, inclusiv aceasta (triunghiul inferior), restul elementelor fiind nule

tril

Page 29: Curs Matlab

2.3.5. Concatenarea şi reconfigurarea matricelor2.3.5. Concatenarea şi reconfigurarea matricelor

>> A = [1 3; 2 3]

A =

1 3

2 3

>> B = [A A-1; A A+1]

B =

1 3 0 2

2 3 1 2

1 3 2 4

2 3 3 4

>> B(:,4) = [ ]

B =

1 3 0

2 3 1

1 3 22 3 3

>> B(1,4) = [ ] >>>Eroare

Page 30: Curs Matlab

2.3.6. Funcţii de analiză matriceală2.3.6. Funcţii de analiză matriceală

B = [5 2; 1 3]

trace(B) → 8Calculează urma unei matrice sau suma elementelor de pe diagonala principală

trace

rank(B) → 2Calculează rangul unei matrice rank

norm(B) → 5.8339Calculează norma unei matrice sau a unui vector norm

inv(B) → 0.2308 -0.1538 -0.0769 0.3846

Calculează inversa unei matrice inv

eig(B) → 5.73212.2679

Calculează valorile proprii ale unei matrice eig

det(B) → 13Calculează determinantul unei matricedet

cond(B) → 2.6180 Numărul de condiţionare cond

ExempluDescriereFuncţie

Page 31: Curs Matlab

2.4. Rezolvarea sistemelor de ecuaţii folosind 2.4. Rezolvarea sistemelor de ecuaţii folosind ooperaperaţii cu matrice ţii cu matrice 2.4.1. 2.4.1. FormulareaFormularea matricealmatriceală ă a sistemelor de ecuaţii liniarea sistemelor de ecuaţii liniare

A . X = B => X = A-1 . B

3x1 + 2x2 - x3 = 10-x1 + 3x2 + 2x3 = 5

x1 - x2 - x3 = -1

A = 3 2 -1 -1 3 2 1 -1 -1

X = x1 x2 x3

B = 10 5 -1

Page 32: Curs Matlab

2.4.2. 2.4.2. RezolvareaRezolvarea sistemelorsistemelor prinprin împărţirea matricelorîmpărţirea matricelor

>> A = [3 2 -1; -1 3 2; 1 -1 -1];

>> B = [10; 5; -1];

>> X = A\B

X = [-2.0000; 5.0000; -6.0000] => x1 = -2; x2 = 5; x3 = -6

A = 3 2 -1 -1 3 2 1 -1 -1

X = x1 x2 x3

B = 10 5 -1

Page 33: Curs Matlab

2.4.3. 2.4.3. RezolvareaRezolvarea sistemelorsistemelor prinprin inversareainversarea matricelormatricelor

>> A = [3 2 -1; -1 3 2; 1 -1 -1];

>> B = [10; 5; -1];

>> X = inv(A).B

X = [-2.0000; 5.0000; -6.0000] => x1 = -2; x2 = 5; x3 = -6

A = 3 2 -1 -1 3 2 1 -1 -1

X = x1 x2 x3

B = 10 5 -1