SlideShare une entreprise Scribd logo
1  sur  10
Opt1/Seminar Optimizări- Introducere în MATLAB-2013-2014
MATLAB este un mediu de programare bazat pe operaţii asupra
tablourilor (vectori si matrici), de unde si numele (« MATrix LABoratory »).
Matlab este un pachet de programe de înaltă performanţă dedicat calcului
numeric şi reprezentărilor grafice în domeniul ingineriei.MATLAB include si
aplicaţii specifice numite TOOLBOX-uri. Acestea sunt colecţii de fisiere de tip
« funcţie », cu extensie « .m », dedicate rezolvării unor probleme ingineresti.
Deschiderea Matlab : Dublu clik pe pictograma Matlab. Apare meniul :

Comenzile Matlab de încărcare şi salvare a fişierelor de date de pe (pe)
discul curent sunt: crearea unui fişier .m : Matlab: File: New: M-file - creare
(scriere)- salvare în spaţiul de lucru Work :
save – salvează într-un fişier de date pe disc.
load – încarcă variabilele dintr-un fişier de date de pe disc;
Salvarea variabilelor A B C din spaţiul de lucru, într-un fişier
nume_fişier.mat se face utilizând comanda:save nume_fişier A B C
Încărcarea datelor din fişiere cu extensie .mat se face utilizând comanda:load
nume_fişier
 Linia comentariu începe obligatoriu cu « % »
 Deoarece Matlab memorează toate instrucţiunile operate, la trecerea
unui alt program trebuie şterse din memoria acestuia cu instrucţiunile clear all
şi clc.
 Programele realizate sub MATLAB se redactează fie în fereastra de
comenzi, situaţie în care fiecare linie de program este executată imediat ce se
tastează « enter » :
Ex :5+3« enter » ⇒ ans =8
 fie în fişiere : File⇒New⇒M-file ⇒ Se scrie programul ⇒ Se salveaza
automat cu un nume fisier si extensia « .m » in directorul Work. Programul este
rulat la tastarea numelui fişierului în fereastra de comenzi.
Ex . de program : x=5;y=3;s=x+y salvat « suma » în fereastra de comenzi
tastam « suma » ⇒ s = 8
1
 Dacă o instrucţiune nu se termină prin punct-virgulă, « ; », rezultatele
sunt afişate imediat ce linia este executată.
 Variabilele în MATLAB.
- Trebuie să înceapă cu o literă; MATLAB face o diferenţiere între literele mari
şi mici
- Lungimea cuvântului : 19 caractere( restul sunt ignorate); nu este permisă
folosirea semnelor de punctuaţie în interiorul unui cuvânt ce reprezintă o
variabilă ;
- Variabile speciale utilizate de MATLAB: « ans » - rezultatul unui calcul;
« pi » - raportul dintre perimetrul şi diametrul cercului = 3.14...;
« i »sau « j » = radical din -1,de la numerele complexe; Ex: >> i ans = 0 +
1.0000i
« realmin » şi « realmax » - cel mai mic şi respectiv cel mai mare număr real
pozitiv utilizabil.
- Formate de afişare a numerelor: format opţiune cu opţiunile : short - patru
cifre după virgulă ex.: 35.3482 - este forma standard; long - afişare pe 16
pozitii ex.: 35.34822154352415; rat - fracţie ex. : 215/6;
 Operaţii matematice asupra scalarilor şi funcţii elementare
Expresiile sunt evaluate de la stânga la dreapta, utilizându-se priorităţile
cunoscute: puteri, înmulţire şi împărţire, adunare şi scădere.
- adunare = "+" ex.: 5+3 ; - scădere = "-" ex.: 5-3 ;
- înmulţire = "*" ex.: 5*3 ;
- împărţire la dreapta "./" : z= x/y Ex : 5/2 ans =2.5
sau "." la stânga z= y/x : 52 ans=0.4
- putere = "^" ex.: 5^3=125
Pentru a modifica ordinea operaţiilor, se folosesc paranteze.
Ex: 5*((3+5)^2-7*(8-2)/5)-2 ans=276
Ex.10: Calculati {

(

 5+9
2 2 ⋅ 4 2 − 6 ⋅ e 5 ⋅ 9 + ln ( 3,5 ⋅ 7 )
 3

)  − 1 }2



 Funcţii elementare:(Elementary math functions).
- Trigonometrice (unghiurile în radiani) :
sin(x) = b / c- sinus ; sinh(x) =(ez-e-z)/2 - sinus hiperbolic ; asin(x) =sin-1(x)
- arcsinus (invers sinus) ; asinh(x) =sinh-1(x) – arcsinus hiperbolic (invers sin
hiperbolic) ;
- cosinus : cos(x)=a / c, cosh, acos, acosh ; tangentă : tan(x)=b / a, tanh, atan,
atanh ;cotangentă : cot(x)=a / b, coth, acot, acoth ;secantă :
2
sec(x)=1/cos(x)=c / a, sech, asec, asech ;cosecantă : csc(x)=1/sin(x)= c / b,
csch, acsc, acsch .
Ex >> sin(pi/6) ans = 0.5000 >> csc(pi/6)
ans = 2.0000
Ex.11: Calculati toate functiile trigonometrice pt. : 0,30,90 , 120, -45
Ex.12: Calculati toate functiile trigonometrice inverse pt. : 0 0,5 , 1
- Alte funcţii elementare :
exp(x) - ex (e = 2,7183- baza logaritmilor naturali) ;
log(x) - logaritm natural ; log10(x) - logaritm zecimal ;
sqrt(x) - radical ; abs(x) - valoarea absolută
- Funcţii referitoare la numere complexe : real, imag, conj, angle(in radiani)
Ex. >> x=3+4*i real(x) ans = 3 ; >> conj(x) ans = 3.0000 - 4.0000i
 Operaţii asupra vectorilor şi matricilor.
Un vector linie se poate introduce element cu element:
a= [ 1 3 5 8 -2
0], un vector coloană( trecerea de la o coloană la alta este marcată « ; »): b=
[ 1; 3; 5; 8; -2; 0]
Trecerea dintr-o formă în alta se poate realiza prin operatorul de transpunere
« ' »: a = b'
Obs: « .' » reprezintă transpunerea iar « ' » reprezintă transpunerea complex
conjugatei; pentru numere reale, cele două operaţii sunt identice.
- Generarea unui vector care începe cu elementul 0,următoarele elemente fiind
incrementate cu 0.1 până la atingerea valorii 1.
a=0:0.1:1
Ex: >> a=0:0.1:1 a =
0 0.1000 0.2000 0.3000 0.4000 0.5000
0.6000 0.7000 0.8000 0.9000 1.0000
- Înmulţirea fiecărui element al vectorului cu π= 3.14.... : a=(0:0.1:1)*pi
- linspace(prima valoare, ultima valoare, număr de valori) ; Ex :
a=linspace(0,1,11)
- Alte modalităti
: a=1:5, b=1:2:9, c=[a b] ⇒ c=[ 1 2 3 4 5 1 3 5 7 9].
d= [a(1:2:5) 1 0 1] ⇒ d=[1 3 5 1 0 1]
- Adresarea elementelor : d(3) fiind al treilea element, adica 5, d(3:6) fiind al
treilea,...,al şaselea element al vectorului.
- Introducerea matricilor este asemănătoare. Matricea:

