Éléments d'optimisation

40
Modélisation Statistique Éléments d’Optimisation c D.GHORBANZADEH

Upload: danghuong

Post on 05-Jan-2017

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Éléments d'Optimisation

Modélisation Statistique

Éléments d’Optimisationc© D.GHORBANZADEH

Page 2: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 1/39

Éléments d’Optimisation

Fonctions d’une variable réelle

Soit f une fonction définie sur un intervalleI deR à valeurs dansR.Soit x ∈ I.

Définition 1 x est un maximum global def surI si et seulement si :

f(x) ≥ f(x) ∀x ∈ I

On notera alors : x = Arg supx∈I

f(x).

Définition 2 x est un maximum local def surI si et seulement si∃ε > 0 tel que :

f(x) ≥ f(x) ∀x ∈ [x − ε, x + ε].

Définition 3 x est un minimum global def surI si et seulement si :

f(x) ≤ f(x) ∀x ∈ I

On notera alors : x = Arg infx∈I

f(x).

Définition 4 x est un minimum local def surI si et seulement si∃ ε > 0 tel que :

f(x) ≤ f(x) ∀x ∈ [x − ε, x + ε].

Définition 5 x est un point critique def si et seulement sif ′(x) existe etf ′(x) = 0.

Proposition 1 Si x est un maximum (ou minimum) local def alors, soitx estextrémité deI, soit x est un point critique def

N Rappel (Formule de Taylor)

