Sunteți pe pagina 1din 33

Medii de calcul ingineresc

Titular disciplin: Sl. Dr. Ing. Florin CLIN

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. Fireeanu, MATLAB, calcul numeric grafic
aplicaii, Ed. TEORA, 1999;
3) Matworks, MATLAB and SIMULINK Users Guide;
4) JP Chancelier, F. Delebecque et al, Introduction a Scilab.

Obiectivul disciplinei
nsuirea principalelor comenzi, funcii
i noiuni de programare specifice
mediilor de calcul ingineresc
Matlab, Simulink i Scilab

1. Introducere n MATLAB
1.1. Ce este MATLAB ?

MATLAB (MATtrix LABoratory) este un pachet de programe de


nalt performan, interactiv, destinat calculului matematic,
tiinific i ingineresc.

MATLAB integreaz elemente solide de calcul, programare i


reprezentare grafic, ntr-un mediu de lucru prietenos,
soluionarea problemelor abordate presupunnd folosirea
notaiilor 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 rezolvrii unor
categorii specifice de probleme. Exemple de module: Simulink,
SimPowerSystems, SymMechanics, Partial Differential Equations,
Optimization, System Identification etc.

1.2. Structura sistemului MATLAB

Mediul de dezvoltare

Biblioteca de functii matematice MATLAB

Limbajul MATLAB

Manipularea graficelor (Handle Graphics)

Interfata program a aplicatiilor MATLAB (Application


Program Interface - API).

1.3. Funcii de intrare i ieire


Comenzi de lansare MATLAB
- dublu-clic pe icoana

- clic pe meniul
- etc.

urmat de clic pe

1.3. Funcii de intrare i ieire


Comenzi de iesire din MATLAB
- clic pe meniul File + Exit MATLAB
- clic pe icoana close-box
a ferestrei MATLAB Desktop
- etc.

1.4. Ferestrele de lucru MATLAB (versiunea 6.5)


Prin expandare se pot
obine informaii despre
diverse module
MATLAB

Vizualizare sau lansarea


funciilor folosite anterior

Prin clic se pot


obine informaii
ajuttoare

Se pot introduce
funcii i
comenzi
MATLAB

Afiare n prim plan a


Workspace sau Current
Directory

Vizualizare sau
schimbarea
directorului curent

Clic pentru a muta


fereastra n afara
desktopului

Redimensionarea ferestrelor prin


mutarea separatorului

Clic pentru a
nchide fereastra

1.4. Ferestrele de lucru MATLAB (versiunea 4.2)

2. Manipularea matricelor
2.1. Definirea matricelor

Definirea explicit a matricelor n Command Window

Definirea matricelor prin ncrcarea datelor din fiiere externe

Generarea matricelor de baz folosind funcii MATLAB incluse

Generarea matricelor folosind funcii scrise n fiiere M

Definirea explicit a matricelor n Command Window


Se tasteaz n Command Window instruciunea de mai jos + Enter:
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
Rspuns MATLAB
A=
16 3 2
13
5
10 11 8
9
6 7
12
4
15 14 1
Convenii de baz n definirea matricelor:
a) Elementele unui rnd se separ cu spaii blanc sau virgule;
b) Se folosete semnul punct i virgul ; pentru a indica sfritul fiecrui rnd;
c) Se include ntreaga list ntre paranteze ptrate, [ ].

Definirea explicit a matricelor n Command Window


Matricea se regsete n MATLAB Workspace tastnd n
Command Window instruciunea de mai jos + Enter:
>> A
Rspuns MATLAB:
A=
16 3 2
13
5
10 11 8
9
6 7
12
4
15 14 1

Definirea matricelor prin ncrcarea datelor din fiiere


externe
Se tasteaz n Command Window instruciunea de mai jos + Enter:
>> load matrice.txt

matrice.txt
123
234

Matricea se regsete n MATLAB Workspace tastnd n


Window instruciunea de mai jos + Enter:
> matrice
Rspuns MATLAB:
matrice =
1 2 3
2 3 4

Command

Definirea matricelor folosind funcii MATLAB incluse

zeros

Matrice ce contine doar elemente nule

ones