1
a = 4

7


2
5
8

3
6

9


se poate introduce: a). a=[1 2 3; 4 5 6; 7 8 9]
b). a=[1 2 3
456
7 8 9]

3
Adresarea elementelor matricii: - a(2,3) reprezintă un element din linia 2,
coloana 3 adica 6 ; a(1,:) reprezintă toate coloanele din linia 1, adică
elementele 1 3 5 ; a(:,2) reprezintă toate liniile coloanei 2, adică 3 4 5 ; a(:)
rearanjează matricea într-un vector coloană, preluând elementele coloană după
coloană.
0
Ex.1 A = 2

3


1
7
2

5
9 .

1


Afisati elementul : a. aflat pe linia 1 coloana2, b. linia 1,

c. col 2
Ex.2: Creaţi vectorul ce conţine elementele : 32,4,81,e 2,5 ,63,cos(π/3)şi
14,12.
Ex.3:Creaţi vectorul coloană ce conţine elementele :55,14,ln(51),987,0,
sin(2,5π).
Ex.4: Creaţi vectorul linie a cărui prim element este 1, ultimul 33 şi pasul 2
Ex.5: Creaţi vectorul coloană a cărui prim element este 15, ultimul – 32 şi
pasul –5 Ex.6: Creaţi un vector linie cu 15 elemente, primul 7 ultimul 40
Ex.7: Creaţi un vector coloană cu 12 elemente, primul -1 ultimul –15
Ex.8: Sa se genereze un vector : a. Cu min=-20, max-10, pas=3 , b. min=2,5
max=7 si 4 elemente
c. Min=2,5 max=7 pas=1,25
Matrici speciale:
x= zeros(3) , y= ones(2,3) ,
z= eye(3) –diagonala principală 1
Fie a=[a1 a2 .....an], b=[b1 b2 .... bn], şi c un scalar c=[c] ; operaţii posibile,
semnificaţia lor :
adunarea unui scalar: a+c=[a1+c .... an+c] ;
înmulţire cu un scalar : a*c=[a1*c .... an*c] ;
adunarea a două tablouri: a+b=[a1+b1 ... an+bn] ;
înmulţirea a două tablouri: a.*b=[a1*b1 ... an*bn] ;
împărţire la dreapta, element cu elem.: a./b=[a1/b1 ... an/bn] ;
împărţire la stânga, elem. cu element : a.b=[a1b1 ... anbn] ;
- puteri : sir la puterea scalar: a.^c=[a1^c ... an^c] ; scalar la puterea sir:
c.^a=[c^a1 ... c^an] ;sir la puterea sir: a.^b=[a1^b1 ... an^bn] .
- Extragerea unei matrici dintr-o matrice dată : d=c(1:2,3:5) va genera matricea
c=[1 2 3 7 9;4 5 6 4 6;7 8 9 1 3]; d=c(1:2,3:5)⇒ d=[3 7 9;6 4 6]
- aflarea dimensiunii unui vector : n=length(c) sau a unei matrici :
[m n]=size(c), m-linii,
- Rangul, determinantul, transpusa şi inversa unei matrici pot fi evaluate prin
câte o simplă instrucţiune. : rangului matricii a:r=rank(a) , determinantul:
delta=det(a)
4
calculul inversei:
b=inv(a), transpusa nr. reale : b=a.' , conjugate: b=a'
- înmulţirea a două matrici " * ": c=a*b, a este m*n, b n*p, c n*p.
Ex.9: a=[2 -1 5 0] , b=[3 2 -1 4] , c=3 . Calculati a+b, a-b, d=b:a, d=a:b,
d=2:a , d=a*b, d=22+b, d=b*c*a , d=a’
Operatorul  şi / sunt echivalenţi este un operator deosebit de puternic, soluţia
aleasă pentru împărţire: soluţia sistemului: a*x=b
⇒ x=ab,
x=inv(a)*b.
Ex : Sa se rezolve sistemul :
x+2*y+3*z=9 ;
0.5*x +0.5*y+z+u=4.5 ;
2*x+y-z+2*u=4 ;
0.5*x-y+z-3*u=-2.5
ExOpt0: A=[1 2 .5 3 ; 0.5 0.5 1 1 ; 2 1 -1 2 ; 0.5 -1 1 -3] ;
B=[9 4.5 4 -2.5] ; B=B';
X=inv(A)*B; disp('X=”); disp(X)
U=AB
disp('sol.sist=');disp(U) ;
Ex.13: Rezolvaţi sistemul :
A
B
C
D
5x+4z-2y-6w=4
x+y+z=4
4x-2y-6z=8
3x+2y-z=1
3x+6y+6z+4,5w=13,5
x-2y-y=1
2x+8y+2z=4
2x-2y+4z=-2
6x-12y-2z-16w=20
2x-y-2z=-1
6x+10y+3z=0 -x+1/2 y-z=0
4x-2y+2z+4w=6
E
F
G
H
X+y+z=25
x+2y+3z=5
2x+3y+4z=5
Y+z=5
0,06x+0,07y+0,08z=1,62 x-y+6z=2
x-y+2z=6
3x+z=6
y-z=6
3x-2y=4
3x-5y-z=0
-x+y=1
Ex.14: Pentru ex.13.A-H calculati determinantul A, inversa A, rangul A,
transpusa A
 Grafica în MATLAB
In cazul bidimensional, se utilizează instrucţiunea "plot". Structura:
plot(y1,x1,'tip_linie1',y2,x2,'tip_linie2', ...);
- "tip_linie" reprezintă tipul liniei : « - », « _ » , « -. » sau al punctului :
« * », « + » , « x », « o » ,etc. precum şi culoarea cu codurile : r - rosu; g verde; b - albastru;
- Pe figură se pot adăuga: titlul figurii : title(' text ce reprezintă titlul');
eticheta(denumirile) axelor : xlabel(' .... '), ylabel(' ... ') ; grila (caroiajul):
grid;
5
- un text amplasat în punctul de coordonate(unităţile axelor) x,y: text(x,y,'....').
- limitele valorilor pe fiecare axă: axis([valminx valmaxx valminy valmaxy]).
Ex. Graficul personalizat al funcţiilor sinus şi cosinus în intervalul 0 - 360°.
x=0:pi/50:2*pi;
y1=sin(x);
y2=cos(x);
xgrd=x.*(180/pi);
plot(xgrd, y1, 'r+', xgrd, y2, 'go'); grid;
title('Graficul functiilor sinus si cosinus');
xlabel('valoare unghiului[grade]');
ylabel('valoarea functiei');
• ExOpt1. Reprezentarea determinărilor experimentale: Sa se reprezinte
determinarile experimentale obtinute in intervalul 0-5 min din 30 in 30 sec.
Personalizati.
t=0:0.5:5
H=[2.2 3.1 3.8 4.3 4.8 5.3 5.8 6.2 6.5 7 7.2 ]
plot(t,H, '*');grid;
m=min(H1),
M=max(H1),
med=mean(H1),
xlabel('timp-min');
ylabel('nivel');
title ('Determinari experimentale');
Ex.16: Trasati graficul pe o perioada a functiilor trigonometrice. Personalizati.
Ex.17: Trasati graficul functiilor x, x2, x3, ex, ey cu y=x2 x=0…4 Personalizati.
Ex.18: Trasati graficul functiilor : . Personalizati
a. 2x2sin(x/2)/(2x)
x=0….100
p=0.33
3
i
b. (i -lni)/e i=10….20 p-0,01
c.

n3 − n2
4n

n=1…….100

p=0,01

d. ln(a3-a2)/(a/2) * 3 a=50……100 p=20
e. sin(x3-x2)/(x-2)*3 x=5..6
p=0.001
In cazul tridimensional, se foloseşte instrucţiunea plot3.
- X=linspace(amin, amax, N) generează un vector între cele două limite cu
pasul p=(amax- amin)/(n+1)
Evaluarea lui z în vederea reprezentării grafice se fasce cu cei doi vectori
X,Y: (liniile matricii X sunt copii ale vectorului x iar coloanele matricii Y sunt
copii ale lui y)
6
Instrucţiunea « [X,Y]=meshgrid(x,y) » transformă domeniul specificat
prin vectorii x,y în tablourile X,Y, necesare pentru definirea punctelor (xi,yi)
pentru care se va face reprezentarea zi cât şi pentru reprezentării de tip 3D.
Ex: Graficul funcţiei z=x*exp(-x^2-y^2), unde x,y⊂[-2,2];
Ex. x=linspace(-2,2,20);
y=linspace(-2,2,20);
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
plot3(X,Y,Z,'g*'),grid;
 Valoarea medie µ pentru un set de valori ale unei variabile x.
Varianţa şi dispersia datelor
Varianţa σ 2 unui set de date se calculează cu relaţia :
N

n

µ=

∑xi
i =1

n

;

σ2 =

∑(x
k =1

k

− µ)

n

2

(2)

;

N −1

a std =

∑(x
i =1

i

− µ)

2

n −1

unde termenul (xk-µ) reprezintă diferenţa sau abaterea lui xk faţa de valoarea
medie µ. Prin urmare, varianţa reprezintă pătratul abaterii mediei pătratice a
datelor faţă de medie.
Abaterea medie pătratică (abaterea standard astd sau dispersia) este
definită ca rădăcina pătrată a varianţei, σ = σ .Funcţia Matlab care calculează
abaterea medie pătratică este std.
 Funcţii ale utilizatorului
Funcţiile utilizatorului se construiesc cu instrucţiunea function. Structura
unei astfel de funcţii este: function[variabile de
ieşire]=denumire_funcţie(variabile de intrare).
Dacă există mai multe variabile de ieşire, respectiv mai multe variabile de
intrare, acestea se separă prin virgulă. Funcţia trebuie salvată într-un fişier ce
are ca nume numele funcţiei (în acest caz: denumire_funcţie).Utilizatorul
apelează fişierul cu următoarea structură:
[variabile de ieşire]= denumire_funcţie(variabile de intrare).
• Ex. Să se realizeze o funcţie care să calculeze media aritmetică (mean) şi
abaterea standard (stdev) pentru un set de valori ale unei variabile x. Funcţia va
avea două variabile de ieşire şi o singură intrare, x.
Funcţia se salvează sub numele: ex.m
function [med,stdx] = ex(x)
n = length(x);
med = sum(x) / n;
stdx = sqrt(sum((x - med).^2)/(n-1));
2

7
length(x) determină "n", numărul de elemente ce compun vectorul x;
Exemplu de apelare: x=[2 4 6 8]; [med,stdx]=ex(x)
Ex.2. x=[5.1 6 5.7 6.2 5.5 5.8 6.05 5.3 5.8 5.4 6.05
5.75 5.9 6.15 5.38 ];
Ex.19 : Creati o functie pentru calculul valoare medie, abatere standard.
Aplicatie x=[1 3 5 7 9 10 13 20 34 52]
 Comenzi pentru execuţii secvenţiale
Pentru executarea repetată a unor secvenţe de calcul, se pot utiliza
buclele for şi while iar pentru luarea unor decizii în cursul calculului structurile
if ... else.
Structura ciclului "for":
for k = tablou
bloc de instrucţiuni ( se utilizează pentru indexare k)
end;
Ex. for1.: să se calculeze sinusul şi cosinusul unghiurilor 0,10, .... 90 de
grade.
% vectorul alfa , unghiurile fiind exprimate în grade
for k= 1:10
a(k)=(k-1)*10;
end;
% unghiurile exprimate în radiani
ar=a.*(pi/180);
x=sin(ar);
y=cos(ar);
disp('valoarea unghiului');disp(a);
disp('sinus de alfa=');disp(x);
disp('cosinus de alfa=');disp(y);
Ex.20: Instructiuni ciclice : Calculati si reprezentati grafic functia pentru toate
valorile intregi pentru care este definita :
a. f(x)=2x+8, pt. x=[-5,2], f(x)=3x2 pt. x=(2,5]
b. f(x)=x2 , pt. x=[0,1), f(x)=2-x pt. x=[1,2]
c. f(x)=x2, pt. x=[0,1], f(x)=1 pt. x=(1,2]
d. f(x)=cos(x), pt. x=[0,π/2], f(x)=1 pt. x=(π/2,π]
e. f(x)=x, pt. x=[0,2], f(x)=2 pt. x=(2,3]
Ciclul "while"
Structura:
while expresie1 operator_relaţional expresie2
bloc de instrucţiuni
8
end;
Operatorii relaţionali sunt:
== egal; >= mai mare sau egal; <= mai mic sau egal;
~= diferit; < mai mic; > mai mare.
Instrucţiunile din ciclu sunt executate atât timp cât raportul dintre
expresiile 1 şi 2 este adevărat.
Ex-Optw. : să se calculeze esin(α) pentru α=0, 10, …,90°:
a=0; da=10;
disp(‘alfa
exp(sin(alfa))’) ;
while a<=90
x=exp(sin(a)) ;
disp([a x]) ;
a=a+da ;
end;
Structura if ... else ... end:
if expresie_relaţională1
bloc de instrucţiuni executat dacă expresie_ relatională1 este adevarată
elseif expresie_relatională2
bloc de instrucţiuni executat dacă prima expresie relaţională este falsă iar
a doua adevarată
elseif expresie_relatională3
bloc de instrucţiuni executat dacă primele două expresii relaţionale sunt
false iar expresie_relatională3 este adevarată
............
else
bloc de instr. executat dacă expresiile relationale anterioare nu sunt
adevarate
end;
Ex: Mărimea de intrare « u » a unui proces are valoarea 0 în primele 100 sec.,
valoarea 1 în următoarele 100 de secunde după care revine din nou la zero :
tau=0 ;k=1;
x=-10:20;
while tau<250
for k=1 :length(x)
if tau <= 100
if x(k)<=2
u=0 ;
f(k)=2*x(k)+3;
elseif tau<=200
else
u= 1;
f(k)=2*x(k)^2-1;
else
end;
u=0 ;
end;
9
end;
plot(x,f);
disp([tau u]) ;
t(k)=k; x(k)=u;
tau=tau+1; ;k=k+1;
end ;
plot (t,x);grid;
axis([-1 260 -.1 1.1]);
Structura if ... else ... end – if1
Exemplu- if2
Ex-if2 : Calculati si reprezentati grafic functia pentru toate valorile intregi
pentru care este definita : f(x)=2x+3 ,pt. x=[-10, 2] ; f(x)= 2x2-1 pt. x=(2,20]
Ex. a. For2-Sa se calculeze sin((k1+k2)/(n+m)*pi);pt. k1=1:10,
k2=1:5
b. For3- Sa se calculeze ln(x) pt. X=12:-1 :6
For2 : n=10;m=5;
For3 : n=10;disp('k ln=') ;
for k1=1:n
for k=n+2:-1:n/2
for k2=1:m
x(k)=log(k);
c(k1,k2)=sin((k1+k2)/
disp([k x(k)]) ;
(n+m)*pi);
end;
end;
end;Disp([c]);
c. While –w2 : Să se calculeze esin(α) pentru α=0, 10, …,90°:
a=0; da=10;disp(‘alfa exp(sin(alfa))’) ;
while a<=90
x=exp(sin(a)) ;disp([a x]) ;a=a+da ;end;
Ex.21: Daca : 0,5e’(t)+e(t)=i(t); cu t=0,e(0)=0, si t=[0,4] Sa se reprezinte grafic
pt. i(t)=1

1

Contenu connexe

Tendances (19)

SMC
SMCSMC
SMC
 
Metoda reluării(1)
Metoda reluării(1)Metoda reluării(1)
Metoda reluării(1)
 
6207247 probleme-de-algebra-liniara-dumitru-busneag
6207247 probleme-de-algebra-liniara-dumitru-busneag6207247 probleme-de-algebra-liniara-dumitru-busneag
6207247 probleme-de-algebra-liniara-dumitru-busneag
 
Functii trigonometrice simple
Functii trigonometrice simpleFunctii trigonometrice simple
Functii trigonometrice simple
 
Functii, tablouri si pointeri in c si c++
Functii, tablouri si pointeri  in c si c++Functii, tablouri si pointeri  in c si c++
Functii, tablouri si pointeri in c si c++
 
Algebra clasa a vi a
Algebra clasa a vi aAlgebra clasa a vi a
Algebra clasa a vi a
 
Numere rationale VII
Numere rationale VIINumere rationale VII
Numere rationale VII
 
En sim-ii-barem-buc
En sim-ii-barem-bucEn sim-ii-barem-buc
En sim-ii-barem-buc
 
Culegere probleme gimnaziu
Culegere probleme gimnaziuCulegere probleme gimnaziu
Culegere probleme gimnaziu
 
Algebra si analiza de 11
Algebra si analiza de 11Algebra si analiza de 11
Algebra si analiza de 11
 
E c matematica_m1_var_07_lro
E c matematica_m1_var_07_lroE c matematica_m1_var_07_lro
E c matematica_m1_var_07_lro
 
Breviar teoretic
Breviar teoreticBreviar teoretic
Breviar teoretic
 
Formule matematice cls. v viii in doua pagini
Formule matematice cls. v   viii in doua paginiFormule matematice cls. v   viii in doua pagini
Formule matematice cls. v viii in doua pagini
 
Prezentarefunctiadegrad2
Prezentarefunctiadegrad2Prezentarefunctiadegrad2
Prezentarefunctiadegrad2
 
MBR
MBRMBR
MBR
 
Metoda bisecu021 biei
Metoda bisecu021 bieiMetoda bisecu021 biei
Metoda bisecu021 biei
 
Functiii
FunctiiiFunctiii
Functiii
 
Metoda coardelor
Metoda coardelorMetoda coardelor
Metoda coardelor
 
Metoda bisectiei
Metoda bisectieiMetoda bisectiei
Metoda bisectiei
 

En vedette

International students CPT/OPT Guidelines
International students CPT/OPT GuidelinesInternational students CPT/OPT Guidelines
International students CPT/OPT GuidelinesMary O Rigali
 
Stem opt it presentation
Stem opt it presentation Stem opt it presentation
Stem opt it presentation DesiOPT1
 
17 Months STEM OPT Extension revoked for F1 Visa Students
17 Months STEM OPT Extension revoked for F1 Visa Students17 Months STEM OPT Extension revoked for F1 Visa Students
17 Months STEM OPT Extension revoked for F1 Visa Studentshappyschools
 
Hiring employees on OPT, CPT & H- 1 B
Hiring employees on OPT, CPT & H- 1 BHiring employees on OPT, CPT & H- 1 B
Hiring employees on OPT, CPT & H- 1 BSweta Khandelwal
 
Population 9 - Mexico To Usa Migration
Population 9 - Mexico To Usa MigrationPopulation 9 - Mexico To Usa Migration
Population 9 - Mexico To Usa MigrationEcumene
 
English 6 dlp 5 words with affixes - prefixes opt
English 6 dlp 5   words with affixes - prefixes optEnglish 6 dlp 5   words with affixes - prefixes opt
English 6 dlp 5 words with affixes - prefixes optEDITHA HONRADEZ
 
How and When to apply for OPT - F1 Visa Students
How and When to apply for OPT - F1 Visa StudentsHow and When to apply for OPT - F1 Visa Students
How and When to apply for OPT - F1 Visa Studentshappyschools
 
Immigration Power Point
Immigration Power PointImmigration Power Point
Immigration Power Pointivykd_14
 
First presentation immigration and the united states
First presentation immigration and the united statesFirst presentation immigration and the united states
First presentation immigration and the united statesIsabel Cubilla
 
Immigration in the United States
Immigration in the United StatesImmigration in the United States
Immigration in the United StatesLisa Luper
 
Immigration presentation april 2012
Immigration presentation april 2012Immigration presentation april 2012
Immigration presentation april 2012bartleynorma
 
Immigration Powerpoint
Immigration PowerpointImmigration Powerpoint
Immigration PowerpointRoseenglobal
 

En vedette (16)

Opt
OptOpt
Opt
 
Immigration to the USA
Immigration to the USAImmigration to the USA
Immigration to the USA
 
International students CPT/OPT Guidelines
International students CPT/OPT GuidelinesInternational students CPT/OPT Guidelines
International students CPT/OPT Guidelines
 
Stem opt it presentation
Stem opt it presentation Stem opt it presentation
Stem opt it presentation
 
17 Months STEM OPT Extension revoked for F1 Visa Students
17 Months STEM OPT Extension revoked for F1 Visa Students17 Months STEM OPT Extension revoked for F1 Visa Students
17 Months STEM OPT Extension revoked for F1 Visa Students
 
Hiring employees on OPT, CPT & H- 1 B
Hiring employees on OPT, CPT & H- 1 BHiring employees on OPT, CPT & H- 1 B
Hiring employees on OPT, CPT & H- 1 B
 
Population 9 - Mexico To Usa Migration
Population 9 - Mexico To Usa MigrationPopulation 9 - Mexico To Usa Migration
Population 9 - Mexico To Usa Migration
 
English 6 dlp 5 words with affixes - prefixes opt
English 6 dlp 5   words with affixes - prefixes optEnglish 6 dlp 5   words with affixes - prefixes opt
English 6 dlp 5 words with affixes - prefixes opt
 
How and When to apply for OPT - F1 Visa Students
How and When to apply for OPT - F1 Visa StudentsHow and When to apply for OPT - F1 Visa Students
How and When to apply for OPT - F1 Visa Students
 
History Of Us Immigration Policy
History Of Us Immigration PolicyHistory Of Us Immigration Policy
History Of Us Immigration Policy
 
Us visa types
Us visa typesUs visa types
Us visa types
 
Immigration Power Point
Immigration Power PointImmigration Power Point
Immigration Power Point
 
First presentation immigration and the united states
First presentation immigration and the united statesFirst presentation immigration and the united states
First presentation immigration and the united states
 
Immigration in the United States
Immigration in the United StatesImmigration in the United States
Immigration in the United States
 
Immigration presentation april 2012
Immigration presentation april 2012Immigration presentation april 2012
Immigration presentation april 2012
 
Immigration Powerpoint
Immigration PowerpointImmigration Powerpoint
Immigration Powerpoint
 

Similaire à Opt

Culegereproblemegimnaziu 121203144139-phpapp01
Culegereproblemegimnaziu 121203144139-phpapp01Culegereproblemegimnaziu 121203144139-phpapp01
Culegereproblemegimnaziu 121203144139-phpapp01Adriana Moroianu
 
metoda_backtracking22.ppt
metoda_backtracking22.pptmetoda_backtracking22.ppt
metoda_backtracking22.pptOKMAN9
 
00007 backtracking
00007 backtracking00007 backtracking
00007 backtrackingAlly Le
 
Culegere de probleme pentru admiterea la scoala militara de maisti
Culegere de probleme pentru admiterea la scoala militara de maistiCulegere de probleme pentru admiterea la scoala militara de maisti
Culegere de probleme pentru admiterea la scoala militara de maistiRaul Katana
 
Nicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplaceNicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplaceRobin Cruise Jr.
 
Nicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplaceNicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplaceRobin Cruise Jr.
 
Ecuatii neliniare rom
Ecuatii neliniare romEcuatii neliniare rom
Ecuatii neliniare romHerpy Derpy
 

Similaire à Opt (20)

Auxiliar clasa v
Auxiliar clasa vAuxiliar clasa v
Auxiliar clasa v
 
Proiect tic
Proiect tic Proiect tic
Proiect tic
 
Culegereproblemegimnaziu 121203144139-phpapp01
Culegereproblemegimnaziu 121203144139-phpapp01Culegereproblemegimnaziu 121203144139-phpapp01
Culegereproblemegimnaziu 121203144139-phpapp01
 
Culegere probleme gimnaziu
Culegere probleme gimnaziuCulegere probleme gimnaziu
Culegere probleme gimnaziu
 
Veronica botnarenco
Veronica botnarencoVeronica botnarenco
Veronica botnarenco
 
Proiect xi t1 matrice
Proiect xi t1 matriceProiect xi t1 matrice
Proiect xi t1 matrice
 
Calculul numeric teorie
Calculul numeric teorieCalculul numeric teorie
Calculul numeric teorie
 
Lab1 is v4 (1)
Lab1 is v4 (1)Lab1 is v4 (1)
Lab1 is v4 (1)
 
Lab1 is v4
Lab1 is v4Lab1 is v4
Lab1 is v4
 
metoda_backtracking22.ppt
metoda_backtracking22.pptmetoda_backtracking22.ppt
metoda_backtracking22.ppt
 
Test i
Test iTest i
Test i
 
Sisteme de ecuatii
Sisteme de ecuatiiSisteme de ecuatii
Sisteme de ecuatii
 
00007 backtracking
00007 backtracking00007 backtracking
00007 backtracking
 
Culegere de probleme pentru admiterea la scoala militara de maisti
Culegere de probleme pentru admiterea la scoala militara de maistiCulegere de probleme pentru admiterea la scoala militara de maisti
Culegere de probleme pentru admiterea la scoala militara de maisti
 
Test i
Test iTest i
Test i
 
Metoda-bisecției
Metoda-bisecțieiMetoda-bisecției
Metoda-bisecției
 
En sim-ii-barem-buc
En sim-ii-barem-bucEn sim-ii-barem-buc
En sim-ii-barem-buc
 
Nicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplaceNicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplace
 
Nicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplaceNicolae Cotfas - Introducere in analiza fourier laplace
Nicolae Cotfas - Introducere in analiza fourier laplace
 
Ecuatii neliniare rom
Ecuatii neliniare romEcuatii neliniare rom
Ecuatii neliniare rom
 

Opt

  • 1. Opt1/Seminar Optimizări- Introducere în MATLAB-2013-2014 MATLAB este un mediu de programare bazat pe operaţii asupra tablourilor (vectori si matrici), de unde si numele (« MATrix LABoratory »). Matlab este un pachet de programe de înaltă performanţă dedicat calcului numeric şi reprezentărilor grafice în domeniul ingineriei.MATLAB include si aplicaţii specifice numite TOOLBOX-uri. Acestea sunt colecţii de fisiere de tip « funcţie », cu extensie « .m », dedicate rezolvării unor probleme ingineresti. Deschiderea Matlab : Dublu clik pe pictograma Matlab. Apare meniul : Comenzile Matlab de încărcare şi salvare a fişierelor de date de pe (pe) discul curent sunt: crearea unui fişier .m : Matlab: File: New: M-file - creare (scriere)- salvare în spaţiul de lucru Work : save – salvează într-un fişier de date pe disc. load – încarcă variabilele dintr-un fişier de date de pe disc; Salvarea variabilelor A B C din spaţiul de lucru, într-un fişier nume_fişier.mat se face utilizând comanda:save nume_fişier A B C Încărcarea datelor din fişiere cu extensie .mat se face utilizând comanda:load nume_fişier  Linia comentariu începe obligatoriu cu « % »  Deoarece Matlab memorează toate instrucţiunile operate, la trecerea unui alt program trebuie şterse din memoria acestuia cu instrucţiunile clear all şi clc.  Programele realizate sub MATLAB se redactează fie în fereastra de comenzi, situaţie în care fiecare linie de program este executată imediat ce se tastează « enter » : Ex :5+3« enter » ⇒ ans =8  fie în fişiere : File⇒New⇒M-file ⇒ Se scrie programul ⇒ Se salveaza automat cu un nume fisier si extensia « .m » in directorul Work. Programul este rulat la tastarea numelui fişierului în fereastra de comenzi. Ex . de program : x=5;y=3;s=x+y salvat « suma » în fereastra de comenzi tastam « suma » ⇒ s = 8 1
  • 2.  Dacă o instrucţiune nu se termină prin punct-virgulă, « ; », rezultatele sunt afişate imediat ce linia este executată.  Variabilele în MATLAB. - Trebuie să înceapă cu o literă; MATLAB face o diferenţiere între literele mari şi mici - Lungimea cuvântului : 19 caractere( restul sunt ignorate); nu este permisă folosirea semnelor de punctuaţie în interiorul unui cuvânt ce reprezintă o variabilă ; - Variabile speciale utilizate de MATLAB: « ans » - rezultatul unui calcul; « pi » - raportul dintre perimetrul şi diametrul cercului = 3.14...; « i »sau « j » = radical din -1,de la numerele complexe; Ex: >> i ans = 0 + 1.0000i « realmin » şi « realmax » - cel mai mic şi respectiv cel mai mare număr real pozitiv utilizabil. - Formate de afişare a numerelor: format opţiune cu opţiunile : short - patru cifre după virgulă ex.: 35.3482 - este forma standard; long - afişare pe 16 pozitii ex.: 35.34822154352415; rat - fracţie ex. : 215/6;  Operaţii matematice asupra scalarilor şi funcţii elementare Expresiile sunt evaluate de la stânga la dreapta, utilizându-se priorităţile cunoscute: puteri, înmulţire şi împărţire, adunare şi scădere. - adunare = "+" ex.: 5+3 ; - scădere = "-" ex.: 5-3 ; - înmulţire = "*" ex.: 5*3 ; - împărţire la dreapta "./" : z= x/y Ex : 5/2 ans =2.5 sau "." la stânga z= y/x : 52 ans=0.4 - putere = "^" ex.: 5^3=125 Pentru a modifica ordinea operaţiilor, se folosesc paranteze. Ex: 5*((3+5)^2-7*(8-2)/5)-2 ans=276 Ex.10: Calculati { (  5+9 2 2 ⋅ 4 2 − 6 ⋅ e 5 ⋅ 9 + ln ( 3,5 ⋅ 7 )  3 )  − 1 }2    Funcţii elementare:(Elementary math functions). - Trigonometrice (unghiurile în radiani) : sin(x) = b / c- sinus ; sinh(x) =(ez-e-z)/2 - sinus hiperbolic ; asin(x) =sin-1(x) - arcsinus (invers sinus) ; asinh(x) =sinh-1(x) – arcsinus hiperbolic (invers sin hiperbolic) ; - cosinus : cos(x)=a / c, cosh, acos, acosh ; tangentă : tan(x)=b / a, tanh, atan, atanh ;cotangentă : cot(x)=a / b, coth, acot, acoth ;secantă : 2
  • 3. sec(x)=1/cos(x)=c / a, sech, asec, asech ;cosecantă : csc(x)=1/sin(x)= c / b, csch, acsc, acsch . Ex >> sin(pi/6) ans = 0.5000 >> csc(pi/6) ans = 2.0000 Ex.11: Calculati toate functiile trigonometrice pt. : 0,30,90 , 120, -45 Ex.12: Calculati toate functiile trigonometrice inverse pt. : 0 0,5 , 1 - Alte funcţii elementare : exp(x) - ex (e = 2,7183- baza logaritmilor naturali) ; log(x) - logaritm natural ; log10(x) - logaritm zecimal ; sqrt(x) - radical ; abs(x) - valoarea absolută - Funcţii referitoare la numere complexe : real, imag, conj, angle(in radiani) Ex. >> x=3+4*i real(x) ans = 3 ; >> conj(x) ans = 3.0000 - 4.0000i  Operaţii asupra vectorilor şi matricilor. Un vector linie se poate introduce element cu element: a= [ 1 3 5 8 -2 0], un vector coloană( trecerea de la o coloană la alta este marcată « ; »): b= [ 1; 3; 5; 8; -2; 0] Trecerea dintr-o formă în alta se poate realiza prin operatorul de transpunere « ' »: a = b' Obs: « .' » reprezintă transpunerea iar « ' » reprezintă transpunerea complex conjugatei; pentru numere reale, cele două operaţii sunt identice. - Generarea unui vector care începe cu elementul 0,următoarele elemente fiind incrementate cu 0.1 până la atingerea valorii 1. a=0:0.1:1 Ex: >> a=0:0.1:1 a = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 - Înmulţirea fiecărui element al vectorului cu π= 3.14.... : a=(0:0.1:1)*pi - linspace(prima valoare, ultima valoare, număr de valori) ; Ex : a=linspace(0,1,11) - Alte modalităti : a=1:5, b=1:2:9, c=[a b] ⇒ c=[ 1 2 3 4 5 1 3 5 7 9]. d= [a(1:2:5) 1 0 1] ⇒ d=[1 3 5 1 0 1] - Adresarea elementelor : d(3) fiind al treilea element, adica 5, d(3:6) fiind al treilea,...,al şaselea element al vectorului. - Introducerea matricilor este asemănătoare. Matricea: 1 a = 4  7  2 5 8 3 6  9  se poate introduce: a). a=[1 2 3; 4 5 6; 7 8 9] b). a=[1 2 3 456 7 8 9] 3
  • 4. Adresarea elementelor matricii: - a(2,3) reprezintă un element din linia 2, coloana 3 adica 6 ; a(1,:) reprezintă toate coloanele din linia 1, adică elementele 1 3 5 ; a(:,2) reprezintă toate liniile coloanei 2, adică 3 4 5 ; a(:) rearanjează matricea într-un vector coloană, preluând elementele coloană după coloană. 0 Ex.1 A = 2  3  1 7 2 5 9 .  1  Afisati elementul : a. aflat pe linia 1 coloana2, b. linia 1, c. col 2 Ex.2: Creaţi vectorul ce conţine elementele : 32,4,81,e 2,5 ,63,cos(π/3)şi 14,12. Ex.3:Creaţi vectorul coloană ce conţine elementele :55,14,ln(51),987,0, sin(2,5π). Ex.4: Creaţi vectorul linie a cărui prim element este 1, ultimul 33 şi pasul 2 Ex.5: Creaţi vectorul coloană a cărui prim element este 15, ultimul – 32 şi pasul –5 Ex.6: Creaţi un vector linie cu 15 elemente, primul 7 ultimul 40 Ex.7: Creaţi un vector coloană cu 12 elemente, primul -1 ultimul –15 Ex.8: Sa se genereze un vector : a. Cu min=-20, max-10, pas=3 , b. min=2,5 max=7 si 4 elemente c. Min=2,5 max=7 pas=1,25 Matrici speciale: x= zeros(3) , y= ones(2,3) , z= eye(3) –diagonala principală 1 Fie a=[a1 a2 .....an], b=[b1 b2 .... bn], şi c un scalar c=[c] ; operaţii posibile, semnificaţia lor : adunarea unui scalar: a+c=[a1+c .... an+c] ; înmulţire cu un scalar : a*c=[a1*c .... an*c] ; adunarea a două tablouri: a+b=[a1+b1 ... an+bn] ; înmulţirea a două tablouri: a.*b=[a1*b1 ... an*bn] ; împărţire la dreapta, element cu elem.: a./b=[a1/b1 ... an/bn] ; împărţire la stânga, elem. cu element : a.b=[a1b1 ... anbn] ; - puteri : sir la puterea scalar: a.^c=[a1^c ... an^c] ; scalar la puterea sir: c.^a=[c^a1 ... c^an] ;sir la puterea sir: a.^b=[a1^b1 ... an^bn] . - Extragerea unei matrici dintr-o matrice dată : d=c(1:2,3:5) va genera matricea c=[1 2 3 7 9;4 5 6 4 6;7 8 9 1 3]; d=c(1:2,3:5)⇒ d=[3 7 9;6 4 6] - aflarea dimensiunii unui vector : n=length(c) sau a unei matrici : [m n]=size(c), m-linii, - Rangul, determinantul, transpusa şi inversa unei matrici pot fi evaluate prin câte o simplă instrucţiune. : rangului matricii a:r=rank(a) , determinantul: delta=det(a) 4
  • 5. calculul inversei: b=inv(a), transpusa nr. reale : b=a.' , conjugate: b=a' - înmulţirea a două matrici " * ": c=a*b, a este m*n, b n*p, c n*p. Ex.9: a=[2 -1 5 0] , b=[3 2 -1 4] , c=3 . Calculati a+b, a-b, d=b:a, d=a:b, d=2:a , d=a*b, d=22+b, d=b*c*a , d=a’ Operatorul şi / sunt echivalenţi este un operator deosebit de puternic, soluţia aleasă pentru împărţire: soluţia sistemului: a*x=b ⇒ x=ab, x=inv(a)*b. Ex : Sa se rezolve sistemul : x+2*y+3*z=9 ; 0.5*x +0.5*y+z+u=4.5 ; 2*x+y-z+2*u=4 ; 0.5*x-y+z-3*u=-2.5 ExOpt0: A=[1 2 .5 3 ; 0.5 0.5 1 1 ; 2 1 -1 2 ; 0.5 -1 1 -3] ; B=[9 4.5 4 -2.5] ; B=B'; X=inv(A)*B; disp('X=”); disp(X) U=AB disp('sol.sist=');disp(U) ; Ex.13: Rezolvaţi sistemul : A B C D 5x+4z-2y-6w=4 x+y+z=4 4x-2y-6z=8 3x+2y-z=1 3x+6y+6z+4,5w=13,5 x-2y-y=1 2x+8y+2z=4 2x-2y+4z=-2 6x-12y-2z-16w=20 2x-y-2z=-1 6x+10y+3z=0 -x+1/2 y-z=0 4x-2y+2z+4w=6 E F G H X+y+z=25 x+2y+3z=5 2x+3y+4z=5 Y+z=5 0,06x+0,07y+0,08z=1,62 x-y+6z=2 x-y+2z=6 3x+z=6 y-z=6 3x-2y=4 3x-5y-z=0 -x+y=1 Ex.14: Pentru ex.13.A-H calculati determinantul A, inversa A, rangul A, transpusa A  Grafica în MATLAB In cazul bidimensional, se utilizează instrucţiunea "plot". Structura: plot(y1,x1,'tip_linie1',y2,x2,'tip_linie2', ...); - "tip_linie" reprezintă tipul liniei : « - », « _ » , « -. » sau al punctului : « * », « + » , « x », « o » ,etc. precum şi culoarea cu codurile : r - rosu; g verde; b - albastru; - Pe figură se pot adăuga: titlul figurii : title(' text ce reprezintă titlul'); eticheta(denumirile) axelor : xlabel(' .... '), ylabel(' ... ') ; grila (caroiajul): grid; 5
  • 6. - un text amplasat în punctul de coordonate(unităţile axelor) x,y: text(x,y,'....'). - limitele valorilor pe fiecare axă: axis([valminx valmaxx valminy valmaxy]). Ex. Graficul personalizat al funcţiilor sinus şi cosinus în intervalul 0 - 360°. x=0:pi/50:2*pi; y1=sin(x); y2=cos(x); xgrd=x.*(180/pi); plot(xgrd, y1, 'r+', xgrd, y2, 'go'); grid; title('Graficul functiilor sinus si cosinus'); xlabel('valoare unghiului[grade]'); ylabel('valoarea functiei'); • ExOpt1. Reprezentarea determinărilor experimentale: Sa se reprezinte determinarile experimentale obtinute in intervalul 0-5 min din 30 in 30 sec. Personalizati. t=0:0.5:5 H=[2.2 3.1 3.8 4.3 4.8 5.3 5.8 6.2 6.5 7 7.2 ] plot(t,H, '*');grid; m=min(H1), M=max(H1), med=mean(H1), xlabel('timp-min'); ylabel('nivel'); title ('Determinari experimentale'); Ex.16: Trasati graficul pe o perioada a functiilor trigonometrice. Personalizati. Ex.17: Trasati graficul functiilor x, x2, x3, ex, ey cu y=x2 x=0…4 Personalizati. Ex.18: Trasati graficul functiilor : . Personalizati a. 2x2sin(x/2)/(2x) x=0….100 p=0.33 3 i b. (i -lni)/e i=10….20 p-0,01 c. n3 − n2 4n n=1…….100 p=0,01 d. ln(a3-a2)/(a/2) * 3 a=50……100 p=20 e. sin(x3-x2)/(x-2)*3 x=5..6 p=0.001 In cazul tridimensional, se foloseşte instrucţiunea plot3. - X=linspace(amin, amax, N) generează un vector între cele două limite cu pasul p=(amax- amin)/(n+1) Evaluarea lui z în vederea reprezentării grafice se fasce cu cei doi vectori X,Y: (liniile matricii X sunt copii ale vectorului x iar coloanele matricii Y sunt copii ale lui y) 6
  • 7. Instrucţiunea « [X,Y]=meshgrid(x,y) » transformă domeniul specificat prin vectorii x,y în tablourile X,Y, necesare pentru definirea punctelor (xi,yi) pentru care se va face reprezentarea zi cât şi pentru reprezentării de tip 3D. Ex: Graficul funcţiei z=x*exp(-x^2-y^2), unde x,y⊂[-2,2]; Ex. x=linspace(-2,2,20); y=linspace(-2,2,20); [X,Y]=meshgrid(x,y); Z=X.*exp(-X.^2-Y.^2); plot3(X,Y,Z,'g*'),grid;  Valoarea medie µ pentru un set de valori ale unei variabile x. Varianţa şi dispersia datelor Varianţa σ 2 unui set de date se calculează cu relaţia : N n µ= ∑xi i =1 n ; σ2 = ∑(x k =1 k − µ) n 2 (2) ; N −1 a std = ∑(x i =1 i − µ) 2 n −1 unde termenul (xk-µ) reprezintă diferenţa sau abaterea lui xk faţa de valoarea medie µ. Prin urmare, varianţa reprezintă pătratul abaterii mediei pătratice a datelor faţă de medie. Abaterea medie pătratică (abaterea standard astd sau dispersia) este definită ca rădăcina pătrată a varianţei, σ = σ .Funcţia Matlab care calculează abaterea medie pătratică este std.  Funcţii ale utilizatorului Funcţiile utilizatorului se construiesc cu instrucţiunea function. Structura unei astfel de funcţii este: function[variabile de ieşire]=denumire_funcţie(variabile de intrare). Dacă există mai multe variabile de ieşire, respectiv mai multe variabile de intrare, acestea se separă prin virgulă. Funcţia trebuie salvată într-un fişier ce are ca nume numele funcţiei (în acest caz: denumire_funcţie).Utilizatorul apelează fişierul cu următoarea structură: [variabile de ieşire]= denumire_funcţie(variabile de intrare). • Ex. Să se realizeze o funcţie care să calculeze media aritmetică (mean) şi abaterea standard (stdev) pentru un set de valori ale unei variabile x. Funcţia va avea două variabile de ieşire şi o singură intrare, x. Funcţia se salvează sub numele: ex.m function [med,stdx] = ex(x) n = length(x); med = sum(x) / n; stdx = sqrt(sum((x - med).^2)/(n-1)); 2 7
  • 8. length(x) determină "n", numărul de elemente ce compun vectorul x; Exemplu de apelare: x=[2 4 6 8]; [med,stdx]=ex(x) Ex.2. x=[5.1 6 5.7 6.2 5.5 5.8 6.05 5.3 5.8 5.4 6.05 5.75 5.9 6.15 5.38 ]; Ex.19 : Creati o functie pentru calculul valoare medie, abatere standard. Aplicatie x=[1 3 5 7 9 10 13 20 34 52]  Comenzi pentru execuţii secvenţiale Pentru executarea repetată a unor secvenţe de calcul, se pot utiliza buclele for şi while iar pentru luarea unor decizii în cursul calculului structurile if ... else. Structura ciclului "for": for k = tablou bloc de instrucţiuni ( se utilizează pentru indexare k) end; Ex. for1.: să se calculeze sinusul şi cosinusul unghiurilor 0,10, .... 90 de grade. % vectorul alfa , unghiurile fiind exprimate în grade for k= 1:10 a(k)=(k-1)*10; end; % unghiurile exprimate în radiani ar=a.*(pi/180); x=sin(ar); y=cos(ar); disp('valoarea unghiului');disp(a); disp('sinus de alfa=');disp(x); disp('cosinus de alfa=');disp(y); Ex.20: Instructiuni ciclice : Calculati si reprezentati grafic functia pentru toate valorile intregi pentru care este definita : a. f(x)=2x+8, pt. x=[-5,2], f(x)=3x2 pt. x=(2,5] b. f(x)=x2 , pt. x=[0,1), f(x)=2-x pt. x=[1,2] c. f(x)=x2, pt. x=[0,1], f(x)=1 pt. x=(1,2] d. f(x)=cos(x), pt. x=[0,π/2], f(x)=1 pt. x=(π/2,π] e. f(x)=x, pt. x=[0,2], f(x)=2 pt. x=(2,3] Ciclul "while" Structura: while expresie1 operator_relaţional expresie2 bloc de instrucţiuni 8
  • 9. end; Operatorii relaţionali sunt: == egal; >= mai mare sau egal; <= mai mic sau egal; ~= diferit; < mai mic; > mai mare. Instrucţiunile din ciclu sunt executate atât timp cât raportul dintre expresiile 1 şi 2 este adevărat. Ex-Optw. : să se calculeze esin(α) pentru α=0, 10, …,90°: a=0; da=10; disp(‘alfa exp(sin(alfa))’) ; while a<=90 x=exp(sin(a)) ; disp([a x]) ; a=a+da ; end; Structura if ... else ... end: if expresie_relaţională1 bloc de instrucţiuni executat dacă expresie_ relatională1 este adevarată elseif expresie_relatională2 bloc de instrucţiuni executat dacă prima expresie relaţională este falsă iar a doua adevarată elseif expresie_relatională3 bloc de instrucţiuni executat dacă primele două expresii relaţionale sunt false iar expresie_relatională3 este adevarată ............ else bloc de instr. executat dacă expresiile relationale anterioare nu sunt adevarate end; Ex: Mărimea de intrare « u » a unui proces are valoarea 0 în primele 100 sec., valoarea 1 în următoarele 100 de secunde după care revine din nou la zero : tau=0 ;k=1; x=-10:20; while tau<250 for k=1 :length(x) if tau <= 100 if x(k)<=2 u=0 ; f(k)=2*x(k)+3; elseif tau<=200 else u= 1; f(k)=2*x(k)^2-1; else end; u=0 ; end; 9
  • 10. end; plot(x,f); disp([tau u]) ; t(k)=k; x(k)=u; tau=tau+1; ;k=k+1; end ; plot (t,x);grid; axis([-1 260 -.1 1.1]); Structura if ... else ... end – if1 Exemplu- if2 Ex-if2 : Calculati si reprezentati grafic functia pentru toate valorile intregi pentru care este definita : f(x)=2x+3 ,pt. x=[-10, 2] ; f(x)= 2x2-1 pt. x=(2,20] Ex. a. For2-Sa se calculeze sin((k1+k2)/(n+m)*pi);pt. k1=1:10, k2=1:5 b. For3- Sa se calculeze ln(x) pt. X=12:-1 :6 For2 : n=10;m=5; For3 : n=10;disp('k ln=') ; for k1=1:n for k=n+2:-1:n/2 for k2=1:m x(k)=log(k); c(k1,k2)=sin((k1+k2)/ disp([k x(k)]) ; (n+m)*pi); end; end; end;Disp([c]); c. While –w2 : Să se calculeze esin(α) pentru α=0, 10, …,90°: a=0; da=10;disp(‘alfa exp(sin(alfa))’) ; while a<=90 x=exp(sin(a)) ;disp([a x]) ;a=a+da ;end; Ex.21: Daca : 0,5e’(t)+e(t)=i(t); cu t=0,e(0)=0, si t=[0,4] Sa se reprezinte grafic pt. i(t)=1 1