Soit f définie surI de classeC2. ∀u, v ∈ I, ∃ x0 ∈]u, v[ tel que :

f(u) = f(v) + (u − v) f ′(v) +(u − v)2

2f

′′

(x0).

Proposition 2 Soit f définie surI de classeC2 et x un point critique def . On aalors :

1. sif′′ ≤ 0 surI alorsx est un maximum global def surI.

2. sif′′(x) ≤ 0 surI alorsx est un maximum local def surI.

K D.GHORBANZADEH

Page 3: Éléments d'Optimisation

'

&

$

%

2/39 Éléments d’Optimisation avec Matlab

Sous MATLAB on utilise la fonctionfmin pour déterminer le Arginfx

f(x).

Pour déterminer le Argsupx

f(x) on utilise la relation :

Arg supx

f(x) = Arg infx

(−f(x)).

Pour déterminer le Arginfx

Finf on crée la fonction :

function y=Finf(x)y=l’expression deFinf ;

☞ sauver sous nom :Finf.m

Pour obtenir le résultat crée un fichier script contenant la commande :

xmin=fmin(’Finf’,[ x(0) , x(1)]) ;

Pour déterminer le Argsupx

Fsup on crée la fonction :

function y=Fsup(x)y=− l’expression deFsup ;

☞ sauver sous nom :Fsup.m

☞Pour obtenir le résultat crée un fichier script contenant la commande :

xmax=fmin(’Fsup’,[x(0) , x(1)]) ;

K D.GHORBANZADEH

Page 4: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 3/39

Exemple 1 Soit f(x) = x (1 − x) l1[0,1](x).

Pour définir la fonction−f on a la fonction suivante :

f1.m

1 function y1=f1(x)2 y1=-x.*(1-x);

c©D.GHORBANZADEH (2004)

Pour obtenir Argsupx∈[0,1]

f(x) on a le script suivant :

f1max.m

1 V=version; %Version de Matlab2 if (V(1)==5) %version 53 xm=fmin(’f1’,0,1,[14,1.e-12]);4 disp([’xmax= ’,num2str(xm)])5 else %version 66 options = optimset(’TolX’,1e-12,’Display’,...7 ’iter’,’TolFun’,1e-8);8 xm=fminbnd(@f1,0,1,options);9 disp([’xmax= ’,num2str(xm)])

10 end

c©D.GHORBANZADEH (2004)

On remarque que : Argsupx∈[0,1]

f(x) =1

2.

Pour obtenir le graphique def on a le script suivant :

f1GRF.m

1 clear all2 x=linspace(0,1,200)’;3 x0=.5*ones(length(x),1);4 y1=-f1(x);5 plot(x,y1,’k’)6 hold on7 plot(x0,y1,’:k’)8 hold off

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 5: Éléments d'Optimisation

'

&

$

%

4/39 Éléments d’Optimisation avec Matlab

Exemple 2 Soit fa,b(x) = xa (1 − x)b l1[0,1](x) (a > 0, b > 0).

Pour définir la fonction−fa,b on a la fonction suivante :

f2.m

1 function y2=f2(x,a,b)2 y2=-x.^a.*(1-x).^b;

c©D.GHORBANZADEH (2004)

Pour obtenir Argsupx∈[0,1]

fa,b(x) on a le script suivant :

f2max.m

1 V=version; %Version de Matlab2 a=2; b=3;3 if (V(1)==5) %version 54 xm=fmin(’f2’,0,1,[10,1.e-10],a,b);5 disp([’xmax= ’,num2str(xm)])6 else %version 67 options = optimset(’TolX’,1e-12,’Display’,...8 ’iter’,’TolFun’,1e-8);9 xm=fminbnd(@f2,0,1,options,a,b);

10 disp([’xmax= ’,num2str(xm)])11 end

c©D.GHORBANZADEH (2004)

On remarque que : Argsupx∈[0,1]

fa,b(x) =a

a + b.

Pour obtenir les graphiques def1,2, f2,2 etf2,3 on a le script suivant :

K D.GHORBANZADEH

Page 6: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 5/39

f2GRF.m

1 clear all2 x=linspace(0,1,200)’;3 a=[1 2 2]’;4 b=[2 2 3]’;5 c=a./(a+b);6 x1=c(1)*ones(length(x),1);7 x2=c(2)*ones(length(x),1);8 x3=c(3)*ones(length(x),1);9 y1=-f2(x,a(1),b(1));

10 y2=-f2(x,a(2),b(2));11 y3=-f2(x,a(3),b(3));12 plot(x,y1,’Linestyle’,’:’,’color’,’k’)13 hold on14 plot(x1,y1,’Linestyle’,’:’,’color’,[0 .8 .9])15 plot(x2,y2,’Linestyle’,’:’,’color’,[.8 0 .9])16 plot(x3,y3,’Linestyle’,’:’,’color’,[.9 .8 0])17 plot(x,y2,’color’,’k’)18 plot(x,y3,’Linestyle’,’--’,’color’,’k’)19 xlabel(’x’)20 box off21 hold off22 gtext(’\leftarrow f_{1,2}(x)’)23 gtext(’\downarrow f_{2,2}(x)’)24 gtext(’\downarrow f_{2,3}(x)’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 7: Éléments d'Optimisation

'

&

$

%

6/39 Éléments d’Optimisation avec Matlab

Exemple 3 Soit fa,b(x) = xa e−b x l1]0,∞[(x) (a > 0, b > 0).

Pour définir la fonction−fa,b on a la fonction suivante :

f3.m

1 function y3=f3(x,a,b)2 y3=-x.^a.*exp(-x.*b);

c©D.GHORBANZADEH (2004)

Pour obtenir les graphiques def2,2, f1,2 etf3,4 on a le script suivant :

f3GRF.m

1 clear all2 x=linspace(0,5,200)’;3 a=[2 1 3]’;4 b=[2 2 4]’;5 c=a./b;6 x1=c(1)*ones(length(x),1);7 x2=c(2)*ones(length(x),1);8 x3=c(3)*ones(length(x),1);9 y1=-f3(x,a(1),b(1));

10 y2=-f3(x,a(2),b(2));11 y3=-f3(x,a(3),b(3));12 plot(x,y1,’Linestyle’,’:’,’color’,’k’)13 hold on14 plot(x1,y1,’Linestyle’,’:’,’color’,[.13 .19 .23])15 plot(x2,y2,’Linestyle’,’:’,’color’,[.29 .31 .37])16 plot(x3,y3,’Linestyle’,’:’,’color’,[.1315 .1380 .21])17 plot(x,y2,’color’,’k’)18 plot(x,y3,’Linestyle’,’--’,’color’,’k’,’linewidth’,2)19 xlabel(’x’)20 box off21 hold off22 gtext(’\leftarrow f_{2,2}(x)’)23 gtext(’\leftarrow f_{1,2}(x)’)24 gtext(’\downarrow f_{3,4}(x)’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 8: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 7/39

Pour obtenir Argsupx>0

fa,b(x) on a le script suivant :

f3max.m

1 V=version; %Version de Matlab2 a=2; b=2;3 if (V(1)==5) %version 54 xm=fmin(’f3’,1.e-12,10,[10,1.e-10],a,b);5 disp([’xmax= ’,num2str(xm)])6 else %version 67 options = optimset(’TolX’,1e-12,’Display’,...8 ’iter’,’TolFun’,1e-8);9 xm=fminbnd(@f3,0,1,options,a,b);

10 disp([’xmax= ’,num2str(xm)])11 end

c©D.GHORBANZADEH (2004)

On remarque que : Argsupx>0

fa,b(x) =a

b.

Exemple 4 Soit fµ,σ2(x) =1

σ√

2πexp

(

−(x − µ)2

2σ2

)

(µ ∈ R, σ ∈ R⋆+).

Pour définir la fonction−fµ,σ2 on a la fonction suivante :

f4.m

1 function y4=f4(x,mu,sigma)2 y4=-normpdf(x,mu,sigma);

c©D.GHORBANZADEH (2004)

Pour obtenir les graphiques def−2,2, f0,2 etf3,4 on le script suivant :

K D.GHORBANZADEH

Page 9: Éléments d'Optimisation

'

&

$

%

8/39 Éléments d’Optimisation avec Matlab

f4GRF.m

1 clear all2 mu=[-2 0 2]’; sigma=[2 2 2]’;3 a=3.5*max(mu)+max(sigma);4 x=linspace(-a,a,200)’;5 x1=mu(1)*ones(length(x),1);6 x3=mu(3)*ones(length(x),1);7 for i=1:1:length(mu)8 y4(:,i)=-f4(x,mu(i),sigma(i));9 end

10 plot(x,y4(:,1),’Linestyle’,’:’,’color’,...11 [rand(1) rand(1) rand(1)],’Linewidth’,3)12 hold on13 plot(x1,y4(:,1),’Linestyle’,’:’,’color’,...14 [rand(1) rand(1) rand(1)])15 plot(x3,y4(:,3),’Linestyle’,’:’,’color’,...16 [rand(1) rand(1) rand(1)])17 plot(x,y4(:,2),’color’,’k’)18 plot(x,y4(:,3),’Linestyle’,’--’,’color’,’k’)19 xlabel(’x’)20 box off21 hold off22 gtext(’f_{-2,2}(x) \rightarrow ’)23 gtext(’\downarrow f_{0,2}(x)’)24 gtext(’\leftarrow f_{2,2}(x)’)

c©D.GHORBANZADEH (2004)

Pour obtenir Argsupx

fµ,σ2(x) on a le script suivant :

K D.GHORBANZADEH

Page 10: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 9/39

f4max.m

1 V=version; %Version de Matlab2 mu=-2; sigma=2;3 if (V(1)==5) %version 54 xm=fmin(’f4’,-3,3,[10,1.e-10],mu,sigma);5 disp([’xmax= ’,num2str(xm)])6 else %version 67 options = optimset(’TolX’,1e-12,’Display’,...8 ’iter’,’TolFun’,1e-8);9 xm=fminbnd(@f4,-3,3,options,mu,sigma);

10 disp([’xmax= ’,num2str(xm)])11 end

c©D.GHORBANZADEH (2004)

On remarque que : Argsupx∈R

fµ,σ2(x) = µ.

K D.GHORBANZADEH

Page 11: Éléments d'Optimisation

'

&

$

%

10/39 Éléments d’Optimisation avec Matlab

Exemple 5 Soit fa,b(x) = sinax e−b x l1]0,∞[(x) (a > 0, b > 0).

Pour définir la fonction−fa,b on a la fonction suivante :

f5.m

1 function y5=f5(x,a,b)2 y5=-sin(x.*a).*exp(-x.*b);

c©D.GHORBANZADEH (2004)

Pour obtenir les graphiques def1,1, f2,3 etf2,4 on a le script suivant :

f5GRF.m

1 clear all2 x=linspace(0,6,200)’;3 a=[1 2 2];4 b=[1 3 4];5 for i=1:1:length(a)6 y5(:,i)=-f5(x,a(i),b(i));7 end8 plot(x,y5(:,1),’Linestyle’,’:’,’color’,’k’)9 hold on

10 plot(x,y5(:,2),’color’,’k’)11 plot(x,y5(:,3),’Linestyle’,’--’,’color’,’k’)12 xlabel(’x’)13 box off14 hold off15 gtext(’\leftarrow f_{1,1}(x)’)16 gtext(’\leftarrow f_{2,3}(x)’)17 gtext(’f_{2,4}(x)\uparrow ’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 12: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 11/39

Pour obtenir Argsupx>0

fa,b(x) on a le script suivant :

f5max.m

1 V=version; %Version de Matlab2 a=1; b=1;3 if (V(1)==5) %version 54 xm=fmin(’f5’,1.e-20,pi,[10,1.e-12],a,b);5 disp([’xmax= ’,num2str(xm)])6 else %version 67 options = optimset(’TolX’,1e-12,’Display’,...8 ’iter’,’TolFun’,1e-8);9 xm=fminbnd(@f5,1.e-20,pi,options,a,b);

10 disp([’xmax= ’,num2str(xm)])11 end

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 13: Éléments d'Optimisation

'

&

$

%

12/39 Éléments d’Optimisation avec Matlab

Exemple 6 Soit fa,b(x) = log(a + e−b |x|) (a > 0, b > 0).

Pour définir la fonction−fa,b on a la fonction suivante :

f6.m

1 function y6=f6(x,a,b)2 y6=-log(a+exp(-abs(x).*b));

c©D.GHORBANZADEH (2004)

Pour obtenir les graphiques def1,1, f1,0.6 etf1,0.3 on ale script suivant :

f6GRF.m

1 clear all2 x=linspace(-15,15,200)’;3 a=[1 1 1];4 b=[1 .6 .3];5 for i=1:1:length(a)6 y6(:,i)=-f6(x,a(i),b(i));7 end8 plot(x,y6(:,1),’Linestyle’,’:’,’color’,’k’)9 hold on

10 plot(x,y6(:,2),’color’,’k’)11 plot(x,y6(:,3),’Linestyle’,’--’,’color’,’k’)12 xlabel(’x’)13 box off14 hold off15 gtext(’f_{1,1}(x)\rightarrow ’)16 gtext(’f_{1,.6}(x)\rightarrow’)17 gtext(’\leftarrow f_{1,.3}(x)’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 14: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 13/39

Pour obtenir Argsupx∈R

fa,b(x) on a le script suivant :

f6max.m

1 V=version; %Version de Matlab2 a=5; b=1;3 if (V(1)==5) %version 54 xm=fmin(’f6’,-2,2,[10,1.e-10],a,b);5 disp([’xmax= ’,num2str(xm)])6 else %version 67 options = optimset(’TolX’,1e-12,’Display’,...8 ’iter’,’TolFun’,1e-8);9 xm=fminbnd(@f6,-2,2,options,a,b);

10 disp([’xmax= ’,num2str(xm)])11 end

c©D.GHORBANZADEH (2004)

On remarque que : Argsupx∈R

fa,b(x) = 0.

K D.GHORBANZADEH

Page 15: Éléments d'Optimisation

'

&

$

%

14/39 Éléments d’Optimisation avec Matlab

Exemple 7 Soit fa,b(x) =1

a2 + (x − b)2(a > 0, b ∈ R).

Pour définir la fonction−fa,b on a la fonction suivante :

f7.m

1 function y7=f7(x,a,b)2 y7=-1./((x-b).^2.+a^2);

c©D.GHORBANZADEH (2004)

Pour obtenir les graphiques def0.5,1, f0.5,6 etf0.7,3 on a le script suivant :

f7GRF.m

1 clear all2 x=linspace(-6,12,200)’;3 a=[.5 .5 .7]’; b=[1 6 3]’;4 x1=b(1)*ones(length(x),1);5 x2=b(2)*ones(length(x),1);6 x3=b(3)*ones(length(x),1);7 for i=1:1:length(a)8 y7(:,i)=-f7(x,a(i),b(i));9 end

10 plot(x,y7(:,1),’:k’)11 hold on12 plot(x1,y7(:,1),’Linestyle’,’:’,’color’,...13 [rand(1) rand(1) rand(1)])14 plot(x2,y7(:,2),’Linestyle’,’:’,’color’,...15 [rand(1) rand(1) rand(1)])16 plot(x3,y7(:,3),’Linestyle’,’:’,’color’,...17 [rand(1) rand(1) rand(1)])18 plot(x,y7(:,2),’color’,’k’)19 plot(x,y7(:,3),’Linestyle’,’--’,’color’,’k’)20 xlabel(’x’)21 box off22 hold off23 gtext(’f_{.5,1}(x)\rightarrow ’)24 gtext(’\leftarrow f_{.5,6}(x)’)25 gtext(’\downarrow f_{.7,3}(x)’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 16: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 15/39

Pour obtenir Argsupx∈R

fa,b(x) on a le script suivant :

f7max.m

1 V=version; %Version de Matlab2 a=.5; b=6;3 if (V(1)==5) %version 54 xm=fmin(’f7’,-10,10,[10,1.e-10],a,b);5 disp([’xmax= ’,num2str(xm)])6 else %version 67 options = optimset(’TolX’,1e-12,’Display’,...8 ’iter’,’TolFun’,1e-8);9 xm=fminbnd(@f7,-10,10,options,a,b);

10 disp([’xmax= ’,num2str(xm)])11 end

c©D.GHORBANZADEH (2004)

On remarque que : Argsupx∈R

fa,b(x) = b.

K D.GHORBANZADEH

Page 17: Éléments d'Optimisation

'

&

$

%

16/39 Éléments d’Optimisation avec Matlab

Exemple 8 Soit

fa(x) = (x − a)2 e−a x l1[0,∞[(x) (a > 0)

On a :f ′a(x) = (x − a) (2 + a2 − ax) e−a x). Donc les points critiques defa sont

x1 = a et x2 = a +2

a. D’autre part,

f ′′a (x) = (2 − 4 ax + 4 a2 + a2 x2 − 2 a3 x + a4) e−a∗x

d’oùf ′′a (x1) = 2 e−a2

doncx1 est un minimum global. On a :f ′′a (x2) = −2 e−2−a2

donc x2 est un maximum. On remarque quefa(0) = a2 et fa(x2) =4

a2e−2−a2

donc sifa(0) ≥ fa(x2), x2 est un maximum local.

Soit a0 > 0 solution de : x2 − 4

x2e−2−x2

= 0, si a < a0, x2 est un maximum

global et sia > a0, x2 est un maximum local.

Pour déterminer la valeur dea0 on a la fonction suivante :

f8z.m

1 function y=fz(x)2 y=x.^2-(4./x.^2).*exp(-2-x.^2);

c©D.GHORBANZADEH (2004)

Pour obtenir le résultat on a la commande :

>> fzero(’f8z’,1)

ans =

0.7463

Pour définir la fonction−fa on a la fonction suivante :

f8.m

1 function y8=f8(x,a)2 y8=-(x-a).^2.*exp(-a*x);

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 18: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 17/39

Pour obtenir les graphiques def0.6, f0.7, f0.8 et f1 on a le script suivant :

f8GRF.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-8);5 a=[.6 .7 .8 1];6 b=a+2./a;7 x=linspace(0,10,200)’;8 for i=1:1:length(a)9 x1(:,i)=b(i)*ones(length(x),1);

10 y8(:,i)=-f8(x,a(i));11 if (V(1)==5) %version 512 xm(i)=fmin(’f8’,b(i)-1,b(i)+1,[10,1.e-10],a(i));13 else %version 614 xm(i)=fminbnd(@f8,b(i)-1,b(i)+1,options,a);15 end16 fm(i)=-f8(xm(i),a(i));17 x2(:,i)=linspace(0,fm(i),200)’;18 subplot(2,2,i)19 plot(x,y8(:,i),’k’)20 hold on21 plot(x1(:,i),x2(:,i),’Linestyle’,’:’,’color’,...22 [rand(1) rand(1) rand(1)])23 xlabel(’x’)24 hold off25 end26 gtext(’\downarrow f_{0.6}(x)’)27 gtext(’\downarrow f_{0.7}(x)’)28 gtext(’\downarrow f_{0.8}(x)’)29 gtext(’\downarrow f_{1}(x)’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 19: Éléments d'Optimisation

'

&

$

%

18/39 Éléments d’Optimisation avec Matlab

Pour obtenir Argsupx>0

fa(x) on a le script suivant :

f8max.m

1 V=version; %Version de Matlab2 a=.6;3 if (V(1)==5) %version 54 xm=fmin(’f8’,1.e-10,2+1/a,[10,1.e-12],a);5 disp([’xmax= ’,num2str(xm)])6 disp([’f(xmax)= ’,num2str(-f8(xm,a))])7 else %version 68 options = optimset(’TolX’,1e-12,’Display’,...9 ’iter’,’TolFun’,1e-8);

10 xm=fminbnd(@f8,1.e-10,2+1/a,options,a);11 disp([’xmax= ’,num2str(xm)])12 disp([’f(xmax)= ’,num2str(-f8(xm,a))])13 end

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 20: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 19/39

Fonctions de plusieurs variables

� Notation. Soitf : U ⊆ Rn −→ R. Pourx =

(

x1

x2

)

∈ U on note :

Df(x) =

(

∂f

∂x1(x), . . . ,

∂f

∂xn(x)

)

D2f(x) =

(

∂2f

∂xi ∂xj(x)

)

1≤i,j≤n

Définition 6 Soitf : U ⊆ Rn −→ R et x ∈ U . Alors :

1. x est un maximum global def surU si et seulement si

f(x) ≥ f(x) ∀x ∈ U.

2. x est un maximum local def surU si et seulement si∃ B(x, ε) telle que

f(x) ≥ f(x) ∀x ∈ B(x, ε)

oùB(x, ε) désigne la boule de centrex.

2. x est un minimum global def surU si et seulement si

f(x) ≤ f(x) ∀x ∈ U.

2. x est un minimum local def surU si et seulement si∃ B(x, ε) telle que

f(x) ≤ f(x) ∀x ∈ B(x, ε).

3. x est un point critique def si Df(x) existe et égale à0.

K D.GHORBANZADEH

Page 21: Éléments d'Optimisation

'

&

$

%

20/39 Éléments d’Optimisation avec Matlab

Définition 7 Soitf : U ⊆ R2 −→ R et x =

(

x1

x2

)

∈ U . Alors :

1. x est un maximum global def surU si :

∂2f

∂x21

(x) < 0 et det(D2f(x)) =

∂2f

∂x21

(x)∂2f

∂x1 ∂x2(x)

∂2f

∂x1 ∂x2(x)

∂2f

∂x21

(x)

> 0.

2. x est un minimum global def surU si :

∂2f

∂x21

(x) > 0 et det(D2f(x)) =

∂2f

∂x21

(x)∂2f

∂x1 ∂x2(x)

∂2f

∂x1 ∂x2(x)

∂2f

∂x21

(x)

> 0.

3. x n’est ni un minimum ni un maximum def surU si :

det(D2f(x)) =

∂2f

∂x21

(x)∂2f

∂x1 ∂x2(x)

∂2f

∂x1 ∂x2(x)

∂2f

∂x21

(x)

< 0.

K D.GHORBANZADEH

Page 22: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 21/39

Sous MATLAB on utilise la fonctionfmins pour déterminer le Arginfx

f(x).

Pour déterminer le Argsupx

f(x) on utilise la relation :

Arg supx

f(x) = Arg infx

(−f(x)).

Pour déterminer le Arginfx

Fvinf on crée la fonction :

function y=Fvinf(v)x1=v(1) ;...xn=v(n) ;y=l’expression deFvinf ;

☞ sauver sous nom :Fvinf.m

Pour obtenir le résultat on crée un script contenant la commande :

xmin=fmins(’Fvinf’,[x(0)1 , . . . , x

(0)n ]) ;

Pour déterminer le Argsupx

Fvsup on crée la fonction :

function y=Fvsup(v)x1=v(1) ;...xn=v(n) ;y=− l’expression deFvsup ;

☞ sauver sous nom :Fvsup.m

Pour obtenir le résultat on crée un script contenant la commande :

xmax=fmins(’Fvsup’,[x(0)1 , . . . , x

(0)n ]) ;

K D.GHORBANZADEH

Page 23: Éléments d'Optimisation

'

&

$

%

22/39 Éléments d’Optimisation avec Matlab

Exemple 9 Soit f(x1, x2) = x21 − x1 x2 + x2

2 + 3x1 − 2x2 + 1.

Trouvons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = 2x1 − x2 + 3

∂f

∂x2(x) = −x1 + 2x2 − 2

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet la solution :

x = t(−4

3,1

3). Déterminons la nature dex. On a :

∂2f

∂x21

(x) = 2 et det(D2f(x)) =2 −1

−1 2= 3.

On en déduit quex = t(−4

3,1

3) est un minimum global def .

Pour définir la fonctionf on a la fonction suivante :

fv1.m

1 function y1=fv1(v)2 x1=v(1);3 x2=v(2);4 y1=x1^2-x1*x2+x2^2+3*x1-2*x2+1;

c©D.GHORBANZADEH (2004)

Pour obtenir Arg inf(x1,x2)

f(x1, x2) on a le script suivant :

K D.GHORBANZADEH

Page 24: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 23/39

fv1min.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-10);5 if (V(1)==5) %version 56 xm=fmins(’fv1’,[1,1],[2,1.e-4]);7 disp([’x1min= ’,num2str(xm(1))])8 disp([’x2min= ’,num2str(xm(2))])9 disp([’f(xmin)= ’,num2str(fv1(xm))])

10 else %version 611 xm= fminsearch(@fv1, [1, 1], options);12 disp([’x1min= ’,num2str(xm(1))])13 disp([’x2min= ’,num2str(xm(2))])14 disp([’f(xmin)= ’,num2str(fv1(xm))])15 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv1GRF.m

1 clear all2 [x,y]=meshgrid(-1.5:.1:.75);3 z=peaks(x,y);4 c=x.^2-x.*y+y.^2+3*x-2*y+1;5 surf(x,y,z,c)6 map(1,:) = [rand(1) rand(1) rand(1)];7 colormap(map)8 axis([-1.5 .75 -1.5 .75 -7.5 3])9 xlabel(’x_1’)

10 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 25: Éléments d'Optimisation

'

&

$

%

24/39 Éléments d’Optimisation avec Matlab

Exemple 10 Soitf(x1, x2) = x31 + x3

2 − 3x1x2.

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = 3x2

1 − 3x2

∂f

∂x2(x) = 3x2

2 − 3x1

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet les solutions :

x = t(1, 1) et y = t(0, 0). D’autre part, on a :

D2f(x1, x2) =

∂2f

∂x21

(x1, x2) = 6x1∂2f

∂x1 ∂x2(x1, x2) = −3

∂2f

∂x1 ∂x2(x1, x2) = −3

∂2f

∂x22

(x1, x2) = 6x2

.

Déterminons la nature dex. On a :

∂2f

∂x21

(x) = 6 et det(D2f(x)) =6 −3

−3 6= 27.

On en déduit quex = t(1, 1) est un minimum global def .

Déterminons la nature dey. On a :

∂2f

∂x21

(y) = 0 et det(D2f(y)) =0 −3

−3 0= −9.

On en déduit quey = t(0, 0) n’est ni un minimum ni un maximum.

Pour définir la fonctionf on a la fonction suivante :

fv2.m

1 function y2=fv2(v)2 x1=v(1);3 x2=v(2);4 y2=x1^3+x2^3-3*x1*x2;

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 26: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 25/39

Pour obtenir Arg inf(x1,x2)

f(x1, x2) on a le script suivant :

fv2min.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-10);5 if (V(1)==5) %version 56 xm=fmins(’fv2’,[.5,.5],[2,1.e-4]);7 disp([’x1min= ’,num2str(xm(1))])8 disp([’x2min= ’,num2str(xm(2))])9 disp([’f(xmin)= ’,num2str(fv2(xm))])

10 else %version 611 xm= fminsearch(@fv2, [.5, .5], options);12 disp([’x1min= ’,num2str(xm(1))])13 disp([’x2min= ’,num2str(xm(2))])14 disp([’f(xmin)= ’,num2str(fv2(xm))])15 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv2GRF.m

1 clear all2 [x,y]=meshgrid(-1:.1:2);3 z=peaks(x,y);4 c=x.^3+y.^2-3*x.*y;5 surf(x,y,z,c)6 map(1,:) = [rand(1) rand(1) rand(1)];7 colormap(map)8 axis([-1 2 -1 2 -3 10])9 xlabel(’x_1’)

10 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

Exemple 11 Soit

f(x1, x2) = (sinx1 + sinx2 + sin(x1 + x2)) l1[0, π

2](x1) l1[0, π

2](x2)

K D.GHORBANZADEH

Page 27: Éléments d'Optimisation

'

&

$

%

26/39 Éléments d’Optimisation avec Matlab

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = cosx1 + cos(x1 + x2)

∂f

∂x2(x) = cosx2 + cos(x1 + x2)

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet la solution :

x = t(π

3,π

3). D’autre part, on a :

D2f(x1, x2) =

−sinx1 − sin(x1 + x2) −sin(x1 + x2)

−sin(x1 + x2) −sinx2 − sin(x1 + x2)

.

Déterminons la nature dex. On a :

∂2f

∂x21

(x) = −√

3 et det(D2f(x)) =

−√

3 −√

3

2

−√

3

2−√

3

=9

4.

On en déduit quex = t(π

3,π

3) est un maximum global.

Pour définir la fonction−f on a la fonction suivante :

fv3.m

1 function y3=fv3(v)2 x1=v(1);3 x2=v(2);4 y3=-(sin(x1)+sin(x2)+sin(x1+x2));

c©D.GHORBANZADEH (2004)

Pour obtenir Arg sup(x1,x2)

f(x1, x2) on a le script suivant :

K D.GHORBANZADEH

Page 28: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 27/39

fv3max.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-10);5 if (V(1)==5) %version 56 xm=fmins(’fv3’,[0,0],[],[]);7 disp([’x1max= ’,num2str(xm(1))])8 disp([’x2max= ’,num2str(xm(2))])9 disp([’f(xmax)= ’,num2str(-fv3(xm))])

10 else %version 611 xm= fminsearch(@fv3, [0, 0], options);12 disp([’x1max= ’,num2str(xm(1))])13 disp([’x2max= ’,num2str(xm(2))])14 disp([’f(xmax)= ’,num2str(-fv3(xm))])15 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv3GRF.m

1 clear all2 map(1,:) = [rand(1) rand(1) rand(1)];3 colormap(map)4 [x1,x2]=meshgrid(0:pi/60:pi/2);5 z=sin(x1)+sin(x2)+sin(x1+x2);6 surf(x1,x2,z)7 xlabel(’x_1’)8 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 29: Éléments d'Optimisation

'

&

$

%

28/39 Éléments d’Optimisation avec Matlab

Exemple 12 Soitf(x1, x2) = x1 exp(−x21 − x2

2).

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = (1 − 2x2

1) exp(−x21 − x2

2)

∂f

∂x2(x) = −2x1 x2 exp(−x2

1 − x22)

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet les solutions :

x = t(1√2, 0) et y = t(− 1√

2, 0). D’autre part, on a :

D2f(x1, x2) =

2x1(2x2 − 3) exp(−x2

1 − x22) 2x2(2x

21 − 2) exp(−x2

1 − x22)

2x2(2x21 − 2) exp(−x2

1 − x22) 2x1(2x2

2 − 2) exp(−x21 − x2

2)

.

Déterminons la nature dex. On a :

∂2f

∂x21

(x) = −2√

2 e−1/2 et det(D2f(x)) =−2

√2 e−1/2 0

0 −2√

2 e−1/2

= 8 e−1.

On en déduit quex = t(1√2, 0) est un maximum global.

Déterminons la nature dey. On a :

∂2f

∂x21

(y) = 2√

2 e−1/2 et det(D2f(x)) =2√

2 e−1/2 0

0 2√

2 e−1/2

= 8 e−1.

On en déduit quey = t(− 1√2, 0) est un minimum global def .

Pour définir la fonction−f on a la fonction suivante :

fv4.m

1 function y4=fv4(v)2 x1=v(1);3 x2=v(2);4 y4=-x1.*exp(-x1.^2-x2.^2);

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 30: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 29/39

Pour obtenir Arg sup(x1,x2)

f(x1, x2) on le le script suivant :

fv4max.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-10);5 if (V(1)==5) %version 56 xm=fmins(’fv4’,[.1,.1],[1,1.e-10],[]);7 disp([’x1max= ’,num2str(xm(1))])8 disp([’x2max= ’,num2str(xm(2))])9 disp([’f(xmax)= ’,num2str(-fv4(xm))])

10 else %version 611 xm= fminsearch(@fv4, [.1, .1], options);12 disp([’x1max= ’,num2str(xm(1))])13 disp([’x2max= ’,num2str(xm(2))])14 disp([’f(xmax)= ’,num2str(-fv4(xm))])15 end

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 31: Éléments d'Optimisation

'

&

$

%

30/39 Éléments d’Optimisation avec Matlab

Pour obtenir le graphique def on a le script suivant :

fv4GRF.m

1 clear all2 map(1,:) = [rand(1) rand(1) rand(1)];3 colormap(map)4 [x1,x2]=meshgrid(-3:0.15:3);5 z=x1.*exp(-x1.^2-x2.^2);6 surf(x1,x2,z)7 view([-30.5,15])8 xlabel(’x_1’)9 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 32: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 31/39

Exemple 13 Soitf(x1, x2) =1

2− sin(x2

1 + x22).

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = −x1 cos(x2

1 + x22)

∂f

∂x2(x) = −x2 cos(x2

1 + x22)

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet la solution :

x = t(0, 0). On a :

∂2f

∂x21

(x) = −2 et det(D2f(x)) =−2 0

0 −2= 4.

On en déduit quex = t(0, 0) est un maximum global.

Pour définir la fonction−f on a la fonction suivante :

fv5.m

1 function y5=fv5(v)2 x1=v(1);3 x2=v(2);4 y5=-.5+sin(x1.^2+x2.^2);

c©D.GHORBANZADEH (2004)

Pour obtenir Arg sup(x1,x2)

f(x1, x2) on a le script suivant :

K D.GHORBANZADEH

Page 33: Éléments d'Optimisation

'

&

$

%

32/39 Éléments d’Optimisation avec Matlab

fv5max.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-12);5 if (V(1)==5) %version 56 xm=fmins(’fv5’,[.5,.5],[1,1.e-10],[]);7 disp([’x1max= ’,num2str(xm(1))])8 disp([’x2max= ’,num2str(xm(2))])9 disp([’f(xmax)= ’,num2str(-fv5(xm))])

10 else %version 611 xm= fminsearch(@fv5, [.5,.5], options);12 disp([’x1max= ’,num2str(xm(1))])13 disp([’x2max= ’,num2str(xm(2))])14 disp([’f(xmax)= ’,num2str(-fv5(xm))])15 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv5GRF.m

1 clear all2 map(1,:) = [.9*rand(1) .8*rand(1) .7*rand(1)];3 colormap(map)4 [x1,x2]=meshgrid(-3:0.1:3);5 z=.5+sin(x1.^2+x2.^2);6 surf(x1,x2,z)7 view([-37,60])8 xlabel(’x_1’)9 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 34: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 33/39

Exemple 14 Soit

f(x1, x2) = x31 x2

2 (a − x1 − x2) l1]0,∞[(x1) l1]0,∞[(x2) (a > 0).

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = x2

1 x22 (3a − 4x1 − 3x2)

∂f

∂x2(x) = x3

1 x2 (2a − 2x1 − 3x2).

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet la solution :

x = t(a

2,a

3). D’autre part, on a :

D2f(x1, x2) =

6x1 x22 (a − 2x1 − x2) x2

1 x2 (6 a − 8x1 − 9x2)

x21 x2 (6 a − 8x1 − 9x2) 2x3

1 (a − x1 − 3x2)

.

Déterminons la nature dex. On a :

∂2f

∂x21

(x) = −a4

9et det(D2f(x)) =

−a4

9−a4

12

−a4

12−a4

8

=a8

144.

On en déduit quex = t(a

2,a

3) est un maximum global.

Pour définir la fonction−f on a la fonction suivante :

fv6.m

1 function y6=fv6(v,a)2 x1=v(1);3 x2=v(2);4 y6=-x1.^3.*x2.^2.*(a-x1-x2);

c©D.GHORBANZADEH (2004)

Pour obtenir Arg sup(x1,x2)

f(x1, x2) on a le script suivant :

K D.GHORBANZADEH

Page 35: Éléments d'Optimisation

'

&

$

%

34/39 Éléments d’Optimisation avec Matlab

fv6max.m

1 clear all2 a=12;3 V=version; %Version de Matlab4 options = optimset(’TolX’,1e-12,’Display’,...5 ’iter’,’TolFun’,1e-12);6 if (V(1)==5) %version 57 xm=fmins(’fv6’,[.1,.1],[1,1.e-10],[],a);8 disp([’x1max= ’,num2str(xm(1))])9 disp([’x2max= ’,num2str(xm(2))])

10 disp([’f(xmax)= ’,num2str(-fv6(xm,a))])11 else %version 612 xm= fminsearch(@fv6, [.1,.1], options,a);13 disp([’x1max= ’,num2str(xm(1))])14 disp([’x2max= ’,num2str(xm(2))])15 disp([’f(xmax)= ’,num2str(-fv6(xm,a))])16 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv6GRF.m

1 clear all2 a=2;3 map(1,:) = [.5*rand(1) .5*rand(1) .5*rand(1)];4 colormap(map)5 [x1,x2]=meshgrid(0:0.05:1);6 z=x1.^3.*x2.^2.*(a-x1-x2);7 surf(x1,x2,z)8 view([-125,25])9 xlabel(’x_1’)

10 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

Exemple 15 Déterminer trois nombres strictement positifs dont la somme est égaleàa et dont le produit est maximum.Soit x1, x2 et a − x1 − x2 et soitx1 x2 (a − x1 − x2) leur produit. Par hypothèsex1 > 0, x2 > 0, a − x1 − x2 > 0 soitx1 + x2 < a etx1 x2 (a − x1 − x2) > 0.On cherche donc le Arg sup

(x1,x2)∈∆f(x1, x2) avec

K D.GHORBANZADEH

Page 36: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 35/39

f(x1, x2) = x1 x2 (a − x1 − x2) l1∆(x1, x2)

et ∆ = {(x1, x2) : x1 > 0 , x2 > 0 , a − x1 − x2 > 0}.

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = x2 (a − 2x1 − x2)

∂f

∂x2(x) = x1 (a − x1 − 2x2)

Sur le domaine∆ le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet la

solution :x = t(a

3,a

3). D’autre part, on a :

D2f(x1, x2) =

−2x2 a − 2x1 − 2x2

a − 2x1 − 2x2 −2x1

.

Déterminons la nature dex. On a :

∂2f

∂x21

(x) = −2 a

3et det(D2f(x)) =

−2 a

3−a

3

−a

3−2 a

3

=a2

3.

On en déduit quex = t(a

3,a

3) est un maximum global.

Pour définir la fonction−f on a la fonction suivante :

fv7.m

1 function y7=fv7(v,a)2 x1=v(1);3 x2=v(2);4 y7=-x1.*x2.*(a-x1-x2);

c©D.GHORBANZADEH (2004)

Pour obtenir Arg sup(x1,x2)

f(x1, x2) on a le script suivant :

K D.GHORBANZADEH

Page 37: Éléments d'Optimisation

'

&

$

%

36/39 Éléments d’Optimisation avec Matlab

fv7max.m

1 clear all2 a=15;3 V=version; %Version de Matlab4 options = optimset(’TolX’,1e-12,’Display’,...5 ’iter’,’TolFun’,1e-12);6 if (V(1)==5) %version 57 xm=fmins(’fv7’,[.1,.1],[1,1.e-10],[],a);8 disp([’x1max= ’,num2str(xm(1))])9 disp([’x2max= ’,num2str(xm(2))])

10 disp([’f(xmax)= ’,num2str(-fv7(xm,a))])11 else %version 612 xm= fminsearch(@fv7, [.1,.1], options,a);13 disp([’x1max= ’,num2str(xm(1))])14 disp([’x2max= ’,num2str(xm(2))])15 disp([’f(xmax)= ’,num2str(-fv7(xm,a))])16 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv7GRF.m

1 clear all2 a=2;3 map(1,:) = [.5*rand(1) 0 .5];4 colormap(map)5 [x1,x2]=meshgrid(0:0.1:1.5);6 z=x1.*x2.*(a-x1-x2);7 surf(x1,x2,z)8 view([180,180,90])9 xlabel(’x_1’)

10 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH

Page 38: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 37/39

Exemple 16 Soitf(x1, x2) = x1 x2 exp(

−x21 − x1 x2 − x2

2

)

.

Déterminons les points critiques def , en tout pointx =

(

x1

x2

)

on a :

∂f

∂x1(x) = x2 (1 − x1 x2 − 2x2

1) exp(

−x21 − x1 x2 − x2

2

)

∂f

∂x2(x) = x1 (1 − x1 x2 − 2x2

2) exp(

−x21 − x1 x2 − x2

2

)

Le système d’équations∂f

∂x1(x) = 0 et

∂f

∂x2(x) = 0 admet les solutions :x(1) = t(0, 0),

x(2) = t(1,−1) , x(3) = t(−1, 1) , x(4) = t(1√3,

1√3) ,

x(5) = t(− 1√3,− 1√

3). D’autre part, on a :

D2f(x1, x2) = exp(

−x21 − x1 x2 − x2

2

)

A(x1, x2) C(x1, x2)

C(x1, x2) B(x1, x2)

.

avec

A(x1, x2) = x2 (4x31 + 4x2x

21 + x1x

22 − 6x1 − 2x2)

B(x1, x2) = x1 (4x32 + 4x1x

22 + x2

1x2 − 2x1 − 6x2)

C(x1, x2) = (1 − 2x21 − 3x1x2 − 2x2

1 + 2x31x2 + 5x2

1x22 + 2x1x

32).

Déterminons la nature dex(1). On a :

∂2f

∂x21

(x(1)) = 0 et det(D2f(x(1))) = −1.

On en déduit quex(1) = t(0, 0) n’est ni un minimum ni un maximum.

Déterminons la nature dex(2). On a :

∂2f

∂x21

(x(2)) = 3 e−1 et det(D2f(x(2))) =3 e−1 e−1

e−1 3 e−1= 8 e−2.

On en déduit quex(2) = t(1,−1) est un minimum local.

Déterminons la nature dex(3). On a :

∂2f

∂x21

(x(3)) = 3 e−1 et det(D2f(x(3))) =3 e−1 e−1

e−1 3 e−1= 8 e−2.

K D.GHORBANZADEH

Page 39: Éléments d'Optimisation

'

&

$

%

38/39 Éléments d’Optimisation avec Matlab

On en déduit quex(3) = t(−1, 1) est un minimum local.

Déterminons la nature dex(4). On a :

∂2f

∂x21

(x(4)) = −5 e−1

3et det(D2f(x(4))) =

−53 e−1 −1

3 e−1

−13 e−1 −5

3 e−1=

8

3e−2.

On en déduit quex(4) = t(1√3,

1√3) est un maximum local.

Déterminons la nature dex(5). On a :

∂2f

∂x21

(x(5)) = −5 e−1

3et det(D2f(x(5))) =

−53 e−1 −1

3 e−1

−13 e−1 −5

3 e−1=

8

3e−2.

On en déduit quex(5) = t(− 1√3,− 1√

3) est un maximum local.

Pour définir la fonction−f on a la fonction suivante :

fv8.m

1 function y8=fv8(v)2 x1=v(1);3 x2=v(2);4 y8=-x1.*x2.*exp(-x1.^2-x2.^2-x1.*x2);

c©D.GHORBANZADEH (2004)

Pour obtenir un maximum local def on a le script suivant :

K D.GHORBANZADEH

Page 40: Éléments d'Optimisation

'

&

$

%

Éléments d’Optimisation avec Matlab 39/39

fv8max.m

1 clear all2 V=version; %Version de Matlab3 options = optimset(’TolX’,1e-12,’Display’,...4 ’iter’,’TolFun’,1e-12);5 if (V(1)==5) %version 56 xm=fmins(’fv8’,[.1,.1],[],[]);7 disp([’x1max= ’,num2str(xm(1))])8 disp([’x2max= ’,num2str(xm(2))])9 disp([’f(xmax)= ’,num2str(-fv8(xm))])

10 else %version 611 xm= fminsearch(@fv8, [.1,.1], options);12 disp([’x1max= ’,num2str(xm(1))])13 disp([’x2max= ’,num2str(xm(2))])14 disp([’f(xmax)= ’,num2str(-fv8(xm))])15 end

c©D.GHORBANZADEH (2004)

Pour obtenir le graphique def on a le script suivant :

fv8GRF.m

1 clear all2 map(1,:) = [rand(1) rand(1) rand(1)];3 colormap(map)4 [x1,x2]=meshgrid(-4:0.1:4);5 z=x1.*x2.*exp(-x1.^2-x2.^2-x1.*x2);6 surf(x1,x2,z)7 view([-15,20])8 xlabel(’x_1’)9 ylabel(’x_2’)

c©D.GHORBANZADEH (2004)

K D.GHORBANZADEH