Sunteți pe pagina 1din 154

1

Optimizări-C5-CuTot Win10
Introducere

În toate activitatile umane se manifesta continuu tendinta (tendintele) de perfectionare,


de alegere a unor solutii optime. Atunci cand in domeniu sau produs acumulari cantitative ce
permit adoptarea si utilizarea unui suport matematic adecvat, atunci se trece la utilizarea acestor
facilitati.
In limbajul curent spunem ca urmarim gasirea unei solutii optime (din punct de vedere
tehnic in cazul nostru) respectiv solutionarea unei probleme de optimizare.
Ca disciplina de studiu optimizarea isi gaseste aplicatii practic in toate domeniile de
activitate umana.
Mai mult decat atat daca urmarim procese din natura in care nu intervin perturbatii
majore determinate de activitatea umana se observa tendinte de evolutie a acestor sisteme spre
stari si situatii optime.
Revenind la gama activitatilor umane putem spune ca utilizarea simpla a termenului de
optimizare este adesea abuziva.
Daca consideram ca sistemul optim este cel mai bun atunci ne aflam in fata unei utopii.
In aceste sens, optimul se defineste in raport cu un criteriu de optimizare exprimat printr-un
indice de calitate, functie obiectiv, functie cost, etc.
Pentru sistemele tehnice cea mai utilizata este denumirea de functie obiectiv care va fi
utilizata in continuare, atunci cand vorbim de optimizare in caz general si cu atat mai mult cand
ne referim la optimizarea sistemelor.
Functiile obiectiv se exprima de regula prin intermediul unor functii sau functionale ce
depind de o serie de variabile:
 de intrare
 de stare
 de iesire
sau/ si de parametrii constructivi ai sistemului considerat.
Conform celor de mai sus optimizarea unui sistem, conform criteriului (functie obiectiv)
adoptat consta in extremizarea functiei (determinarea maximului sau a minimului).
Determinare maximului (minimului) se poate face in conditiile existente sau inexistente a
unor restrictii. In fapt sisteme fara restrictii nu exista in practica, dar exista situatii in care ele pot
fi ignorate partial sau total cu scopul de a obtine solutii simple, usor implementabile dar care pot
asigura functionarea in situatii apropiate de optimul contat.
Problemele de optimizare se refera asadar la extremizarea unei functii sau functionale.
Ele se pot aplica regimurilor stationare sau celor dinamice.
In ce priveste problemele de optimizare a regimurilor dinamice(optimizari dinamice)
mai sunt cunoscute si sub numele de conducere(control) optimal.
In ce priveste optimizarea regimurilor stationare vorbim de optimizare stationara.
Nu este momentul sa ne …….. asemanarile si deosebirile, insa facem precizarea:
problemele de optimizari dinamice pot fi interpretate si solutionate ca probleme de optimizare
stationara.
Pentru a ne familiarize cu problematica optimizarii stationare prezentam cateva problem,
cazuri de astfel de optimizari.
1. Planificarea productiei:
Se considera o firma ce produce trei tipuri de produse, i= 1, 2, 3 in cantitatile x 1, x2,
x3.Pentru aceasta dispune de doua tipuri de resurse, i= 1,2 in cantitatile b1, b2.
Consideranduse pretul unitar(castigul) al celor trei tipuri de produse C1, C2 si C3 sa se
efectueze o planificare a productiei care sa asigure castigul maxim.
Formularea problemei consta in precizarea functiei obiectiv si evidentierea restrictiilor ce
o limiteaza. Astfel functia obiectiv va fi castigul total adica:
2
Optimizări-C5-CuTot Win10

𝑓(𝑥) = 𝑓(𝑥1 , 𝑥2 , 𝑥3 ) = 𝐶1 ⋅ 𝑥1 + 𝐶2 ⋅ 𝑥2 + 𝐶3 ⋅ 𝑥3 (1)

Restrictiile vor fi determinate de relatiile dintre resursele necesare pentru realizarea si


resursele disponibile din resursa b1.
Cunoscand resursele necesare pentru realizarea unitatilor de produs 1, 2 si 3 dupa cum
urmeaza:
- cantitatile de resurse a11 (din b1) pentru realizarea unitatii de produs 1.
- cantitatile de produs a12 (din b1) pentru realizarea unitatii de produs 2.
- cantitatile de produs a13 (din b1) pentru realizarea unitatii de produs 3.
- cantitatile de produs a21 (din b2) pentru realizarea unitatii de produs 1.
- cantitatile de produs a22 (din b2) pentru realizarea unitatii de produs 2.
- cantitatile de produs a23 (din b2) pentru realizarea unitatii de produs 3.
Se pot formula restrictiilor problemei de optimizare descries de ecuatia (1) si avem:

𝑎11 ⋅ 𝑥1 + 𝑎12 ⋅ 𝑥2 + 𝑎13 ⋅ 𝑥3 , , ≤ 𝑏1 𝑣𝑣𝑣𝑣𝑣 (2)


𝑎21 ⋅ 𝑥1 + 𝑎22 ⋅ 𝑥2 + 𝑎23 ⋅ 𝑥3 ≤ 𝑏2 (3)

Evident ca problema poate fi generalizata, optimizarea constand in gasirea maximului


functiei:
𝑛

𝑓(𝑥) = 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = ∑ 𝐶𝑖 ∙ 𝑥𝑖 ; 𝐶𝑖 ∈ 𝑅+ ; 𝑥𝑖 ∈ 𝑁
𝑖=1

cu restrictiile:

𝑛
∑ 𝑎𝑖𝑗 ∙ 𝑥𝑖 ≤ 𝑏𝑗 ; 𝑗 = 1, 2, . . . 𝑚 ∈ 𝑁
𝑖=1

𝑛
∑ 𝑎𝑖𝑗 ⋅ 𝑥𝑖 ≤ 𝑏𝑗 ; 𝑗 = 1, 2, . . . 𝑚 ∈ 𝑁
𝑖=1
n fiind numarul total de produse, iar m numarul total de restrictii.
Evident ca problema poate fi extinsa respectiv reformulata pentru cazul benficiului, dar
acesta constituie un exercitiu economic ce nu face obiectul prezentarii de fata.

Exemplu 1. Problema de fizica


3
Optimizări-C5-CuTot Win10
Un corp cu masa m este deplasat pe o suprafata orizontala plana, cu viteza constanta sub
actiunea unei forte F care face unghiul α cu sensul de deplasare.

Sa se determine unghiul α pentru care forta F are valoarea minima.

Formularea problemei de optimizare

Ff +F + G=0

Pentru deplasare cu viteza v=constant este necesar ca : Ff + F0= 0 Forta de frecare va fi


determinata de forta normal si coeficientul de frecare, conform relatiilor:
Type equation here.
Ff=µ·N Ff-F·cosα=0
N=G-Fr G-F·sinα=N
F0=F·cosα µ·N-F·cosα=0
Fv=F·sinα µ(G-F·sinα)-F·cosα=0
µ·G-µ·F·sinα-F·cosα=0
μ∙G
F(∝)=xxxxx μ∙ sin α+ cos α
Aceasta este functia obiectiv, iar ca restrictie putem adopta relatia
π
0<α<
2

1. Aspecte generale de formulare a problemelor


de optimizare
Asa cum rezultă din prezentarea anterioara optimizarea consta aproape in toate cazurile
in extremizarea unei functii scalare de una sau mai multe variabile.
Extremizarea inseamna maximizare sau minimizare. Se poate arata ca orice problema de
maximizare se poate transforma intru-una de minimizare prin simpla inversare a numelui
functiei obiectiv, adica:
min f(x)= min f(x1,x2…..xn)
unde x Є Rn si f 𝜖 R
𝑥 ∈ 𝑅 𝑛 şi 𝑓(𝑥) ∈ 𝑅
Functia obiectiv poate fi exprimata analitic, graphic, tabelar sau sub alte forme. In
continuare ne vom ocupa de situatiile in care functia obiectiv se exprima in forma analitica.
Din punctul de vedere al absentei sau existentei unor conditii suplimentare numite
restrictii spunem ca avem de-a face cu optimizari:
- cu restrictii
- fara restrictii.
Restrictiile se exprima sub forma de egalitati sau inegalitati de forma:
hi( x )=0 i=1,e e≤n
4
Optimizări-C5-CuTot Win10
gj( x )≤ i=1,m
O problema de minimizare a unei functii scalare, cu respectarea restrictiilor este de fapt o
problema de programare matematica.
In cazul in care optimizarea se refera la conducerea proceselor, ne vom referi la regimul
stationar al acestora, motiv pentru care vorbim de optimizare stationara.
Dat fiind faptul ca o optimizare consta in gasirea minimului unei functii este utila
definirea minimului unei functii in conditiile absentei restrictiilor, si a prezentei acestora.

1. Aspecte teoretice ale optimizării

Fie functia obiectiv de o singură variabilă


𝑓(𝑥): 𝑅 ⇒ 𝑅
D1. Spunem ca punctul x0 𝜖 R este un punct minim local al functiei daca pentru:
|x-x*a |<ε este valabila relatia: f(xa* )≤f(x) oricare ar fi ε >0
D2. Spunem ca x* 𝜖 R este un minim absolut (global) al functiei f(x) daca:
*
f(xa )≤f(x) oricare ar fi x 𝜖 R.
Pentru ca un parametru x0 sa fie un minim local sau absolut al unei functii f(x) se
definesc conditii de necesitate (CNI) si conditiide suficienta (CSI).
CN1. Un punct x* apartinand unui interval [a,b] in care functia este continua , este un minim
daca:
df(x0 )
f' (x0 )=
dx
, 𝑑𝑓(𝑥∗)
𝑓 (𝑥 ∗) = 𝑑𝑥
exista şi f’(x*)=0, conform figurii 3

CN2. Daca o functie f(x)este continua pe portiuni si are un numar finit de discontinuitati intr-un
interval [a,b] atunci un punct x* situat in acest interval este un punct de minim daca:
lim 𝑓′ (𝑥) ≤ 0 si 𝑥→𝑥
f’(x*)=0; 𝑥→𝑥 lim 𝑓′ (𝑥) ≥ 0 conform figurii 2 R0SU𝐸𝐶𝑈𝐴𝑇𝐼𝐸𝑀𝑂𝐷𝐸𝐿
0 0
𝑥<𝑥0 𝑥>𝑥0
5
Optimizări-C5-CuTot Win10

Considerand aceeasi restrictive , prezentata in


figura 2.
Petru ca x=a sa reprezinte un punct de minim
este necesar ca:
lim
𝑥→𝑎
𝑓′ (𝑥) ≥ 0
𝑥>𝑎

Pentru ca x=b sa reprezinte un minim este


necesar ca :
lim 𝑓′ (𝑥) ≤ 0
𝑥→𝑏
𝑥<𝑏
CS1. Un punct x* interior unui interval [a,b]
este un minim local al functiei f(x) daca: f’(x)=0 si f”(x) ≥0.
Cele prezentate pana acum se refera la functii de o variabila.
In cazul in care avem de-a face cu functii de mai multe variabile vom considera ca
acestea formseaza o variabila vectoriala x avand componentele x1…….xn.
In acest caz domeniul de definitie al functiei va fi in spatiul n dimensional, conform
exemplului x 𝜖 Rn, vectorul x cu n componente apartine spatiului vectorial real n dimensional.
Fie o functie g(x), unde x 𝜖 Rn.
Minimul functiei g(x) se poate defini in doua moduri si anume:
D3. Punctual x* 𝜖Rneste un minim local al functiei daca pentru ε>0 si ‖x-x * ‖ < 𝜀 rezulta
g(xx) ≤g(x) unde ‖x-x* ‖ este norma 1(de ordin1) a vectorului x-x*.
Norma 1 (de ordin1) a unui vector se defineste astfel ‖x‖=‖x‖1 = ∑ni=1|xi | unde x1, x2, …..,xn
sunt componentele vectorului n dimensional x.
Norma 2(de ordin 2) a aceluiasi vector n dimensional x se defineste astefl:
‖x‖2 =√∑ni=1|xi |2
D4. Un punct x*𝜖Rn este un minim global al functiei g(x) daca:
g(x*)≤g(x) oricare a fi x𝜖Rn
D5. Definirea unui domeniu.
Fie D o multime deschisa si limitata apartinand spatiului vectorial Rn, DCRn.
D este un domeniu daca oricare ar fi:
x0 si x1 apartinand lui D exista o functie 𝜆 continua pe portiuni:
𝜆 :[0,1] D astefel incat :

𝜆(0)=x0

𝜆(1)=x1 R0SU𝐸𝐶𝑈𝐴𝑇𝐼𝐸𝑀𝑂𝐷𝐸𝐿
6
Optimizări-C5-CuTot Win10
Grafic, domeniul D, limita sa 𝛿D si punctele din x0 si x1 se reprezinta ca in figura 5

Figura 5
D

x0 Cu02
x1
D

fig.5

CN3. Fie un punct x*𝜖D.


x* este un minim al lui g(x) daca toate derivatele partiale ale acestuia, calculate in
punctul x* sunt nule, adica x* apartinand lui D este minim daca:
∂g * ∂g ∂g
δ∂
(x )= ∂x (x* )=……..= ∂x (x* )=0
2 n
Sau daca ne referim la gradientul:
𝑓(𝑡) = 𝑔(𝑥 ∗ + 𝑡𝛼)
𝜕𝑔
𝑓′ (𝑡) = ∑𝑛𝑖=1 𝜕𝑥 𝑥∗ ∙ 𝛼𝑖 ≤ 𝑔𝑟𝑎𝑑𝑥 (𝑔(𝑥∗ ))
2
α≥0 in aceste relatii α𝜖Rneste un vector cu aceeasi dimensiune ca x𝜖Rn.
CS2. Daca derivatele partiale ale functiei g(x) sunt nule in punctul x=x*, adica g(x*)=0 pentru
𝜕2 𝑔
orice directie x1si daca∑𝑛𝑖=1 ∑𝑛𝑗=1 𝜕𝑥 ∙𝜕𝑥 (𝑥∗ ) ∙ 𝛼𝑖 ∙ 𝛼𝑗 > 0 atunci punctul x=x* este un minim local
𝑖 𝑗
al functiei g.
CS3. Daca gradientul lui g(x) adica:
𝜕𝑔
𝑔𝑟𝑎𝑑 𝑔 = ∑𝑛𝑖=1 𝜕𝑥 (𝑥 ∗ ) = 0
𝑖
𝜕2 ∗ 𝜕 2𝑔 𝜕 2𝑔
(𝑥 ) ⋯
𝜕𝑥 2 𝜕𝑥1 ∙ 𝜕𝑥2 𝜕𝑥1 ∙ 𝜕𝑥𝑛
𝑄= ⋮ ⋮ ⋮
𝜕 2𝑔 𝜕 2𝑔 𝜕 2𝑔

𝜕𝑥𝑛 ∙ 𝜕𝑥2 𝜕𝑥𝑛 ∙ 𝜕𝑥2 𝜕𝑥𝑛

∂2 𝑔 ∂2 𝑔 ∂2 𝑔
(𝑥 ∗) (𝑥 ∗). . . (𝑥 ∗)
∂𝑥12 ∂𝑥1 ∂𝑥2 ∂𝑥1 ∂𝑥𝑛
∂2 𝑔 ∂2 𝑔 ∂2 𝑔
𝑄= (𝑥 ∗) (𝑥 ∗). . . (𝑥 ∗)
∂𝑥2 ∂𝑥1 ∂𝑥22 ∂𝑥2 ∂𝑥𝑛
............................................................
∂2 𝑔 ∂2 𝑔 ∂2 𝑔
(𝑥 ∗) (𝑥 ∗). . . (𝑥 ∗)
[∂𝑥𝑛 ∂𝑥1 ∂𝑥𝑛 ∂𝑥2 ∂𝑥𝑛2 ]
*
este pozitiv definita atunci: 𝑥 = 𝑥 ∗x=x este un minim al functiei 𝑔(𝑥).

este pozitiv definita atunci: x=x*este un minim al functiei g(x).


Exemplu:
7
Optimizări-C5-CuTot Win10
1
Fie o functie obiectiv:𝑓(𝑥1 , 𝑥2 , 𝑥3 ) = sa se determine maximul ei in
(𝑥1 2 −1)2 +(𝑥2 −1)2 +(𝑥3 −1)2 +𝑚2
conditiile:

Exemplu:
Fie o functie obiectiv:
1
𝑓(𝑥) = 𝑓(𝑥1 , 𝑥2 , 𝑥3 ) = (𝑥 sa se determine maximul ei in conditiile:
1 −1)2 +(𝑥 2
2 −1) +(𝑥3 −1)
2
𝑥1
𝑥 = [𝑥2 ] ∈ 𝑅 𝑛 ; 𝑚 ∈ 𝑅; 𝑚 ≠ 0
𝑥3

Rezolvare:
Pentru simplitate se notează 𝑙(𝑥)numitorul functiei adica:
1 1
𝑓(𝑥) = 𝑓(𝑥1 , 𝑥2 , 𝑥3 ) = (𝑥 −1)2 +(𝑥 −1)2 +(𝑥 −1)2 = 𝑙(𝑥)
1 2 3

Gradientul functiei este:


∂𝑓 1 ∂𝑙 1 2(1 − 𝑥1 )
− 2 ⋅ − 2 ⋅ 2 ⋅ (𝑥1 − 1)
∂𝑥1 𝑙 (𝑥) ∂𝑥1 𝑙 (𝑥) 𝑙 2 (𝑥) 0
∂𝑓 1 ∂𝑙 1 2(1 − 𝑥2 )
∇𝑓(𝑥) = = − 2 ⋅ = − 2 ⋅ 2 ⋅ (𝑥2 − 1) = =0= 0
∂𝑥2 𝑙 (𝑥) ∂𝑥2 𝑙 (𝑥) 𝑙 2 (𝑥)
∂𝑓 1 ∂𝑙 1 2(1 − 𝑥3 ) [0 ]
− 2 ⋅ − 2 ⋅ 2 ⋅ (𝑥3 − 1)
[∂𝑥3 ] [ 𝑙 (𝑥) ∂𝑥3 ] [ 𝑙 (𝑥) ] [ 𝑙 2 (𝑥) ]
Solutia acestei ecuatii matriciale este asadar:
(1 − 𝑥1 ) 0
∇𝑓(𝑥) = [(1 − 𝑥2 )] = 0 = [0]
(1 − 𝑥3 ) 0
adica
𝑥1 ∗ 1
𝑥 ∗= [𝑥2 ∗] = 0 = [1]sau 𝑥 ∗= [1,1,1]𝑥 ∗= [1,1,1]
𝑥3 ∗ 1

x1
x
𝑥 = 2 𝜖𝑅 3 , 𝑚 ≠ 0 𝑠𝑖 𝑚𝜖𝑅
x3
Rezolvare:
1
Pentru ….. se arata l(x) …. functiei adica: 𝑓(𝑥1 , 𝑥2 , 𝑥3 ) = 𝑙(𝑥)

Gradientul functiei este:


𝜕𝑓 1 𝜕𝑙 1
− 2 ∙ − 2 ∙ 2(𝑥1 − 1)
𝜕𝑥1 𝑙 (𝑥) 𝜕𝑥1 𝑙 (𝑥)
𝜕𝑓 𝜕𝑓 1 𝜕𝑙 1
= =− 2 ∙ =− 2 ∙ 2(𝑥2 − 1)
𝜕𝑥 𝜕𝑥2 𝑙 (𝑥) 𝜕𝑥2 𝑙 (𝑥)
−𝜕𝑓 1 𝜕𝑙 1
− ∙ − ∙ 2(𝑥3 − 1)
𝜕𝑥3 𝑙2 (𝑥) 𝜕𝑥3
2
𝑙 (𝑥)
8
Optimizări-C5-CuTot Win10
2(1 − 𝑥1 )
𝑙2 (𝑥)
𝜕𝑓 2(1 − 𝑥2 ) 0
= =0=0
𝜕𝑥 𝑙2 (𝑥) 0
2(1−𝑥3 )

𝑙2 (𝑥)

Solutia acestei ecuatii matriciale este asadar:


(1 − 𝑥1 ) 0 𝑥1 ∗ 1
(1 − 𝑥2 ) = 0 adica x*=𝑥2 ∗ = 1 sau x*=[1 1 1]1 sau x*=[1,1,1]1 R0SU𝐸𝐶𝑈𝐴𝑇𝐼𝐸𝑀𝑂𝐷𝐸𝐿
(1−𝑥3 ) 0 𝑥3 ∗ 1

B. Functii multivariabile.
Fie functia multivariabila:
𝑓(𝑥): 𝑅 𝑛 → 𝑅
1. Se stabileste domeniul de definitie(daca nu este precizat) si eventual multimea in care ia
valori.
2. Se calculeaza gradientul functiei, adica sub forma unei matrici coloana.

∂𝑓(𝑥)
∂𝑥1
∂𝑓(𝑥)
∇𝑓(𝑥) = ∂𝑥
. . . . .2. . . . .
∂𝑓(𝑥)
[ ∂𝑥𝑛 ]
De vazut unde

Extremul (dacă există) corespunde pătratului xx în care:


∂𝑓(𝑥)
| 0
∂𝑥1 𝑥=𝑥∗
∂𝑓(𝑥) 0
∇𝑓(𝑥)|𝑥=𝑥∗ = | =
∂𝑥2 𝑥=𝑥∗
.............. ...
∂𝑓(𝑥)
| [0 ]
[ ∂𝑥𝑛 𝑥=𝑥∗ ]
Din această ecuaţie matricială rezultă componentele 𝑥𝑖 ale matricii 𝑥.
3. Se calculează matricea Hessian a funcţiei f(x) conform formulei:
∂2 𝑓
𝐻(𝑥) = [∂𝑥 ] unde: 𝑖, 𝑗 = 1,2, . . . , 𝑛
𝑖 ∂𝑥𝑗
Adică:
∂2 𝑓 ∂2 𝑓 ∂2 𝑓
...
∂𝑥12 ∂𝑥1 ∂𝑥2 ∂𝑥1 ∂𝑥𝑛
∂2 𝑓 ∂2 𝑓 ∂2 𝑓
𝐻(𝑥) = ...
∂𝑥2 ∂𝑥1 ∂𝑥22 ∂𝑥2 ∂𝑥𝑛
... ... ... ...
∂2 𝑓 ∂2 𝑓 ∂2 𝑓
...
[∂𝑥𝑛 ∂𝑥1 ∂𝑥𝑛 ∂𝑥2 ∂𝑥𝑛2 ]
9
Optimizări-C5-CuTot Win10
Se evaluează matricea Hessian în punctul:
𝑥 = 𝑥 ∗ adică se calculează 𝐻(𝑥 ∗). Dacă ea este pozitiv definită atunci punctul𝑥 = 𝑥 ∗
constituie un minim, iar dacă este negativ definită punctul este un maxim.
O matrice Hessian este pozitiv definită dacă minorii principali sunt pozitivi şi anume:
𝑎11 𝑎12 . . . 𝑎1𝑘
+ 𝑎21 𝑎22 . . . 𝑎2𝑘
𝑀𝑘𝑘 = |. . . . . . . . . . . . | > 0
𝑎𝑘1 𝑎𝑘2 . . . 𝑎𝑘𝑘
Minorul (unui element) este determinantul obţinut prin supruma linei şi coloanei în care se
găseşte elementul. O matrice este negativ definită dacă minorii principali au semne alternante,
adică:
𝑎11 𝑎12 . . . 𝑎1𝑘
+ 𝑎21 𝑎22 . . . 𝑎2𝑘
𝑀𝑘𝑘 = (−1)𝑘 |. . . . . . . . . . . . | > 0; k ∈ [0, n]
𝑎𝑘1 𝑎𝑘2 . . . 𝑎𝑘k
Alt exemplu neconcludent de reprezentare grafică este următorul:

2.Extremele funcţiilor de o variabilă


Exemplul 1:

Fie funcția de o singură variabilă, x,

f(x)=(x-1)2. Să se găsească extremul (extremele) acestei funcții, sa se precizeze tipul lui (maxim
sau minim) și să se atașeze graficul ei in intervalul situate de-o parte si de alta a maximului, si
anume: x=(x*-10, x*+10).
Se calculeaza derivatele de ordin I
f’(x)=2(x-1);
f’(x)=0 rezulta x-1=0; x*=1
Functia are un singur extrem (va fi deci extrem global).
Derivata de ordin II a functiei este: f”(x)=(2x-2)’= (2x)’=2>0 rezulta functia este convexă, iar
extremul este un minim.

x -∞ 0 1
+∞
f(x) +++++++++++++++++++++++++++++0+++++++++++++++++++++++++++++++
f’(x) -------------------------------------------------0+++++++++++++++++++++++++++++++
f’’(x +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
) ++
Functia e convexă
Graficul.
10
Optimizări-C5-CuTot Win10

Exemplul 1:

Fie functia de o singura variabila:


f(x) = (x − 1)2 . Sa se gaseasca extremul acestei functii, sa se precizeze tipul lui (maxim sau
minim) si să se traseze graficul ei in intervalul situat de-o parte si de alta a maximului, si anume:
x = (x ∗ −10, x ∗ +10)
Rezolvare:Se calculeaza derivata de ordin I
f′(x) = 2 ⋅ (x − 1)=0
rezulta (x − 1) = 0 x ∗= 1
Functia are un singur extrem (va fi deci extrem global).
Derivata de ordin II a functiei este:
f"(x) = (f′(x))′ = 2 ⋅ (x − 1)′ = 2 > 0 rezulta că functia este convexă, iar extremul este un
minim.
Înainte de trasarea graficului funcţiei este utilă întocmirea unui tabel de forma:
x -∞ 0 1 +∞
f (x) + + + + 0 + + +
f ' ( x) - - - - 0 + + +
f " ( x) + + + + + + + +
x*
f (x)
x ( 0)

100
f (x)
80
60
40
20
x
-8 -4 4 8 12
fig.6
O oportunitate utilizată pe scară tot mai largă constă în utilizarea programului MATLAB pentru
realizarea acestor reprezentări grafice.
Procedura de reprezentare este cea cunoscută adică :
În fereastra de comandă MATLAB se înscrie intervalul în care se dorește reprezentarea. În cazul
nostru s-a considerat satisfăcătoare reprezentarea în intervalul :
11
Optimizări-C5-CuTot Win10
X=-9 la 11 cu unpas de 0.1.
Acestea se transpun în Limbaj matlab sub forma :

𝑥 = −9: 0.1: 11; Enter


.
Se va afișa maricea X…..
Se înscrie în aceeași fereastră expresia funcției considerate :

(𝑥 − 1)2
𝑓(𝑥) = 𝑦 = ; 𝑓(𝑥): 𝑅 − {0} → 𝑅
𝑥

în format și cu sintaxa MATLAB, adică:

𝑦 = (𝑥 − 1). ^2 Enter

Se afișează matricea Y cu valorile funcţiei.

Columns 1 through 10

100.0000 98.0100 96.0400 94.0900 92.1600 90.2500 88.3600 86.4900 84.6400


82.8100

Columns 11 through 20

81.0000 79.2100 77.4400 75.6900 73.9600 72.2500 70.5600 68.8900 67.2400


65.6100

Columns 21 through 30

64.0000 62.4100 60.8400 59.2900 57.7600 56.2500 54.7600 53.2900 51.8400


50.4100

Columns 31 through 40

49.0000 47.6100 46.2400 44.8900 43.5600 42.2500 40.9600 39.6900 38.4400


37.2100

Columns 41 through 50

36.0000 34.8100 33.6400 32.4900 31.3600 30.2500 29.1600 28.0900 27.0400


26.0100

Columns 51 through 60

25.0000 24.0100 23.0400 22.0900 21.1600 20.2500 19.3600 18.4900 17.6400


16.8100

Columns 61 through 70

16.0000 15.2100 14.4400 13.6900 12.9600 12.2500 11.5600 10.8900 10.2400


9.6100
12
Optimizări-C5-CuTot Win10

Columns 71 through 80

9.0000 8.4100 7.8400 7.2900 6.7600 6.2500 5.7600 5.2900 4.8400 4.4100

Columns 81 through 90

4.0000 3.6100 3.2400 2.8900 2.5600 2.2500 1.9600 1.6900 1.4400 1.2100

Columns 91 through 100

1.0000 0.8100 0.6400 0.4900 0.3600 0.2500 0.1600 0.0900 0.0400 0.0100

Columns 101 through 110

0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900 0.6400 0.8100

Columns 111 through 120

1.0000 1.2100 1.4400 1.6900 1.9600 2.2500 2.5600 2.8900 3.2400 3.6100

Columns 121 through 130

4.0000 4.4100 4.8400 5.2900 5.7600 6.2500 6.7600 7.2900 7.8400 8.4100

Columns 131 through 140

9.0000 9.6100 10.2400 10.8900 11.5600 12.2500 12.9600 13.6900 14.4400


15.2100

Columns 141 through 150

16.0000 16.8100 17.6400 18.4900 19.3600 20.2500 21.1600 22.0900 23.0400


24.0100

Columns 151 through 160

25.0000 26.0100 27.0400 28.0900 29.1600 30.2500 31.3600 32.4900 33.6400


34.8100

Columns 161 through 170

36.0000 37.2100 38.4400 39.6900 40.9600 42.2500 43.5600 44.8900 46.2400


47.6100

Columns 171 through 180

49.0000 50.4100 51.8400 53.2900 54.7600 56.2500 57.7600 59.2900 60.8400


62.4100

Columns 181 through 190


13
Optimizări-C5-CuTot Win10
64.0000 65.6100 67.2400 68.8900 70.5600 72.2500 73.9600 75.6900 77.4400
79.2100

Column 191

81.0000
Cu instrucțiunile:
plot(x,y) Enter se comandă afișarea graficului funcţiei,
14
Optimizări-C5-CuTot Win10

Exemplul 2.
Se de functia de o variabilă:

(𝑥 − 1)2
𝑓(𝑥) = ; 𝑓(𝑥): 𝑅 − {0} → 𝑅
𝑥

′ ((𝑥 − 1)2 ) ∙ 𝑥 − 𝑥′ ∙ (𝑥 − 1)2 2 ∙ (𝑥 − 1)𝑥 − (𝑥2 − 2𝑥 + 1)
𝑓 (𝑥) = = =
𝑥2 𝑥2
2𝑥2 − 2𝑥 − 𝑥2 + 2𝑥 − 1 𝑥2 − 1
= = = 0;
𝑥2 𝑥2
cu soluțiile:

𝑥1 = 1 ; 𝑥2 = −1.

′′ (𝑥)
1 ′ 1 ′ 1 2
𝑓 = (1 − 2 ) = − ( 2 ) =— 4 ∙ 2𝑥 = 3 ≠ 0
𝑥 𝑥 𝑥 𝑥
Se verifica daca graficul functiei are asimptote:
Asimptote oblice:

(𝑥 − 1)2
𝑓(𝑥) = ; 𝑓(𝑥): 𝑅 − {0} → 𝑅
𝑥

𝑓(𝑥)
lim =1=𝑚
𝑥→+∞ 𝑥

𝑓(𝑥)
lim =1=𝑚
𝑥→−∞ 𝑥

Rezultă existența asimptotei oblice, cu ecuația :

𝑦 = 𝑚𝑥 + 𝑛, unde:
𝑚 = 1,

Iar n rezultă din ecuația :

=> 𝑏 = −2

Rezulta ca asimptota oblică are ecuatia:

𝑦 =𝑥−2

