curs matlab
Post on 29-Jan-2016
259 Views
Preview:
DESCRIPTION
TRANSCRIPT
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”.
Î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
� 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 ??
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). ).
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.
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
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
1.1.44. F. Ferestreleerestrele de lucru de lucru MATLABMATLAB ((versiuneaversiunea 4.2)4.2)
� 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
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
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
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
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
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 :
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
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);
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
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
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]
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
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
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
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
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]
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]
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]
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
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
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
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
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
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
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
top related