Matrice ce contine doar elemente unitate

rand

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

eye

Matrice cu elemente nule, cu exceptia diagonalei principale ce contine


elemente unitate

diag

Matrice diagonal

linspace

Vectori cu elemente avnd valori distribuite liniar

logspace

Vectori cu elemente avnd valori distribuite logaritmic

Definirea matricelor folosind funcii MATLAB incluse


-exempleSe tasteaz n Command Window instruciunile de mai jos + Enter :
>> S = eye(2, 3)

>> Z = zeros(2, 3)
Z=
0
0

0
0

S=

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

Definirea matricelor folosind funcii scrise n fiiere M


-exemple-

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. Indexarea elementelor

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


A=
16
5
9
4

3
10
6
15

>> A(2, 4)
ans =
8

2
11
7
14

13
8
12
1

>> b =A(2, 4)
b=
8
>> b =A(2, 4);

2.2.1. Operatorul :

>> 1:5

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

ans =
1 2

A=
1 3 2
5 10 11
9 6 7

>> 10:-2:5
ans =
10

>> b = A(:,3)
8

b=
2
11
7

2.2.2. Indexarea logic

>> x = [1/0 2 3]

>> ~isinf(x)

Warning: Divide by zero


x=
Inf 2 3

x=
0

>> x = x(~isinf(x))
>> isinf(x)
ans =
1 0

x=
2

2.2.2. Indexarea logic exemple de functii


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

Functie

Descriere

Exemplu

isempty

Testeaz dac vectorii sau matricele sunt goale

isempty(M) 0

isequal

Testeaz dac vectorii sau matricele sunt egale

isequal(M, N) 0

isnumeric

Testeaz dac elementele vectorilor sau matricelor


sunt numere

isnumeric(M) 1

issparse

Testeaz dac vectorii sau matricele sunt de tip rar

issparse(M) 0

isfinite

Testeaz dac vectorii sau matricele contin


elemente de valoare finit

isfinite(M) 1 1 1
111

isnan

Testeaz dac vectorii sau matricele contin


elementul nan (not a number)

isnan(M) 0 0 0
000

isinf

Testeaz dac vectorii sau matricele contin


elementul Inf (infinity)

isinf(M) 0 0 0
000

2.3. Operaiuni de baz cu matrice


2.3.1. Operaiuni matematice cu matrice

Operator

Operatie

Adunare

Scdere

nmultire

mprtire

mprtire la stnga

Putere

Transpusa complex conjugat

()

Pentru ordinea operatiilor

2.3.1. Operaiuni matematice cu matrice - exemple

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

>> A*A
ans =
7+2i 12+4i
8 15+2i

>> A'
ans =
1
3-i

2
3

>> A^2
ans =
7+2i 12+4i
8 15+2i

A+A'
ans =
2
5-i

5+i
6

2.3.2. Operaiuni matematice element cu element

Operator

Operaie

Adunare

Scdere

.*

nmulire element cu element

./

mparire element cu element

.\

mparire la stnga element cu element

.^

Putere element cu element

Transpusa matricei cu elementele neconjugate complex

2.3.2. Operaiuni matematice element cu element - exemple

>> 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. Funcii de informare general


A = [1 2 3; 2 3 4]
Functie

Descriere

Exemplu

disp

Afiseaz vectori sau matrice

disp(A)
123
234

display

Afiseaz vectori sau matrice

display(A)
A=
123
234

length

Determin lungimea unui vector si cea mai mare dimensiune a


unei matrice

length(A) 3

ndims

Determin numrul de dimensiuni al matricelor

ndims(A) 2

numel

Determin numrul de elemente al vectorilor i matricelor

numel(A) 6

size

Determin dimensiunile vectorilor si matricelor

size(A) 2 3

2.3.4. Funcii de prelucrare a matricelor


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]

Functie

Descriere

Exemplu

blkdiag

Creaz o matrice cu diagonala format din blocuri

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

cat

Concateneaz vectori

cat(1, A, B)
1 2 3
2 3 4
1 2 3
2 3 5

cross

Calculeaz produsul vectorial a doi vectori

cross(C, D) -1 2 -1

cumprod

