
33 fprintf (’ * = %.4 f \n ’ , lambda_star);
34
35 % V r i f i c a t i o n de la nature du point ( Q positive d f i n i e )
36 eigQ = eig (Q );
37 if all ( eigQ > 0)
38 fprintf (’ Poi nt mi ni mu m globa l .\ n ’);
39 else
40 fprintf (’ Poi nt selle ou maxim um .\ n ’);
41 end
42
43 %% Visualisation
44 [ x1 , x2 ] = meshgrid( -1:0.1:5 , -4:0.1:2) ;
45 f = 0. 5*( x1 .*( Q (1 ,1) * x1 + Q (1 ,2) * x2 ) + x2 .*( Q (2 ,1) * x1 +
Q (2 ,2) * x2 ) ) + S (1) * x1 + S (2) * x2 ;
46
47 figure ( idx ) ;
48 contour ( x1 , x2 , f , 30) ; hold on ;
49 plot ( u_star (1) , u_star (2) , ’ro ’,’MarkerFaceColor’,’ r ’,
’DisplayName’,’ u* ’ );
50 line ([ a a], ylim , ’Color’,’b ’ ,’LineWidth’,2,
’DisplayName’,’Contrainte u1=a’);
51 title([ ’Contrainte : u1 = ’ num2str ( a) ]) ;
52 xlabel (’u1 ’) ; ylabel (’u2 ’) ; grid on ;
53 legend ;
54 end
Listing 1 – Code MATLAB TP3.m
2.2 Explication du code
Le code procède ainsi :
1. Initialisation des données : matrice Q, vecteur S, valeurs de a
2. Pour chaque valeur de a:
— Définition du Lagrangien avec variables symboliques
— Calcul des conditions KKT (dérivées partielles)
— Résolution du système d’équations
— Extraction de la solution numérique
— Analyse de la nature du point via les valeurs propres de Q
— Visualisation graphique
4