You are on page 1of 5

Laborator 5 M.A.C.

1. Extreme locale ale unei functii de o variabila


Exemplul 1 : Gasiti extremele locale pe intervalul [0, 12] ale functiei f : RR, f(x) =
x
3
13x
2
32 x 20
Definim functia si o reprezentam grafic :
fx_ = x
3
- 13 x
2
+ 32 x - 20;
Plotfx, x, 0, 12
Gasim punctele critice (stationare) in care derivata de ordinul intai se anuleaza :
fdx_ = Dfx, x;
spcf = Solvefdx = 0, x;
vpcf = x . spcf;
Print"Punctele critice sunt :"
DoPrint "x = ", Nvpcfi, i, 1, Lengthvpcf
Gasim punctele de extrem studiind in punctele critice semnul derivatei a doua :
fd2x_ = Dfx, x, 2;
DoIffd2vpcfi < 0,
Print"Punctul x = ", Nvpcfi, " este punct de maxim local", Iffd2vpcfi > 0,
Print"Punctul x = ", Nvpcfi, " este punct de minim local", i, 1, Lengthvpcf
Exemplul 2 : Gasiti extremele locale pe intervalul [0, 2] ale functiei f : RR, f(x) = x
cos(x
2
4x).
gx_ = x Cosx^2 + 4 x;
Plotgx, x, 0, 2
In acest caz pentru ecuatia f ' (x) = 0 nu se pot gasi solutii exacte :
gdx_ = Dgx, x
Solvegdx = 0, x
Vom cauta solutii aproximative pe intervalul [0, 2], folosind metoda prezentata in Laboratorul 3 :
Plotgdx, x, 0, 2
pcg1 = FindRootgdx = 0, x, 0.3
pcg2 = FindRootgdx = 0, x, 0.6
pcg3 = FindRootgdx = 0, x, 1.1
pcg4 = FindRootgdx = 0, x, 1.6
gd2x_ = Dgx, x, 2;
vpcg = x . pcg1, x . pcg2, x . pcg3, x . pcg4;
DoIfgd2vpcgi < 0,
Print"Punctul x = ", Nvpcgi, " este punct de maxim local", Ifgd2vpcgi > 0,
Print"Punctul x = ", Nvpcgi, " este punct de minim local", i, 1, Lengthvpcg
Observatii :
- Minimul global ale unei functii continue pe intervalul [a, b] este fie cel mai mic minim local din interiorul intervalului, fie una
dintre valorile f(a), f(b). Maximul global ale unei functii continue pe intervalul [a, b] este fie cel mai mare maxim local din interio-
rul intervalului, fie una dintre valorile f(a), f(b). In cazul exemplului 2 :
xmin = 0, 2; xmax = 0, 2;
DoIfgd2vpcgi < 0, xmax = Appendxmax, vpcgi,
Ifgd2vpcgi > 0, xmin = Appendxmin, vpcgi, i, 1, Lengthvpcg
tabmin = SortTableNgxmini, xmini, i, 1, Lengthxmin;
TableFormtabmin, TableHeadings- None, "fx", "x", TableSpacing- 2, 4
Print"Minimul global este ", tabmin1, 1, " si este atins in x = ", tabmin1, 2
tabmax = SortTableNgxmaxi, xmaxi, i, 1, Lengthxmax;
TableFormtabmax, TableHeadings- None, "fx", "x", TableSpacing- 2, 4
Print"Maximul global este ", tabminLengthxmax, 1,
" si este atins in x = ", tabminLengthxmax, 2
- Comenzile Mathematica pentru gasirea extremelor locale sunt "FindMinimum" si "FindMaximum". In cazul exemplului 2
minimele locale sunt :
FindMinimumgx, x, 0.6
FindMinimumgx, x, 1.5
Maximele locale sunt :
FindMaximumgx, x, 1.1
FindMaximumgx, x, 0.3
- Extremele globale pot fi gasite (uneori) folosind comenzile "NMinimize" si "NMaximize" :
NMinimizegx, 0 s x s 2, x
NMaximizegx, 0 s x s 2, x, Method - "DifferentialEvolution"
Exercitiu : Gasiti extremele locale si globale pe intervalul [0, 2] ale functiei f : RR, f(x) =
x
3
Sinx
2
2
2. Extreme locale ale unei functii de mai multe variabile
Exemplul 3 : Gasiti extremele locale ale functiei f : R
2
R, f(x, y) = x
2
5y
2
1
Definim functia si o reprezentam grafic :
2 Laborat or 5 Mat he m at ica 0. nb
In[78]:= Fx_, y_ = -x
2
- 5 y
2
+ 1;
Plot3DFx, y, x, -2, 2, y, -1, 1
Calculam derivatele partiale si gasim unicul punct stationar :
In[80]:= DFxx_, y_ = DFx, y, x
DFyx_, y_ = DFx, y, y
SolveDFxx, y = 0, DFyx, y = 0, x, y
Se poate observa ca (0,0) este punct de extrem reprezentand grafic semnul diferentei F(x,y)-F(0,0) :
In[83]:= DiFx_, y_ = Fx, y - F0, 0
Plot3DSignDiFx, y, x, -2, 2, y, -1, 1
Matricea Hessiana este :
HFx_, y_ = DFx, y, x, 2, DFx, y, x, y, DFx, y, x, y, DFx, y, y, 2;
MatrixFormHFx, y
Studiul signaturii :
DetHF0, 0
HF0, 01, 1
Matricea Hessiana este negativ definita in (0, 0), deci acest punct este de maxim local, lucru confirmat si de instructiunea "Find-
Maximum" :
FindMaximumFx, y, x, 1, y, 1
Exercitiu : Gasiti extremele locale ale functiei f : R
2
R, f(x, y) = y
2
x
2
3. Extreme cu legaturi
Exemplul 4 : Gasiti punctele de extrem ale functiei f : R
3
R, f(x, y,z) = xyz conditionata de
legaturile x+y+z = 5 si xy + yz + zx = 8
Construim functia L a lui Lagrange :
In[85]:= Fx_, y_, z_ = x y z; L1x_, y_, z_ = x + y + z - 5; L2x_, y_, z_ = x y + y z + z x - 8;
Lx_, y_, z_, _, _ = Fx, y, z + L1x, y, z + L2x, y, z
Gasim punctele critice :
In[93]:= var = x, y, z, , ; Ec = ;
DoEc = AppendEc, DLx, y, z, , , vari = 0, i, Lengthvar
spc = SolveEc, var
mc = Tablex, y, z, , . spci, i, Lengthspc; TableFormmc
Diferentiem legaturile intre variabile :
In[89]:= dL1x_, y_, z_ = ReplaceAllDtL1x, y, z, Dtx -> dx, Dty -> dy, Dtz -> dz
dL2x_, y_, z_ = ReplaceAllDtL2x, y, z, Dtx -> dx, Dty -> dy, Dtz -> dz
Laborat or 5 Mat he m at ica 0. nb 3
Calculam diferentiala de ordinul doi a lui L :
In[91]:= dLx_, y_, z_, _, _ =
ReplaceAllDtLx, y, z, , , Dtx -> dx, Dty -> dy, Dtz -> dz, Dt - 0, Dt - 0;
d2Lx_, y_, z_, _, _ = ReplaceAllDtdLx, y, z, , ,
Dtx -> dx, Dty -> dy, Dtz -> dz, Dt - 0, Dt - 0, Dtdx - 0, Dtdy - 0, Dtdz - 0
Pentru primul punct critic
16
9
,
4
3
, x
4
3
, y
4
3
, z
7
3
relatiile intre diferentialele dx, dy, dz sunt :
In[96]:= s1 = SolvedL1mc1, 1, mc1, 2, mc1, 3 = 0,
dL2mc1, 1, mc1, 2, mc1, 3 = 0, dy, dz
Diferentiala de ordinul doi in acest punct este :
E1dx_ = ReplaceAlld2Lmc1, 1, mc1, 2, mc1, 3, mc1, 4, mc1, 5, s11
Diferentiala de ordinul doi este negativ definita, deci x
4
3
, y
4
3
, z
7
3
este punct de maxim conditionat.
Exercitiu : Studiati celelalte puncte critice.
4. Metoda gradientului
Exemplul 5 : Gasiti extremele locale ale functiei f : R
2
R, f(x, y) = 2x
2
3y
2
4
Definim functia si o reprezentam grafic :
In[116]:= Fx_, y_ = 2 x
2
+ 3 y
2
- 4;
gF = Plot3DFx, y, x, -1, 1, y, -1, 1, ColorFunction- "SolarColors"
Calculam gradientul functiei F :
In[104]:= GrFx_, y_ = DFx, y, x, DFx, y, y
Algoritmul de minimizare pe directia celei mai rapide descresteri a functiei F(x,y) are urmatorii pasi :
- Se fixeaza punctul initial
x0
y0
si se calculeaza gradientul lui F in acest punct, GrF(x0,y0)
- Se considera
x1
y1