Calculeaz produsul cumulativ al elementelor unui vector

cumprod(D) 2 6 24

cumsum

Calculeaz suma cumulativ a elementelor unui vector

cumsum(D) 2 5 9

diag

Defineste sau ntoarce diagonalele matricelor

diag(A) 1
3

dot

Calculeaz produsul scalar a doi vectori

dot(C, D) 20

2.3.4. Funcii de prelucrare a matricelor - continuare


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]

end

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

A(1:end, 2) 2
3

find

Gseste indicii si elementele nenule ale vectorilor sau matricelor

find(A) 1 2 3 4 5 6

fliplr

Permut matricele stnga-dreapta

fliplr(A) 3
4

flipud

Permut matricele sus-jos

flipud(A) 2
1

flipdim

Permut matricele dup o dimensiune

flipdim(A,1) 2 3
1 2

horzcat

Realizeaz concatenarea orizontal a matricelor

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

max

Calculeaz maximul elementelor unui vector sau maximul elementelor


dup o anumit directie

max(C) 3

min

Calculeaz minimul elementelor unui vector sau minimul elementelor


dup o anumit directie

max(C) 1

2
3

1
2

3
2

4
3
4
3

2.3.4. Funcii de prelucrare a matricelor - continuare


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]

prod

Calculeaz produsul elementelor unui vector

prod(C) 6

reshape

Creaz o alt matrice de dimensiuni impuse

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

rot90

Roteste o matrice cu 90

rot90(A) 3 4
2 3
1 2

sort

Sorteaz fiecare coloan n ordine cresctoare

sort(E) 1 2
5 3

sortrows

Sorteaz rndurile n ordine cresctoare

sortrows(E) 1 3
5 2

sum

nsumeaz elementele unui vector

sum(C) 6

sqrtm

Calculeaz matricea radical, adic matricea care se obtine astfel


nct X*X = E

sqrtm(E) 2.2065 0.5128


0.2564 1.6937

2.3.4. Funcii de prelucrare a matricelor - continuare

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]

tril

Returneaz elementele de sub diagonala principal a unei


matrice, inclusiv aceasta (triunghiul inferior), restul
elementelor fiind nule

tril(E) 5 0
1 3

triu

Returneaz elementele de deasupra diagonalei principale a


unei matrice, inclusiv aceasta (triunghiul superior), restul
elementelor fiind nule

triu(E) 5 2
0 3

vertcat

Realizeaz concatenarea vertical a matricelor

vertcat(A, B) 1
2
1
2

2
3
2
3

3
4
3
5

2.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 2
2 3 3

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

2.3.6. Funcii de analiz matriceal


B = [5 2; 1 3]

Funcie

Descriere

Exemplu

cond

Numrul de condiionare

cond(B) 2.6180

det

Calculeaz determinantul unei matrice

det(B) 13

eig

Calculeaz valorile proprii ale unei matrice

eig(B) 5.7321
2.2679

inv

Calculeaz inversa unei matrice

inv(B) 0.2308 -0.1538


-0.0769 0.3846

norm

Calculeaz norma unei matrice sau a unui vector

norm(B) 5.8339

rank

Calculeaz rangul unei matrice

rank(B) 2

trace

Calculeaz urma unei matrice sau suma elementelor


de pe diagonala principal

trace(B) 8

2.4. Rezolvarea sistemelor de ecuaii folosind


operaii cu matrice

2.4.1. Formularea matriceal a sistemelor de ecuaii liniare

3x1 + 2x2 - x3 = 10
-x1 + 3x2 + 2x3 = 5
x1 - x2 - x3
= -1
A . X = B => X = A-1 . B

A= 3
-1
1

2 -1
3 2
-1 -1

X = x1 B = 10
x2
5
x3
-1

2.4.2. Rezolvarea sistemelor prin mprirea matricelor

A= 3
-1
1

2 -1
3 2
-1 -1

X = x1 B = 10
x2
5
x3
-1

>> 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

2.4.3. Rezolvarea sistemelor prin inversarea matricelor

A= 3
-1
1

2 -1
3 2
-1 -1

X = x1 B = 10
x2
5
x3
-1

>> 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

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