Asimptote orizontale:
lim 𝑓(𝑥) = ∞; lim 𝑓(𝑥) = −∞
𝑥→∞ 𝑥→−∞
15
Optimizări-C5-CuTot Win10
Asimptote vertical:
lim 𝑓(𝑥) = ∞; lim 𝑓(𝑥) = −∞
𝑥↓0 𝑥↑0
x -∞ -1 0 1
+∞
f(x) -4 -∞+∞ 0
f’(x) ++++++++++++++++++++++0-- ---------- -
0++++++++++++++++++++++++++++++
f’’(x) ----------------------------------------------
++++++++++++++++++++++++++++++++++++
Pana la [-∞,0] functia este convexa iar pe [0, ∞] concava
Exista 2 extreme locale si anume:
minim local x1*=1 f(x1*)=0;
maxim local x2*=-1 f(x2*)=-4;

graficul functiei realizat in matlab

Asa cum a rezultat din cele prezentate anterior, modalitatile de gasire a extremelor unei
functii sunt similare pentru cazul functiei de o singura variabila si pentru cel al functiei de mai
multe variabile.
Totusi se considera utila prezentarea recapitulativa a etapelor de determinare a
extremelor in cele doua cazuri.

Exemplul 2.
Se consideră funcţia de o variabilă :
(x−1)2
f(x = .
x
1. Să se precizeze domeniul de definiţie al funcţiei şi domeniul de valori.
2. Să se determine analitic extremul ei, precizându-se dacă este vorba despre minim sau
maxim şi să se traseze graficul ei.
16
Optimizări-C5-CuTot Win10
3. Utilizând software-ul MatLab să se traseze graficul funcţiei.
Rezolvare
1. f(x): R − {0} → R
((x − 1)2 )′ ⋅ x − x′ ⋅ (x − 1)2 x 2 − 1 (x + 1)(x − 1)
f′(x) = =. . . = = =0
x2 x2 x2
Soluţiile ecuaţiei sunt:
x1 ∗= 1; x2 ∗= −1
x2 − 1 1 2
f"(x) = (f′(x))′ = ( 2 ) ′ = (1 − 2 ) ′ =. . . = 3 ≠ 0
x x x

Se verifica daca graficul functiei are asimptote:


Asimptote oblice:
Ecuaţia unei asimptote oblice (dacă există) este :
y = m ⋅ x + n; unde m este panta asimptotei şi n ordonata la origine, date de relaţiile:
−∞/+∞
f(x) f(x)
m1 = lim x = 1: m2 lim x = 1
x→+∞ x→−∞
lim f(x) − (m ⋅ x + n) = 0
x→±∞
(x−1)2 x2 −2x+1−x2 −nx
lim (f(x) − (m ⋅ x + n)) = lim ( − x − n) = lim ( ) = −(n + 2) = 0
x→±∞ x→±∞ x x→±∞ x
Valoarea lui n:
n = −2,
iar ecuaţia asimptotei oblice va fi:
y= x−2

Asimptote orizontale:
lim f(x) = +∞; lim f(x) = −∞
x→+∞ x→−∞
Graficul funcţiei nu are asimptote orizontale.
Asimptote verticale.
limf(x) = −∞; limf(x) = +∞
x→0 x→0
x<0 x>0
Aşadar verticala :
x = 0, adică axa ordonatelor este asimptotă verticală a graficului funcţiei f(x). Este utilă
completarea unui tabel similar cu cel de la exemplul precedent, având forma următoare:
x -∞ -1 0 1 +∞
f (x) - - -4  /   0 + + +
f ' ( x) + + 0 - 0 + + +
f " ( x) - - - ndef + + + +
-4 0
f (x)

Exista 2 extreme locale si anume:


17
Optimizări-C5-CuTot Win10
minim local x1 ∗= 1; f(x1 ∗) = 0
8 f (x) maxim local x2 ∗= −1; f(x2 ∗) = −4

4
graficul functiei realizat in matlab

x
-8 -4 4 8

-4

-8

fig.7a

>> x=-9:0.1:9;
>> y=(x-1).^2./x

y=

Columns 1 through 10
-11.1111 -11.0124 -10.9136 -10.8149 -10.7163 -10.6176 -10.5190 -10.4205 -10.3220 -
10.2235
Columns 11 through 20
-10.1250 -10.0266 -9.9282 -9.8299 -9.7316 -9.6333 -9.5351 -9.4370 -9.3389 -
9.2408
Columns 21 through 30
-9.1429 -9.0449 -8.9471 -8.8493 -8.7515 -8.6538 -8.5563 -8.4587 -8.3613 -8.2639
Columns 31 through 40
-8.1667 -8.0695 -7.9724 -7.8754 -7.7786 -7.6818 -7.5852 -7.4887 -7.3923 -7.2961
Columns 41 through 50
-7.2000 -7.1041 -7.0083 -6.9128 -6.8174 -6.7222 -6.6273 -6.5326 -6.4381 -6.3439
Columns 51 through 60
-6.2500 -6.1564 -6.0632 -5.9703 -5.8778 -5.7857 -5.6941 -5.6030 -5.5125 -5.4226
Columns 61 through 70
-5.3333 -5.2448 -5.1571 -5.0704 -4.9846 -4.9000 -4.8167 -4.7348 -4.6545 -4.5762
Columns 71 through 80
-4.5000 -4.4263 -4.3556 -4.2882 -4.2250 -4.1667 -4.1143 -4.0692 -4.0333 -4.0091
Columns 81 through 90
-4.0000 -4.0111 -4.0500 -4.1286 -4.2667 -4.5000 -4.9000 -5.6333 -7.2000 -12.1000
Columns 91 through 100
Inf 8.1000 3.2000 1.6333 0.9000 0.5000 0.2667 0.1286 0.0500 0.0111
Columns 101 through 110
0 0.0091 0.0333 0.0692 0.1143 0.1667 0.2250 0.2882 0.3556 0.4263
Columns 111 through 120
0.5000 0.5762 0.6545 0.7348 0.8167 0.9000 0.9846 1.0704 1.1571 1.2448
Columns 121 through 130
1.3333 1.4226 1.5125 1.6030 1.6941 1.7857 1.8778 1.9703 2.0632 2.1564
Columns 131 through 140
2.2500 2.3439 2.4381 2.5326 2.6273 2.7222 2.8174 2.9128 3.0083 3.1041
Columns 141 through 150
3.2000 3.2961 3.3923 3.4887 3.5852 3.6818 3.7786 3.8754 3.9724 4.0695
Columns 151 through 160
18
Optimizări-C5-CuTot Win10
4.1667 4.2639 4.3613 4.4587 4.5563 4.6538 4.7515 4.8493 4.9471 5.0449
Columns 161 through 170
5.1429 5.2408 5.3389 5.4370 5.5351 5.6333 5.7316 5.8299 5.9282 6.0266
Columns 171 through 180
6.1250 6.2235 6.3220 6.4205 6.5190 6.6176 6.7163 6.8149 6.9136 7.0124
Column 181
7.1111
>> plot(x,y)

Asa cum a rezultat din cele prezentate anterior, modalitatile de gasire a extremelor unei
functii sunt similare pentru cazul functiei de o singura variabila si pentru cel al functiei de mai
multe variabile.

a) Functiile de o variabila(vezi fisierul reprezenatrea grafica a functiilor)


Fie f(x):R→R:
1. Se stabileste domeniul de definitie al functiei, daca acesta nu este precizat.
2. Se determina zerourile functiei prin gasirea solutiilor ecuatiei f(x)=0.
19
Optimizări-C5-CuTot Win10
3. Se determina asimptotele orizontale si verticale ale functiei cu ajutorul metodelor
cunoscute:
a) asimptote orizontale:
lim 𝑓(𝑥) asimptote verticale:
𝑥→±∞
lim
𝑥→𝑎
𝑓(𝑥)
𝑥<𝑎
lim
𝑥→𝑎
𝑓(𝑥)
𝑥>𝑎
b) asimptote oblice: asimptota oblica poate fi o dreapta cu ecuatia y=mx-n, unde m este
panta, iar n este ordonata la origine.
𝑓(𝑥)
m = lim
𝑥→±∞ 𝑥
𝑛 = lim (𝑓(𝑥) − 𝑚 ∙ 𝑥)
𝑥→±∞
4. Se calculeaza prima derivate a functiei f’(x) solutiile ei reprezentand punctele de extrem,
se intelege existenta unor puncte critice.
5. Se calculeaza derivate a doua a functiei f(x), f’’(x), zerourile sale reprezentand punctele
de inflexiune ale functiei. Se calculeaza valorile acestei derivate in punctele de extreme
daca:
a) f”(x*)>0 spunem ca functia f(x) este convexa si are un minim local
b) f”(x*)<0 spunem ca functia f(x) este concave si are un maxim in acest punct

x -∞ zerouri ale lui f(x),f’(x),f’’(x)


+∞
f(x) Valori, semne
f’(x) Valori,semne
f’’(x) Valori, semne
Convexitate, concavitate
6. Se traseaza axele de coordonate, se marcheaza punctele de zero, de extreme si de
inflexiune, apoi se traseaza asimptotele.
7. Se traseaza graficul functiei.

Observand valorile extremelor functiei, se poate aprecia daca avem de-a face cu extreme
locale sau globale.

Cu03

B. Functii multivariabile.
Fie functia multivariabila:
f(x*): Rn
3. Se stabileste domeniul de definitie(daca nu este precizat) si eventual multimea in care ia
valori.
4. Se calculeaza gradientul functiei, adica sub forma unei matrici coloana.

∂f
∂x1
grad (‖ ‖)
20
Optimizări-C5-CuTot Win10
De vazut unde

Extremul (dacă există) corespunde pătratului xx în care:


∂f
(x1∗ )
dx1 0
∂f
(x2∗ ) 0
grad f((x ∗)) = dx2 =[ ]
... ...
∂f ∗ 0
[dxn (xn )]
Din ecuaţiile matriciale rezultă componentele x1∗ ale matricei x∗ .
3. Se calculează matricea Hessian a funcţiei f(x) conform formulei:
∂2 f
H(x) = [∂x ] unde: i,j=1,2,….n
i ∂xj
Adică:
∂2 f ∂2 f ∂2 f
. . .
∂x12 ∂x1 ∂x2 ∂x1 ∂xn
2 2
∂ f ∂ f ∂2 f
H(x) = ...
∂x2 ∂x1 ∂x22 ∂x ∂x
... ... . . . . . .2 n
∂2 f ∂2 f ∂2 f
...
[∂xn ∂x1 ∂xn ∂x2 ∂xn2 ]
Se rezolvă matricea Hessian în punctul x=xa adică H(x ). Dacă ea este pozitiv definită x∗
∗ ∗

conţine un minim, iar dacă este negativ definită punctul este un maxim.
O matrice Hessian este pozitiv definită dacă minorii principali sunt pozitivi şi anume:
a11 a12 . . . a1k
+ a21 a22 . . . a2k
Mkk = |. . . . . . . . . . . . | > 0
ak1 ak2 . . . akk
Minorul (unui element) este determinantul obţinut prin suprapunerea linei şi coloanei în care se
găseşte elementul. O matrice este negativ definită dacă minorii principali au semne alternante,
adică:
a11 a12 . . . a1k
+ a21 a22 . . . a2k
Mkk = (−1) |. . . . . . . . . . . . | > 0 ∨ k∈(0…n)
ak1 ak2 . . . akk
Alt exemplu neconcludent de reprezentare grafică este următorul:

Cu02

Studiul extremelor funcţiilor în Matlab.

Studiul extremelor funcţiilor de o variabilă în Matlab.

Se consideră funcţia:
(x−1)2
f(x) = x3
Să se precizeze domeniul de definiţie. Să se găsească zerourile şi polii funcţiei.
21
Optimizări-C5-CuTot Win10
- zerouri f(x)=0 ⇒ x-1=0; x1 , x2 =0
- poli (restul este nul)
x3 = 0 ⇒ x=0 ⇒ pol în afara domeniului de definiţie
2(x − 1) ⋅ x 3 − (x − 1)2 ⋅ 3x 2 x 2 (x + 1)[2x + 3x + 3] (x − 1)(x − 3)
f ′ (x) = = =
x6 x6 x4

f (x) = 0;x1 = 1; x2 = 3
16
f(1) = 0; f(3) = −
27
În ce priveşte derivata a 2-a încercăm regula polinomului cu Matlab 1 ca semnul derivatei şi
forma funcţiei să rezulte aceasta.
2

(x−1)2
lim = 0(dinspre +)
x→∞ x3
(x−1)2
lim = 0 (dinspre -)
x→−∞ x3
Pentru reprezentarea în Matlab se procedează în două trepte:
a) se alege un domeniu de reprezentare (pentru x) astfel încât să obţinem o tendinţă de
limitare, se adoptă intervalul x ∈ (-10,10), reprezentarea fiind făcută cu paşi de lungime
p=0,1
În Matlab:
x=-10:0.1 :10
Enter (se afişează matricea x)

Se afişează matricea x.
x=

Columns 1 through 10

-10.0000 -9.9000 -9.8000 -9.7000 -9.6000 -9.5000 -9.4000 -9.3000 -9.2000 -9.1000

Columns 11 through 20

-9.0000 -8.9000 -8.8000 -8.7000 -8.6000 -8.5000 -8.4000 -8.3000 -8.2000 -8.1000

Columns 21 through 30

-8.0000 -7.9000 -7.8000 -7.7000 -7.6000 -7.5000 -7.4000 -7.3000 -7.2000 -7.1000

Columns 31 through 40

-7.0000 -6.9000 -6.8000 -6.7000 -6.6000 -6.5000 -6.4000 -6.3000 -6.2000 -6.1000

Columns 41 through 50

-6.0000 -5.9000 -5.8000 -5.7000 -5.6000 -5.5000 -5.4000 -5.3000 -5.2000 -5.1000

Columns 51 through 60

-5.0000 -4.9000 -4.8000 -4.7000 -4.6000 -4.5000 -4.4000 -4.3000 -4.2000 -4.1000

1
2
22
Optimizări-C5-CuTot Win10
Columns 61 through 70

-4.0000 -3.9000 -3.8000 -3.7000 -3.6000 -3.5000 -3.4000 -3.3000 -3.2000 -3.1000

Columns 71 through 80

-3.0000 -2.9000 -2.8000 -2.7000 -2.6000 -2.5000 -2.4000 -2.3000 -2.2000 -2.1000

Columns 81 through 90

-2.0000 -1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000

Columns 91 through 100

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000

Columns 101 through 110

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Columns 111 through 120

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000

Columns 121 through 130

2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000

Columns 131 through 140

3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000

Columns 141 through 150

4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000

Columns 151 through 160

5.0000 5.1000 5.2000 5.3000 5.4000 5.5000 5.6000 5.7000 5.8000 5.9000

Columns 161 through 170

6.0000 6.1000 6.2000 6.3000 6.4000 6.5000 6.6000 6.7000 6.8000 6.9000

Columns 171 through 180

7.0000 7.1000 7.2000 7.3000 7.4000 7.5000 7.6000 7.7000 7.8000 7.9000

Columns 181 through 190

8.0000 8.1000 8.2000 8.3000 8.4000 8.5000 8.6000 8.7000 8.8000 8.9000
23
Optimizări-C5-CuTot Win10
Columns 191 through 200

9.0000 9.1000 9.2000 9.3000 9.4000 9.5000 9.6000 9.7000 9.8000 9.9000

Column 201

10.0000
Se înscrie în limbaj specific expresia funcţiei y = f(x), adică:
y = (x − 1). ^2./x. ^3.Enter

(x−1)2
y=(x-1).^2./x.^3 care reprezintă y = x3
Enter (se afişează matricea y)
Se înscrie în limbaj specific expresia funcţiei y = f(x), adică:
y = (x − 1). ^2./x. ^3.Enter
Se afişează matricea y.
y=

1.0e+003 *

Columns 1 through 10

-0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -


0.0001

Columns 11 through 20

-0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0002 -0.0002 -


0.0002

Columns 21 through 30

-0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -


0.0002

Columns 31 through 40

-0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -


0.0002

Columns 41 through 50

-0.0002 -0.0002 -0.0002 -0.0002 -0.0002 -0.0003 -0.0003 -0.0003 -0.0003 -


0.0003

Columns 51 through 60

-0.0003 -0.0003 -0.0003 -0.0003 -0.0003 -0.0003 -0.0003 -0.0004 -0.0004 -


0.0004
24
Optimizări-C5-CuTot Win10
Columns 61 through 70

-0.0004 -0.0004 -0.0004 -0.0004 -0.0005 -0.0005 -0.0005 -0.0005 -0.0005 -


0.0006

Columns 71 through 80

-0.0006 -0.0006 -0.0007 -0.0007 -0.0007 -0.0008 -0.0008 -0.0009 -0.0010 -


0.0010

Columns 81 through 90

-0.0011 -0.0012 -0.0013 -0.0015 -0.0017 -0.0019 -0.0021 -0.0024 -0.0028 -


0.0033

Columns 91 through 100

-0.0040 -0.0050 -0.0063 -0.0084 -0.0119 -0.0180 -0.0306 -0.0626 -0.1800 -


1.2100

Columns 101 through 110

Inf 0.8100 0.0800 0.0181 0.0056 0.0020 0.0007 0.0003 0.0001 0.0000

Columns 111 through 120

0 0.0000 0.0000 0.0000 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001

Columns 121 through 130

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Columns 131 through 140

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Columns 141 through 150

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Columns 151 through 160

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Columns 161 through 170

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001
25
Optimizări-C5-CuTot Win10

Columns 171 through 180

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Columns 181 through 190

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Columns 191 through 200

0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


0.0001

Column 201

0.0001
plot (x,y)
Enter (se afişează graficul funcţiei; se observă existenţa asimptotei verticale)

plot (x,y)
Enter (se afişează graficul funcţiei; se observă existenţa asimptotei verticale)
26
Optimizări-C5-CuTot Win10
b) prin punerea în evidenţă a 3 de la x1 = 3 şi x2 = 1 este util alegerea unor puncte în jurul
acestora şi cu prelungire spre x=0, astfel încât în reprezentare valorile lui f(x) în jurul lui
0 să nu depărteze câteva unităţi
Exemplu:
f(x)≤2
prin încercări se poate determina:
x >0 x ∈(0,65,100) pas 0.1
x=0.65;0.1;100 Enter
y=(x-1).^2./x.^3 Enter
plot (x,y)
Grafic Luc.01-Ex.2-fig.b
Din grafice rezultă:
x∗1 = 1=minim local
x∗2 = 3=maxim local
x
1) f(x) = ex
Să se arate care este domeniul de definiţie al funcţiei:
f(x):R→R
f(x)=0 ⇒ x=0
ex − x ⋅ ex ex (1 − x)
f′ (x) = = =1−x
e2x ex

f ’(x)=0 → x=1 x∗ = 1 = extrem local


1
f(x∗ )=e ≌ 0,37
Asimptote4, limite
limx→∞ f(x) = 0
limx→−∞ f(x) = −∞
a) reprezentarea 1, intervalul lansat pentru a evidenţia forma globală
x ∈(-5,10)
x=-5;0.1;10 Enter
y=x./exp(x) Enter
plot (x,y) Enter
Grafic Cu.01-Ex.3-fig.

3
extremelor
4
27
Optimizări-C5-CuTot Win10

b)
c) domeniul mai restrictiv
x=-0,5;01;10 Enter
y=x./exp(x) Enter
plot (x,y) Enter
Grafic Luc.01-Ex.3-fig. b

c) Pentrun punerea în evidenţă a extremelor de la:


x1 ∗= 1 şi x2 ∗= 3 este utilă alegerea unor puncte în jurul acestora şi cu prelungire spre x=0,
astfel încât în reprezentare valorile lui f(x)în jurul lui x = 0 să nu depărteze câteva unităţi,
spre exemplu:
f(x) ≤ 2
prin încercări se poate determina pentru semiaxa pozitivă (x > 0)
- intervalul 1:
x ∈ (0.65, 100) cu un pas p = 0.1.
În MatLab :
x = 0.65: 0.1: 100Enter
y = (x − 1). ^2./x. ^3Enter
plot(x, y) Enter
28
Optimizări-C5-CuTot Win10

- intervalul 2:
x ∈ (0.65, 10) cu un pas p = 0.1.
În MatLab :
x = 0.65: 0.1: 10Enter
y = (x − 1). ^2./x. ^3Enter
plot(x, y) Enter
Rezultă reprezentare a din figura 10.b.
29
Optimizări-C5-CuTot Win10

Grafic Luc.01-Ex.2-fig.b
Din grafice rezultă:
x1 ∗= 1; f(x1 ∗) = 0este un minim local,
x2 ∗= 3; f(x2 ∗) = 0,148-mai precis 0,(148) este un maxim local
x
2. f(x) = ex
Să se arate care este domeniul de definiţie al funcţiei:
f(x): R → R
f(x) = 0; ⇒ x = 0
ex − x ⋅ ex ex (1 − x)
f′(x) = = =1−x
e2x ex
1
f′(x) = 0; ⇒ x ∗= 1; f(x ∗) = e ≅ 0,37va fi extrem local
Asimptote5, limite
lim f(x) = 0 lim f(x) = 0
x→+∞ x→+∞
lim f(x) = −∞
x→−∞

d) reprezentarea 1, intervalul larg pentru a evidenţia forma globală


x ∈ (−5,10)
În MatLab
x = −5: 0.1: 10 Enter
y = x./exp(x) Enter
plot(x,y) Enter
Grafic figura 11.a
Respectiv :
x=-5:0.1:10

x=

Columns 1 through 10

-5.0000 -4.9000 -4.8000 -4.7000 -4.6000 -4.5000 -4.4000 -4.3000 -4.2000 -4.1000

Columns 11 through 20

-4.0000 -3.9000 -3.8000 -3.7000 -3.6000 -3.5000 -3.4000 -3.3000 -3.2000 -3.1000

Columns 21 through 30

-3.0000 -2.9000 -2.8000 -2.7000 -2.6000 -2.5000 -2.4000 -2.3000 -2.2000 -2.1000

Columns 31 through 40

-2.0000 -1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000

5
30
Optimizări-C5-CuTot Win10
Columns 41 through 50

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000

Columns 51 through 60

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Columns 61 through 70

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000

Columns 71 through 80

2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000

Columns 81 through 90

3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000

Columns 91 through 100

4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000

Columns 101 through 110

5.0000 5.1000 5.2000 5.3000 5.4000 5.5000 5.6000 5.7000 5.8000 5.9000

Columns 111 through 120

6.0000 6.1000 6.2000 6.3000 6.4000 6.5000 6.6000 6.7000 6.8000 6.9000

Columns 121 through 130

7.0000 7.1000 7.2000 7.3000 7.4000 7.5000 7.6000 7.7000 7.8000 7.9000

Columns 131 through 140

8.0000 8.1000 8.2000 8.3000 8.4000 8.5000 8.6000 8.7000 8.8000 8.9000

Columns 141 through 150

9.0000 9.1000 9.2000 9.3000 9.4000 9.5000 9.6000 9.7000 9.8000 9.9000

Column 151

10.0000

>> y=x./exp(x)

y=
31
Optimizări-C5-CuTot Win10
Columns 1 through 10

-742.0658 -658.0199 -583.2500 -516.7517 -457.6279 -405.0771 -358.3838 -316.9091 -


280.0826 -247.3952

Columns 11 through 20

-218.3926 -192.6696 -169.8645 -149.6550 -131.7536 -115.9041 -101.8779 -89.4717 -78.5041


-68.8136

Columns 21 through 30

-60.2566 -52.7050 -46.0450 -40.1753 -35.0057 -30.4562 -26.4556 -22.9406 -19.8550 -


17.1490

Columns 31 through 40

-14.7781 -12.7032 -10.8894 -9.3057 -7.9249 -6.7225 -5.6773 -4.7701 -3.9841 -


3.3046

Columns 41 through 50

-2.7183 -2.2136 -1.7804 -1.4096 -1.0933 -0.8244 -0.5967 -0.4050 -0.2443 -0.1105

Columns 51 through 60

0 0.0905 0.1637 0.2222 0.2681 0.3033 0.3293 0.3476 0.3595 0.3659

Columns 61 through 70

0.3679 0.3662 0.3614 0.3543 0.3452 0.3347 0.3230 0.3106 0.2975 0.2842

Columns 71 through 80

0.2707 0.2572 0.2438 0.2306 0.2177 0.2052 0.1931 0.1815 0.1703 0.1596

Columns 81 through 90

0.1494 0.1397 0.1304 0.1217 0.1135 0.1057 0.0984 0.0915 0.0850 0.0789

Columns 91 through 100

0.0733 0.0679 0.0630 0.0583 0.0540 0.0500 0.0462 0.0427 0.0395 0.0365

Columns 101 through 110

0.0337 0.0311 0.0287 0.0265 0.0244 0.0225 0.0207 0.0191 0.0176 0.0162

Columns 111 through 120

0.0149 0.0137 0.0126 0.0116 0.0106 0.0098 0.0090 0.0082 0.0076 0.0070
32
Optimizări-C5-CuTot Win10
Columns 121 through 130

0.0064 0.0059 0.0054 0.0049 0.0045 0.0041 0.0038 0.0035 0.0032 0.0029

Columns 131 through 140

0.0027 0.0025 0.0023 0.0021 0.0019 0.0017 0.0016 0.0014 0.0013 0.0012

Columns 141 through 150

0.0011 0.0010 0.0009 0.0009 0.0008 0.0007 0.0007 0.0006 0.0005 0.0005

Column 151

0.0005

>> plot(x,y)

e)
f) domeniul mai restrictiv
x ∈ (−0.5,10)
În MatLab
x = −0.5: 0.1: 10Enter
y = x./exp(x) Enter
plot(x,y) Enter
Respectiv :
>> x=-0.5:0.1:10

x=
33
Optimizări-C5-CuTot Win10
Columns 1 through 10

-0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000

Columns 11 through 20

0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000

Columns 21 through 30

1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 2.1000 2.2000 2.3000 2.4000

Columns 31 through 40

2.5000 2.6000 2.7000 2.8000 2.9000 3.0000 3.1000 3.2000 3.3000 3.4000

Columns 41 through 50

3.5000 3.6000 3.7000 3.8000 3.9000 4.0000 4.1000 4.2000 4.3000 4.4000

Columns 51 through 60

4.5000 4.6000 4.7000 4.8000 4.9000 5.0000 5.1000 5.2000 5.3000 5.4000

Columns 61 through 70

5.5000 5.6000 5.7000 5.8000 5.9000 6.0000 6.1000 6.2000 6.3000 6.4000

Columns 71 through 80

6.5000 6.6000 6.7000 6.8000 6.9000 7.0000 7.1000 7.2000 7.3000 7.4000

Columns 81 through 90

7.5000 7.6000 7.7000 7.8000 7.9000 8.0000 8.1000 8.2000 8.3000 8.4000

Columns 91 through 100

8.5000 8.6000 8.7000 8.8000 8.9000 9.0000 9.1000 9.2000 9.3000 9.4000

Columns 101 through 106

9.5000 9.6000 9.7000 9.8000 9.9000 10.0000

>> y=x./exp(x)

y=

Columns 1 through 10

-0.8244 -0.5967 -0.4050 -0.2443 -0.1105 0 0.0905 0.1637 0.2222 0.2681


34
Optimizări-C5-CuTot Win10
Columns 11 through 20

0.3033 0.3293 0.3476 0.3595 0.3659 0.3679 0.3662 0.3614 0.3543 0.3452

Columns 21 through 30

0.3347 0.3230 0.3106 0.2975 0.2842 0.2707 0.2572 0.2438 0.2306 0.2177

Columns 31 through 40

0.2052 0.1931 0.1815 0.1703 0.1596 0.1494 0.1397 0.1304 0.1217 0.1135

Columns 41 through 50

0.1057 0.0984 0.0915 0.0850 0.0789 0.0733 0.0679 0.0630 0.0583 0.0540

Columns 51 through 60

0.0500 0.0462 0.0427 0.0395 0.0365 0.0337 0.0311 0.0287 0.0265 0.0244

Columns 61 through 70

0.0225 0.0207 0.0191 0.0176 0.0162 0.0149 0.0137 0.0126 0.0116 0.0106

Columns 71 through 80

0.0098 0.0090 0.0082 0.0076 0.0070 0.0064 0.0059 0.0054 0.0049 0.0045

Columns 81 through 90

0.0041 0.0038 0.0035 0.0032 0.0029 0.0027 0.0025 0.0023 0.0021 0.0019

Columns 91 through 100

0.0017 0.0016 0.0014 0.0013 0.0012 0.0011 0.0010 0.0009 0.0009 0.0008

Columns 101 through 106

0.0007 0.0007 0.0006 0.0005 0.0005 0.0005

>> plot(x,y)
35
Optimizări-C5-CuTot Win10

Grafic figura 11.b

Cu04
Exemplificare în Matlab
a) pentru a putea scrie sub formă simplă matricile variabilelor x şi y în prima etapă se va
alege un pas suficient de mare atât pentru x cât şi pentru y
Astfel vom adopta:
x ∈ (−1,1); p(x) = 0.5; y ∈ (−1,1); p(y) = 0.5.
36
Optimizări-C5-CuTot Win10
Pentru început este utilă generarea uneia din liniile matricei [x] care se va repeta de un număr n
ori şi a uneia dintre coloanele matricei [y] astfel:
>> x=-1:0.5:1 Enter
Pe ecran va apărea linia „generatoare” a matricii [x] de forma
x=

-1.0000 -0.5000 0 0.5000 1.0000

Din structura liniei deducem şi numărul de coloane ale matricei [x] şi [y]calculate cu formula
m=5;
În ceea ce priveşte matricea [y]
>> y=-1:0.5:1

y=

-1.0000 -0.5000 0 0.5000 1.0000


Pe ecran se afişează sub forma liniei o coloană “generatoare” a matricii [y] de forma:
y=
-1.0000 -0.5000 0 0.5000 1.0000
Rezultatul m de linii şi n ale matricelor se calculează de altfel cu formula n = 5
S-a adoptat p(y) = 0.5 pentru a se include în şirul de valori ale elementelor coloanei şi valoarea
y = 0. Pentru a ilustra faptul că sunt valabile orice valori pentru p(y) rezultând un alt număr n
de linii se consideră:
p(y) = 0.4 caz în care coloana (de fapt coloanele) matricii [y] se obţine astfel:
>> y=-1:0.4:1 Enter
şi rezultă :
y=

-1.0000 -0.6000 -0.2000 0.2000 0.6000 1.0000


şi n = 6.
Revenind la p(y) = 0.5 vom genera matricile [x] şi [y] astfel:
>> [x,y]=meshgrid(-1:0.5:1,-1:0.5:1) Enter
Pe ecran se afişează matricele [x][y] având dimensiunile 5×5 şi anume :
x=

-1.0000 -0.5000 0 0.5000 1.0000


-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000

y=

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000


-0.5000 -0.5000 -0.5000 -0.5000 -0.5000
0 0 0 0 0
0.5000 0.5000 0.5000 0.5000 0.5000
1.0000 1.0000 1.0000 1.0000 1.0000
sau
[x,y]=meshgrid(-1:0.5:1,-1:0.5:1) ; Enter
în cazul în care nu se doreşte afişarea matricilor [x] şi [y].
37
Optimizări-C5-CuTot Win10
Se scrie în MatLab expresia funcţiei f(x, y) = z = x 2 + x ⋅ y + y 2 sub forma:
>> z=x.^2+x.*y+y.^2 Enter
Pe ecran se afişează matricea [z], corespunzătoare funcţiei f(x, y) = z şi anume:
z=
3.0000 1.7500 1.0000 0.7500 1.0000
1.7500 0.7500 0.2500 0.2500 0.7500
1.0000 0.2500 0 0.2500 1.0000
0.7500 0.2500 0.2500 0.7500 1.7500
1.0000 0.7500 1.0000 1.7500 3.0000