x0
y0

GrF x0,y0
GrF x0, y0 si se determina astfel incat () = F(x1, y1) -
F(x0, y0) sa atinga minimul. Cu m astfel calculat se calculeaza
x1
y1

x0
y0

m
GrF x0,y0
GrF x0, y0
- Se calculeaza in acelasi mod punctele
x2
y2
,
x3
y4
,
x4
y4
,.....
- Algoritmul se opreste atunci cand valoarea m devine mai mica decat toleranta .
O varianta de implementare a acestui algoritm este urmatoarea :
4 Laborat or 5 Mat he m at ica 0. nb
In[122]:= x0, y0 = 1, -1;
eps = 0.000001; m = eps + 1;
fx_, y_, _ = x, y -

NormGrFx, y
GrFx, y; vs = x0, y0, Fx0, y0;
Whilem > eps, x1, y1 = fx0, y0, ; _ = Fx1, y1 - Fx0, y0;
sm = NMinimize, > 0, ; m = . sm2; x1, y1 = fx0, y0, m;
Printx0, y0, m; vs = Appendvs, x1, y1, Fx1, y1; x0, y0 = x1, y1
Programul de mai sus a construit o lista vs cu coordonatele x, y, z=F(x,y) ale punctelor succesive calculate. Aceste puncte pot fi
asezate pe un grafic folosond comanda "ListPointPlot3D" si pot fi unite prin linii folosind comenzile "Graphics3D" si "Line" :
In[126]:= gp = ListPointPlot3Dvs, PlotStyle - PointSize0.03;
gl = Graphics3DGreen, Linevs;
Asezam pe aceeasi figura graficul functiei, punctele si liniile :
In[128]:= ShowgF, gp, gl, PlotRange - All
Un detaliu (zoom) al figurei anterioare :
In[129]:= ShowgF, gp, gl, PlotRange - -0.1, 0.1, -0.1, 0.1, All
Mathematica are la dispozitie comanda "FindMinimumPlot" care determina punctul de minim folosind o varianta mai sofisticata a
algoritmului anterior, numita metoda gradientului conjugat :
In[114]:= Needs"Optimization`UnconstrainedProblems`"
In[115]:= FindMinimumPlotFx, y, x, 1, y, -1, Method -> "ConjugateGradient"
Exercitiu : Incercati sa implementati in Matlab algoritmul de mai sus.
Laborat or 5 Mat he m at ica 0. nb 5

You might also like