sau
>> z=x.^2+x.*y+y.^2; Enter
în cazul în care nu se doreşte afişarea matricilor [x] şi [y].
Se tastează surf (z) Enter
Pe monitor se va afişa graficul suprafeţei ce constituie reprezentarea funcţiei în discuţie.

Întrucât paşii de divizare au avut valori mari şi suprafaţa este constituită din părţi plane prea
mari, este indicată alegerea unor paşi p(x) şi p(y) de valori mult mai mici.
b) pentru aceasta se consideră spaţiul astfel:
x ∈ (−1,1); p(x) = 0.1; y ∈ (−1,1); p(y) = 0.1x (-1,1)
Se generează matricile [x]şi [y] astfel:
>> [x,y]=meshgrid(-1:0.1:1,-1:0.1:1)
Se afişează matricile corespunzătoare variabilelor xşi y
x=
Columns 1 through 10

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
38
Optimizări-C5-CuTot Win10
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000

Columns 11 through 20

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000


0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Column 21

1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
39
Optimizări-C5-CuTot Win10
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000

y=

Columns 1 through 10

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000
0 0 0 0 0 0 0 0 0 0
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Columns 11 through 20

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000
0 0 0 0 0 0 0 0 0 0
40
Optimizări-C5-CuTot Win10
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Column 21

-1.0000
-0.9000
-0.8000
-0.7000
-0.6000
-0.5000
-0.4000
-0.3000
-0.2000
-0.1000
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
Se înscrie funcţia: z = f(x, y)sub forma :
>> z=x.^2+x.*y+y.^2
Se afişează matricea [z] corespunzătoare funcţiei z = f(x, y) astfel:
z=
Columns 1 through 10

3.0000 2.7100 2.4400 2.1900 1.9600 1.7500 1.5600 1.3900 1.2400 1.1100
2.7100 2.4300 2.1700 1.9300 1.7100 1.5100 1.3300 1.1700 1.0300 0.9100
2.4400 2.1700 1.9200 1.6900 1.4800 1.2900 1.1200 0.9700 0.8400 0.7300
2.1900 1.9300 1.6900 1.4700 1.2700 1.0900 0.9300 0.7900 0.6700 0.5700
1.9600 1.7100 1.4800 1.2700 1.0800 0.9100 0.7600 0.6300 0.5200 0.4300
1.7500 1.5100 1.2900 1.0900 0.9100 0.7500 0.6100 0.4900 0.3900 0.3100
1.5600 1.3300 1.1200 0.9300 0.7600 0.6100 0.4800 0.3700 0.2800 0.2100
1.3900 1.1700 0.9700 0.7900 0.6300 0.4900 0.3700 0.2700 0.1900 0.1300
1.2400 1.0300 0.8400 0.6700 0.5200 0.3900 0.2800 0.1900 0.1200 0.0700
1.1100 0.9100 0.7300 0.5700 0.4300 0.3100 0.2100 0.1300 0.0700 0.0300
1.0000 0.8100 0.6400 0.4900 0.3600 0.2500 0.1600 0.0900 0.0400 0.0100
0.9100 0.7300 0.5700 0.4300 0.3100 0.2100 0.1300 0.0700 0.0300 0.0100
41
Optimizări-C5-CuTot Win10
0.8400 0.6700 0.5200 0.3900 0.2800 0.1900 0.1200 0.0700 0.0400 0.0300
0.7900 0.6300 0.4900 0.3700 0.2700 0.1900 0.1300 0.0900 0.0700 0.0700
0.7600 0.6100 0.4800 0.3700 0.2800 0.2100 0.1600 0.1300 0.1200 0.1300
0.7500 0.6100 0.4900 0.3900 0.3100 0.2500 0.2100 0.1900 0.1900 0.2100
0.7600 0.6300 0.5200 0.4300 0.3600 0.3100 0.2800 0.2700 0.2800 0.3100
0.7900 0.6700 0.5700 0.4900 0.4300 0.3900 0.3700 0.3700 0.3900 0.4300
0.8400 0.7300 0.6400 0.5700 0.5200 0.4900 0.4800 0.4900 0.5200 0.5700
0.9100 0.8100 0.7300 0.6700 0.6300 0.6100 0.6100 0.6300 0.6700 0.7300
1.0000 0.9100 0.8400 0.7900 0.7600 0.7500 0.7600 0.7900 0.8400 0.9100

Columns 11 through 20

1.0000 0.9100 0.8400 0.7900 0.7600 0.7500 0.7600 0.7900 0.8400 0.9100
0.8100 0.7300 0.6700 0.6300 0.6100 0.6100 0.6300 0.6700 0.7300 0.8100
0.6400 0.5700 0.5200 0.4900 0.4800 0.4900 0.5200 0.5700 0.6400 0.7300
0.4900 0.4300 0.3900 0.3700 0.3700 0.3900 0.4300 0.4900 0.5700 0.6700
0.3600 0.3100 0.2800 0.2700 0.2800 0.3100 0.3600 0.4300 0.5200 0.6300
0.2500 0.2100 0.1900 0.1900 0.2100 0.2500 0.3100 0.3900 0.4900 0.6100
0.1600 0.1300 0.1200 0.1300 0.1600 0.2100 0.2800 0.3700 0.4800 0.6100
0.0900 0.0700 0.0700 0.0900 0.1300 0.1900 0.2700 0.3700 0.4900 0.6300
0.0400 0.0300 0.0400 0.0700 0.1200 0.1900 0.2800 0.3900 0.5200 0.6700
0.0100 0.0100 0.0300 0.0700 0.1300 0.2100 0.3100 0.4300 0.5700 0.7300
0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900 0.6400 0.8100
0.0100 0.0300 0.0700 0.1300 0.2100 0.3100 0.4300 0.5700 0.7300 0.9100
0.0400 0.0700 0.1200 0.1900 0.2800 0.3900 0.5200 0.6700 0.8400 1.0300
0.0900 0.1300 0.1900 0.2700 0.3700 0.4900 0.6300 0.7900 0.9700 1.1700
0.1600 0.2100 0.2800 0.3700 0.4800 0.6100 0.7600 0.9300 1.1200 1.3300
0.2500 0.3100 0.3900 0.4900 0.6100 0.7500 0.9100 1.0900 1.2900 1.5100
0.3600 0.4300 0.5200 0.6300 0.7600 0.9100 1.0800 1.2700 1.4800 1.7100
0.4900 0.5700 0.6700 0.7900 0.9300 1.0900 1.2700 1.4700 1.6900 1.9300
0.6400 0.7300 0.8400 0.9700 1.1200 1.2900 1.4800 1.6900 1.9200 2.1700
0.8100 0.9100 1.0300 1.1700 1.3300 1.5100 1.7100 1.9300 2.1700 2.4300
1.0000 1.1100 1.2400 1.3900 1.5600 1.7500 1.9600 2.1900 2.4400 2.7100

Column 21

1.0000
0.9100
0.8400
0.7900
0.7600
0.7500
0.7600
0.7900
0.8400
0.9100
1.0000
1.1100
1.2400
1.3900
1.5600
1.7500
42
Optimizări-C5-CuTot Win10
1.9600
2.1900
2.4400
2.7100
3.0000
sau
>> z=x.^2+x.*y+y.^2 ; Enter
în cazul în care nu se doreşte afişarea matricii [z].
>> surf(z) Enter
Pe monitor se afişează suprafaţa corespunzătoare funcţiei, ca în figura 12.b.

Activând icoana: „rotate 3D” suprafaţa corespunzătoare funcţiei se poate « agăţa » şi roti pentru
a pune în evidenţă anumite puncte caracteristice.

Ex.04-2.
Fie funcţia f(x, y) = x ⋅ y.
f(x, y): [R − {0}] × [R − {0}] → R. Să se determine minimul ei, fără restricţii.
f(x, y) = x ⋅ y
Se calculează gradientul funcţiei:
∂f
dx y 0
∇f(x, y) = ∂f = [ ] = [ ]
x 0
[dy]

Punctul de minim va fi:


[x ∗, y ∗] = [0,0]; f(0,0) = 0

Este interesantă o reprezentare în jurul originii (care presupune următoarele comenzi în


Matlab):
>>[x,y]=meshgrid ((-1;0.1;1, -1;0.1;1) Enter
43
Optimizări-C5-CuTot Win10
Se afişează:
x=

Columns 1 through 10

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -


0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -
0.1000

Columns 11 through 20

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000


0.9000
44
Optimizări-C5-CuTot Win10
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000

Column 21

1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
45
Optimizări-C5-CuTot Win10
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000

y=

Columns 1 through 10

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -


1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -
0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -
0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -
0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -
0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -
0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -
0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -
0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -
0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -
0.1000
0 0 0 0 0 0 0 0 0 0
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
0.1000
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.2000
0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000
0.3000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.4000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.6000
46
Optimizări-C5-CuTot Win10
0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000
0.7000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
0.8000
0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000
0.9000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
1.0000

Columns 11 through 20

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -


1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -
0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -
0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -
0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -
0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -
0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -
0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -
0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -
0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -
0.1000
0 0 0 0 0 0 0 0 0 0
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
0.1000
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.2000
0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000
0.3000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.4000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.6000
0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000
0.7000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
0.8000
0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000
0.9000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
1.0000
47
Optimizări-C5-CuTot Win10

Column 21

-1.0000
-0.9000
-0.8000
-0.7000
-0.6000
-0.5000
-0.4000
-0.3000
-0.2000
-0.1000
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000x=

Se înscrie funcţia:
z = x ⋅ ysub forma :
>> z=x.*y Enter
Se afişează funcţia z.

z=

Columns 1 through 10

1.0000 0.9000 0.8000 0.7000 0.6000 0.5000 0.4000 0.3000 0.2000 0.1000
0.9000 0.8100 0.7200 0.6300 0.5400 0.4500 0.3600 0.2700 0.1800 0.0900
0.8000 0.7200 0.6400 0.5600 0.4800 0.4000 0.3200 0.2400 0.1600 0.0800
0.7000 0.6300 0.5600 0.4900 0.4200 0.3500 0.2800 0.2100 0.1400 0.0700
0.6000 0.5400 0.4800 0.4200 0.3600 0.3000 0.2400 0.1800 0.1200 0.0600
0.5000 0.4500 0.4000 0.3500 0.3000 0.2500 0.2000 0.1500 0.1000 0.0500
0.4000 0.3600 0.3200 0.2800 0.2400 0.2000 0.1600 0.1200 0.0800 0.0400
0.3000 0.2700 0.2400 0.2100 0.1800 0.1500 0.1200 0.0900 0.0600 0.0300
0.2000 0.1800 0.1600 0.1400 0.1200 0.1000 0.0800 0.0600 0.0400 0.0200
0.1000 0.0900 0.0800 0.0700 0.0600 0.0500 0.0400 0.0300 0.0200 0.0100
0 0 0 0 0 0 0 0 0 0
-0.1000 -0.0900 -0.0800 -0.0700 -0.0600 -0.0500 -0.0400 -0.0300 -0.0200 -0.0100
-0.2000 -0.1800 -0.1600 -0.1400 -0.1200 -0.1000 -0.0800 -0.0600 -0.0400 -0.0200
-0.3000 -0.2700 -0.2400 -0.2100 -0.1800 -0.1500 -0.1200 -0.0900 -0.0600 -0.0300
-0.4000 -0.3600 -0.3200 -0.2800 -0.2400 -0.2000 -0.1600 -0.1200 -0.0800 -0.0400
-0.5000 -0.4500 -0.4000 -0.3500 -0.3000 -0.2500 -0.2000 -0.1500 -0.1000 -0.0500
-0.6000 -0.5400 -0.4800 -0.4200 -0.3600 -0.3000 -0.2400 -0.1800 -0.1200 -0.0600
-0.7000 -0.6300 -0.5600 -0.4900 -0.4200 -0.3500 -0.2800 -0.2100 -0.1400 -0.0700
48
Optimizări-C5-CuTot Win10
-0.8000 -0.7200 -0.6400 -0.5600 -0.4800 -0.4000 -0.3200 -0.2400 -0.1600 -0.0800
-0.9000 -0.8100 -0.7200 -0.6300 -0.5400 -0.4500 -0.3600 -0.2700 -0.1800 -0.0900
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000

Columns 11 through 20

0 -0.1000 -0.2000 -0.3000 -0.4000 -0.5000 -0.6000 -0.7000 -0.8000 -0.9000


0 -0.0900 -0.1800 -0.2700 -0.3600 -0.4500 -0.5400 -0.6300 -0.7200 -0.8100
0 -0.0800 -0.1600 -0.2400 -0.3200 -0.4000 -0.4800 -0.5600 -0.6400 -0.7200
0 -0.0700 -0.1400 -0.2100 -0.2800 -0.3500 -0.4200 -0.4900 -0.5600 -0.6300
0 -0.0600 -0.1200 -0.1800 -0.2400 -0.3000 -0.3600 -0.4200 -0.4800 -0.5400
0 -0.0500 -0.1000 -0.1500 -0.2000 -0.2500 -0.3000 -0.3500 -0.4000 -0.4500
0 -0.0400 -0.0800 -0.1200 -0.1600 -0.2000 -0.2400 -0.2800 -0.3200 -0.3600
0 -0.0300 -0.0600 -0.0900 -0.1200 -0.1500 -0.1800 -0.2100 -0.2400 -0.2700
0 -0.0200 -0.0400 -0.0600 -0.0800 -0.1000 -0.1200 -0.1400 -0.1600 -0.1800
0 -0.0100 -0.0200 -0.0300 -0.0400 -0.0500 -0.0600 -0.0700 -0.0800 -0.0900
0 0 0 0 0 0 0 0 0 0
0 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 0.0800 0.0900
0 0.0200 0.0400 0.0600 0.0800 0.1000 0.1200 0.1400 0.1600 0.1800
0 0.0300 0.0600 0.0900 0.1200 0.1500 0.1800 0.2100 0.2400 0.2700
0 0.0400 0.0800 0.1200 0.1600 0.2000 0.2400 0.2800 0.3200 0.3600
0 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500
0 0.0600 0.1200 0.1800 0.2400 0.3000 0.3600 0.4200 0.4800 0.5400
0 0.0700 0.1400 0.2100 0.2800 0.3500 0.4200 0.4900 0.5600 0.6300
0 0.0800 0.1600 0.2400 0.3200 0.4000 0.4800 0.5600 0.6400 0.7200
0 0.0900 0.1800 0.2700 0.3600 0.4500 0.5400 0.6300 0.7200 0.8100
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Column 21

-1.0000
-0.9000
-0.8000
-0.7000
-0.6000
-0.5000
-0.4000
-0.3000
-0.2000
-0.1000
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
49
Optimizări-C5-CuTot Win10
>>surf (z) Enter
Se afişează suprafaţa corespunzătoare funcţiei de forma prezentată în figura 13.

Analizând graficul se observă că punctul [x, y] = [0,0] nu este un minim al funcţiei z = f(x, y).

Ex.04-3.
Se dă funcţia f(x, y) = x + y; f(x, y): R × R → R.
Să se determine extremele ei.
1 0
∇f(x, y) = [ ] ≠ [ ]
1 0
Relaţia de mai sus arată că funcţia nu are extrem.
Totuşi este interesantă reprezentarea ei grafică în Matlab.

>> [x,y]=meshgrid(-1:0.1:1,-1:0.1:1) Enter


Se afişează:
x=

Columns 1 through 10

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
50
Optimizări-C5-CuTot Win10
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000

Columns 11 through 20

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000


0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Column 21

1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
51
Optimizări-C5-CuTot Win10
1.0000
1.0000
1.0000
1.0000

y=

Columns 1 through 10

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000
0 0 0 0 0 0 0 0 0 0
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Columns 11 through 20

-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000
-0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000
-0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000
-0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
-0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000
-0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000
-0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000
-0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000
0 0 0 0 0 0 0 0 0 0
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000
52
Optimizări-C5-CuTot Win10
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Column 21

-1.0000
-0.9000
-0.8000
-0.7000
-0.6000
-0.5000
-0.4000
-0.3000
-0.2000
-0.1000
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
Se introduce funcţia: z = f(x, y) = x + y sub forma:
>> z=x+y Enter
Se afişează matricea corespunyătoare funcţiei z.
z=
Columns 1 through 10

-2.0000 -1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000
-1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000
-1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 -0.9000
-1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000
-1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000 -0.7000
-1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000 -0.7000 -0.6000
-1.4000 -1.3000 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000
-1.3000 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000
-1.2000 -1.1000 -1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000
-1.1000 -1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000
-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0
-0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000
-0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000
-0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000
-0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000
-0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000
-0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
-0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000
53
Optimizări-C5-CuTot Win10
-0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Columns 11 through 20

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000
-0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0
-0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000
-0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000
-0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000
-0.5000 -0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000
-0.4000 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000
-0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
-0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000
-0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000
0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000
0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000
0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000
0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000
0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000
0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000
0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000

Column 21

0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
1.1000
1.2000
1.3000
1.4000
1.5000
1.6000
1.7000
1.8000
1.9000
2.0000
Comanda:
>>surf (z) Enter
54
Optimizări-C5-CuTot Win10
determină afişarea suprafaţei corespunzătoare funcţiei - figura 14 observându-se că aceasta este
un plan.

Ex.04-4.
Se consideră o funcţie asemănătoare celei de la exerciţiul 04-2 şi anume:
f(x, y) = 1 + x 2 + xy + y 2
Vom prezenta în continuare o altă formă de scriere a funcţiilor ce urmează a fi reprezentate,
după cum urmează:
Se înscrie funcţia în fereastra de comandă sub forma:
>> f=@(x,y)1+x.^2+x.*y+y.^2 Enter

Se va afişa expresia matriceală a funcţiei sub forma:


f=
@(x,y)1+x.^2+x.*y+y.^2
ezsurfc(f,[-3,3]) Enter
Pe monitor se afişează suprafaţa caracteristică funcţiei z = f(x, y), prezentată în figura 15.
55
Optimizări-C5-CuTot Win10

Prin rotire se poate constata că minimul funcţiei se află în jurul valorii:


x 0
[y] = [ ]
0
Ex.04-5.
Cu modalitatea anterior descrisă vom reprezenta şi o funcţie care reprezintă un minim local.
Se dă funcţia:
2 2
x ⋅ e−(x +y ) + x 2 + y 2
f(x) = ; f(x, y): R × R → R
20
Să se determine extermul (extremele) funcţiei, dacă ele există.
Se înscrie în fereastra de comandă funcţia sub forma:
>> f=@(x,y)(x.*exp(-(x.^2+y.^2))+x.^2+y.^2)./20

f=

@(x,y)(x.*exp(-
(x.^2+y.^2))+x.^2+y.^2)./20
Urmare a comenzii.
>> ezsurfc(f,[-3,3])
pe monitor se afişează suprafaţa
corespunzătoare graficului funcţiei
sub forma din figura 16

Pe monitor se afişează suprafaţa


corespunzătoare graficului funcţiei
sub forma din figura 16.
Se poate observa că minimul
funcţiei f se situează în jurul
punctului:
x1 −0,5
[y ] = [ ]
1 0
.
Situaţie dificil de verificat prin metode analitice.

Cu această modalitate vom reprezenta şi o funcţie care reprezintă un minim local şi un maxim
local.
Se dă funcţia:
2 2 x2 + y2
f(x) = x ⋅ e−(x +y ) + ; f(x, y): R × R → R
20
Să se determine minimul şi maximul funcţiei.
Se înscrie în fereastra de comandă funcţia sub forma:
>> f=@(x,y)x.*exp(-(x.^2+y.^2))+(x.^2+y.^2)./20

f=

@(x,y)x.*exp(-(x.^2+y.^2))+(x.^2+y.^2)./20
Urmare a comenzii.
>> ezsurfc(f,[-3,3])
pe monitor se afişează suprafaţa corespunzătoare graficului funcţiei sub forma din figura 17.
56
Optimizări-C5-CuTot Win10
Pe monitor se afişează suprafaţa
corespunzătoare graficului funcţiei
sub forma din figura 16.
Se poate observa că minimul funcţiei
f se situează în jurul punctului:
x1 −0,5
[y ] = [ ]
1 0

iar maximul în jurul punctului:


x2 0,8
[y ] = [ ]
2 0
.

Studiul extremelor funcţiilor de două variabile în Matlab.

Extremele funcţiilor de 2 variabile


Fie funcţia: f(x) = x 2 + xy + y 2

∂f
dx 2x + y 0
grad f(x) = [ ∂f ] =[ ]=[ ]
x + 2y 0
dy
2x + y = 0
x + 2y = 0(−2)
x 0
x ∗ = [y] = [ ]
0
În spaţiul tridimensional f(x1 , x2 ), x1 , x2 , funcţia f(x1 , x2 ) va fi o suprafaţă ce are un extrem în x∗ .
Se poate anticipa că acest extrem este un minim.
Pentru reprezentare în Matlab, x şi y se vor reprezenta sub forma unei matrice după cum
urmează:
[x]=n×m
[y]=n×m
sup(x)‒inf(x)
x- va avea n linii identice şi un număr de coloane m date de relaţiile: m= p(x) +1
unde: sup(x) este limita superioară a intervalului de definire a linii x1
inf (x) este limita inferioară a intervalului de definiţie a lui x1
p (x) este panoul de generare al diviziunilor lui x1
sup(y)‒inf(y)
y – va avea m coloane identice şi un număr de n linii date de relaţiile: n= p(y) +1

Exemplificare în Matlab
57
Optimizări-C5-CuTot Win10
c) pentru a putea scrie sub formă sigură matricele variabilelor x şi y se va alege un pas
suficient de mare atât pentru x cât şi pentru y
Astfel vom adopta:
x ∈(-1,1)
p(x)=0.5
y ∈ (-1,1)
p(y)=0.5
Pentru început este util generarea uneia din liniile matricei [x] care se va repeta de un
număr n ori şi a uneia dintre coloanele matricei [y] astfel:
x=-1;0.5;1 Enter (pe ecran va apărea linia „generatoare” a matricei [x]) de forma:
x=
-1.0000 -0.5000 0 0.5000 1.0000
Din structura liniei deducem şi numărul de coloane ale matricei [x] şi [y] calculate cu formula
m=5;
În ceia ce priveşte matricea [y]
y=-1;0.5;1 Enter
Pe ecran se afişează sub forma liniei o coloană a statului [y] de forma:
y=
-1.0000-0.5000 0 0.5000 1.0000
Rezultatul m de linii şi n ale matricelor se calculează de altfel cu formula n=5
S-a adoptat p(y)=0.5 pentru a se include în nivelul de valori ale elementelor coloanei şi valoarea
y=0. Pentru a ilustra faptul că sunt valabile orice valori pentru p(y) rezultând 6 n de linii se
consideră:
p(y)=0.4 în care coloana matricelor [y] se obţine astfel:
y=-1;0.5;1 Enter (rezultând)
y=
-1.0000 -0.6000 -0.2000 0.2000 0.6000 1.0000
şi n=6
Revenind la p(y)=0.5 vom genera matricele [x] şi [y] astfel:
[x,y]=meshgrid (-1;0.5;1, -1;0.5;1) Enter
Pe ecran se afişează matricele x,y, având dimensiunile 5×5 şi anume:
x=
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
y=
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000
0 0 0 0 0
0.5000 0.5000 0.5000 0.5000 0.5000
1.0000 1.0000 1.0000 1.0000 1.0000
Se scrie expresia funcţiei f(x,y)= z sub forma:
z=x.^2+x.*y+y.^2 Enter
Pe ecran se afişează matricea z, conjugata funcţiei f(x) şi anume:
z=
3.0000 1.7500 1.0000 0.7500 1.0000
1.75 0.75 0.25 0.25 0.75
1.00 0.25 0 0.25 1.00

6
58
Optimizări-C5-CuTot Win10
0.75 0.25 0.25 0.75 1.75
1.00 0.75 1.00 1.75 3.00
Se va scrie în format cu 4 zecimale cu ajutorul comenzii:
surf (z) Enter
Se va afişa graficul suprafeţei ce conţine reprezentarea funcţiei z=f(x,y)=x2 + xy + y2
Luc.03-Ex.01
Întrucât paşi de divizare au avut valori mari şi suprafaţa este constituită din părţi plane prea
mari, din acest motiv este indicată alegerea unor paşi p(x) şi p(y) de valori mult mai mici.
d) pentru aceasta se consideră spaţiul astfel:
x ∈(-1,1)
p(x)=0.1
y ∈ (-1,1)
p(y)=0.1
x=-1;0.1;1 Enter
x=
y=-1;0.1;1 Enter
y=
Apoi se vor genera matricele [x] şi [y] astfel:
[x,y]=meshgrid (-1;0.1;1, -1;0.1;1) Enter (se afişează matricele x şi y)
Se înscrie funcţia: z=f(x,y)
z=x.^2+x.*y+y.^2 Enter
Se aplică matricea z conjugata funcţiei z=f(x,y) astfel:
surf (z) Enter (se afişează suprafaţa corespunzătoare funcţiei)
Activând icoana: „rotate 3D” suprafaţa conjugatei funcţiei se poate arăta şi roti din toate părţile
pentru a pune în evidenţă anumite puncte caracteristice.

Exerciţiul 2 Cu.03-Ex.02
Fie funcţia f(x, y) = x ⋅ y. Să se determine minimul ei, fără restricţii.
f(x, y) = x ⋅ y
Se calculează:
∂f
dx y 0
grad f(x, y) = [ ∂f ] =[ ]=[ ]
x 0
dy

Punctul de minim va fi:


[x∗ , y∗ ] = [0,0]
f(x∗ , y∗ )=0
f(x,y):[R-{0}]×(R-{0})→ℝ
Este interesantă o reprezentare în jurul originii (care presupune următoarele comenzi în
Matlab):
[x,y]=meshgrid ((-1:0.1 :1, -1 :0.1:1) Enter
Se afişează:
x=

y=

Se 7 funcţia:
z=x∙y Enter (se afişează funcţia z)
z=

7
59
Optimizări-C5-CuTot Win10
după care se dă comanda:
surf (z) Enter
Se afişează suprafaţa corespunzătoare funcţiei Cu.03-Ex.02
Analizând graficul se observă că punctele [x∗ , y∗ ] = [0,0] nu este un minim al funcţiei:
z=f(x,y)=x∙y

Exerciţiul 3

Se dă funcţia f(x, y) = x + y. să se determine extremele ei.


1 0
∇f(x, y) = [ ] ≠ [ ]
1 0
⇒ funcţia nu are extrem
Totuşi este interesantă reprezentarea ei grafică în Matlab.
[x,y]=meshgrid ((-1;0.1;1, -1;0.1;1) Enter
Se afişează:
x=

y=

Se introduce funcţia: z=f(x,y)=x+y
z=x+y Enter (se afişează funcţia z)
z=

după care se dă comanda pentru conjugata funcţiei:
surf (z) Enter
Se afişează suprafaţa corespunzătoare funcţiei Luc.03-Ex.03, şi se observă că acesta este un
plan.
Se consideră o funcţie asemănătoare celei de la exemplu şi anume:
f(x) = 1 + x 2 + xy + y 2
Se înscrie funcţia în fereastra de comandă sub forma:
f=@(x,y)1+x.^2+x.*y+y.^2 Enter
Se va afişa expresia lui f sub forma:
f=
f=@(x,y)1+x.^2+x.*y+y.^2
ezsurfc(f,[-3,3]) Enter
Se afişează suprafaţa caracteristică funcţiei f(x,y). Prin rotire se poate constata că minimul
funcţiei se află în jurul valori:
x 0
[y] = [ ]
0
Cu această modalitate vom reprezenta şi o funcţie care reprezintă un minim local şi un maxim
local.
Se dă funcţia:
2 2 (x 2 + y 2 )
f(x) = x ⋅ e−(x +y ) +
20
Să se determine minimul şi maximul funcţiei definite pe R × R cu valori în R. Se trece în
fereastra de comandă funcţia sub forma:
f=@(x,y)x.*exp(-(x.^2+y.^2))+(x.^2+y.^2)./20
Se apliccă comanda.
ezsurfc(f,[-1.5,1.5],[-1,1])
având semnificaţia:
Afişează funcţia f în situaţia în care variabila x variază în intervalul [-1.5,1,5] iar variabila y în
intervalul [-1.,1]
60
Optimizări-C5-CuTot Win10
Pe monitor se afişează suprafaţa corespunzătoare graficului funcţiei sub forma:

Se poate observa că minimul funcţiei f se restrânge în jurul punctului:


x1 −0,7
[y ] = [ ]
1 0
Iar maximul în jurul punctului:
x2 0,7
[y ] = [ ]
2 0

x. Algoritmi de Optimizare fără restricţii în Matlab

Definition
Minimizarea fără restricţii a unei funcţii scalare uni sau multivariabile constă în găsirea unui
vector x* care este un minim local al funcţiei, adică
f(x ∗) = minf(x)
x

The term unconstrained means that no restriction is placed on the range of x.


Termenul fără restricţii are semnificaţia că ..................
Algoritmul de minimizare „Large Scale fminunc”

Methods Trust-Region for Nonlinear Minimization


Multe din metodele de rezolvare utilizate în Optimization Toolbox se bazează pe trust
Regions, un concept simplu, dar puternic în optimizare.
To understand the trust-region approach (abordare) to optimization, consider the
61
Optimizări-C5-CuTot Win10
unconstrained minimization problem, minimize f(x), where the function takes
vector arguments and returns scalars. Suppose you are at a point x in n-space
and you want to improve, i.e., move to a point with a lower function value.
The basic idea is to approximate f with a simpler function q, which reasonably
reflects the behavior of function f in a neighborhood N around the point x. This
neighborhood is the trust region. A trial step s is computed by minimizing (or
approximately minimizing) over N. This is the trust-region subproblem,
min ( ), .
s
q s sN(6-2)
The current point is updated to be x + s if f(x + s) < f(x); otherwise, the current
point remains unchanged and N, the region of trust, is shrunk and the trial
step computation is repeated.
The key questions in defining a specific trust-region approach to minimizing
f(x) are how to choose and compute the approximation q (defined at the
current point x), how to choose and modify the trust region N, and how
accurately to solve the trust-region subproblem. This section focuses on the
unconstrained problem. Later sections discuss additional complications due
to the presence of constraints on the variables.
In the standard trust-region method ([48]), the quadratic approximation q
is defined by the first two terms of the Taylor approximation to F at x; the
neighborhood N is usually spherical or ellipsoidal in shape. Mathematically
the trust-region subproblem is typically stated
min ,
1
2
s Hs s g Ds T T 

such that 
(6-3)
where g is the gradient of f at the current point x, H is the Hessian matrix
(the symmetric matrix of second derivatives), D is a diagonal scaling matrix, Δ
is a positive scalar, and . is the 2-norm. Good algorithms exist for solving
Equation 6-3 (see [48]); such algorithms typically involve the computation of a
full eigensystem and a Newton process applied to the secular equation
11
0


s
.
Such algorithms provide an accurate solution to Equation 6-3. However,
they require time proportional to several factorizations of H. Therefore, for
large-scale problems a different approach is needed. Several approximation
and heuristic strategies, based on Equation 6-3, have been proposed in
the literature ([42] and [50]). The approximation approach followed in
Optimization Toolbox solvers is to restrict the trust-region subproblem
to a two-dimensional subspace S ([39] and [42]). Once the subspace S
has been computed, the work to solve Equation 6-3 is trivial even if full
6-4
Unconstrained Nonlinear Optimization Algorithms
eigenvalue/eigenvector information is needed (since in the subspace, the
problem is only two-dimensional). The dominant work has now shifted to
the determination of the subspace.
The two-dimensional subspace S is determined with the aid of a
preconditioned conjugate gradient process described below. The solver defines
S as the linear space spanned by s1 and s2, where s1 is in the direction of the
gradient g, and s2 is either an approximate Newton direction, i.e., a solution to
H s2 g, (6-4)
or a direction of negative curvature,
sT H s
2 2 0. (6-5)
62
Optimizări-C5-CuTot Win10
The philosophy behind this choice of S is to force global convergence (via the
steepest descent direction or negative curvature direction) and achieve fast
local convergence (via the Newton step, when it exists).
A sketch of unconstrained minimization using trust-region ideas is now easy
to give:
1 Formulate the two-dimensional trust-region subproblem.
2 Solve Equation 6-3 to determine the trial step s.
3 If f(x + s) < f(x), then x = x + s.
4 Adjust Δ.
These four steps are repeated until convergence. The trust-region dimension
Δ is adjusted according to standard rules. In particular, it is decreased if the
trial step is not accepted, i.e., f(x + s) ≥ f(x). See [46] and [49] for a discussion
of this aspect.
Optimization Toolbox solvers treat a few important special cases of f with
specialized functions: nonlinear least-squares, quadratic functions, and linear
least-squares. However, the underlying algorithmic ideas are the same as for
the general case. These special cases are discussed in later sections.
6-5
6 Optimization Algorithms and Examples
Preconditioned Conjugate Gradient Method
A popular way to solve large symmetric positive definite systems of linear
equations Hp = –g is the method of Preconditioned Conjugate Gradients
(PCG). This iterative approach requires the ability to calculate matrix-vector
products of the form H·v where v is an arbitrary vector. The symmetric
positive definite matrix M is a preconditioner for H. That is, M = C2, where
C–1HC–1 is a well-conditioned matrix or a matrix with clustered eigenvalues.
In a minimization context, you can assume that the Hessian matrix H is
symmetric. However, H is guaranteed to be positive definite only in the
neighborhood of a strong minimizer. Algorithm PCG exits when a direction of
negative (or zero) curvature is encountered, i.e., dTHd ≤ 0. The PCG output
direction, p, is either a direction of negative curvature or an approximate
(tol controls how approximate) solution to the Newton system Hp = –g. In
either case p is used to help define the two-dimensional subspace used in
the trust-region approach discussed in “Trust-Region Methods for Nonlinear
Minimization” on page 6-3.

Medium Scale fminunc Algorithm


Basics of Unconstrained Optimization
Although a wide spectrum of methods exists for unconstrained optimization,
methods can be broadly categorized in terms of the derivative information
that is, or is not, used. Search methods that use only function evaluations
(e.g., the simplex search of Nelder and Mead [30]) are most suitable for
problems that are not smooth or have a number of discontinuities. Gradient
methods are generally more efficient when the function to be minimized is
continuous in its first derivative. Higher order methods, such as Newton’s
method, are only really suitable when the second-order information is readily
and easily calculated, because calculation of second-order information, using
numerical differentiation, is computationally expensive.
Gradient methods use information about the slope of the function to dictate
a direction of search where the minimum is thought to lie. The simplest of
these is the method of steepest descent in which a search is performed in a
direction, –f(x), where f(x) is the gradient of the objective function. This
method is very inefficient when the function to be minimized has long narrow
valleys as, for example, is the case for Rosenbrock’s function
63
Optimizări-C5-CuTot Win10
6-6
Unconstrained Nonlinear Optimization Algorithms


f (x) 100 x2 x1 (1 x ) .
22
1
2
(6-6)
The minimum of this function is at x = [1,1], where f(x) = 0. A contour map
of this function is shown in the figure below, along with the solution path to
the minimum for a steepest descent implementation starting at the point
[-1.9,2]. The optimization was terminated after 1000 iterations, still a
considerable distance from the minimum. The black areas are where the
method is continually zigzagging from one side of the valley to another. Note
that toward the center of the plot, a number of larger steps are taken when
a point lands exactly at the center of the valley.
Figure 6-1: Steepest Descent Method on Rosenbrock’s Function (Equation
6-6)
This function, also known as the banana function, is notorious in
unconstrained examples because of the way the curvature bends around the
origin. Rosenbrock’s function is used throughout this section to illustrate the
use of a variety of optimization techniques. The contours have been plotted
in exponential increments because of the steepness of the slope surrounding
the U-shaped valley.
6-7
6 Optimization Algorithms and Examples
For an animated version of this figure, enter bandem at the MATLAB
command line.
Quasi-Newton Methods
Of the methods that use gradient information, the most favored are the
quasi-Newton methods. These methods build up curvature information at
each iteration to formulate a quadratic model problem of the form
min ,
x
xTHx cT x b
1
2
(6-7)
where the Hessian matrix, H, is a positive definite symmetric matrix, c is a
constant vector, and b is a constant. The optimal solution for this problem
occurs when the partial derivatives of x go to zero, i.e.,
f (x*) Hx * c 0. (6-8)
The optimal solution point, x*, can be written as
x* H1c. (6-9)
Newton-type methods (as opposed to quasi-Newton methods) calculate H
directly and proceed in a direction of descent to locate the minimum after a
number of iterations. Calculating H numerically involves a large amount
of computation. Quasi-Newton methods avoid this by using the observed
behavior of f(x) and f(x) to build up curvature information to make an
approximation to H using an appropriate updating technique.
A large number of Hessian updating methods have been developed. However,
the formula of Broyden [3], Fletcher [12], Goldfarb [20], and Shanno [37]
(BFGS) is thought to be the most effective for use in a general purpose method.
The formula given by BFGS is
HH
qq
qs
HssH
sHs
kk
kk
T
k
T
64
Optimizări-C5-CuTot Win10
k
k
T
k
T
kk
k
T
kk
1 ,
(6-10)
where
6-8
Unconstrained Nonlinear Optimization Algorithms
sxx
qfxfx
kkk
kkk




1
1
,
.
As a starting point, H0 can be set to any symmetric positive definite matrix,
for example, the identity matrix I. To avoid the inversion of the Hessian H,
you can derive an updating method that avoids the direct inversion of H by
using a formula that makes an approximation of the inverse Hessian H–1 at
each update. A well-known procedure is the DFP formula of Davidon [7],
Fletcher, and Powell [14]. This uses the same formula as the BFGS method
(Equation 6-10) except that qk is substituted for sk.
The gradient information is either supplied through analytically calculated
gradients, or derived by partial derivatives using a numerical differentiation
method via finite differences. This involves perturbing each of the design
variables, x, in turn and calculating the rate of change in the objective
function.
At each major iteration, k, a line search is performed in the direction
d Hk1 f xk . (6-11)
The quasi-Newton method is illustrated by the solution path on Rosenbrock’s
function in Figure 6-2, BFGS Method on Rosenbrock’s Function. The method
is able to follow the shape of the valley and converges to the minimum after
140 function evaluations using only finite difference gradients.
6-9
6 Optimization Algorithms and Examples
Figure 6-2: BFGS Method on Rosenbrock’s Function
For an animated version of this figure, enter bandem at the MATLAB
command line.
Line Search
Line search is a search method that is used as part of a larger optimization
algorithm. At each step of the main algorithm, the line-search method
searches along the line containing the current point, xk, parallel to the search
direction, which is a vector determined by the main algorithm. That is, the
method finds the next iterate xk+1 of the form
xk1 xk  * dk, (6-12)
where xk denotes the current iterate, dk is the search direction, and α* is a
scalar step length parameter.
The line search method attempts to decrease the objective function along the
line xk + α*dk by repeatedly minimizing polynomial interpolation models of
the objective function. The line search procedure has two main steps:
• The bracketing phase determines the range of points on the line
xk1 xk  * dk to be searched. The bracket corresponds to an interval
specifying the range of values of α.
65
Optimizări-C5-CuTot Win10
6-10
Unconstrained Nonlinear Optimization Algorithms
• The sectioning step divides the bracket into subintervals, on which
the minimum of the objective function is approximated by polynomial
interpolation.
The resulting step length α satisfies the Wolfe conditions:
fx d fx c fd kkkk
T  1 k, (6-13)
f xk dk d c f d
T
kk
T
 2 k, (6-14)
where c1 and c2 are constants with 0 < c1 < c2 < 1.
The first condition (Equation 6-13) requires that αk sufficiently decreases the
objective function. The second condition (Equation 6-14) ensures that the step
length is not too small. Points that satisfy both conditions (Equation 6-13 and
Equation 6-14) are called acceptable points.
The line search method is an implementation of the algorithm described in
Section 2-6 of [13]. See also [31] for more information about line search.
Hessian Update
Many of the optimization functions determine the direction of search by
updating the Hessian matrix at each iteration, using the BFGS method
(Equation 6-10). The function fminunc also provides an option to use the
DFP method given in “Quasi-Newton Methods” on page 6-8 (set HessUpdate
to 'dfp' in options to select the DFP method). The Hessian, H, is always
maintained to be positive definite so that the direction of search, d, is always
in a descent direction. This means that for some arbitrarily small step α in
the direction d, the objective function decreases in magnitude. You achieve
positive definiteness of H by ensuring that H is initialized to be positive
definite and thereafter qk s
T
k (from Equation 6-15) is always positive. The
term qk s
T
αk and
k is a product of the line search step length parameter
a combination of the search direction d with past and present gradient
evaluations,
6-11
6 Optimization Algorithms and Examples
qk s f x d f x d
T
kkk
T
k


 T 
1 . (6-15)
You always achieve the condition that qk s
T
k ispositive by performing a
sufficiently accurate line search. This is because the search direction, d, is a
descent direction, so that αk and the negative gradient –f(xk)Td are always
positive. Thus, the possible negative term –f(xk+1)Td can be made as small in
magnitude as required by increasing the accuracy of the line search.

Cu05
66
Optimizări-C5-CuTot Win10
Determinarea minimului unei funcţii.
Optimization Tools.
Ex.01-Cu0601fc

1. Se deschide Matlab R2010a si pe ecran apare imaginea din fig. p.01


2. Se selactează optimization tool şi apoi se inchide fereastra din fig.p.01. Pe ecran apar
ferestrele corespuzatoare Matlab.
3. În Command Window scriem denumirea fişierului căutat (ex.cu0508fu) sau a celui
pe care vrem sa-l creem.
Enter
a) Daca fişierul tastat există, în el se va deschide în Editor(-fig.03.p). Se pot face
modificări în fişier. La urma se salvează modificările.
b) Dacă fisierul tastat nu există apare o casetă de dialog a Editorului(-fig.04.p) în
care se selecteză opţiunea YES.
Se afişează editorul cu fişierul dorit în care se pot face înscrieri.
Se înscrie numele funcţiei obiectiv si expresia sa conform exemplului din
fig.03.p.
Se salvează modificările.

A.Optimizare fără restricţii.

4.a. Se apelează Command Window din Matlab şi se va înscrie optimtool, comanda de


deschidere a ferestrei de dialog Optimization Tool – fig.06.
De utilizat sunt coloanele Problems Setup and Results-fig07.a.p
Options – fig.08.a.p
5.a. În fereastra Problems se setează parametrii din figură. Dacă nu se observă, se
selectează tipul de (Solven)
Algoritmul
Funcţia obiectiv
Derivatele
Punctul de start al iteraţiei.
6.a. În fereastra Option se setează rubrica marcată cu albastru(Level of display) restul
setărilor fiind cele default.
7.a. Se acţionează butonul start si se declanşează iteraţia în urma căreia se va determina
punctul de minim.
În fereastra de dialog apare un mesaj de forma celui din fig.09.a.p. În Command Window se
prezintă operaţiile si iteraţiile Matlab –fig10a.p. Din mesajul din caseta din fig09.a.p rezultă
valoarea minimului funcţiei, iar din rubrica Final Point coordonatele puctului de minim.

1. Se adoptă (dacă nu s-a impus) denumirea funcţiei obiectiv, în cazul nostru:


cu0607fu cu semnificaţia:
06 –
Litere sau cifre (grup de) Semnificaţie
cu06 Nr. saptamânii de activitate
07 Nr. exerciţiului
f Funcţie Obiectiv
u Optimizare fara restricţii

2.Se deschide MatLab:


67
Optimizări-C5-CuTot Win10
In fereastra de comanda se scrie cererea de editare a funcţiei obiectiv (cu0607fu), adică:
edit cu0607fu urmat de Enter.

Dacă funcţia obiectiv există deja se deschide fereastra de editare a fisierului ei, ca în figura
Dacă funcţia obiectiv NU există încă se deschide o fereastră de dialog din figura

Se aplică OK, iar programul afişează fereastra de editare în care se editează funţia conform
figurii

În aceasta se înscrie funcţia obiectiv în forma:


function f=cu0607fu(x) Enter
f=(x-2)^2;
68
Optimizări-C5-CuTot Win10

Se salvează fişierul , se revine în fereastra de comandă, şi se introduce instrucţiunea optimtool.


Se va deschide fereastra de dialog Optimization Tools în care se fac următoarele setări:

Se actionează start și se obţine:


69
Optimizări-C5-CuTot Win10

Semnificaţia mesajului este:


Minimul funcţiei este: .....obţinută pentru valoarea x* a argumentului, adică:
x ∗= 2; f(x ∗) = f(2) = 0 vezi fig 0601.p.2)

Se consideră funcțiile de mai jos:


𝑓(𝑥) = (2𝑥 − 1)3

𝑓(𝑥) = 𝑥 2 − 2

𝑓(𝑥) = (𝑥 2 − 2)3

𝑓(𝑥) = (2𝑥 − 1)3

𝑓(𝑥) = (2𝑥 − 1)2

03

2. Optimizări cu restricţii

2.1 Optimizări cu restricţii de tip egalitate

Aşa cum s-a arătat în rezolvarea unei probleme de minim.


În cazul cu restricţii, minimul se va căuta în condiţiile îndeplinirii uneia (mai multora)
restricţii, de tip egalitate in cazul nostru.
70
Optimizări-C5-CuTot Win10
Astfel, fie funcţia f=f(x,y) definită pe R2 cu valori în R şi o funcţie h(x) definita pe R cu
valori in R. Se cere să se determine extremul funcţiei f(x,y) în condiţiile restricţiei h(x)=y.
Prin urmare funcţia f(x,y) va fi funcţia obiectiv g(x,y) impusă restricţiei h(x)=y. Această
restricţie poate fi exprimată şi sub forma g(x,y)=h(x)-y=0 în cazul general vorbim despre o
funcţie f(x)= f(x1,x2,...,xn) pentru care se va căuta extremul în condiţiile existenţei unui set de
restricţii de tip egalitate:
g1 (x) = g1 (x1 , x2 , . . . , xn ) = 0
g 2 (x) = g2(x1 , x2 , . . . , xn ) = 0
m<n

g m (x) = g m (x1 , x2 , . . . , xn ) = 0
În aceste condiţii se poate arăta că punctul de extrem al funcţiei se poate calcula utilizând
multiplicatorii lui Lagrange. Pentru aceasta se defineste funcţionala numită Lagrangean sub
forma:
L(x, p) = f(x) + ∑m j=1 pj ⋅ g j (x) adică
L(x1 , x2 , . . . , xn , p1 , p2 , . . . , pm ) = f(x1 , x2 , . . . . , xn ) + ∑m
j=1 pj ⋅ g j (x1 , x2 , . . . . , xn )unde
pi(i=1,….m, m<n) se numesc multiplicatori Lagrange.
Aici se vor insera consideraţii teoretice
Punctul de extrem x=x1,x2,…xn se determina ca soluţie a sistemului de ecuaţii:

∂L ∂f ∂g
= ∂x + ∑m i
i=1 pi ⋅ ∂x = 0
∂x1 1 1
∂L ∂f ∂gi
= ∂x + ∑m
i=1 pi ⋅ ∂x = 0
∂x2 2 2

∂L ∂f ∂g
= ∂x + ∑m i
i=1 pi ⋅ ∂x = 0
∂xn n n
g1 (x1 , x2 , . . . xn ) = 0
g 2 (x1 , x2 , . . . xn ) = 0

g n (x1 , x2 , . . . xn ) = 0

Punctul de extrem:
x ∗= [x1 , x2 , . . . , xn ]se determina ca soluţie a sistemului de ecuaţii:

Adică:

Ex.05-1.
Fie funcţia:
f(x, y) = −x ⋅ y.
Să se determine minimul ei in condiţiile in condiţiile restricţiei:
g(x, y) = y + x ⋅ ex = 0
Lagrangeanul funcţiei este: L(x, y) = −x ⋅ y + p(y + x ⋅ ex )
Minimul funcţiei va rezulta din sistemul:
∂L
= −y + p(0 + (ex + x ⋅ ex )) = 0
∂x
∂L
= −x + p(1 + 0) = 0
∂y
{g(x, y) = y + x ⋅ ex = 0
Înlocuind în prima ecuaţie valoare lui p obţinută din a doua ecuaţie:
p = x rezultă:
−y + x(ex + x ⋅ ex ) = 0
{
y + x ⋅ ex = 0
71
Optimizări-C5-CuTot Win10
Adunând membru cu membru se obţine:
x(ex + x ⋅ ex ) + x ⋅ ex = 0
x ⋅ ex (1 + x) + x ⋅ ex = 0
x ⋅ ex (2 + x) = 0
Adică :
x = 0; → x 1 = 0
(2 + x) = 0; → x2 = −2
ex = 0 fără soluţie pentru x finit.
Corespunzător valorilor x1 şix2 rezultă :
y1 = −x1 ⋅ ex1 = 0
y2 = −x2 ⋅ ex2 = +2 ⋅ e−2
Prin urmare cele două soluţii posibile sunt:
x1 0
[x1 ∗] = [y ] = [ ] ; f(x1 ∗) = f(x1 , y1 ) = 0
1 0
x2 −2
[x2 ∗] = [y ] = [ ] ; f(x2 ∗) = f(x2 , y2 ) = 4 ⋅ e−2
2 2 ⋅ e−2
În această fază nu se poate preciza dacă soluţiile determinate ca extreme sunt puncte de
minim sau maxim, pentru aceasta fiind necesare calcule asupra cărora nu insistăm în această
etapă. În schimb putem să abordăm problema şi printr-o altă rezolvare, în felul următor:
f(x, y) = −x ⋅ y
g(x, y) = y + x ⋅ ex
Înlocuind în expresia funcţiei f(x, y) = −x ⋅ y pe cea variabilei
y = −x ⋅ ex obţinută din a doua ecuaţie rezultă:
f(x) = −x(−x ⋅ ex ) = x 2 ⋅ ex
f(x) = 0; x = 0
lim f(x) = 0
x→−∞
f′(x) = 2x ⋅ ex + x 2 ⋅ ex = 0
x ⋅ ex (x + 2) = 0
Extremele funcţiei corespund punctelor:
x1 ∗= 0
x2 ∗= −2
f"(x) = 2 ⋅ ex + 2x ⋅ ex + 2x ⋅ ex + x 2 ⋅ ex = ex (2 + 4x + x 2 ) = 0
−4 ± √16 − 8 −4 ± 2√2
x1,2 = = = −2 ± √2
2 2
x1 = −2 − √2
x2 = −2 + √2
Construind tabelul ce facilitează reprezentarea grafică a funcţiei f(x) se obţine:
x -∞ (2  2 ) 2 (2  2 ) 0 +∞
f (x) + + + + + + + + 0 + +
f ' ( x) + + + + 0 - - - 0 + +
f " ( x) + + 0 - - - 0 + + + +

f (x)

Utilizând MatLab se reprezntă grafic funcţia f(x) = x 2 ⋅ ex


>> x=-10:0.1:1
Se afişează matricea corespunzătoare variabilei x.
x=
Columns 1 through 10
72
Optimizări-C5-CuTot Win10

-10.0000 -9.9000 -9.8000 -9.7000 -9.6000 -9.5000 -9.4000 -9.3000 -9.2000


-9.1000

Columns 11 through 20

-9.0000 -8.9000 -8.8000 -8.7000 -8.6000 -8.5000 -8.4000 -8.3000 -8.2000 -


8.1000

Columns 21 through 30

-8.0000 -7.9000 -7.8000 -7.7000 -7.6000 -7.5000 -7.4000 -7.3000 -7.2000 -


7.1000

Columns 31 through 40

-7.0000 -6.9000 -6.8000 -6.7000 -6.6000 -6.5000 -6.4000 -6.3000 -6.2000 -


6.1000

Columns 41 through 50

-6.0000 -5.9000 -5.8000 -5.7000 -5.6000 -5.5000 -5.4000 -5.3000 -5.2000 -


5.1000

Columns 51 through 60

-5.0000 -4.9000 -4.8000 -4.7000 -4.6000 -4.5000 -4.4000 -4.3000 -4.2000 -


4.1000

Columns 61 through 70

-4.0000 -3.9000 -3.8000 -3.7000 -3.6000 -3.5000 -3.4000 -3.3000 -3.2000 -


3.1000

Columns 71 through 80

-3.0000 -2.9000 -2.8000 -2.7000 -2.6000 -2.5000 -2.4000 -2.3000 -2.2000 -


2.1000

Columns 81 through 90

-2.0000 -1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -


1.1000

Columns 91 through 100

-1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 -0.2000 -


0.1000

Columns 101 through 110


73
Optimizări-C5-CuTot Win10
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
0.9000

Column 111

1.0000
Se înscrie în fereastra de comandă expresia funcţiei:
z = f(x) = x 2 ⋅ ex
>> z=x.^2.*exp(x)
Se afişează matricea corespunzătoare funcţiei z = f(x)
z=
Columns 1 through 10

0.0045 0.0049 0.0053 0.0058 0.0062 0.0068 0.0073 0.0079 0.0086


0.0092

Columns 11 through 20

0.0100 0.0108 0.0117 0.0126 0.0136 0.0147 0.0159 0.0171 0.0185


0.0199

Columns 21 through 30

0.0215 0.0231 0.0249 0.0268 0.0289 0.0311 0.0335 0.0360 0.0387


0.0416

Columns 31 through 40
0.0447 0.0480 0.0515 0.0553 0.0593 0.0635 0.0681 0.0729 0.0780
0.0835

Columns 41 through 50

0.0892 0.0954 0.1018 0.1087 0.1160 0.1236 0.1317 0.1402 0.1492


0.1586

Columns 51 through 60

0.1684 0.1788 0.1896 0.2009 0.2127 0.2250 0.2377 0.2509 0.2645


0.2786

Columns 61 through 70

0.2931 0.3079 0.3230 0.3385 0.3541 0.3699 0.3858 0.4017 0.4174


0.4329

Columns 71 through 80

0.4481 0.4627 0.4768 0.4899 0.5021 0.5130 0.5225 0.5304 0.5363


0.5400

Columns 81 through 90
74
Optimizări-C5-CuTot Win10
0.5413 0.5399 0.5356 0.5280 0.5169 0.5020 0.4833 0.4606 0.4337
0.4028

Columns 91 through 100

0.3679 0.3293 0.2876 0.2433 0.1976 0.1516 0.1073 0.0667 0.0327


0.0090

Columns 101 through 110

0 0.0111 0.0489 0.1215 0.2387 0.4122 0.6560 0.9867 1.4243


1.9923

Column 111

2.7183

>> plot(x,z) Enter


Se afişează graficul funcţiei având forma din figura 18.

Constatare.
Prin introducerea unei restricţii o funcţie de 2 variabile, devine o funcţie de o singură variabilă.
Generalizare
O funcţie de n variabile, prin introducerea a m restricţii devine o funcţie de (n-m) variabile.
Ex.05-2.
Se dă funcţia obiectiv a cărui minim se caută:
f(x, y) = −x ⋅ y,
cu restricţia:
y + x ⋅ ex = 0
Asa cum s-a observat cu ocazia altui exerciţiu (f(x, y) = x ⋅ y-Ex.04-02), in lipsa unei
restricţii funcţia nu are minim si nici maxim.
75
Optimizări-C5-CuTot Win10
Cu restricţia menţionată, funcţia devine de o singura variabilă:
f(x) = x 2 ⋅ ex .
Ex.05-3.
Să se determine extremul funcţiei obiectiv:
J(x, y) = x + y; x > 0; y > 0 în condiţiile existenţei restricţiei tip egalitate:
1 1 1
g(x, y) = 2 + 2 − = 0
x y 2
Lagrange-anul funcţiei este:
1 1 1
L(x, y) = x + y + p (x2 + y2 − 2)
Soluţia problemei va fi dată de sistemul:
∂L −2x
= 1 + p ( x4 ) = 0
∂x
∂L −2y
= 1 + p ( y4 ) = 0
∂y
1 1 1
{x2 + y2 − 2 = 0
Din primele două ecuaţii:
2p
1 − x3 = 0
{ 2p
1 − y3 = 0
rezultă:
x 3 = y 3 ; x = y. Înlocuind în a treia ecuaţie
2 1
= ⇒ x 2 = 4;
x2 2
x = ±2; y = ±2
adică:
x1 2 x2 −2
[y ] = [ ] ; [y ] = [ ]
1 2 2 −2
Ultima pereche nu corespunde conditiilor initiale. Prin urmare optimul funcţiei corespunde
ecuaţiilor:
x∗ 2 x2 −2
[ 1∗ ] = [ ] ; [y ] = [ ]
y1 2 2 −2
J(x, y) = x + y

∂J
1 0
∂x
∇J(x, y) = ∂J = [ ] ≠ [ ]
1 0
[∂y]
∂2 J ∂2 J ∂2 J ∂2 J
= = = = 0;
∂x ⋅ ∂y ∂x 2 ∂y ⋅ ∂x ∂y 2
0 0
H(x, y) = [ ]
0 0
x 2
Nu se poate afirma dacă x ∗ = [y] = [ ]este extrem al funcţiei, cu atât mai puţin dacă ar fi vorba
2
de maxim sau minim.

Aşa cum s-a văzut la exerciţiile anterioare funcţia z = f(x, y) = x + y un plan în spatiul
tridimensional x. y. z. Prin urmare ea nu are un minim (sau maxim).
Astfel:
Ţinand seama de restricţie şi de relaţia :
x = yfuncţia devine :z = 2x care, se ştie ca, este o dreaptă în planul x, z.
Exerciţiu Cu 03-Ex06.
76
Optimizări-C5-CuTot Win10
Se dă funcţia obiectiv :
f(x, y, z) = x ⋅ y ⋅ z cu restricţiile de tip egalitate:
g1 (x, y, z) = x + y − z − 3 = 0
g 2 (x, y, z) = x − y − z − 8 = 0
Lagrangeanul funcţiei va fi:
L(x, y, z) = f(x, y, z) + p1 ⋅ g1 (x, y, z) + p 2 ⋅ g 2 (x, y, z)
Extremul va rezulta ca soluţie a sistemului:
∂L ∂f ∂g1 ∂g 2
= + p1 ⋅ + p2 ⋅ =0
∂x ∂x ∂x ∂x
∂L ∂f ∂g1 ∂g 2
= + p1 ⋅ + p2 ⋅ =0
∂y ∂y ∂y ∂y
∂L ∂f ∂g1 ∂g 2
= + p1 ⋅ + p2 ⋅ =0
∂z ∂z ∂z ∂z
g1 (x, y, z) = x + y − z − 3 = 0
g 2 (x, y, z) = x − y − z − 8 = 0
{
Adică.
y ⋅ z + p1 + p2 = 0
x ⋅ z + p1 − p2 = 0
x ⋅ y − p1 − p2 = 0
x+y−z−3=0
{x − y − z − 8 = 0
Adunând primele două ecuaţii se obţine:
yz + xz + 2p 1 = 0
Scăzând ecuaţia a treia din a doua se obţine:
xz − xy + 2p1 = 0 (2)
din scăderea ecuaţiei a 5-a din a 4-a se obţine:
2y + 5 = 0
înlocuind această ecuaţie în a 4-a ecuaţie şi a 5-a rezultă:
11
x−z− 2 =0 (3)
Rescriem sub forma unui sistem ecuaţiile ce prezintă interes:
5
− 2 z + x ⋅ z + 2p = 0
5
x ⋅ z + 2 x + 2p = 0
11
{x − z − 2
=0

Scăzând prima ecuaţie din a 2-a rezultă:


5
(x + z) = 0
{2
11
x−z− =0
2

adică:
11
x + z = 0; x − z = 2
11 11
Rezultă: x = ; z = −x = −
4 4

Prin urmare soluţia sistemului este:


77
Optimizări-C5-CuTot Win10
11
x
4
5
y = −
2
[z ] 11
[− 4 ]
Încercare altfel:
Din ultimele 2 ecuaţii se obţine:
z =x+y−3
{
z =x+y−8
Aceste expresii se vor înlocui în celelalte ecuaţii.
Astfel adunând ecuaţiile 1 şi 2 , iar apoi adunând ecuaţiile 2 şi 3 rezultă:
(x + y) (x + y)(x + y − 3)
p1 = − =−
2 2
1 1
p2 = (y + z)x = (x + 2y − 3)
2 2
Înlocuindp1 , p2 şi z în expresia Lagrangean-ului rezultă:
L(x, y) = u(x, y) = 7x 2 + 3y 2 + x 2 ⋅ y + xy 2 + 11xy − 21x − 16,5y
Vom căuta minimul (maximul) funcţionalei trasând graficul ei în MatLab:
>> [x,y]=meshgrid(-5:0.5:5,-5:0.5:-5:0.5:5) Enter

x=

Columns 1 through 10

-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000
-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000

Columns 11 through 20
78
Optimizări-C5-CuTot Win10

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000


0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000

Column 21

5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000

y=

Columns 1 through 10
79
Optimizări-C5-CuTot Win10
-5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000
-4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000
-4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000
-3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000
-3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000
-2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000
-2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000
-1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
0 0 0 0 0 0 0 0 0 0
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000
2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000
2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000
3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000
3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000
4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000
4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000
5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000

Columns 11 through 20

-5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000
-4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000 -4.5000
-4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000
-3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000 -3.5000
-3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000 -3.0000
-2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000
-2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000
-1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000 -1.5000
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000
0 0 0 0 0 0 0 0 0 0
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000
2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000
2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000
3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000
3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000
4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000
4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000 4.5000
5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000

Column 21

-5.0000
-4.5000
-4.0000
-3.5000
80
Optimizări-C5-CuTot Win10
-3.0000
-2.5000
-2.0000
-1.5000
-1.0000
-0.5000
0
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000

>> u=7.*x.^2+3.*y.^2+x.^2.*y+x.*y.^2+11.*x.*y-21.*x-16,5.*y Enter

u=

Columns 1 through 10

364.0000 329.0000 295.0000 262.0000 230.0000 199.0000 169.0000 140.0000 112.0000


85.0000
358.5000 321.5000 285.7500 251.2500 218.0000 186.0000 155.2500 125.7500 97.5000
70.5000
352.0000 313.2500 276.0000 240.2500 206.0000 173.2500 142.0000 112.2500 84.0000
57.2500
344.5000 304.2500 265.7500 229.0000 194.0000 160.7500 129.2500 99.5000 71.5000
45.2500
336.0000 294.5000 255.0000 217.5000 182.0000 148.5000 117.0000 87.5000 60.0000
34.5000
326.5000 284.0000 243.7500 205.7500 170.0000 136.5000 105.2500 76.2500 49.5000
25.0000
316.0000 272.7500 232.0000 193.7500 158.0000 124.7500 94.0000 65.7500 40.0000
16.7500
304.5000 260.7500 219.7500 181.5000 146.0000 113.2500 83.2500 56.0000 31.5000
9.7500
292.0000 248.0000 207.0000 169.0000 134.0000 102.0000 73.0000 47.0000 24.0000
4.0000
278.5000 234.5000 193.7500 156.2500 122.0000 91.0000 63.2500 38.7500 17.5000 -
0.5000
264.0000 220.2500 180.0000 143.2500 110.0000 80.2500 54.0000 31.2500 12.0000 -
3.7500
248.5000 205.2500 165.7500 130.0000 98.0000 69.7500 45.2500 24.5000 7.5000 -
5.7500
232.0000 189.5000 151.0000 116.5000 86.0000 59.5000 37.0000 18.5000 4.0000 -
6.5000
214.5000 173.0000 135.7500 102.7500 74.0000 49.5000 29.2500 13.2500 1.5000 -
6.0000
81
Optimizări-C5-CuTot Win10
196.0000 155.7500 120.0000 88.7500 62.0000 39.7500 22.0000 8.7500 0 -
4.2500
176.5000 137.7500 103.7500 74.5000 50.0000 30.2500 15.2500 5.0000 -0.5000 -
1.2500
156.0000 119.0000 87.0000 60.0000 38.0000 21.0000 9.0000 2.0000 0 3.0000
134.5000 99.5000 69.7500 45.2500 26.0000 12.0000 3.2500 -0.2500 1.5000
8.5000
112.0000 79.2500 52.0000 30.2500 14.0000 3.2500 -2.0000 -1.7500 4.0000
15.2500
88.5000 58.2500 33.7500 15.0000 2.0000 -5.2500 -6.7500 -2.5000 7.5000
23.2500
64.0000 36.5000 15.0000 -0.5000 -10.0000 -13.5000 -11.0000 -2.5000 12.0000
32.5000

Columns 11 through 20

59.0000 34.0000 10.0000 -13.0000 -35.0000 -56.0000 -76.0000 -95.0000 -113.0000 -


130.0000
44.7500 20.2500 -3.0000 -25.0000 -45.7500 -65.2500 -83.5000 -100.5000 -116.2500 -
130.7500
32.0000 8.2500 -14.0000 -34.7500 -54.0000 -71.7500 -88.0000 -102.7500 -116.0000 -
127.7500
20.7500 -2.0000 -23.0000 -42.2500 -59.7500 -75.5000 -89.5000 -101.7500 -112.2500 -
121.0000
11.0000 -10.5000 -30.0000 -47.5000 -63.0000 -76.5000 -88.0000 -97.5000 -105.0000 -
110.5000
2.7500 -17.2500 -35.0000 -50.5000 -63.7500 -74.7500 -83.5000 -90.0000 -94.2500 -
96.2500
-4.0000 -22.2500 -38.0000 -51.2500 -62.0000 -70.2500 -76.0000 -79.2500 -80.0000 -
78.2500
-9.2500 -25.5000 -39.0000 -49.7500 -57.7500 -63.0000 -65.5000 -65.2500 -62.2500 -
56.5000
-13.0000 -27.0000 -38.0000 -46.0000 -51.0000 -53.0000 -52.0000 -48.0000 -41.0000 -
31.0000
-15.2500 -26.7500 -35.0000 -40.0000 -41.7500 -40.2500 -35.5000 -27.5000 -16.2500 -
1.7500
-16.0000 -24.7500 -30.0000 -31.7500 -30.0000 -24.7500 -16.0000 -3.7500 12.0000
31.2500
-15.2500 -21.0000 -23.0000 -21.2500 -15.7500 -6.5000 6.5000 23.2500 43.7500
68.0000
-13.0000 -15.5000 -14.0000 -8.5000 1.0000 14.5000 32.0000 53.5000 79.0000
108.5000
-9.2500 -8.2500 -3.0000 6.5000 20.2500 38.2500 60.5000 87.0000 117.7500
152.7500
-4.0000 0.7500 10.0000 23.7500 42.0000 64.7500 92.0000 123.7500 160.0000
200.7500
2.7500 11.5000 25.0000 43.2500 66.2500 94.0000 126.5000 163.7500 205.7500
252.5000
11.0000 24.0000 42.0000 65.0000 93.0000 126.0000 164.0000 207.0000 255.0000
308.0000
20.7500 38.2500 61.0000 89.0000 122.2500 160.7500 204.5000 253.5000 307.7500
367.2500
82
Optimizări-C5-CuTot Win10
32.0000 54.2500 82.0000 115.2500 154.0000 198.2500 248.0000 303.2500 364.0000
430.2500
44.7500 72.0000 105.0000 143.7500 188.2500 238.5000 294.5000 356.2500 423.7500
497.0000
59.0000 91.5000 130.0000 174.5000 225.0000 281.5000 344.0000 412.5000 487.0000
567.5000

Column 21

-146.0000
-144.0000
-138.0000
-128.0000
-114.0000
-96.0000
-74.0000
-48.0000
-18.0000
16.0000
54.0000
96.0000
142.0000
192.0000
246.0000
304.0000
366.0000
432.0000
502.0000
576.0000
654.0000

ans =

Columns 1 through 10

-25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -


25.0000
-22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -
22.5000
-20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -
20.0000
-17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -
17.5000
-15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -
15.0000
-12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -
12.5000
-10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -
10.0000
-7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000
-5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000
83
Optimizări-C5-CuTot Win10
-2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000
0 0 0 0 0 0 0 0 0 0
2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000
5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000
7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000
10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000
10.0000
12.5000 12.5000 12.5000 12.5000 12.5000 12.5000 12.5000 12.5000 12.5000
12.5000
15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000
15.0000
17.5000 17.5000 17.5000 17.5000 17.5000 17.5000 17.5000 17.5000 17.5000
17.5000
20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000
20.0000
22.5000 22.5000 22.5000 22.5000 22.5000 22.5000 22.5000 22.5000 22.5000
22.5000
25.0000 25.0000 25.0000 25.0000 25.0000 25.0000 25.0000 25.0000 25.0000
25.0000

Columns 11 through 20

-25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -25.0000 -


25.0000
-22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -22.5000 -
22.5000
-20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -20.0000 -
20.0000
-17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -17.5000 -
17.5000
-15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -15.0000 -
15.0000
-12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -12.5000 -
12.5000
-10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -10.0000 -
10.0000
-7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000 -7.5000
-5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000 -5.0000
-2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000 -2.5000
0 0 0 0 0 0 0 0 0 0
2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000
5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000
7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000 7.5000
10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000
10.0000
12.5000 12.5000 12.5000 12.5000 12.5000 12.5000 12.5000 12.5000 12.5000
12.5000
15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000
15.0000
17.5000 17.5000 17.5000 17.5000 17.5000 17.5000 17.5000 17.5000 17.5000
17.5000
84
Optimizări-C5-CuTot Win10
20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000
20.0000
22.5000 22.5000 22.5000 22.5000 22.5000 22.5000 22.5000 22.5000 22.5000
22.5000
25.0000 25.0000 25.0000 25.0000 25.0000 25.0000 25.0000 25.0000 25.0000
25.0000

Column 21

-25.0000
-22.5000
-20.0000
-17.5000
-15.0000
-12.5000
-10.0000
-7.5000
-5.0000
-2.5000
0
2.5000
5.0000
7.5000
10.0000
12.5000
15.0000
17.5000
20.0000
22.5000
25.0000
surf(x,y,u) Enter
Pe ecran se afişează suprafeţele corespunzătoare funcţiei ca în figura 19.
85
Optimizări-C5-CuTot Win10
Exemplul 1:
Fie funcţia:
f(x, y) = −x ⋅ y. Să se determine minimul ei in condiţiile in condiţiile restricţiei:
g(x, y) = y + x ⋅ ex = 0
Lagrange-anul funcţiei este: L(x, y) = −x ⋅ y + p(y + x ⋅ ex )
∂L
= −y + p(0 + (ex + x ⋅ ex )) = 0
∂x
∂L => x=p
= −x + p(1 + 0) = 0
∂y
g(x, y) = y + x ⋅ ex = 0
−y + x(ex + x ⋅ ex ) = 0
y + x ⋅ ex = 0
Adunând membru cu membru se obţine:
x(ex + x ⋅ ex ) + x ⋅ ex = 0
x ⋅ ex (1 + x) + x ⋅ ex = 0 din aceste ecuaţii rezultă urmatoarele soluţii
x ⋅ ex (2 + x) = 0
x=0 sau ex=0 sau 2+x=0
ex=0 de unde rezultă că x=-∞
x1 = 0 y1 = −x1 ⋅ ex1 = 0
rezultă
x2 = −2 y2 = +2 ⋅ e−2
Prin urmare cele două soluţii sunt:
x1 0 x2 −2
y1 = 0; y2 = 2 ⋅ e−2
f(x1 , y1 ) = 0; minim local
f(x, y) = 4 ⋅ e−2 extrem local
Ex. 04-Cu03
Funcţia obiectiv al carei minim se cauta este f(x, y) = −x ⋅ y, cu restricţiile y + x ⋅ ex = 0
Asa cum s-a observant cu ocazia altui exerciţiu(f(x, y) = x ⋅ yCu03-Ex02) in lipsa unei
restricţii funcţia nu are minim si nici maxim.
Cu restricţiile menţionate funcţia devine de o singura variabila: f(x) = x 2 ⋅ ex .
Folosindu-ne rezultatele analitice putem adopta pentru x intervalul de variaţie x apartinând
intervalului (-10, 0.5) cu pasul p(x)=0.1.
>>x= -10; 0.1:0.5
Enter
x=
>>z=x.^2.*exp(x) z = x. ^2.∗ (exp(x))
Enter
z=
plot(x,z)
Enter
Se afişează graficul Cu03-Ex.04 care arată că intradevăr funcţia are un minim global la x1*=0 şi
un max local x1*=2
Exemplul 2.
Să se determine extremul funcţiei obiectiv J(x,y)=x+y x>0,y>0 în condiţiile existenţei
restricţiei tip egalitate
1 1 1
g(x, y) = 2 + 2 − = 0
x y 2
Lagrange-anul funcţiei esteŞ
86
Optimizări-C5-CuTot Win10
1 1 1
L(x, y) = x + y + p (x2 + y2 − 2)
∂L −2x
= 1 + p ( x4 ) = 0
∂x
∂L −2y
= 1 + p ( y4 ) = 0
∂y
1 1 1
+ y2 − 2 = 0
x2

2p
1 − x3 = 0
2p
1 − y3 = 0
x3=y3 rezulta x=y
1 1 1
2
+ 2− =0
x y 2
2 1
= ⇒ x = ±2; y = ±2
x2 2
x1 2 x2 −2
y1 = [2] ; y2 = [−2] ultima pereche nu corespunde conditiilor initiale.
J(x, y) = x + y
∂J
= 1 ∂2 J ∂2 J ∂2 J ∂2 J
∂x
∂J = = = = 0;
∂x ⋅ ∂y ∂x 2 ∂y ⋅ ∂x ∂y 2
=1
∂y
0 0
∂2 J = [ ]
0 0
x 2
Nu se poate afirma dacă x ∗ = [y] = [ ]este maxim sau minim
2
x,y,z.
Aşa cum s-a văzut la exerciţiile anterioare funcţia z=f(x,y) este un plan în spatiul
tridimensional x, y, z. Prin urmare ea nu are un minim(sau maxim)
Astfel:
Ţinand seama de restricţie şi de * z=f(x,y) devine: z=f(x)=2x care se ştie ca este o
dreaptă în planul x, z.
Exerciţiu Cu 03-Ex06.
Se dă funcţia obiectiv f(x, y, z)=xyz cu restricţiile de tip egalitate:
g1 (x, y, z) = x + y − z − 3 = 0
g 2 (x, y, z) = x − y − z − 8 = 0
L(x, y, z) = f(x, y, z) + p1 ⋅ g1 (x, y, z) + p 2 ⋅ g 2 (x, y, z)
Extremul va rezulta din sistemul:
∂L ∂f ∂g ∂g
= ∂x + p1 ⋅ ∂x1 + p2 ⋅ ∂x2 = 0
∂x
∂L ∂f ∂g1 ∂g2
= ∂y + p1 ⋅ + p2 ⋅ =0
∂y ∂y ∂y
∂L ∂f ∂g1 ∂g2
= ∂z + p1 ⋅ ∂z + p2 ⋅ ∂z = 0
∂z
x+y−z−3 =0
x−y−z−8 =0
y ⋅ z + p1 + p2 = 0
x ⋅ z + p1 − p2 = 0
x ⋅ y − p1 − p2 = 0
x+y−z−3 =0
x−y−z−8 =0
Adunând primele doua ecuaţii se obţine:yz + xz + 2p1 = 0
87
Optimizări-C5-CuTot Win10
Scăzând ecuaţia a treia din a doua se obţine:
x∙z-x∙y+2p=0 (2)
din scăderea ecuaţiei a 5-a din a 4-a se obţine:
2y+5=0
înlocuind această ecuaţie în a 4-a ecuaţie şi a 5-a rezultă:
5
x-z-3-2=0
11
x-z- 2 = 0 (3)
descriem ecuaţiile ce prezintă interes (1), (2) şi (3)
5
− 2 z + x ⋅ z + 2p = 0
5
x ⋅ z + 2 x + 2p = 0
11
x−z− =0
2
Scăzând prima ecuaţie din a 2-a rezultă:
5
(x + z) = 0
2
11
x−z− =0
2
adică:
11
x + z = 0;x − z = 2
11 11
Rezultă:x = 2 ;x = −z = − 4
Prin urmare soluţiile ecuaţia este:
11
x 4
5
[y] = −
z 2
11
[− 4 ]
Încercare altfel:
Din ultimele 2 ecuaţii se obţine:
z = x + y − 3(07)
z = x + y − 8 (08)
Aceste expresii se vor înlocuii în celelalte ecuaţii. Adunând ecuaţiile 1 cu 2 rezultă:
(x+y) (x+y)(x+y−3)
p1 = − 2 = − 2
Adunând ecuaţiile 2 cu 3 rezultă:
1 1
p2 = (y + z)x = (x + 2y − 3)
2 2
Înlocuind în expresia Lagrangean-ului p1 , p2 şi z rezultă:
Λ(x, y) = u(x, y) = 7x 2 + 3y 2 + x 2 ⋅ y + xy 2 + 11xy − 21x − 16,5y
Vom arăta minimul (maximul) funcţiei trasând graficul funcţiei:
u(x,y)=ℒ(x,y)=
[x,y]=meshgrid(-5;0.1;5,-5;0.1;5,-5;0.1;5) Enter
x=

y=

u=7.*x.^2+3.*y.^2+x.^2.*y+x.*y.^2+11.*x.*y-21.*x-16,5.*y Enter
u=

surf(u) Enter
88
Optimizări-C5-CuTot Win10
Pe ecran se afişează suprafeţele corespunzătoare funcţiei. Cu.03-Ex.06. Pe ea nu se distinge un
punct de minim sau maxim. Din acest motiv ar fi interesantă trecerea la o funcţie de o singură
variabilă, înlocuind x cu expresia sa dedusă din ecuaţiile (107) şi (108)
z= x−y−3
z= x−y−8
x−y−3= x−y−8
5
y=−
2
89
Optimizări-C5-CuTot Win10
Cu06

Temă

x ⋅ y + x ⋅ (x + y − 3) = 0;
xy  x  xy  3 x  0
2

2xy = 3x − x 2
1
y = 2 (3 − x) caz în care ℒ(x,y) devine:
1 1
Λ(x, y) = Λ(x) = u(x) = 7x 2 + (3 − x)2 + x 2 ⋅ (3 − x)
2 2
v=-0,25.*(x.^3-9.*x.^2-57.*x-27) Enter
Se afişează curba corespunzătoare funcţie u(x) care arată un minim situat între -2 şi -2,6 care
este prezentat în fig. Cu.03-Ex.06-x-brut
Este interesantă reprezentarea funcţiei în acest interval:
x=-2,6; 0.01;-2 Enter
x=

u=-0.25.*(x.^3-9.*x.^2-57.*x-27) Enter
u=

plot (u)
Pe ecran se afişează curba corespunzătoare funcţiei în intervalul (-2,6; -2) Cu.03-Ex.06-x-fin.

Exerciţiu Cu.03-Ex.07
Să se determine maximul funcţiei:
f(x, y, z) = x ⋅ y ⋅ z definit pe ℝ∗ × ℝ∗ × ℝ; (x>0, y>0) cu restricţia de tip egalitate.
g(x, y, z) = x + y + z − 6 = 0
Se defineşte Lagrangean-ul funcţiei
Λ(x, y, z) = x ⋅ y ⋅ z + p(x + y + z − a)
Punctul de extrem va fi determinat de soluţia sistemului:
∂Λ
= y⋅z+p =0
∂x
∂Λ
=x⋅z+p=0
∂y
∂Λ
= x⋅y+p =0
∂z
x+y+z−a= 0
x(y − z) = 0; x = 0; y = z;
Scădem ecuaţia 1 din ecuaţia 2 şi ecuaţia 2 din ecuaţia 3 şi obţinem:
z(x − y) = 0
x(y − z) = 0
x+y+z−a= 0
din sistem rezultă:
x = y = z; x = 0; y = 0; z = 0;
O soluţie posibilă este:
x 0
[y] = [0]
z 0
Rezultatul incompatibil întrucât se realizează, dar nu în condiţiile cere condiţia impusă şi anume:
90
Optimizări-C5-CuTot Win10
(x>0, y>0).
Dacă a=0 şi p=0 rezultă x≠y≠z, în această situaţie:
x = y = z; şi
3x = a
a a a
x = 3 ; y = 3 ; z = 3 ; a>0
adică:
a

x 3
a a3
[y ∗ ] = 3
f(x ∗ , y ∗ , z ∗ ) =
27
z∗ a
[3 ]
Ar fi interesantă o reprezentare a funcţiei:
u=f(x,y,z) obţinută înlocuind z din relaţia restricţiei
z=a-x-y
u=x∙y(a-x-y)=axy-x2 y − xy2
[x,y]=meshgrid(-10;0.1;10, -10;0.1;10)
Exerciţiu Cu.04-Ex.

Să se determine maximul volumului unui paralelipiped care are suma laturilor constantă şi egală
cu 9. Caz particular: a=2
f(x, y, z) = x ⋅ y ⋅ z g(x, y, z) = x + y + z − a = 0
Se defineşte Lagrangean-ul funcţiei
Λ(x, y, z) = x ⋅ y ⋅ z + p(x + y + z − a)
Punctul de extrem va fi determinat de soluţia sistemului:
∂Λ
=y⋅z+p=0
∂x
∂Λ
=x⋅z+p=0
∂y
∂Λ
= x⋅y+p =0
∂z
x+y+z−a=0

Aceiaşi problemă în Matlab, funcţia obiectiv este:


f(x, y, z) = x ⋅ y ⋅ z iar restricţia este:
ℎ(x, y, z) = x + y + z = a, iar sub forma standard este:
f(x, y, z) = x ⋅ y ⋅ z
ℎ(x, y, z) = x + y + z − a = 0
z= a−x−y
În Matlab se lucrează lejer cu valori numerice, deci se soluţionează cazul particular a=9, adică:
z= 9−x−y
În acest caz funcţia de 3 variabile devine de 2 variabile şi anume:
f(x, y) = x ⋅ y(9 − x − y) = 9xy − x 2 y − xy 2
f=@(x,y)9.*x.*y-x.^2.*y-x.*y.^2 Enter
Se aplică:
f=
@(x,y)
91
Optimizări-C5-CuTot Win10
Este utilă o apreciere asupra domeniului în care este integrată vizualizarea. Întrucât se ştie că
cubul este paralelipipedul cu valoarea maximă pentru aceiaşi sumă a lungimii laturilor, facem
reprezentarea în jurul valorilor: x=3; y=3. Evident din restricţie rezultă: z=x=y=3
ezsurfc (f,[2,4]) Enter
Se afişează suprafaţa corespunzătoare funcţiei z=f(x,y) Cu.03-Ex.03.

Aici se va introduce soluția Matlab.

03 b

B.Optimizare cu restricţii neliniare.

În Editor se creează un fişier nou pentru definirea restricţiei. Se inscrie in el funcţia


restricţiei neliniare conform figurii 05.p. Funcţia restricţiei se noatează c de la constrained.
4.b. Se apelează command Window din Matlab şi se inscrie optimtool, comanda
deschidere a ferestrei Optimization Tools –fig07.p, 06b.p(vezi 06.p).
5.b. În fereastra Problem se setează parametrii, condiţiile si funcţia preyentată in
fig.07.p(va fi 08.b.p).
6.b. În fereastra Options se procedează ca la 6.a.
7.b. Pentru rularea optimizării se acţionează butonul start.
În fereastra de dialog de la Problems apare un mesaj de forma celui din fig09.a.p(09.p). În
Command Window se prezintă operaţiile si iteraţiile Matlab –fig10a.p.
Din mesajul din caseta din fig09.a.p rezultă valoarea minimului funcţiei, iar din rubrica Final
Point coordonatele puctului de minim.
92
Optimizări-C5-CuTot Win10

Trial>> optimtool
Trial>> optimtool

Max Line search Directional First-order


Iter F-count f(x) constraint steplength derivative optimality Procedure
0 3 1 -1
1 9 0.953127 -0.9375 0.125 -2 12.5
2 16 0.808446 -0.8601 0.0625 -2.41 12.4
3 21 0.462347 -0.836 0.25 -12.5 5.15
4 24 0.340677 -0.7969 1 -4.07 0.811
5 27 0.300877 -0.7193 1 -0.912 3.72
6 30 0.261949 -0.6783 1 -1.07 3.02
7 33 0.164971 -0.4972 1 -0.908 2.29
8 36 0.110766 -0.3427 1 -0.833 2
9 40 0.0750939 -0.1592 0.5 -0.5 2.41
10 43 0.0580974 -0.007618 1 -0.284 3.19
11 47 0.048247 -0.003788 0.5 -2.96 1.41
12 51 0.0464333 -0.00189 0.5 -1.23 0.725
13 55 0.0459218 -0.0009443 0.5 -0.679 0.362
14 59 0.0457652 -0.0004719 0.5 -0.4 0.181
15 63 0.0457117 -0.0002359 0.5 -0.261 0.0905 Hessian modified
16 67 0.0456912 -0.0001179 0.5 -0.191 0.0453 Hessian modified
17 71 0.0456825 -5.897e-005 0.5 -0.156 0.0226 Hessian modified
18 75 0.0456785 -2.948e-005 0.5 -0.139 0.0113 Hessian modified
19 79 0.0456766 -1.474e-005 0.5 -0.13 0.00566 Hessian modified

Local minimum possible. Constraints satisfied.

fmincon stopped because the predicted change in the objective function


is less than the default value of the function tolerance and constraints
were satisfied to within the default value of the constraint tolerance.

<stopping criteria details>

Active inequalities (to within options.TolCon = 1e-006):


lower upper ineqlin ineqnonlin

Ex3-Cu0604fc

Trial>> f=@(x,y)(x-y).^2+2.*x.^2.*y-6

f=

@(x,y)(x-y).^2+2.*x.^2.*y-6

Trial>> ezsurfc(f,[-5,5])
Din alura reprezentarii se observă că funcţia nu are minim.
93
Optimizări-C5-CuTot Win10

Cu07

Pe ea nu se distinge un punct de minim sau maxim. Din acest motiv ar fi interesantă trecerea la o
funcţie de o singură variabilă, înlocuind x cu expresia sa dedusă din ecuaţiile (107) şi (108)
z=x+y−3
{
z=x−y−8

x+y−3=x−y−8

Rezultă:
5 11
y = −2; z = x − 2
Înlocuind în expresia funcţiei obiectiv de trei variabile f(x, y. z) = xyz supusă restricţiilor
g1 (x, y, z) = x + y − z − 3 = 0
g 2 (x, y, z) = x − y − z − 8 = 0
Rezultă o funcţie de o singură variabilă:
5 11
ff(x) = v(x) = x ⋅ (− 2) ⋅ (x − 2 )
Lagrangeanul funcţiei va fi:
1 x2 x(3−x)2
L(x, y) = L(x) = v(x) = 7x 2 + 2 (3 − x)2 + (3 − x) + DUBIOS!!!!!!!!!!!!!!!!! Nu se
2 4
pune. De revazut!!!!!!!!!!!!!!!!!!!!

Utilizând MatLabreprezentăm grafic funcţia f(x) = v(x) în intervalul anticipat:


x ∈ (−5,10)
94
Optimizări-C5-CuTot Win10
>> x=-5:0.5:10 Enter
Se afişează matricea corespunzătoare variabilei x:

x=

Columns 1 through 10

-5.0000 -4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000

Columns 11 through 20

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000

Columns 21 through 30

5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000 8.5000 9.0000 9.5000

Column 31

10.0000
Se înscrie în fereastra de comandă expresia funcţiei în forma acceptată de MatLab:
5 11
f(x) = v(x) = x ⋅ (− ) ⋅ (x − )
2 2
>> v=-5.*x.^2./2+55.*x./4 Enter
Se afişează matricea corespunzătoare funcţiei.
v=

Columns 1 through 10

-131.2500 -112.5000 -95.0000 -78.7500 -63.7500 -50.0000 -37.5000 -26.2500 -16.2500 -


7.5000

Columns 11 through 20

0 6.2500 11.2500 15.0000 17.5000 18.7500 18.7500 17.5000 15.0000 11.2500

Columns 21 through 30

6.2500 0 -7.5000 -16.2500 -26.2500 -37.5000 -50.0000 -63.7500 -78.7500 -


95.0000

Column 31

-112.5000

>> plot(x,v)
95
Optimizări-C5-CuTot Win10
Pe monitor se afişează fraficul
funcţiei, ca în figura 20. Pe grafic se
observă existenţa unui maxim în
vecinătatea punctului:
x ≅ 2.75
Pentru localizarea maximului
procedăm la o nouă reprezentare în
vecinătatea acestui punct, mai
precis în intervalul x ∈ (2.6,2.9)

>> x=2.6:0.01:2.9 Enter

x=

Columns 1 through 10

2.6000 2.6100 2.6200 2.6300 2.6400 2.6500 2.6600 2.6700 2.6800 2.6900

Columns 11 through 20

2.7000 2.7100 2.7200 2.7300 2.7400 2.7500 2.7600 2.7700 2.7800 2.7900

Columns 21 through 30

2.8000 2.8100 2.8200 2.8300 2.8400 2.8500 2.8600 2.8700 2.8800 2.8900

Column 31

2.9000

>> v=-5.*x.^2./2+55.*x./4

v=

Columns 1 through 10

18.8500 18.8572 18.8640 18.8703 18.8760 18.8813 18.8860 18.8902 18.8940


18.8973

Columns 11 through 20

18.9000 18.9023 18.9040 18.9053 18.9060 18.9063 18.9060 18.9052 18.9040


18.9022

Columns 21 through 30
96
Optimizări-C5-CuTot Win10

18.9000 18.8973 18.8940 18.8903 18.8860 18.8812 18.8760 18.8702 18.8640


18.8573

Column 31 18.92

18.91
18.8500
18.9
>> plot(x,v)
18.89

v=-5x2/2+55x/4 18.88

18.87

18.86

18.85

18.84
2.6 2.65 2.7 2.75 2.8 2.85 2.9 2.95
fig.21 x

În concluzie putem spune că minimul funcţiei se obţine pentru :


x ∗= 2.75. De altfel afirmaţia poate fi verificată calculând derivate întâi a funcţiei şi zeroul
55x
ei:f′(x) = v′(x) = −5x 2 + 4 = 0; x ∗= 2.75

Exerciţiu Cu.03-Ex.07
Să se determine maximul funcţiei:
f(x, y, z) = x ⋅ y ⋅ z; f: ℜ+ × ℜ+ × ℜ+ → ℜ; (x > 0; y > 0; z > 0), cu restricţia de tip
egalitate:
x + y + z − a = 0; a > 0.
Exemplu numeric: a = 9. În interpretare fizică problema are enunţul:
Să se determine maximul volumului unui paralelipiped care are suma laturilor constant şi egală
cu a.
Se defineşte Lagrangean-ul funcţiei
L(x, y, z) = x ⋅ y ⋅ z + p(x + y + z − a)
Punctul de extrem va fi determinat de soluţia sistemului:
∂Λ
=y⋅z+p=0
∂x
∂Λ
=x⋅z+p=0
∂y
∂Λ
=x⋅y+p=0
∂z
{x + y + z − a = 0
Scădem ecuaţia 1 din ecuaţia 2 şi ecuaţia 2 din ecuaţia 3 şi obţinem:
z(x − y) = 0
{x(y − z) = 0
x+y+z−a = 0
din sistem rezultă ca soluţii posibile:
x = y = z; x ≠ 0; y ≠ 0; z ≠ 0
x=y=z=0
A doua soluţie contrazicând condiţiile iniţiale rezultă soluţia unică a sistemului )şi implicit a
problemei.:
97
Optimizări-C5-CuTot Win10
a
x∗
3
a a3
y∗ = ; f(x ∗ , y ∗ , z ∗ ) =
3 27
a
[z ∗ ]
[3]
Ar fi interesantă o reprezentare a funcţiei:
Ff(x, y, z)u=f(x,y,z) obţinută prin înlocuirea variabilei zcu valoarea sa rezultată expresia
restricţiei:

z= a−x−y
Adică:
z= 9−x−y
Utilizând MatLab, fără afişarea matricilor corespunzătoare variabilelor şi funcţiei se obţine :
>> f=@(x,y)9.*x.*y-x.^2.*y-x.*y.^2

f=

@(x,y)9.*x.*y-x.^2.*y-x.*y.^2

>> ezsurfc(f,[1,5])

9 x y-x 2 y-x y 2

20

10
Se observă existenţa unui
0
maxim pentru:
x = 3; y = 0; şi evidentz =
-10
0;
-20
De aceea este utilă o
reprezentare într-o vecinătate
-30 restrânsă a acestui punct:
5
4 x ∈ (2.8, 3.2)
5
3
3
4 >> f=@(x,y)9.*x.*y-x.^2.*y-
2
1 1
2 x.*y.^2
y x
fig.22
f=

@(x,y)9.*x.*y-x.^2.*y-x.*y.^2

>> ezsurfc(f,[2.8,3.2])
98
Optimizări-C5-CuTot Win10
9 x y-x 2 y-x y 2

27

26.95

26.9

26.85

26.8

26.75

26.7

26.65

3.2
3.1 3.2
3 3.1
2.9 3
2.9
2.8 2.8
y fig.23 x

B.Optimizare cu restricţii neliniare de tip egalitate.

În Editor se creează un fişier nou pentru definirea restricţiei. Se inscrie in el funcţia


restricţiei neliniare conform figurii 05.p. Funcţia restricţiei se notează c de la constrained.
4.b. Se apelează command Window din Matlab şi se inscrie optimtool, comanda
deschidere a ferestrei Optimization Tools –fig07.p, 06b.p(vezi 06.p).
5.b. În fereastra Problem se setează parametrii, condiţiile si funcţia preyentată in
fig.07.p(va fi 08.b.p).
6.b. În fereastra Options se procedează ca la 6.a.
7.b. Pentru rularea optimizării se acţionează butonul start.
În fereastra de dialog de la Problems apare un mesaj de forma celui din fig09.a.p(09.p). În
Command Window se prezintă operaţiile si iteraţiile Matlab –fig10a.p.
Din mesajul din caseta din fig09.a.p rezultă valoarea minimului funcţiei, iar din rubrica Final
Point coordonatele puctului de minim.
Funcţii de analizat cu Optimization Tool
f(x, y) = −x ⋅ y.
Să se determine minimul ei in condiţiile in condiţiile restricţiei:
g(x, y) = y + x ⋅ ex = 0
Se dă funcţia obiectiv :
f(x, y, z) = x ⋅ y ⋅ z cu restricţiile de tip egalitate:
g1 (x, y, z) = x + y − z − 3 = 0
g 2 (x, y, z) = x − y − z − 8 = 0
Să se determine maximul funcţiei:
f(x, y, z) = x ⋅ y ⋅ z; f: ℜ+ × ℜ+ × ℜ → ℜ; (x > 0; y > 0), cu restricţia de tip egalitate:
x + y + z − a = 0; a > 0.
Exemplu numeric: a = 9. În interpretare fizică problema are enunţul:

Cu09
99
Optimizări-C5-CuTot Win10
Ex1. Optimizări cu restricții neliniare/Cu0601 eq de tip egalitate.
Funcţia obiectiv este:
f(x) = −x1 x2

Restricţia de tip egalitate este:


ceq(x) = x2 + x1 ⋅ ex1

Edit Cu0601fce Enter


Apare editorul:
Se edtiteaza funcţia obiectiv:
function f=cu0601fce(x) enter
f = −x(1) ∗ x(2);f= -x(1)*x(2);
Se salvează.
Se editează restricţia (de tip egalitate) astfel:
New
function [c, ceq]=cu0601ce(x)
c=[ ];
ceq=x(2)+x(1)*exp(x(1));
Se dă comanda:
Optimtool şi se fac următoarele setări:

Solver fmincon
Algoritm activ set
Ob. function @Cu0601feq
Start poin [10,10]
Non-linear constrained function @Cu0601ceq
Se obţine:
x1 ∗ 0
[x ∗] = [x ∗] = [ ] ; f(x ∗) = 9,01 ⋅ 10−10
2 0

Ex2. Cu0602eq
f(x) = x1 + x2
cu restricţia de tip egalitate:
ceq(x) = x1 ⋅ x2 − 12 = 0
Aplicând procedura de la exerciţiul anterior, plecând de la Start Point [10,10] dupa 6 iteraţii se
obţine:
x1 ∗ 3,464
[x ∗] = [x ∗] = [ ] ; f(x ∗) = 6,928
2 3,464
100
Optimizări-C5-CuTot Win10
Ex3. Cu0603xeq.
f(x) = −x12 − x22
ceq(x) = (x1 + x2 )2 − 20 = 0
Start point [1,1]

După 5 iteraţii se obţine :


x1 ∗ 2,236
[x ∗] = [x ∗] = [ ] ; f(x ∗) = −10,00
2 2,236
Start point[-1,-1]
După 5 iteraţii se obţine :
x1 ∗ −2,236
[x ∗] = [x ∗] = [ ] ; f(x ∗) = −10,00
2 −2,236

Trial>> optimtool
Trial>> optimtool

Max Line search Directional First-order


Iter F-count f(x) constraint steplength derivative optimality Procedure
0 3 1 -1
1 9 0.953127 -0.9375 0.125 -2 12.5
2 16 0.808446 -0.8601 0.0625 -2.41 12.4
3 21 0.462347 -0.836 0.25 -12.5 5.15
4 24 0.340677 -0.7969 1 -4.07 0.811
5 27 0.300877 -0.7193 1 -0.912 3.72
6 30 0.261949 -0.6783 1 -1.07 3.02
7 33 0.164971 -0.4972 1 -0.908 2.29
101
Optimizări-C5-CuTot Win10
8 36 0.110766 -0.3427 1 -0.833 2
9 40 0.0750939 -0.1592 0.5 -0.5 2.41
10 43 0.0580974 -0.007618 1 -0.284 3.19
11 47 0.048247 -0.003788 0.5 -2.96 1.41
12 51 0.0464333 -0.00189 0.5 -1.23 0.725
13 55 0.0459218 -0.0009443 0.5 -0.679 0.362
14 59 0.0457652 -0.0004719 0.5 -0.4 0.181
15 63 0.0457117 -0.0002359 0.5 -0.261 0.0905 Hessian modified
16 67 0.0456912 -0.0001179 0.5 -0.191 0.0453 Hessian modified
17 71 0.0456825 -5.897e-005 0.5 -0.156 0.0226 Hessian modified
18 75 0.0456785 -2.948e-005 0.5 -0.139 0.0113 Hessian modified
19 79 0.0456766 -1.474e-005 0.5 -0.13 0.00566 Hessian modified

Local minimum possible. Constraints satisfied.

fmincon stopped because the predicted change in the objective function


is less than the default value of the function tolerance and constraints
were satisfied to within the default value of the constraint tolerance.

<stopping criteria details>

Active inequalities (to within options.TolCon = 1e-006):


lower upper ineqlin ineqnonlin

Ex3-Cu0604fc

Trial>> f=@(x,y)(x-y).^2+2.*x.^2.*y-6

f = @(x,y)(x-y).^2+2.*x.^2.*y-6

Trial>> ezsurfc(f,[-5,5])
Din alura reprezentarii se observă că funcţia nu are minim.
102
Optimizări-C5-CuTot Win10

2.2 Optimizarea cu restricţii de tip inegalitate


Aşa cum s-a arătat opţional8 (minimul ) unei funcţii obiectiv poate fi determinat în condiţia
lipsei unor restricţii sau existenţa lor. În cel de-al doilea caz situaţiile posibile sunt cele
cunoscute deja şi anume:
- restricţii tip egalitate
- estricţii tip inegalitate
În acest din urmă caz restricţiile se exprimă sub forma unor funcţii:
hi (x) ≤ 0, adică condiţii saturate.
Fie funcţia obiectiv:
f(x)=f(x1 , x2 , … xn ), problema care se pune este găsirea minimelor acestei funcţii:
f(x∗ )=f(x1∗ , x2∗ , … x∗n ) în condiţiile restricţiilor saturate de tip inegalitate: hi (x) ≤ 0
Pentru rezolvarea acestei probleme se apelează la o metodă cunoscută ca cea a multiplicărilor
Kuha-Tuckev. Metoda constă în definirea unei funcţionale:
φ(x, y, q) = f(x) + ∑m 2
i=1 qj ⋅ (ℎj(x) + yj )
Condiţia necesară de existenţă a unui minim al funcţiei φ este:
m
∂φ ∂f ∂ℎi
= + ∑ qj ⋅
∂x ∂x ∂x
i=0
∂φ ∂f
= ∂yi + 2 ⋅ qi ⋅ yi = 0 *
∂yi
∂φ
= ℎi (x) + yi2 = 0
∂qi
Se consideră funcţionala:
m

α(x, −q) = f(x) + ∑ qj ⋅ ℎi (x)


i=1
m
∂α ∂f ∂ℎi
{ = + ∑ qj ⋅ =0
∂x ∂x ∂x
i=1
Se poate arăta că această relaţie este echivalentă cu * întrucât:
qj = 0 ⇒ qj = 0; prin 9 ℎi (x) = yj2 < 0
Din cele de mai sus rezultă că pentru determinarea minimului cu restricţii de tip inegalitate este
aceiaşi ca în cazul restricţiilor de tip egalitate. Coeficienţii qj se numesc multiplicatorii Kuhn-
Tucker.
Valorile qj=0 corespund restricţiilor de tip egalitate.
În ceia ce priveşte condiţia suficientă de minim se consideră hessianul funcţiei φ(x, y, q) formată
din derivatele parţiale de ordinul II ale funcţiei:
m

Fxx + ∑ qj ⋅ Hixx 0
H= j=1
2qj
[0 2qm]
unde:

8
9
103
Optimizări-C5-CuTot Win10
∂2 φ
Fxx este matricea Fxx = ∂x2
∂2 ℎ
Hixx este matricea Hxx = ∂x2
În fapt problema constă în găsirea minimului funcţiei obiectiv cu restricţia de tip egalitate de
forma: ℎi (x) + yi2 = 0
Sunt posibile două cazuri distincte:
1. un număr de restricţii sunt saturate ceia ce implică relaţia:
ℎi (x) = 0 → yi = 0
ceia ce impune următoarele condiţii:
a) qj ≥ 0
b) Fxx + ∑m j=1 qj ⋅ Hixx să fie o matrice proprie semidefinită
2. nu există condiţii saturate, caz în care qj=0
Din cele de mai sus se poate formula condiţiile de necesitate:
Dacă x∗ ∈ domeniului ⅅ este un minim local al funcţiei obiectiv f(x) în condiţiile restricţiilor de
tip inegalitate de forma: ℎj(x) ≤ 0 atunci există multiplicatorii Kuhn-Tucker, gj > 0astfel încât:

(f(x ∗ ) + 2q, ℎ(x ∗ )) = 0
∂x qj = 0; ℎj(x) < 0
{qj ⋅ ℎj(x ∗ ) = 0 adică {
ℎj(x) = 0; qj > 0
Fxx + ∑mj=1 qj ⋅ Hxx
este o matrice pozitiv semidefinită în x = x∗
Exemplu 1 Cu05-Ex.01.
Se dă funcţia obiectiv:
f = x12 + x22 + x1 x2 + 2x1 cu restricţiile:
ℎ1 (x1 x2 ) = x12 + x22 − 1,5 ≤ 0
ℎ2 − (x1 ) = x1 ≤ 0
ℎ3 − (x2) = x2 ≤ 0
Pentru a ilustra restricţiile vom apela la o reprezentare grafică simplă în planul x1 , x2

Zonele haşurate reprezintă restricţiile, zona activă pentru x1 şi x2 este cea albă (un sfert de cerc
cu raza r=√1,5 din cadranul II).
Definim Lagrangean-ul funcţiei:
Λ(x1 , x2 , q1 , q 2 , q 3 ) = x12 + x22 + x1 x2 + 2x1 + q1 (x12 + x22 − 1,5) + q 2 − q 3 ⋅ x2
1. rezolvăm problema nerestricţionată adică:
q1 = q 2 = q 3
Λ(x1 , x2 , 0,0,0) = f(x1 , x2 ) = x12 + x22 + x1 x2 + 2x1
∂f
= 2x1 + x2 + 2 = 0
∂x1
∂f
= 2x2 + x1 = 0
∂x2
104
Optimizări-C5-CuTot Win10
Adică:
∂f
∂x1 2x + x2 + 2 = 0 0
νf(x1 , x2 ) = =[ 1 ]=[ ]
∂f 2x2 + x1 = 0 0
[∂x21 ]
2x1 + x2 + 2 = 0
{ 4
x1 + 2x2 = 0| − 2 x∗ −
x2 + 2 − 4x2 = 0 adică [ 1∗ ] = [2 3]
x2
4 3
x1 = −2x2 = − 3
x∗ 4 16 20
[ 1∗ ]satisface h2 şi h3 dar (x1∗ )2 + (x2∗ )2 = 9 + 9 = 9 > 1,5 deci nu satisface restricţia h1
x2
introducem restricţia h1care nu a fost respectată adoptând:
q1 > 0; q2 = q3 = 0
În acest caz Lagrangean-ul asociat funcţiei obiectiv şi restricţiei h1 (x) este:
Λ(x1 , x2 , q1 ) = x12 + x22 + x1 x2 + 2x1 + q1 (x12 + x22 − 1,5)
∂Λ
= 2x1 + x2 + 2 + 2q1 ⋅ x1 = 0
∂x1
∂Λ
= 2x2 + x1 + 2q1 ⋅ x2 = 0
∂x2
{x12 + x22 − 1,5 = 0
2(1 + q1 ) ⋅ x1 + x2 + 2 = 0
{x1 + 2(1 + q1 )x2 = 0
x12 + x22 − 1,5 = 0
2(1 + q1 ) ⋅ (−2)(1 + q1 ) ⋅ x2 + 2 + x2 = 0
{ 2
x2 + (−2(1 + q1 )x2 )2 − 1,5 = 0
−4(1 + q1 )2 x 2 + x2 + 2 = 0
2
x2 =
4(1 + q1 )2 − 1
−4(1 + q1 )
x1 = −2(1 + q1 ) ⋅ x2 =
4(1 + q1 )2 − 1
2 2
Cu condiţia 4(1 + q1 ) − 1 ≠ 0 şi 4(1 + q1 ) − 1 > 0 condiţia este evident îndeplinită.
1 + q = uşi x1,x2
Înlocuind in restricţiile h1(x) se obţine:
16u2 4 3
2 2
+ 2 2
− =0
(4u − 1) (4u − 1) 2
2 2 2
32u + 8 − 3(4u − 1) = 0
32u2 + 8 − 48u4 + 24u2 − 3 = 0
−48u4 + 56u2 + 5 = 0
48u4 − 56u2 − 5 = 0
28 ± √784 + 240 28 ± 32
u1,2 = =
48 48
5 5
u1,2 = ±√ ; q1,2 = −1 ± √
4 4
5
q1,1  1   0; Această solutie nu convine.
4
105
Optimizări-C5-CuTot Win10

5
q1,2 = −1 + √ > 0
4
Cu acesta valoare a lui q1 rezultă valorile x1 şi x2* şi anume:
*

5 5
−4 ⋅ √4 −4 ⋅ √4 5
x1 ∗ = 5 = = −√
4⋅4−1 4 4
2 2 1
x2 ∗ = 5 = =
4⋅4−1 4 2
Aşadar:
1
x1 ∗ 2
x=[ ]=
x2 ∗ 5
−√
[ 4]
Verificare:
1 5
x1 2 + x2 2 − 1,5 = + − 1,5 = 0
4 4

Cu08

Determinarea minimului (optimului) utilizând Optimization Tools din


MatLab

f(x1 , x2 ) = x1 2 + x2 2 + xy + 2x1 cu restricţiile:


ℎ1 (x) = x1 2 + x2 2 − 1,5 ≤ 0
ℎ2 (x) = x1 ≤ 0
ℎ3 (x) = −x2 ≤ 0
Se rescrie funcţia şi restricţiile cu variabilele x,y agreate de Matlab. f(x, y) = x 2 + xy +
2
y + 2x
ℎ1 (x, y) = x 2 + y 2 − 1,5 ≤ 0
ℎ2 (x) = x ≤ 0
ℎ3 (x) = −y ≤ 0
Se va reprezenta functia: z = f(x, y) = x 2 + y 2 + xy + 2x în intervalele determinate de
restricţiile:
ℎ2 (x) = x ≤ 0
ℎ3 (x) = −y ≤ 0; y > 0
ℎ1 (x, y) = x + y 2 − 1,5 ≤ 0; x ≥ −√1,5; y =≤ √1,5
2

Conform figurii……
√1,5 ≅ 1,225
1) [x,y]=meshgrid(-1.25:0.05:0, 0:0.5:1.25)
x = 26 × 26
Se afişează
y = 26 × 26
−1.25 −1.2. . . . 0
x = [⋮ ⋮ ⋮]
−1.25 ⋯ 0
106
Optimizări-C5-CuTot Win10
0 0 ⋯ 0
0.05 0.05 ⋯ 0.05
y=[ ]
1.25 1.25 ⋯ 1.25
z = x. ^2 + y. ^2 + x.∗ y + 2.∗ x
Enter
Se afişează z = 26 × 26

−0.9375 0
z = [−0.9975 0.0025]

−0.9375 1.5625
surf(z) Enter
Se afişează suprafaţa corespunzătoare funcţiei: z = f(x, y) = f(x1 , x2 ) aşa cum se
prezintă in fig. Cu 05-Ex01.-1-fig.
Conform figurii……
√1,5 ≅ 1,225
1) [x,y]=meshgrid(-1.25:0.05:0, 0:0.5:1.25)
x = 26 × 26
Se afişează
y = 26 × 26
−1.25 −1.2. . . . 0
x = [⋮ ⋮ ⋮]
−1.25 ⋯ 0
0 0 ⋯ 0
0.05 0.05 ⋯ 0.05
y=[ ]
1.25 1.25 ⋯ 1.25
z = x. ^2 + y. ^2 + x.∗ y + 2.∗ x
Enter
Se afişează z = 26 × 26

−0.9375 0
z = [−0.9975 0.0025]

−0.9375 1.5625
surf(z) Enter
2
Se afişează suprafaţa
corespunzătoare funcţiei: z = 1.5

f(x, y) = f(x1 , x2 ) aşa cum se 1


prezintă in fig. Cu 05-Ex01.-1-fig.
z=x 2+y 2+xy+2x

0.5

2) Se va reprezenta aceeaşi 0

funcţie cu altă metodă de -0.5

descriere: -1

Ar fi interesant un alt domeniu -1.5


1.5
pentru x si y pentru a observa 1
eventual localizarea minimului. 0.5
-0.6 -0.4 -0.2 0
-0.8
Se adoptă, dupa încercări y
0 -1.4 -1.2
fig.24
-1
x
rezultatele:
f = @(x, y)x. ^2 + y. ^2 + x.∗ y + 2.∗ x enter
Se afişează f= @(x,y)……
ezsurfc(f,[-3,1],[-1,2])
107
Optimizări-C5-CuTot Win10
x 2+y 2+x y+2 x

20
Pe nici unul din grafice nu se
observă existenţa unui optim
15
conturat.
10

-5
1
0 1
-1 0
-1
-2 -2
y -3 -3
fig.25 x

3) Se va
reprezenta aceeaşi funcţie cu altă metodă de descriere:
Ar fi interesant un alt domeniu pentru x si y pentru a observa eventual localizarea minimului.
Se adoptă, dupa încercări rezultatele:
f = @(x, y)x. ^2 + y. ^2 + x.∗ y + 2.∗ x enter
Se afişează f= @(x,y)……
ezsurfc(f1[-3,1],[-1,2])

1. Se adoptă (dacă nu s-a impus) denumirea funcţiei obiectiv, în cazul nostru:


cu0607fu cu semnificaţia:
06 –
Litere sau cifre (grup de) Semnificaţie
cu06 Nr. saptamânii de activitate
07 Nr. exerciţiului
f Funcţie Obiectiv
u Optimizare fara restricţii

2.Se deschide MatLab:


In fereastra de comanda se scrie cererea de editare a funcţiei obiectiv (cu0607fu), adică:
edit cu0607fu urmat de Enter.

Dacă funcţia obiectiv există deja se deschide fereastra de editare a fisierului ei, ca în figura
Dacă funcţia obiectiv NU există deja se deschide ofereastră de dialog din figura
108
Optimizări-C5-CuTot Win10

Se aplică OK, iar programul afişează fereastra de editare în care se editează funţia conform
figurii

În aceasta se înscrie funcţia obiectiv în forma:


function f=cu0607fu(x) Enter
f=(x-2)^2;
109
Optimizări-C5-CuTot Win10

Se salvează fişierul , se revine în fereastra de comandă, şi se introduce instrucţţiunea optimtool.


Se va deschide fereastra de dialog Optimization Tools în care se fac următoarele setări:

Se actionează start ţi se obţine:


110
Optimizări-C5-CuTot Win10

Semnificaţia mesajului este:


Minimul funcţiei este: .....obţinută pentru valoarea x* a argumentului, adică:
x ∗= −2; f(x ∗) = f(−2) = −0,541 vezi fig 0601.p.2)

05 a separat

SeSe consideră:
f(x) = −x 2 ⋅ ex - Cu0602fu

Să vedem unde are minimul această funcţie.


Start [-2,1]
Se găseşte un minim al funcţiei pentru:

Ex.2 – Cu0603fc

Ex.1-Cu0601fc
Se dă funcția:
f ( x)   x1  x 2
c( x)  x 2  x1  e x1  0
edit Cu0601fc
Se inscrie funcţia
Se determină minimul considerând functia obiectiv=@Cu0601fc
fmincon
restrictia
@Cu0601c1
Punct de start [0,0]

f ( x1 , x 2 )  0
* *

x1  0; x 2
* *
111
Optimizări-C5-CuTot Win10

Întrucât exista si punct de maxim


x1*=-2;
x2*=2∙e-2= 0.228 este util a căuta in jurul acestui punct.
De explicat !!!!
De căutat reprezentarea funcției: f(x,y)=-xy cu restricțiile (suprafata)
Apoi se calculează f(x)=.......... si se reprezintă grafic. Ea de forma.
Argument
Se consideră:
f(x)=-x2∙ex - Cu0602fu
Să vedem unde are minimul și această funcție.
Start [-2,1]
Se găsește un minim al funcției pentru x*=-2
P(-2)=-0,541341 ( vezi fig 0601.p.2)

Se consideră funcţia:
f(x) = f(x1 , x2 ) = 100 ⋅ (x2 − x12 )2 + (1 − x12 ), cunoscută sub numele de funcţie Rosenbrock.
Să se determine minimul ei în condiţiile restricţiei de tip inegalitate.
c(x) = c(x1 , x2 ) = x12 + x22 − 1 ≤ 0;

Se construieşte fişierul funcţiei obiectiv: Cu0603fc(x)


function f= cu0603fc(x)
f = 100 ∗ (x(2) − x(1)^2)^2 + 1 − x(1)^2
Se construieşte fişierul restricţiei (constricţiei): cu0603c(x)
function c, ceq= cu0603c(x); de verif.
c = x(1)^2 + x(2)^2 − 1;
ceq = [ ];
Se apelează optimtool si se fac setările:
Tabel!!!!!!!!!!!!!!!!!!!!!
Fmincon
Active set
Start point [0,0]
Objective function @Cu0603fc
Nonlinear constrained function @Cu0603c1
Se obţine:
x1 ∗ 0,786
[x ∗] = [x ∗] = [ ] ; f(x ∗) = 0,0457
2 0,618

şi comentariul Matlab de dupa figura 0601.p.2.

Ex3. Se dă funcţia:
f(x) = f(x1 , x2 ) = (x1 − x2 )2 + 2 ⋅ x12 ⋅ x2 − 6
Să se determine minimul ei in condiţiile restricţiei de tip inegalitate.
c(x) = c(x1 , x2 ) = x12 − 2 ⋅ x2 − 1 < 0;
Se setează:
Fmincon
Active set
112
Optimizări-C5-CuTot Win10
@Cu0604fc
Start point [1,1]
Constrained @Cu0604c1
Level of display iterative.
Start. După 16 iteraţii se obţine:
x1 ∗ 0,007
[x1 ∗] = [x ∗] = [ ] ; f(x1 ∗) = −5,999999
2 0,007
Start point [0,0]
x3 ∗ 0
[x2 ∗] = [x ∗] = [ ] ; f(x2 ∗) = −6
4 0

start point[-1,-1]

x5 ∗ −0,414
[x3 ∗] = [x ∗] = [ ] ; f(x3 ∗) = −6,141
6 −0,414

Analitic:

f(x) = f(x1 , x2 ) = (x1 − x2 )2 + 2 ⋅ x12 ⋅ x2 − 6


c(x) = c(x1 , x2 ) = x12 − 2 ⋅ x2 − 1 < 0;
L(x) = L(x1 , x2 ) = (x1 − x2 )2 + 2 ⋅ x12 ⋅ x2 − 6 + q ⋅ (x12 − 2 ⋅ x2 − 1)
Soluţia problemei este cea a sistemului:
∂L
= 2 ⋅ (x1 − x2 ) + 4 ⋅ x1 ⋅ x2 + 2 ⋅ q ⋅ x1 = 0
∂x1
∂L
= −2 ⋅ (x1 − x2 ) + 2 ⋅ x12 = 0
∂x2
{x12 − 2 ⋅ x2 − 1 < 0

2 ⋅ (x1 − x2 ) + 4 ⋅ x1 ⋅ x2 + 2 ⋅ q ⋅ x1 = 0 2 ⋅ (1 + q) ⋅ x1 + 4 ⋅ x1 ⋅ x2 − 2 ⋅ x2
2
{−2 ⋅ (x1 − x2 ) + 2 ⋅ x1 = 0 ; {−x1 + x2 + x1 2 = 0 ;
2 2
x1 − 2 ⋅ x2 − 1 = 0 x1 − 2x2 − 1 = 0

De Văzut de unde este )carte=şi cum e mai departe!!!!!!!!!!!!!!!!!!!!!!


113
Optimizări-C5-CuTot Win10

Cu09
Conţinut mutat

Ex.2 – Cu0603fc
Se consideră funcția:

f ( x1 , x 2 )  100( x 2  x1 ) 2  (1  x1 ) 2 cunoscută sub numele de funcție


2 2

Rosenbrock.
Să se determine minimul ei în condițiile restricției de tip inegalitate.

c( x1 , x 2 )  x1  x 2  1  0 Se construiește fișierul funcție obiectiv:


2 2

Cu0603fc(x)
Function f= Cu0603fc(x)
f=.......
Se apelează optimtool si se fac setările:
Fmincon
Active set
Start point [0,0]
Objective function @Cu0603fc
Nonlinear constrained function @Cu0603c1
Se obține:
x1*=0,786
x2*=0,618
f(x*)=0,0456748
și comentariul Matlab de dupa figura 0601.p.2.

Ex3. Se dă funcția

f ( x)  ( x1  x 2 ) 2  2 x1  x 2  6.
2
114
Optimizări-C5-CuTot Win10

Să se determine minimul ei in condițiile restricției de tip inegalitate.

c( x)  x1  2 x1  1  0
2

Se setează:
Fmincon
Active set
@Cu0604fc
Start point [1,1]
Constrained @Cu0604c1
Level of display se setază iterative.
Start.

∗ 20𝑐𝑥1 ∗ ∗ 20𝑐0.007
𝑥∗ = [ ]=[ ]
𝑥2 ∗ 0.007
16𝑖𝑡𝑒𝑟𝑎𝑡𝑖𝑖
𝑓(𝑥 ∗ ) = −5.999999

Start point [0,0]


𝑥1 ∗ 0
𝑥∗ = [ ∗] = [ ]
𝑥2 0
𝑓(𝑥 ∗ ) = −6

start point[-1,-1]
𝑥1 ∗ −0.414
𝑥∗ = [ ∗] = [ ]
𝑥2 −0,414
𝑓(𝑥 ∗ ) = −6,14135

Analitic:
𝑓(𝑥) = (𝑥1 − 𝑥2 )2 + 2𝑥1 2 ⋅ 𝑥2 − 6.
𝑥1 2 − 2𝑥2 − 1 ≤ 0
𝐿(𝑥1 , 𝑥2 ) = (𝑥1 − 𝑥2 )2 + 2𝑥1 2 ⋅ 𝑥2 + 𝑞(𝑥1 2 − 2𝑥1 − 1)
𝜕𝐿
= 2(𝑥1 − 𝑥2 ) + 4𝑥1 ⋅ 𝑥2 − 2𝑞𝑥1 − 2𝑞
𝜕𝑥1
𝜕𝐿
= −2(𝑥1 − 𝑥2 ) + 2𝑥1 2
𝜕𝑥2

2𝑥1 − 2𝑥2 + 4𝑥1 ⋅ 𝑥2 + 2𝑞𝑥1 − 2𝑞 = 0


−2𝑥1 + 2𝑥2 + 2𝑥1 2 = 0
𝑥1 2 − 2𝑥2 − 1 = 0
115
Optimizări-C5-CuTot Win10

2(1 + 𝑞)𝑥1 − 2𝑥2 + 4𝑥1 ⋅ 𝑥2 − 2𝑞 = 0


−𝑥1 + 𝑥2 + 𝑥1 2 = 0
𝑥1 2 − 2𝑥2 − 1 = 0

𝑥2 = 𝑥1 (1 − 𝑥1 )
2(1 + 𝑞)𝑥1 − 2𝑥1 + 2𝑥1 2 + 4𝑥1 2 − 4𝑥1 3 − 2𝑞 = 0
𝑥1 2 − 2𝑥1 + 2𝑥1 2 − 1 ≤ 0

4x1 3 − 6x1 2 + 2(x1 − x1 − qx1) − 2q = 0


{3x1 2 − 2x1 − 1 ≤ 0
4x1 3 − 6x1 22qx1 − 2q = 0
Cu09

Ex1. Optimizări cu restricții neliniare/Cu0601 eq de tip egalitate.


Funcția obiectiv este:

f ( x)   x1  x 2

Restricția de tip egalitate este:

ceq( x)  x 2  x1  e x1

Edit Cu0601fce Enter


Apare editorul:
Se edtiteaza funcția obiectiv:
function f=Cu0601fce(x) enter
f= -x(1)*x(2);
116
Optimizări-C5-CuTot Win10
Se salvează.
Se editează restricția (de tip egalitate)
New
function[c, ceq]=Cu0601ce(x)
c=[ ];
ceq=x(2)+x(1)*exp(x(1));
Se dă comanda:
Optimtool și se fac următoarele setări:
Solver fmincon
Algoritm activ set
Ob. function @Cu0601feq
Start poin [10,10]
Non-linear constrained function @Cu0601ceq

Se obține:
𝑥1 ∗ 2,236
𝑥∗ = [ ]=[ ]
𝑥2 ∗ 2,236
𝑓(𝑥 ∗ ) = −10.00. . . . .

Ex2. Cu0602eq
f(x)= x1+x2 cu restricțiile ceq= x1∙x2-12=0, aplicând procedura de la exercițiul anterior se obtine
dupa 6 iterații, plecând de la[10,10]:

𝑥1 ∗ 3,464
𝑥∗ = [ ]=[ ]
𝑥2 ∗ 3,464
𝑓(𝑥 ∗ ) = 6,928

Ex3. Cu0603xeq.
f ( x)   x1  x 2
2 2

Start point [1,1]



ceq( x)  x1  x 2  20  0
2 2

𝑥 ∗ 2,236
𝑥 ∗ = [ 1 ∗] = [ ]
𝑥2 2,236 5 iterații
𝑓(𝑥 ∗ ) = −10.00. . . . .

Start point[-1,-1]
𝑥 ∗ −2,236
𝑥 ∗ = [ 1 ∗] = [ ]
𝑥2 −2,236

Ex4.Cu0604feq
Să se determine paralelipipedul dreptunghic cu volum maxim, in cazul in care suma
lungimilor muchiilor este beq.
Caz particular, Matlab a=3
V=x∙y∙z
Maximul lui V va fi acelasi cu minimul functiei:
117
Optimizări-C5-CuTot Win10
f ( x)   x1  x 2  x3 in conditiile restricției liniare:
𝑥1 + 𝑥2 + 𝑥3 = 𝑏𝑒𝑞 = 9
𝑎 𝑑𝑖𝑐𝑎
[𝐴𝑒𝑞] ⋅ [𝑥] = 𝑏𝑒𝑞
[∗ 20𝑐1 1 1] ⋅ [𝑥] = 9

edit Cu0604fleq enter


function f=Cu0604fleq(x)
f=-x(1)*x(2)*x(3);
Solver fmincon
Algoritm activ set
Ob. function @Cu0601fleq
Start poin [2;2;2]
Linear equalities Aeq=[1 1 1] beq=1
conform figurii 0604.a si Level of display se setează iterative conform figurii 0604.b.
Aceeași problemă poate fi rezolvată si prin definirea restricției liniare de tip egalitate ca
una de tip neliniare de tip egalitate, adica ceq dupa cum urmează:
edit Cu0604cleq
function [c,ceq]= Cu0604cleq(x)
c=[ ];
ceq=x(1)=x(2)+x(3)-9;
În optimization tools se fac setările:

Solver fmincon
Algoritm activ set
Ob. function @Cu0601fleq
Start poin [2;2;2]
Non-linear...... @Cu0604cleq
Conform figurii 0604.c și Level of display se seteaza iterative ca in figura 0604.d

Optimization Tools
Restricţii combinate
Ex4.Cu0604feq
Să se determine paralelipipedul dreptunghic cu volum maxim, in cazul in care suma
lungimilor muchiilor este beq.
Caz particular, Matlab beq = 3
Volumul Val unui paralelipiped dreptunghic cu muchiile x1 , x2 , x3 este:
V = x1 , x2 , x3
Maximul lui V va fi acelasi cu minimul functiei:
f(x) = −x1 ⋅ x2 ⋅ x3
În conditiile restricţiei liniare de tip egalitate: x1 + x2 + x3 = beq = 9adică:
[Aeq] ⋅ [x] = beq, respectiv numeric
[1 1 1] ⋅ [x] = 9

În fereastra de comandă se aplică comanda:


edit Cu0604feq enter
Se deschide editorul şi în el se editează:
118
Optimizări-C5-CuTot Win10
function f=cu0604fleq(x)
f = −x1 ∗ x2 ∗ x3 ;
Se afişeazăOptimtool şi în el se fac setările
Solver fmincon
Algoritm activ set
Ob. function @Cu0601fleq
Start poin [2;2;2]
Linear equalities Aeq=[1 1 1] beq=1

conform figurii 0604.a


Level of display iterative
conform figurii 0604.b.
Aceeaşi problemă poate fi rezolvată si prin definirea restricţiei liniare de tip egalitate ca
una neliniară de tip egalitate, adica ceq dupa cum urmează:
edit Cu0604cleq
function [c, ceq]= Cu0604cleq(x)
c = [ ]c=[ ];
ceq = x(1) + x(2) + x(3) − 9;
În optmization tool se fac setările:

Solver fmincon
Algoritm activ set
Ob. function @Cu0601fleq
Start poin [2;2;2]
Non-linear...... @Cu0604cleq
conform figurii 0604.c
Level of display iterative
conform figurii 0604.d.

Ex05.Cu0605fieq
Fie funcţia obiectiv:
f(x) = ex1 ⋅ (4 ⋅ x12 + 2 ⋅ x22 + 4 ⋅ x1 ⋅ x2 + 2 ⋅ x2 + 1)
cu restricţiile:
x 2 + x22 − 1 = 0 x 2 + x22 − 1 = 0
{ 1 ; adică:{ 1
−x1 ⋅ x2 ≤ 10 −x1 ⋅ x2 − 10 ≤ 0
Se se editează funcţia obiectiv:
function f=cu0605fieq(x)
f = exp(x(1)) ∗ (4 ∗ x(1)^2 + 2 ∗ x(2)^2 + 4 ∗ x(1) ∗ x(2) + 2 ∗ x(2) + 1);
Save
Se se editează restricţiile:
New
function [c, ceq]=cu0605cieq(x);
c = −x(1) ∗ x(2) − 10;
ceq = x(1)^2 + x(2)^2 − 1;
Save.
Start point [1,1]
După 12 iteraţii se obţine:
x1 ∗ −2,528
[x ∗] = [x ∗] = [ ] ; f(x ∗) = 1,50339
2 −2,528
119
Optimizări-C5-CuTot Win10

Start point [-1,-1]


x1 ∗ −2,423
[x ∗] = [x ∗] = [ ] ; f(x ∗) = 1,55
2 −2,423

Start point [-2.3,-2.3]


x1 ∗ −2,292
[x ∗] = [x ∗] = [ ] ; f(x ∗) = 1,62
2 +2,292

07

De vazut ce-I cu asta !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Trial>> [x,y]=meshgrid(0:0.1:5,0:01:10)

x=

Columns 1 through 10

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000


0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Columns 11 through 20

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
120
Optimizări-C5-CuTot Win10
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000

Columns 21 through 30

2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000

Columns 31 through 40

3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000

Columns 41 through 50

4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000

Column 51

5.0000
5.0000
5.0000
5.0000
5.0000
121
Optimizări-C5-CuTot Win10
5.0000
5.0000
5.0000
5.0000
5.0000
5.0000

y=

Columns 1 through 18

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

Columns 19 through 36

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

Columns 37 through 51

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
122
Optimizări-C5-CuTot Win10
Trial>> z=(x=10.*y)./(2.*y.^2+2.*y)
??? z=(x=10.*y)./(2.*y.^2+2.*y)
|
Error: The expression to the left of the equals sign is not a valid target for an assignment.

Trial>> z=(x+10.*y)./(2.*y.^2+2.*y)

z=

Columns 1 through 10

NaN Inf Inf Inf Inf Inf Inf Inf Inf Inf
2.5000 2.5250 2.5500 2.5750 2.6000 2.6250 2.6500 2.6750 2.7000 2.7250
1.6667 1.6750 1.6833 1.6917 1.7000 1.7083 1.7167 1.7250 1.7333 1.7417
1.2500 1.2542 1.2583 1.2625 1.2667 1.2708 1.2750 1.2792 1.2833 1.2875
1.0000 1.0025 1.0050 1.0075 1.0100 1.0125 1.0150 1.0175 1.0200 1.0225
0.8333 0.8350 0.8367 0.8383 0.8400 0.8417 0.8433 0.8450 0.8467 0.8483
0.7143 0.7155 0.7167 0.7179 0.7190 0.7202 0.7214 0.7226 0.7238 0.7250
0.6250 0.6259 0.6268 0.6277 0.6286 0.6295 0.6304 0.6312 0.6321 0.6330
0.5556 0.5562 0.5569 0.5576 0.5583 0.5590 0.5597 0.5604 0.5611 0.5618
0.5000 0.5006 0.5011 0.5017 0.5022 0.5028 0.5033 0.5039 0.5044 0.5050
0.4545 0.4550 0.4555 0.4559 0.4564 0.4568 0.4573 0.4577 0.4582 0.4586

Columns 11 through 20

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
2.7500 2.7750 2.8000 2.8250 2.8500 2.8750 2.9000 2.9250 2.9500 2.9750
1.7500 1.7583 1.7667 1.7750 1.7833 1.7917 1.8000 1.8083 1.8167 1.8250
1.2917 1.2958 1.3000 1.3042 1.3083 1.3125 1.3167 1.3208 1.3250 1.3292
1.0250 1.0275 1.0300 1.0325 1.0350 1.0375 1.0400 1.0425 1.0450 1.0475
0.8500 0.8517 0.8533 0.8550 0.8567 0.8583 0.8600 0.8617 0.8633 0.8650
0.7262 0.7274 0.7286 0.7298 0.7310 0.7321 0.7333 0.7345 0.7357 0.7369
0.6339 0.6348 0.6357 0.6366 0.6375 0.6384 0.6393 0.6402 0.6411 0.6420
0.5625 0.5632 0.5639 0.5646 0.5653 0.5660 0.5667 0.5674 0.5681 0.5688
0.5056 0.5061 0.5067 0.5072 0.5078 0.5083 0.5089 0.5094 0.5100 0.5106
0.4591 0.4595 0.4600 0.4605 0.4609 0.4614 0.4618 0.4623 0.4627 0.4632

Columns 21 through 30

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
3.0000 3.0250 3.0500 3.0750 3.1000 3.1250 3.1500 3.1750 3.2000 3.2250
1.8333 1.8417 1.8500 1.8583 1.8667 1.8750 1.8833 1.8917 1.9000 1.9083
1.3333 1.3375 1.3417 1.3458 1.3500 1.3542 1.3583 1.3625 1.3667 1.3708
1.0500 1.0525 1.0550 1.0575 1.0600 1.0625 1.0650 1.0675 1.0700 1.0725
0.8667 0.8683 0.8700 0.8717 0.8733 0.8750 0.8767 0.8783 0.8800 0.8817
0.7381 0.7393 0.7405 0.7417 0.7429 0.7440 0.7452 0.7464 0.7476 0.7488
0.6429 0.6437 0.6446 0.6455 0.6464 0.6473 0.6482 0.6491 0.6500 0.6509
0.5694 0.5701 0.5708 0.5715 0.5722 0.5729 0.5736 0.5743 0.5750 0.5757
0.5111 0.5117 0.5122 0.5128 0.5133 0.5139 0.5144 0.5150 0.5156 0.5161
0.4636 0.4641 0.4645 0.4650 0.4655 0.4659 0.4664 0.4668 0.4673 0.4677

Columns 31 through 40
123
Optimizări-C5-CuTot Win10

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
3.2500 3.2750 3.3000 3.3250 3.3500 3.3750 3.4000 3.4250 3.4500 3.4750
1.9167 1.9250 1.9333 1.9417 1.9500 1.9583 1.9667 1.9750 1.9833 1.9917
1.3750 1.3792 1.3833 1.3875 1.3917 1.3958 1.4000 1.4042 1.4083 1.4125
1.0750 1.0775 1.0800 1.0825 1.0850 1.0875 1.0900 1.0925 1.0950 1.0975
0.8833 0.8850 0.8867 0.8883 0.8900 0.8917 0.8933 0.8950 0.8967 0.8983
0.7500 0.7512 0.7524 0.7536 0.7548 0.7560 0.7571 0.7583 0.7595 0.7607
0.6518 0.6527 0.6536 0.6545 0.6554 0.6563 0.6571 0.6580 0.6589 0.6598
0.5764 0.5771 0.5778 0.5785 0.5792 0.5799 0.5806 0.5813 0.5819 0.5826
0.5167 0.5172 0.5178 0.5183 0.5189 0.5194 0.5200 0.5206 0.5211 0.5217
0.4682 0.4686 0.4691 0.4695 0.4700 0.4705 0.4709 0.4714 0.4718 0.4723
De vazut ce-I cu asta !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Columns 41 through 50

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
3.5000 3.5250 3.5500 3.5750 3.6000 3.6250 3.6500 3.6750 3.7000 3.7250
2.0000 2.0083 2.0167 2.0250 2.0333 2.0417 2.0500 2.0583 2.0667 2.0750
1.4167 1.4208 1.4250 1.4292 1.4333 1.4375 1.4417 1.4458 1.4500 1.4542
1.1000 1.1025 1.1050 1.1075 1.1100 1.1125 1.1150 1.1175 1.1200 1.1225
0.9000 0.9017 0.9033 0.9050 0.9067 0.9083 0.9100 0.9117 0.9133 0.9150
0.7619 0.7631 0.7643 0.7655 0.7667 0.7679 0.7690 0.7702 0.7714 0.7726
0.6607 0.6616 0.6625 0.6634 0.6643 0.6652 0.6661 0.6670 0.6679 0.6688
0.5833 0.5840 0.5847 0.5854 0.5861 0.5868 0.5875 0.5882 0.5889 0.5896
0.5222 0.5228 0.5233 0.5239 0.5244 0.5250 0.5256 0.5261 0.5267 0.5272
0.4727 0.4732 0.4736 0.4741 0.4745 0.4750 0.4755 0.4759 0.4764 0.4768

Column 51

Inf
3.7500
2.0833
1.4583
1.1250
0.9167
0.7738
0.6696
0.5903
0.5278
0.4773

Trial>> surf(z)
Trial>> f=@(x,y)(x+10.*y)./(2.*y.^2+2.*y)

f=

@(x,y)(x+10.*y)./(2.*y.^2+2.*y)

Trial>> ezsurfc(f,[0,5],[0,10])
Trial>> edit cu0701fu
Trial>> optimtool
124
Optimizări-C5-CuTot Win10
Warning: Gradient must be provided for trust-region algorithm;
using line-search algorithm instead.
> In fminunc at 347
In optim\private\callSolver at 29
In optim\private\optimguirun at 41
In optimguiswitchyard at 13
First-order
Iteration Func-count f(x) Step-size optimality
0 3 0.477273 0.0457
1 12 0.34061 91 0.0232
2 15 0.262738 1 0.0138
3 18 0.196745 1 0.00774
4 21 0.149008 1 0.00444
5 24 0.112354 1 0.00252
6 27 0.0848567 1 0.00144
7 30 0.0640463 1 0.00082
8 33 0.0483512 1 0.000468
9 36 0.0364985 1 0.000266
10 39 0.0275523 1 0.000152
11 42 0.0207986 1 8.65e-005
12 45 0.0157004 1 4.93e-005
13 48 0.0118519 1 2.81e-005
14 51 0.00894675 1 1.6e-005
15 54 0.0067537 1 9.12e-006
16 57 0.00509822 1 5.2e-006
17 60 0.00384853 1 2.96e-006
18 63 0.00290517 1 1.69e-006
19 66 0.00219305 1 9.62e-007

Local minimum found.

Optimization completed because the size of the gradient is less than


the default value of the function tolerance.

<stopping criteria details>

Computing finite-difference Hessian using user-supplied objective function.


125
Optimizări-C5-CuTot Win10

Ex04.Cu0605fieq
Fie funcția obiectiv:

𝑓(𝑥) = 𝑒 𝑥1 ⋅ (4 ⋅ 𝑥1 2 + 2𝑥2 2 + 4𝑥1 ⋅ 𝑥2 + 2 ⋅ 𝑥2 + 1)

cu restricțiile:

𝑥1 2 + 𝑥2 2 − 1 = 0
−𝑥1 ⋅ 𝑥2 ≤ 10

function f=Cu0605fieq(x)
f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
Save
New
function [c, ceq]=Cu0605cieq(x)
c=x(1)^2+x(2)^2-1;
ceq=-x(1)*x(2)-10;
Save.
Start point [1,1]
12 iterații

∗ 𝑥1 ∗ −2,528
𝑥∗ = [ ]=[ ]
𝑥2 ∗ −2,529
𝑓(𝑥 ∗ ) = 1.50339

Start point [-1,-1]


126
Optimizări-C5-CuTot Win10

∗ 𝑥1 ∗ −2,423
𝑥∗ = [ ]=[ ]
𝑥2 ∗ −2,425
𝑓(𝑥 ∗ ) = 1.55

Start point [-2.3,-2.3]

∗ 𝑥1 ∗ −2,292
𝑥∗ = [ ]=[ ]
𝑥2 ∗ −2,292
𝑓(𝑥 ∗ ) = 1.62

07

Trial>> [x,y]=meshgrid(0:0.1:5,0:01:10)

x=

Columns 1 through 10

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000


0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000

Columns 11 through 20

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
127
Optimizări-C5-CuTot Win10
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000

Columns 21 through 30

2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000
2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000

Columns 31 through 40

3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000
3.0000 3.1000 3.2000 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000

Columns 41 through 50

4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000
4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000 4.9000

Column 51

5.0000
5.0000
5.0000
5.0000
5.0000
5.0000
128
Optimizări-C5-CuTot Win10
5.0000
5.0000
5.0000
5.0000
5.0000

y=

Columns 1 through 18

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

Columns 19 through 36

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

Columns 37 through 51

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

Trial>> z=(x=10.*y)./(2.*y.^2+2.*y)
129
Optimizări-C5-CuTot Win10
??? z=(x=10.*y)./(2.*y.^2+2.*y)
|
Error: The expression to the left of the equals sign is not a valid target for an assignment.

Trial>> z=(x+10.*y)./(2.*y.^2+2.*y)

z=

Columns 1 through 10

NaN Inf Inf Inf Inf Inf Inf Inf Inf Inf
2.5000 2.5250 2.5500 2.5750 2.6000 2.6250 2.6500 2.6750 2.7000 2.7250
1.6667 1.6750 1.6833 1.6917 1.7000 1.7083 1.7167 1.7250 1.7333 1.7417
1.2500 1.2542 1.2583 1.2625 1.2667 1.2708 1.2750 1.2792 1.2833 1.2875
1.0000 1.0025 1.0050 1.0075 1.0100 1.0125 1.0150 1.0175 1.0200 1.0225
0.8333 0.8350 0.8367 0.8383 0.8400 0.8417 0.8433 0.8450 0.8467 0.8483
0.7143 0.7155 0.7167 0.7179 0.7190 0.7202 0.7214 0.7226 0.7238 0.7250
0.6250 0.6259 0.6268 0.6277 0.6286 0.6295 0.6304 0.6312 0.6321 0.6330
0.5556 0.5562 0.5569 0.5576 0.5583 0.5590 0.5597 0.5604 0.5611 0.5618
0.5000 0.5006 0.5011 0.5017 0.5022 0.5028 0.5033 0.5039 0.5044 0.5050
0.4545 0.4550 0.4555 0.4559 0.4564 0.4568 0.4573 0.4577 0.4582 0.4586

Columns 11 through 20

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
2.7500 2.7750 2.8000 2.8250 2.8500 2.8750 2.9000 2.9250 2.9500 2.9750
1.7500 1.7583 1.7667 1.7750 1.7833 1.7917 1.8000 1.8083 1.8167 1.8250
1.2917 1.2958 1.3000 1.3042 1.3083 1.3125 1.3167 1.3208 1.3250 1.3292
1.0250 1.0275 1.0300 1.0325 1.0350 1.0375 1.0400 1.0425 1.0450 1.0475
0.8500 0.8517 0.8533 0.8550 0.8567 0.8583 0.8600 0.8617 0.8633 0.8650
0.7262 0.7274 0.7286 0.7298 0.7310 0.7321 0.7333 0.7345 0.7357 0.7369
0.6339 0.6348 0.6357 0.6366 0.6375 0.6384 0.6393 0.6402 0.6411 0.6420
0.5625 0.5632 0.5639 0.5646 0.5653 0.5660 0.5667 0.5674 0.5681 0.5688
0.5056 0.5061 0.5067 0.5072 0.5078 0.5083 0.5089 0.5094 0.5100 0.5106
0.4591 0.4595 0.4600 0.4605 0.4609 0.4614 0.4618 0.4623 0.4627 0.4632

Columns 21 through 30

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
3.0000 3.0250 3.0500 3.0750 3.1000 3.1250 3.1500 3.1750 3.2000 3.2250
1.8333 1.8417 1.8500 1.8583 1.8667 1.8750 1.8833 1.8917 1.9000 1.9083
1.3333 1.3375 1.3417 1.3458 1.3500 1.3542 1.3583 1.3625 1.3667 1.3708
1.0500 1.0525 1.0550 1.0575 1.0600 1.0625 1.0650 1.0675 1.0700 1.0725
0.8667 0.8683 0.8700 0.8717 0.8733 0.8750 0.8767 0.8783 0.8800 0.8817
0.7381 0.7393 0.7405 0.7417 0.7429 0.7440 0.7452 0.7464 0.7476 0.7488
0.6429 0.6437 0.6446 0.6455 0.6464 0.6473 0.6482 0.6491 0.6500 0.6509
0.5694 0.5701 0.5708 0.5715 0.5722 0.5729 0.5736 0.5743 0.5750 0.5757
0.5111 0.5117 0.5122 0.5128 0.5133 0.5139 0.5144 0.5150 0.5156 0.5161
0.4636 0.4641 0.4645 0.4650 0.4655 0.4659 0.4664 0.4668 0.4673 0.4677

Columns 31 through 40
130
Optimizări-C5-CuTot Win10
Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
3.2500 3.2750 3.3000 3.3250 3.3500 3.3750 3.4000 3.4250 3.4500 3.4750
1.9167 1.9250 1.9333 1.9417 1.9500 1.9583 1.9667 1.9750 1.9833 1.9917
1.3750 1.3792 1.3833 1.3875 1.3917 1.3958 1.4000 1.4042 1.4083 1.4125
1.0750 1.0775 1.0800 1.0825 1.0850 1.0875 1.0900 1.0925 1.0950 1.0975
0.8833 0.8850 0.8867 0.8883 0.8900 0.8917 0.8933 0.8950 0.8967 0.8983
0.7500 0.7512 0.7524 0.7536 0.7548 0.7560 0.7571 0.7583 0.7595 0.7607
0.6518 0.6527 0.6536 0.6545 0.6554 0.6563 0.6571 0.6580 0.6589 0.6598
0.5764 0.5771 0.5778 0.5785 0.5792 0.5799 0.5806 0.5813 0.5819 0.5826
0.5167 0.5172 0.5178 0.5183 0.5189 0.5194 0.5200 0.5206 0.5211 0.5217
0.4682 0.4686 0.4691 0.4695 0.4700 0.4705 0.4709 0.4714 0.4718 0.4723

Columns 41 through 50

Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
3.5000 3.5250 3.5500 3.5750 3.6000 3.6250 3.6500 3.6750 3.7000 3.7250
2.0000 2.0083 2.0167 2.0250 2.0333 2.0417 2.0500 2.0583 2.0667 2.0750
1.4167 1.4208 1.4250 1.4292 1.4333 1.4375 1.4417 1.4458 1.4500 1.4542
1.1000 1.1025 1.1050 1.1075 1.1100 1.1125 1.1150 1.1175 1.1200 1.1225
0.9000 0.9017 0.9033 0.9050 0.9067 0.9083 0.9100 0.9117 0.9133 0.9150
0.7619 0.7631 0.7643 0.7655 0.7667 0.7679 0.7690 0.7702 0.7714 0.7726
0.6607 0.6616 0.6625 0.6634 0.6643 0.6652 0.6661 0.6670 0.6679 0.6688
0.5833 0.5840 0.5847 0.5854 0.5861 0.5868 0.5875 0.5882 0.5889 0.5896
0.5222 0.5228 0.5233 0.5239 0.5244 0.5250 0.5256 0.5261 0.5267 0.5272
0.4727 0.4732 0.4736 0.4741 0.4745 0.4750 0.4755 0.4759 0.4764 0.4768

Column 51

Inf
3.7500
2.0833
1.4583
1.1250
0.9167
0.7738
0.6696
0.5903
0.5278
0.4773

Trial>> surf(z)
Trial>> f=@(x,y)(x+10.*y)./(2.*y.^2+2.*y)

f=

@(x,y)(x+10.*y)./(2.*y.^2+2.*y)

Trial>> ezsurfc(f,[0,5],[0,10])
Trial>> edit cu0701fu
Trial>> optimtool
Warning: Gradient must be provided for trust-region algorithm;
using line-search algorithm instead.
131
Optimizări-C5-CuTot Win10
> In fminunc at 347
In optim\private\callSolver at 29
In optim\private\optimguirun at 41
In optimguiswitchyard at 13
First-order
Iteration Func-count f(x) Step-size optimality
0 3 0.477273 0.0457
1 12 0.34061 91 0.0232
2 15 0.262738 1 0.0138
3 18 0.196745 1 0.00774
4 21 0.149008 1 0.00444
5 24 0.112354 1 0.00252
6 27 0.0848567 1 0.00144
7 30 0.0640463 1 0.00082
8 33 0.0483512 1 0.000468
9 36 0.0364985 1 0.000266
10 39 0.0275523 1 0.000152
11 42 0.0207986 1 8.65e-005
12 45 0.0157004 1 4.93e-005
13 48 0.0118519 1 2.81e-005
14 51 0.00894675 1 1.6e-005
15 54 0.0067537 1 9.12e-006
16 57 0.00509822 1 5.2e-006
17 60 0.00384853 1 2.96e-006
18 63 0.00290517 1 1.69e-006
19 66 0.00219305 1 9.62e-007

Local minimum found.

Optimization completed because the size of the gradient is less than


the default value of the function tolerance.

<stopping criteria details>

Computing finite-difference Hessian using user-supplied objective function.


132
Optimizări-C5-CuTot Win10
133
Optimizări-C5-CuTot Win10
134
Optimizări-C5-CuTot Win10

Cu10

Restricţii cu gradient
(Constraints With Gradients)
De obicei rutinele de minimizare de scară medie (medium-scale minimization) utilizează
gradienţii numerici calculaţi prin aproximare cu diferenţe finite. Această procedură perturbă
sistematic fiecare dintre variabile pentru a calcula derivatele parţiale ale funcţiei şi restricţiilor.
Alternativ, puteţi oferi o funcţie pentru a calcula analitic derivatele parţiale. De obicei, problema
este rezolvată mai corect şi mai eficient în cazul în care o astfel de funcţie este oferită.
Pentru a rezolva ecuaţia folosind gradientii determinati analitic,
minf(x) = ex(1) (4x12 + 2x22 + 4x1 x2 + 2x2 + 1)
x
Cu restricţiile neliniare:
x1 x2 − x1 − x2 ≤ −1.5
,
x1 x2 ≥ −10
adică transcrise în format pentru MatLab :
x1 x2 − x1 − x2 + 1,5 ≤ 0
−x1 x2 − 10 ≤ 0
Se procedează astfel:

Pasul 1: În editor se scrie un fişier pentru funcţia obiectiv-f şi gradientul său-G.


function [f,G] = objfungrad(x)

f = exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

G conţine derivatele parţiale ale funcţiei obiectiv, f, sa întors de objfungrad (x), cu privire la
fiecare dintre elementele în X:
∂f
∂x1 ex(1) ⋅ (4x12 + 2x22 + 4x1 x2 + 2x2 + 1) + ex(1) ⋅ (8x1 + 4x2 )
G= = [ x(1) ]
∂f e ⋅ (4x1 + 4x2 + 2)
[∂x2 ]
135
Optimizări-C5-CuTot Win10
in formă MatLab
∂f ∂f
G=[ ; ]
∂x1 ∂x2
adică
G = [exp(x(1)) ∗ (4 ∗ x(1)^2 + 2 ∗ x(2)^2 + 4 ∗ x(1) ∗ x(2) + 6 ∗ x(2) + 1 + 8 ∗
x(1)); exp(x(1)) ∗ (4 ∗ x(1) + 4 ∗ x(2) + 2)];

Pas 2: În Editor se scrie un fişier pentru restricţiile neliniare şi gradienţii restricţiilor


neliniare.
function [c, ceq, DC, DCeq] = confungrad(x)
c(1) = x1 ∗ x2 − x1 − x2 + 1,5;
c(2) = −x1 ∗ x2 − 10;
ceq = [ ];
∂c1 ∂𝑐2
∂𝑐1 ∂𝑐1 𝑥2 − 1 − 𝑥2
𝑫𝐶 = =[ ]
∂𝑐1 ∂𝑐2 𝑥1 − 1 − 𝑥1
[∂𝑐2 ∂𝑐2 ]
Coloane lui DC şi DCeq conţin derivatele parţiale pentru fiecare din restricţiile corespunzătoare (adică, coloana i-
lea din DC (DCeq) este derivata parţială a constrângerii i-lea în raport cu x).
Deci, în exemplul de mai sus, gradientii constrângerilor DC şi Dceq sunt :
x2 − 1 − x2
DC = [ ]
x1 − 1 − x1
În formă MatLab:
DC = [x(2) − 1, − x(2); x(1) − 1, − x(1)];
DCeq = [ ];
Din moment ce se oferă gradientul funcţiei obiectiv objfungrad.m şi gradientul restricţiilor confungrad.m, trebuie
să spunem că aceste fişiere conţin informaţii suplimentare pentru fmincon.
Se utilizează optimset pentru a activa opţiunile GradObj şi GradConstr în structura de opţiuni
existentă în exemplu,
options = optimset(options,'GradObj','on','GradConstr','on');
Dacă nu setaţi aceste opţiuni la “on” din structura de opţiuni, fmincon nu utilizează gradientii
analitici.
Argumentele lb şi ub plasează limitele inferior şi superior pe variabile independente în X.
În acest exemplu, nu există restricţii de tip bound şi de aceea ele sunt setate la [].

08

Cu11

Abordarea complexă a unei probleme de optimizare


136
Optimizări-C5-CuTot Win10
Atunci când funcţia obiectiv are cel mult două variabile, este util ca determinarea optimului
(minimului) funcţiei obiectiv cu ajutorul software-ului „Optimization Tool” să fie precedată de
reprezentarea ei grafică.
1. Fie funcţia obiectiv de o variabilă:
(x−1)2
f(x) = ex Cu08Ex01-fig-brut
a. Reprezentarea o vom realiza în două forme, brut şi fin pentru a putea evidenţia pe de-o parte
forma globală, iar pe de altă parte pentru a arăta variaţia ei în zona punctului (punctelor de
minim)
funcţia se va nota:
y=f(x) x=-20:0.5:20 Enter
se va afişa matricea x cu 80 de linii şi 81 de coloane
y=(x-1).^2./exp(x) Enter
se va afişa matricea y cu 80 de linii şi 81 de coloane
plot (x,y) Enter
Se afişează curba Cu08-Ex01-b-fig., care pune în evidenţă creşterea accentuată spre -∞ şi
asimptota orizontală y=0 pentru x→+∞
Zona minimului nu este apreciabilă în acest grafic, motiv pentru care se face o reprezentare într-
un domeniu mai restrâns: x ∈ (0,10)
b. În Comand Window se înscrie:
edit cu0801fu
în Editor se defineşte funcţia obiectiv:
function f=cu0801fu
f=(x-1)^2/exp(x)
se apelează optimtool şi se completează formularele de dialog ale operaţiei „Optimization Tool”
conform figurii: ……………
Solver fminunic
Algoritm Large scale
Oll function @cu0801fu
Derivaliver Aproximatec by Solver
Start Point [0]

Se obţine:

f(x*)=0 pentru Final point=x*=1


Start point [4]
f(x*)=3,429*10-8
x*=1
Pentru valori mai îndepărtate nu se ajunge suficient de aproape de minim motiv pentru care este
utilă adoptarea unui punct de start cât mai apropiat de cel estimabil din grafic.
Start point [3.1]
f(x*)=6,8*10-8 x*=22,65- greşit
Start point [2.9]
f(x*)=5,25*10-13 x*=1
Concluzie:
Pentru găsirea optimului real (minim local sau global) este necesară o alegere corectă a
punctului de start.

2. Fie funcţia obiectiv de 2 variabile:


f(x, y) = x ⋅ exp(−x 2 − y 2 ) + (x 2 + y 2 )/20 Cu08-Ex02
137
Optimizări-C5-CuTot Win10
a. Pentru reprezentarea grafică se deschide Comand Window.
[x,y]=meshgrid (inf(x):p(x):sup(x), inf(y):p(y):sup(y))
adică:
[x,y]=meshgrid(-2:0.1:2, -2:0.1:2) Enter
se afişează matricele x şi y
se defineşte funcţia:
z=x.*exp(-x.^2-y.^2)+(x.^2+y.^2)./20 Enter
se afişează matricea z
surf (z) Enter
se afişează o suprafaţă ce conţine reprezentarea grafică a funcţiei (fig. ………)
În această formă este mai dificilă localizarea punctului de minim, motiv pentru care este utilă a
II-a formă de reprezentare şi anume:
Această formă de reprezentare utilizează funcţia anonimă definită în Comand Window.
f = @(x, y)x ⋅ exp(−x2 − y2 ) + (x2 + y2 )/20
adică:
f=@(x,y) x.*exp(-x.^2-y.^2)+(x.^2+y.^2)./20 Enter
f=@(x,y) x.*exp(-x.^2-y.^2)+(x.^2+y.^2)./20
ezsurfc (f,[-2,2]) Enter
[inf, sup] sau [inf(x):sup(x), inf(y):sup(y)] Enter
Se afişează suprafaţa ce conţine reprezentarea grafică a funcţiei. Avantajul acestei forme este
acela că se observă cu destul de bună aproximare locul minimului:
x* ∈ (-1,-0,5)

̃ 0
y*=

b. Se rescrie expresia funcţiei 10 variabilă de forma: x(1), x(2)….


f(x)=
În Comand Window se scrie:
edit cu0802fu
În editor se editează funcţia sub forma:
function f=cu0802fu(x)
f==@(x,y) x.*exp(-x.^2-y.^2)+(x.^2+y.^2)./20
se salvează
se apelează:
optimtool
Întrucât în etapa reprezentării grafice nu ţineam cont de restricţii se înscriu în „Optimization
Tool” următoarele:
Solver fminunic
Algoritm Large scale
Ob. function @cu0802fu
Derivaliver Aproximatec by Solver
Start Point [-0.5; 0.5]
După 34 de iteraţii se găseşte:
x∗ −0.669
x ∗ = [ 1∗ ] = [ ]
x2 0
f(x ∗ ) = −0.405

Start Point [0; 0]


După 54 de iteraţii se găseşte:

10
138
Optimizări-C5-CuTot Win10
x∗ −0.669
x ∗ = [ 1∗ ] = [ ]
x2 0
f(x ∗ ) = −0.405
Start Point [2; 2]
După 52 de iteraţii se găseşte:
x∗ −0.669
x ∗ = [ 1∗ ] = [ ]
x2 0
f(x ∗ ) = −0.405

3. Optimizarea staţionară
3.1. Generalităţi
Se ştie că o mare parte a proceselor supuse optimizărilor funcţionează intervale de timp lung în
regim staţionar.
Calculând starea sistemului care este descris de funcţia:
x=f(x,u,t) în care:
x – vectorul de stare al sistemului
u – vectorul mărimilor de intrare (comandă)
t – timpul
atunci evoluţia s-a în regim staţionar este reprezentată de ecuaţia:

𝑑𝑥
= f(𝑥, 𝑢, 𝑡) = 0
𝑑𝑡

În regim staţionar starea sistemului nu se modifică în raport cu variabila timp, adică:

𝒙′ (𝒕) = 𝟎

Prin urmare ecuaţia de forma:

𝐟(𝐱) = (𝒙, 𝒂) = 𝟎

va reprezenta o restricţie a problemei de optimizare statică a sistemului.


În cazul general se poate considera o funcţie obiectiv: y(u) unde u este vectorul mărimilor de
intrare (comandă) şi g i (u) şi ℎi (u)setul de restricţii la care este supusă problema de optimizare
statică.
În rezolvare numerică a problemelor de optimizare se întâlnesc două cazuri distincte:
- Probleme de optimizare a sistemelor liniare cu funcţionare statică
min(y(u) = c T ⋅ u)
u
cu restricţiile de forma:
A⋅u≤b
u≤0
139
Optimizări-C5-CuTot Win10
unde:
b,c – vectorii ai parametrilor constructivi
A – matrice cu elemente constante
- Problema de optimizare a sistemelor neliniare cu funcţionare statică
min(y(u))
u
cu restricţiile de forma:
g j (u) ≥; j=1,m
ℎi ≥; i=1,p
Spunem că o problemă de optimizare este neliniară dacă funcţia obiectiv sau/şi restricţiile sunt
descrise prin expresii neliniare. Problemele de optimizare statică se rezolvă prin trei tipuri de
metode şi anume:
a) Metode de căutare directă
b) Metode de gradient
c) Metode de hesianare

a) Metode de căutare derivate


Aceste metode pot fi utilizate în căutarea optimului staţionar în cazul sistemelor cu funcţie
obiectiv mono sau multivariabilă, cu sau fără restricţii. În cazul acestor puncte nu este necesară
condiţia difereabilităţii funcţiei obiectiv.
Principiul metodei constă în avansarea spre optim prin încercări succesive. Este uşor de dedus
acestea, de fapt s-a şi confirmat practic că aceste metode sunt mai puţin optime dar au avantajul
simplităţii.
Se deosebesc:
- metode de calcul direct liniare
- metode de calcul direct evoluative

Cu12

4. Utilizarea optimizării staţionare pentru determinarea


parametrilor regulatoarelor
4.1. Criterii integrale de optim
Fie schema buclei de reglare din fig. 4.1. în care semnificaţiile căutate sunt următoarele:

ε u
yp + Hr(s) Hp(s) y
-
yp – valoarea prescrisă a mărimii de
ieşire
fig.4.1 Exemplu de structură de sistem automat y – mărimea de ieşire
Hr (s) - funcţia de transfer a regulatorului
Hp (s) - funcţia de transfer a procesului
ε - eroarea
ε = yp − y
u – mărimea de comandă
140
Optimizări-C5-CuTot Win10
În cazul optimizării staţionare funcţia obiectiv va fi un criteriu de optim. Cele mai frecvent
utilizate sunt criteriile integrale de formă pătratică ( ) sau cele ponderate ca tipul ( ) şi ( ).
∞ 2
a. I1 = ∫0 ε (t)dt

b. I2 = ∫0 t k ⋅ ε2 (t)dt
∞ k 2
c. I3 = ∫0 t ⋅ |ε (t)|dt
Exemple:
Se consideră sistemul automat din figura 4.1.
unde procesul automatizat şi regulatorul automat (PI) sunt descrise de funcţiile de transfer:
1
Hr (s) = k r (1 + T ⋅s) - PI
i
1
Hp (s) = T - PT1
p ⋅s+1
Să se efectueze optimizarea staţionară a sistemului (regulatorului) utilizând calcule integrale.
Pentru început se calculează funcţia de transfer a sistemului descris (H0(s)) şi expresia erorii ε(s)
1 1 Ti ⋅ s + 1
H0 (s) = Hr (s) ⋅ Hp (s) = k r (1 + )⋅ = kr ;
Ti ⋅ s Tp ⋅ s + 1 Ti ⋅ s(Tp ⋅ s + 1)
După care se rezolvă:
yp (s)
E(s) = yp (s) − y(s) = yp (s) − E(s) ⋅ H0 (s) ⇒ E(t) = H ;
0 (s)+1
1
Dacă se consideră cazul în care la intrare se aplică un semnal treaptă unitate yp (s) = s expresia
erorii ℰ(s) devine:
1 1 1 1 Ti (1 + Tp ⋅ s)
E(s) = ⋅ = ⋅ =
1 + H0 (s) s 1 + k r Ti ⋅s+1 s (1 + Tp ⋅ s) ⋅ Ti ⋅ s + (Ti ⋅ s + 1) ⋅ k r
Ti ⋅s(Tp ⋅s+1)
T i Tp ⋅s+Ti
= T ⋅T 2 +(1+k )⋅T ⋅s+k ; iar această expresie a erorii poate fi pusă sub forma:
i p ⋅s r i r
s R r1 ⋅s+r0 a a
E(s) = P(s) =p 2 +p ⋅s+p
= s−s1 + s−s2 (*)
2 ⋅s 1 0 1 2
Unde: s1 şi s2 sunt soluţiile polinomului caracteristic.
P(s) = p2 ⋅ s 2 + p1 ⋅ s + p0 = 0
r1 = Ti ⋅ Tp
r0 = Ti
p2 = Ti ⋅ Tp = r1
p1 = (1 + k r )Ti
p0 = k r
Coeficienţii a1 şi a2 se determină prin identificare din relaţiile:
a1 (s − s1 ) + a2 (s − s2 ) = r1 ⋅ s + r0
(a1 + a2 )s − (a1 s1 + a1 s2 ) = r1 ⋅ s + r0
a1 + a2 = r1
a1 ⋅ s1 + a1 ⋅ s2 = r0
a1 ⋅ s1 + (r1 − a1 )s2 = r0
r −r ⋅s
a1 = 0 1 2 lipsesteceva
Înlocuind în relaţie rezultă expresia abaterii sub forma:
r0 − r1 ⋅ s2 1 r0 − r1 ⋅ s1 1
E(s) = ⋅ + ⋅
s1 − s2 s − s1 s1 − s2 s − s1
Acestea poate fi considerată funcţia obiectiv (criteriu de optimizare). Se observă că elementele
r0, r1, s1, s2, depind de Ti, Tp, şi kr. Tp fiind o construcţie caracteristică procesului optimizarea va
consta în determinarea valorilor lui Ti şi kr pentru care criteriul de optimizare ales (funcţia
obiectiv) i-a valoarea minimă. Considerând ca şi criteriu eroarea pătratică:
141
Optimizări-C5-CuTot Win10
∞ ∞
y(Ti , k r ) = ∫0 Er2 (t)dt = ∫0 Er2 (t, Ti , Tp )dt se poate arăta că prin integrare rezultă pentru
funcţia obiectiv (criteriul de optimizare ales):
y(Ti , k r ) = y(r0 , r1 , p2 , p1 , p0 ) expresia:
r12 ⋅ p0 + r02 ⋅ p2 k r ⋅ Tp2 ⋅ Ti2 + Tp ⋅ Ti3
y(r0 , r1 , p2 , p1 , p0 ) = y(Ti , k r ) = = ;
2 ⋅ p0 ⋅ p1 ⋅ p2 2 ⋅ k r ⋅ (1 + k r )Ti ⋅ Ti ⋅ Tp
Simplificând se obţine:
Ti ⋅ k r ⋅ Tp Ti + Tp ⋅ k r
y(Ti , k r ) = =
2 ⋅ k r ⋅ (1 + k r ) 2 ⋅ k 2r + 2k r
Vom aplica mai multe metode în Matlab pentru determinarea minimului.
1. Trasarea graficului funcţiei obiectiv
x+Tp ⋅y
y(Ti , k r ) = y(x1 , x2 ) == ; restricţiile impuse sunt doar cele „naturale” şi anume:
2⋅y2 +2y
Ti = x ≥ 0
kr = y ≥ 0
1. a.
[x,y]=meshgrid (0;0.1;5 0; 0.1; 10) Enter
x=
y=
Pentru reprezentare este necesar ca lui Tp să i-se atribuie o valoare numerică (adoptăm Tp=10)
z=(x+10*y)./(2.*y.^2+2.*y) Enter
Se afişează suprafaţa Cu07-Ex01a-fig care arată că nu există un minim local.

1. b.
f=@(x,y)(x+10.*y)-/(2.*y.^2+2.*y) Enter
Se afişează suprafaţa Cu07-Ex 01b-fig, dar nici pe această reprezentare nu se observă existenţele
unui minim local.
1. c.
Determinarea minimului folosind funcţia „optimization-tool”
Se notează variabilele Ti şi kr astfel:
x1 = x = Ti
x2 = z = k r
Se consideră întâi funcţia fără restricţii. Se obţine un minim:
y=0,00219;
Ti=-223,6
Kr=2256
Constantă de timp negativă nu este posibilă, prin urmare vom considera problema de optim cu o
restricţie de forma: Ti = x ≥ 0
1. d.
Se consideră aceiaşi funcţie:
y=f=(x(1)+10.*x(2))./*(2.*x(2).^2+2*x(2))
edit cu0701fc Enter
(se editează funcţia)
function f=cu0701fc (x)
f=. . . . . . . . .;
se editează restricţia:
function [c, ceq]=cu0701c1
c=0,001-x(1) (cu semnificaţia: x(1)≥0,001
ceq=[ ]
142
Optimizări-C5-CuTot Win10
În OptimTool se setează:
Solver fmincon
Algoritm Active set
Start point [5,10]
Objective funcţion @cu0701fe
Nomilinear constraint function @cu0701fe

Se reiau căutările de minim pentru alte puncte de plecare în game de valori pertinente.


Simularea sistemului
Se desenează schema bloc a sistemului

File-New Model
Start-Simulink-Libary Browser
Se salvează modelul cu un nume adecvat
Se desenează modelul circuitului conform figurii
Se calculează simularea
Simulation-Start
Răspunsul sistemului este cel reprezentat în figura …… .
Comentarii:

10

Este interesant de studiat răspunsul sistemului şi pentru alte valori ale parametrilor regulatorului
diferit de cele considerate de optim.
143
Optimizări-C5-CuTot Win10
Spre exemplu considerăm:
Ti =0.1
Kv=10
Se construieşte schema cu aceste valori. Se trasează răspunsul.
Comentarii:

Este interesant de studiat această situaţie în condiţiile utilizării criteriului erorii pătratice
ponderate şi anume:

I1 () = ∫ t ⋅ E 2 (t)dt
0
Acesta încercând un studiu comparativ efectuat de Grahumm şi Lotrop a arătat că prin utilizarea
criteriului I1 nu se poate găsii un optim în interiorul domeniului, ci doar la limita sa, în timp ce
criteriile I2 şi I2 pentru obţinerea unui optim în interiorul domeniului, astfel se poate arăta că
pentru ca în cazul unui sistem de ordinul 2 se obţine un optim (minim) pentru valori ale atenuării
cuprinse între intervalul:
η=(0,6÷0,7) conform figurii 09.
De altfel conform figurii se poate deduce că utilizarea erorii pătratice ponderate ar fi cea mai
relevantă pentru determinarea minimului.
Considerăm schema din figura ………. eroarea ℰ (s) este aceiaşi ca şi în cazul criteriului
precedent adică:
1 1 Ti ⋅ Tp ⋅ s + Ti
E(s) = ⋅ = 2
1 + H0 (s) s Ti ⋅ Tp ⋅ s + (1 + k r ) ⋅ Ti ⋅ s + k v
în condiţiile în care funcţia de transfer a sistemului a fost:
H0
H(s) =
1 + H0 (s)
1 + Ti ⋅ s
H(s) = k r
(1 + Tp ⋅ s)Ti ⋅ s
1 + Ti ⋅ s
H(s) = Tp ⋅T 1+k
i
⋅ s 2 + Ti k r ⋅ s + 1
kr r
Ne reamintim că în cazul utilizării criteriului erorii pătratice:

I1 = ∫0 t ⋅ E 2 (t)dt, aceasta avea expresia:
Tp ⋅ k r + Ti Tp ⋅ Ti 1 1 + kr 1
I1 (Ti , k r ) = ; T2 = ;E = (Ti0 + );ω = ;
2 ⋅ k r (1 + k r ) kr 2T kr T
….
….
….
Ţinând seama de definiţia criteriului (funcţiei obiectiv) erorii pătratică ponderate:

J2 = ∫0 t ⋅ ε2 (t)dt se poate calcula valoarea ei.
2 i Tp ⋅T
2 Ti (1+kr ) 2 Tp ⋅T
i Tp ⋅T (1+kr )
i
Ti2 (Tp ⋅ T) + kr ⋅ Ti − Tp ⋅ Ti ⋅ Ti kr Ti2 Tp + kr − kr
J2 = 2 + = 2+
4k r 2 ⋅ Ti2 (1 + k r )2 4k r 2 ⋅ (1 + k r ) 2

Pentru determinarea optimului este necesară scrierea funcţiei în cele două forme caracteristice
reprezentării grafice şi respectiv utilizării Optimization Tool-box-lui.
Se notează:
Ti=x1=x

Kr=x2=y
144
Optimizări-C5-CuTot Win10
Pentru reprezentarea grafică:
Ti=x; kr=y; Tp=a

Ti = x; k r = y; Tp = a
x a⋅x(1+y)
x2 a2 ⋅ y − y
J(x, y) = f(x, y) = 2 +
4y 2(1 + y)2

P2
Pentru reprezenatrea grafică scriem expresia funcției obiectiv(… erorii pătratice
ponderate) sub forma:

1 (1 + 𝑦)2 𝑇𝑅 1
𝐽(𝑥, 𝑦) = 𝑓(𝑥, 𝑦) = 𝑥 2 2
+ ∙
4 𝑌 2 (1 + 𝑦)

f= @(x,y)= x^2(1+y)^2/(4*y^2)+ 100/(2*(1+y)^2)


ezsurfc(f,[0.1,1],[1,100])
Se observă că nu există un optim(minim) conturat, existând tendințe de scădere a
funcției obiectiv la scăderea Ti și la creșterea kr.
Cu optimization tool se defineste funcția obiectiv:
edit Cu0902flos (frestricție liniară,optimizare staționară)
function f=Cu0902flos(x)
f= x(1)^2(1+x(2))^2/(4*x(2)^2)+ 100/(2*(1+x(2))^2);
se apelează optimtool.
Se setează panoul de dialog Optimization Tool conform figurii fig.0902flos-a

linear inequalities A[-1 0;0 -1] b[0;0]


Se obține:

𝑓(𝑥 𝑥 ) = 1.58 ⋅ 1,0−4


𝑥1 0.1
𝑋 𝑥 = [𝑥 ] = [ ]
2 560.8
𝑇 0.1
[ 1] = [ ]
𝑘𝑅 560

Este posibilă si formularea restricțiilor sub forma neliniară.


function [c,ceq]= Cu0902clos(x)
c=[0.1-x(1);1-x(2)];
ceq=[ ];
Restricţia se inserează in spaţiul Nonlinear constraint function, conform figurii......
În continuare se realizează schema de test conform figurii de mai jos, în care se setează
valorile Ti și kr rezultate din analiza cu software-ul Optimization Tool.
Se simulează răspunsul la semnal treaptă si se obțin diagramele din figura fig. 0902-b.
Comparație cu fig.0901-b și 0901-d.
145
Optimizări-C5-CuTot Win10

Cu13

Exemplul 3.
Fie procesul caracterizat prin funcția de transfer:

1
𝐻𝑝 (𝑠) =
𝑠𝑇𝑝

Regulatorul prin care se comandă procesul este unul de tip PD având funcţia de transfer:

𝐻𝑅 (𝑠) = 𝑘ℝ (1 + 𝑆𝑇𝑅 )

Să se determine parametrii Tr şi kr ai regulatorului, astfel incât să se obtină un optim


(minim) pentru funcţia obiectiv adoptată, adica eroarea pătratică ponderată.


𝐽(𝑥, 𝑦) = 𝑓(𝑥, 𝑦) = ∫ 𝑡 ∙ 𝜖 2 (𝑡)𝑑𝑡
0

Schema de reglare are forma din figura 0903.

Funcţia de transfer a sistemului în bucla deschisă este:

1
𝐻0 (𝑠) = 𝐻𝑟 (𝑠) ⋅ 𝐻𝑝 (𝑠) = 𝑘𝑟 (1 + 𝑇𝑟 ) ⋅ =
𝑇𝑝 ∙ 𝑠
𝑘𝑟 1 + 𝑠 ⋅ 𝑇𝑟 𝑘𝑟 1
= ⋅ = ⋅ (1 + )
𝑇𝑝 𝑠 𝑇𝑝 ⋅ 𝑇𝑟 𝑠 ⋅ 𝑇𝑟

care este al unui element PI.


146
Optimizări-C5-CuTot Win10
𝐶(𝑠) ⋅ 𝐻0 (𝑠) = 𝑌(𝑠)
𝑊(𝑠) − 𝑌(𝑠) = 𝜀(𝑠)
1
= 𝜀(𝑠) ⋅ (1 + 𝐻0 (𝑠)) =. . . .
𝑠

1 1 1 1
𝜀 (𝑠) = ⋅ = ∙ 𝑘𝑟 𝑠∙𝑇𝑟+1 =
𝑠 1+𝐻0(𝑠) 𝑠 1+ ∙
𝑇𝑝∙𝑇𝑟 𝑠∙𝑇𝑟
𝑇𝑝 ∙ 𝑇𝑟 ∙ 𝑠 ∙ 𝑇𝑟 𝑇𝑝 ∙ 𝑇𝑟2
=
𝑠 ∙ (𝑇𝑝 ∙ 𝑇𝑟 ∙ 𝑠 ∙ 𝑇𝑟 ∙ 𝐾𝑟 ∙ 𝑠 ∙ 𝑇𝑟 + 𝐾𝑟) (𝑇𝑝 ∙ 𝑇𝑟 + 𝐾𝑟 ∙ 𝑇𝑟) ∙ 𝑠 ∙ 𝐾𝑟

𝑎
𝑎 𝑎 1
𝜀(𝑠) = = 𝑏 𝑐 = ∙
𝑏𝑠 + 𝑐 𝑠 + 𝑏 𝑠+𝑐
𝑏 𝑏

2𝑐 2𝑐 2𝑐
𝑎 − ∙𝑡 𝑎 ∞ ∞
∫ 𝑏 ∙ (𝑡 ∙ 𝑒 𝑏 ) 𝑑𝑡 = ∫0 𝑡 ∙ 𝑒 − 𝑏 ∙𝑡 𝑑𝑡 = 𝑡 ∫0 𝑒 − 𝑏 ∙𝑡 𝑑𝑡 −
𝑏
∞ 2𝑐
𝑏
2𝑐
− ∙𝑡 𝑎 𝑏 2𝑐
− ∙𝑡
+ ∙ 𝑒 − 𝑏 ∙𝑡 | ∞0] =
2𝑐
(𝑡 ∙ 𝑒 𝑏 𝑑𝑡) ∙ 1𝑑𝑡 = [𝑡 ∙ (− ) ∙ 𝑒 𝑏 | 2𝑐 2𝑐
∬ 𝑏 2𝑐 𝑎 𝑏 𝑏 𝑎 𝑏 𝑎
[− ∙ 𝑒 − 𝑏 ∙𝑡 | ∞0+ ∙ 𝑒 − 𝑏 ∙𝑡 | ∞0] = [0 ∙ (0 − 1)] = −
0𝑏 2𝑐 2𝑐 𝑏 2𝑐 2𝑐

Tp x 2
f(x, y) = − ⋅ ;
2 y
Tp x1 2
f(x) = f(x1 , x2 ) = − ⋅
2 x2

Vom căuta optimul funcției f(x) cu restricțiile liniare de tip inegalitate:


x(1) ≥ 0.001; Tr ≥ 0.01
adică:
x(2) ≥ 1; k r ≥ 1
−x(1) ≤ 0.001
−x(2) ≤ 1

−1 0 −0.01
A=[ ];b = [ ]
0 −1 −1
Start point [0.01;1]
Gresit;

Adaugare
147
Optimizări-C5-CuTot Win10
Controlerul PI la care sunt evidentiate problemele de setare a constantelor de timp este
descris de functia de transfer:

1 + 𝑇𝑖 ∙ 𝑠
𝐻(𝑠) = 𝑘𝑟
(1 + 𝑇𝑝 ∙ 𝑠)𝑇𝑖 ∙ 𝑠

Ne propunem să determinăm corespondența dintre kp și kI pe de-o parte și k2 si Ti pe de altă


parte.
Pentru inceput se operează setările prezentate in figura 11.01 și se urmarește aspectul
răspunsurilor celor 2 controlere.
Se modifică simultan valorile lui kp si k2 observându-se efectul. Se modifică simultan kI
și Ti determinandu-se prin identificare:

k2 = f(kp); k2 = f(Ti)

Se realizează schema din figura 11.02 și se setează pentru ambele regulatoare valorile kP,kD,kI pe
de-o parte și ăe de altă parte k2 și Td, precizat in figură.
Prin modificare setărilor se determină prin identificare corelatiile:

k2 = f(k2); k2 = f(Td

Fie un proces caracterizat de o funcţie de transfer Hp de forma:

𝐻0
𝐻(𝑠) =
1 + 𝐻0 (𝑠)

Se consideră un regulator PID (PID controller) cu ajutorul căruia se va regla


procesul.
1. Să se construiască schema de reglare, conform figurii untitled 0903.
2. Se setează ponderile componentelor P,I si D la valorile indicate.
3. Se simulează functionarea sistemului.
4. Comentarii.
5. Se setează pentru ponderile P,I si D alte valori. Se apreciază diferenţele dintre răspunsuri
pentru diverse situaţii.
6. Se deschide panoul de dialog al regulatorului, se acționează butonul Tune si în cadrul
noului panou de dialog se efectuează mai multe acordări interactive, urmările acordării
asupra răspunsurilor regulatorului si sistemului.
Fie același proces, caracterizat de aceeași funcție de transfer.

1 + 𝑇𝑖 ∙ 𝑠
𝐻(𝑠) = 𝑘𝑟
(1 + 𝑇𝑝 ∙ 𝑠)𝑇𝑖 ∙ 𝑠
148
Optimizări-C5-CuTot Win10

Se dispune de același regulator PID.


1. Să se construiasca schema de reglare a procesului introducând in bucla de reacție un
element de tip P (amplificator) conform figurii u0904. Pentru inceput se setează valoarea
amplificării la valoarea 1.
2. Se setează ponderile componentelor P,I si D la valorile indicate.
3. Se simulează functionarea sistemului.
4. Comentarii.
5. Se setează pentru ponderile P,I si D alte valori. Se apreciază diferentele intre răspunsuri
pentru diverse situații.
6. Se deschide panoul de dialog al regulatorului, se acționează butonul Tune si în cadrul
noului panou de dialog se efectuează mai multe acordări interactive, urmările acordării
asupra răspunsurilor regulatorului si sistemului.
7. Se setează pentru valoarea amplificării din bucla de reacție diferite valori subunitare si
supraunitare. Se urmărește efectul acestora asupra răspunsurilor sistemului.

2. a.
Pentru reprezentare este necesar să se atribuie o valoare numerică constantei de timp a
procesului şi adoptăm:
Tp = 10
[x,y]=meshgrid (0;0.1;5 0; 0.1; 10) Enter
Se afişează pe monitor matricile corespunzătoare variabilelor x şi y.
Se înscrie în fereastra de comandă expresia erorii :
>> z=(x+10.*y)./(2.*y.^2+2.*y) Enter
Se afişează pe monitor matricea corespunzătoare erorii z.
>>surf(x,y,z) Enter
Se afişează suprafaţa din figura 4.2 care arată că nu există un minim local.
b.
>>f=@(x,y)(x+10.*y)-
/(2.*y.^2+2.*y) Enter
30 >> ezsurfc(f,[0,10],[0,5])
25 Se afişează aceeaşi suprafaţă sub
20
altă formă, dar nici pe această
reprezentare nu se observă
J(Ti,kr)

15
existenţa unui minim local.
10

0
10
5
4
5 3
2
1
kr 0 0
fig.4.2 Ti
149
Optimizări-C5-CuTot Win10
Z=abatere(Ti,kr)
c.
Determinarea minimului folosind
12 funcţia „optimization-tool”
10 Se notează variabilele Ti şi kr
8
astfel:
x1 = x = Ti
6
x2 = z = k r
4 Se consideră întâi funcţia fără
2 restricţii. Se obţine un minim:
0
y=0,00219;
5 Ti=-223,6
4 10
3 8 Kr=2256
2
4
6
Constantă de timp negativă nu
1
0 0
2
este posibilă, prin urmare vom
kr fig.4.3 Ti
considera problema de optim cu
o restricţie de forma: Ti = x ≥ 0
2. d.
Se consideră aceiaşi funcţie:
y=f=(x(1)+10*x(2))/(2*x(2)^2+2*x(2))
edit cu0701fc Enter
function f=cu0701fc(x);
f=(x(1)+10*x(2))/(2*x(2)^2+2*x(2));
(se editează funcţia)
function f=cu0701fc (x)
f=. . . . . . . . .;
se editează restricţia:
function [c, ceq]=cu0701c(x)
c=0.001-x(1);
ceq=[ ];
150
Optimizări-C5-CuTot Win10

Din fereastra de comandă se apelează


OptimTool şi se fac setările din figura 4.4.
Se efectueazăă diverse alte setări în
OptimTool în scopul găsirii unor alte puncte
de minim.

Start point 1 [0,1;0,1]


Optim 1 (minim) [x1 ∗] = [761; 2426]; f(x1 ∗) = 0.002
Start point 2 [5;5]
Optim 2 (minim) [x2 ∗] = [0.028; 2409]; f(x1 ∗) = 0.002
Start point 3 []
Optim 3 (minim) [x3 ∗] = [; ]; f(x3 ∗) =

Simularea sistemului
Din MatLab se accesează File-New Model, obţinându-se caseta de desen/proiectare din figura
4.5. Apoi se accesează Start-Simulink-Libary Browser, obţinându-se accesul la componentele
Simulink.

Se desenează în caseta schema bloc a sistemului ca în figura 4.6, adăugându-se dispozitive de


măsurare/vizualizare şi se salvează cu un nume adecvat.
151
Optimizări-C5-CuTot Win10

Se efectuează simularea prin acţionarea butonului


Start Simulation. Simulation-Start
Răspunsul sistemului este cel reprezentat în figura 4.8.
Comentarii:
y
sursă ε  1  u 1
+ k r 1  
-  Ti  s  Tp  s 1

fig.4.6
152
Optimizări-C5-CuTot Win10

Este interesant de studiat răspunsul sistemului şi pentru alte valori ale parametrilor regulatorului
diferiţi de cele considerate de optim.
Spre exemplu considerăm:
Ti =0.1
Kv=10
Se construieşte schema cu aceste valori. Se trasează răspunsul.
Comentarii:
Este interesant de studiat această situaţie în condiţiile utilizării criteriului erorii pătratice
ponderate şi anume:

AICI


J2 () = ∫ t ⋅ ε2 (t)dt J1
0
Acesta întrucât un studiu comparativ efectuat de Grahumm şi Lotrop a arătat că prin utilizarea
criteriului â J1 nu se poate găsii un optim în interiorul domeniului, ci doar la limita sa, în timp
ce criteriile J2 şi J3 pentru obţinerea unui optim în interiorul domeniului, astfel se poate arăta
că pentru ca în cazul unui sistem de ordinul 2 se obţine un optim (minim) pentru valori ale
atenuării cuprinse între intervalul:
da = η = (0,6 ÷ 0,7)conformη=(0,6÷0,7) conform figurii 09.
De altfel conform figurii se poate deduce că utilizarea erorii pătratice ponderate ar fi cea mai
relevantă pentru determinarea minimului.
Considerăm schema din figura ………. eroarea ℰ (s) este aceiaşi ca şi în cazul criteriului
precedent adică:
1 1 Ti ⋅ Tp ⋅ s + Ti
ε(s) = ⋅ = 2
1 + H0 (s) s Ti ⋅ Tp ⋅ s + (1 + k r ) ⋅ Ti ⋅ s + k v
153
Optimizări-C5-CuTot Win10
în condiţiile în care funcţia de transfer a sistemului a fost:
H0
H(s) =
1 + H0 (s)
1 + Ti ⋅ s
H(s) = k r
(1 + Tp ⋅ s)Ti ⋅ s
1 + Ti ⋅ s
H(s) = Tp ⋅T 1+k
i
⋅ s 2 + Ti k r ⋅ s + 1
kr r
Ne reamintim că în cazul utilizării criteriului erorii pătratice:

I1 = ∫0 t ⋅ E 2 (t)dt, aceasta avea expresia:
Tp ⋅ k r + Ti Tp ⋅ Ti 1 1 + kr 1
I1 (Ti , k r ) = ; T2 = ;E = (Ti0 + );ω = ;
2 ⋅ k r (1 + k r ) kr 2T kr T
….
….
….
Ţinând seama de definiţia criteriului (funcţiei obiectiv) erorii pătratică ponderate:

J2 = ∫0 t ⋅ ε2 (t)dt se poate calcula valoarea ei.
2 i Tp ⋅T
2 Ti (1+kr ) 2 Tp ⋅T
i Tp ⋅T (1+kr )
i
Ti2 (Tp ⋅ T) + kr ⋅ Ti − Tp ⋅ Ti ⋅ Ti kr Ti2 Tp + kr − kr
J2 = 2 + = 2+
4k r 2 ⋅ Ti2 (1 + k r )2 4k r 2 ⋅ (1 + k r ) 2

Pentru determinarea optimului este necesară scrierea funcţiei în cele două forme caracteristice
reprezentării grafice şi respectiv utilizării Optimization Tool-box-lui.
Pentru reprezentarea grafică se notează:
Ti = x1 = x; k r = x2 = y; Tp = a

Ti = x; k r = y; Tp = a
x a⋅x(1+y)
x2 a2 ⋅ y − y
J2 (x, y) = f(x, y) = 2 +
4y 2(1 + y)2

P2
Pentru reprezentarea grafică scriem expresia funcției obiectiv(… erorii pătratice
ponderate) sub forma:
1 2 (1 + y)2 x 1
J(x, y) = f(x, y) = x +
4 y2 2 (1 + y)2

În MatLab:

f= @(x,y)= x^2(1+y)^2/(4*y^2)+ 100/(2*(1+y)^2)


ezsurfc(f,[0.1,1],[1,100])
Se observă că nu există un optim(minim) conturat, existând tendințe de scădere a
funcției obiectiv la scăderea Ti și la creșterea kr.
Cu optimization tool se defineste funcția obiectiv:
edit Cu0902flos (frestricție liniară,optimizare staționară)
function f=Cu0902flos(x)
f= x(1)^2(1+x(2))^2/(4*x(2)^2)+ 100/(2*(1+x(2))^2);
se apelează optimtool.
Se setează panoul de dialog Optimization Tool conform figurii fig.0902flos-a
154
Optimizări-C5-CuTot Win10

linear inequalities A[-1 0;0 -1] b[0;0]


Se obține:
x1 ∗ T 0.1
[x ∗] = [x ∗] = [ i ] = [ ] ; f(x ∗) = 1.6 ⋅ 10−6
2 kr 561
Este posibilă si formularea restricțiilor sub forma neliniară.
function [c, ceq]= Cu0902clos(x)
c=[0.1-x(1);1-x(2)];
ceq=[ ];
Restricţia se inserează in spaţiul Nonlinear constraint function, conform figurii......
De completat