Rename the subsection 2.3.6
[Projet_Recherche_Operationnelle.git] / rapport / ProjetOptimRO.tex
index b81b605d049ad60b8e98fac3ea3939694f190020..8919c6d6df0e5b0a2d1c95b306983bd545bf3d6b 100644 (file)
@@ -21,6 +21,9 @@
 \usepackage{tocbibind}
 \usepackage{lmodern}
 \usepackage{enumitem}
+\usepackage{algorithm2e}
+\usepackage{algorithmic}
+\usepackage{float}
 
 
 %%%%%Marges & en-t\^etes
@@ -332,13 +335,19 @@ On peut en déduire que une condition nécessaire et suffisante pour que $ x^\as
  Soient $ x^\ast \in \mathbb{R}^n $, $ I = \{ 1,\ldots,p \} $ et $ J = \{ 1,\ldots,q \} $.
  \newline
  Les conditions nécessaires pour que $ x^\ast \in \mathcal{C}$ soit un minimum local de $ J $ sont :
- \newline
- \newline
- \centerline{$ \{ \nabla g_1(x^\ast),\ldots,\nabla g_p(x^\ast),\nabla h_1(x^\ast),\ldots,\nabla h_q(x^\ast) \} $ sont linéairement indépendants.}
- \newline
- \newline
+ \begin{center}
+  $ \{ \nabla g_1(x^\ast),\ldots,\nabla g_p(x^\ast),\nabla h_1(x^\ast),\ldots,\nabla h_q(x^\ast) \} $ sont linéairement indépendants.
+ \end{center}
  et
- $$ \forall i \in I \ \exists \mu_i \in \mathbb{R}_{+} \land \forall j \in J \ \exists \lambda_j \in \mathbb{R} \ \nabla J(x^\ast) + \sum_{i \in I}\mu_i{\nabla g_i(x^\ast)} + \sum_{j \in J}\lambda_j{\nabla h_j(x^\ast)} = 0 \land \forall i \in I \ \mu_i \nabla g_i(x^\ast) = 0 $$
+ \begin{center}
+  $ \forall i \in I \ \exists \mu_i \in \mathbb{R}_{+} \land \forall j \in J \ \exists \lambda_j \in \mathbb{R} $ tels que :
+ \end{center}
+ \begin{center}
+  $ \nabla J(x^\ast) + \sum\limits_{i \in I}\mu_i{\nabla g_i(x^\ast)} + \sum\limits_{j \in J}\lambda_j{\nabla h_j(x^\ast)} = 0 \land \forall i \in I \ \mu_i \nabla g_i(x^\ast) = 0 $
+ \end{center}
+ \begin{center}
+  $ \iff \nabla L(x^\ast,\lambda,\mu) = 0 \land \forall i \in I \ \mu_i \nabla g_i(x^\ast) = 0 $ où $ \lambda = (\lambda_1,\ldots,\lambda_q) $ et $ \mu = (\mu_1,\ldots,\mu_p) $.
+ \end{center}
  On appelle $ (\mu_i)_{i \in I}$ les multiplicateurs de Kuhn-Tucker et $ (\lambda_j)_{j \in J}$ les multiplicateurs de Lagrange.
  \newline
  On nomme également les conditions \textit{KTT} conditions nécessaires d'optimalité du premier ordre.
@@ -398,7 +407,7 @@ Cette dernière inégalité garantit une décroissance minimum de la fonction $
 
 \hrulefill
 \newline
-ALGORITHME DE DESCENTE MODÈLE.
+ALGORITHME DE DESCENTE GÉNÉRIQUE.
 \newline
 \textit{Entrées}: $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable, $ x_0 \in \mathbb{R}^n $ point initial arbitraire.
 \newline
@@ -427,7 +436,7 @@ Remarquons que si $ x_k $ est un point stationnaire ($ \iff \nabla J(x_k) = 0 $)
 
 \subsection{Critère d’arrêt}
 
-Soit $ x^\ast $ un minimum local de l'objectif $ J $ à optimiser. Supposons que l’on choisisse comme test d’arrêt dans l’algorithme de descente modèle, le critère idéal : "$ x_k = x^\ast $". Dans un monde idéal (i.e. en supposant tous les calculs exacts et la capacité de calcul illimitée), soit l’algorithme s’arrête après un nombre fini d’itérations, soit il construit (théoriquement) une suite infinie $ x_0,x_1,\ldots,x_k,\ldots $ de points de $ \mathbb{R}^n $ qui converge vers $ x^\ast $.
+Soit $ x^\ast $ un minimum local de l'objectif $ J $ à optimiser. Supposons que l’on choisisse comme test d’arrêt dans l’algorithme de descente générique, le critère idéal : "$ x_k = x^\ast $". Dans un monde idéal (i.e. en supposant tous les calculs exacts et la capacité de calcul illimitée), soit l’algorithme s’arrête après un nombre fini d’itérations, soit il construit (théoriquement) une suite infinie $ x_0,x_1,\ldots,x_k,\ldots $ de points de $ \mathbb{R}^n $ qui converge vers $ x^\ast $.
 \newline
 En pratique, un test d’arrêt devra être choisi pour garantir que l’algorithme s’arrête toujours après un nombre fini d’itérations et que le dernier point calculé soit suffisamment proche de $ x^\ast $.
 
@@ -514,7 +523,7 @@ En supposant $ J $ de classe $ \mathcal{C}^2 $ et la matrice hessienne $ H[J](x_
 $$ x_{k+1} = x_k - H[J](x_k)^{-1} \nabla J(x_k), $$
 où $ d_k = -H[J](x_k)^{-1} \nabla J(x_k) $ est appelée direction de Newton. La direction $ d_k $ est également l’unique solution du problème :
 $$ \underset{d \in \mathbb{R}^n}{\mathrm{argmin}} \ J(x_k) + \langle \nabla J(x_k),d \rangle + \frac{1}{2}\langle H[J](x_k)d,d \rangle $$
-Autrement dit, $ d_k $ est le point de minimum global de l’approximation de second ordre de $ J $ au voisinage du point courant $ x_k $.
+Autrement dit, $ d_k $ est le point de minimum global de l’approximation quadratique de $ J $ au voisinage du point courant $ x_k $.
 À condition que la matrice $ H[J](x_k) $ soit définie positive à chaque itération, la méthode de Newton est bien une méthode de descente à pas fixe égal à $ 1 $.
 \newline
 Les propriétés remarquables de cet algorithme sont :
@@ -529,7 +538,7 @@ Les propriétés remarquables de cet algorithme sont :
  \hline
                                                                                                      & le coût de résolution du système linéaire $ H[J](x_k )(x_{k+1} - x_k) = \nabla J(x_k) $.                                                                          \\
  \hline
-                                                                                                     & l’absence de convergence si le premier itéré est trop loin de la solution, ou si la    hessienne est singulière.                                                  \\
+                                                                                                     & l’absence de convergence si le premier itéré est trop loin de la solution, ou si la hessienne est singulière.                                                     \\
  \hline
                                                                                                      & pas de distinction entre minima, maxima et points stationnaires.                                                                                                  \\
  \hline
@@ -720,7 +729,7 @@ En posant $ d = x - x_k $ et $ H_k = H[L](x_k,\lambda_k,\mu_k) $, on obtient le
 
 \hrulefill
 \newline
-ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ ET D'INEGALITÉ.
+ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ ET D'INÉGALITÉ.
 \newline
 \textit{Entrées}: $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $, $g: \mathbb{R}^n \longrightarrow \mathbb{R}^p$, $ h : \mathbb{R}^n \longrightarrow \mathbb{R}^q $ différentiables, $ x_0 \in \mathbb{R}^n $ point initial arbitraire, $ \lambda_0 \in \mathbb{R}_+^p $ et $ \mu_0 \in \mathbb{R}_+^q $ multiplicateurs initiaux, $ \varepsilon > 0 $ précision demandée.
 \newline
@@ -767,8 +776,8 @@ Dans les deux cas, les équations de quasi-Newton forment un système sous-déte
 \newline
 Une stratégie commune est de calculer $ (x_{k+1},\lambda_{k+1},\mu_{k+1}) $ pour une matrice $ H_k $ donnée et faire une mise à jour de $ H_k $ de rang 1 ou 2 :
 $$ H_{k+1} = H_k + U_k $$
-
-\subsubsection{Mises à jour DFP et BFGS}
+% \subsubsection{Mises à jour DFP et BFGS}
+Les méthodes de mise à jour DFP et BFGS suivent par exemple cette stratégie.
 
 \subsection{Exemple d'utilisation de PQS}
 
@@ -788,12 +797,13 @@ Le Lagrangien $ L $ de $ \mathcal{P} $ : $$ L((x,y,z),(\lambda_1,\lambda_2)) = x
 \newline
 Le gradient de $ J $ : $$ \nabla J(x,y,z) = (\frac{\partial J}{\partial x}(x,y,z),\frac{\partial J}{\partial y}(x,y,z),\frac{\partial J}{\partial z}(x,y,z)) = (2x,2y,2z). $$
 \newline
-Le gradient de $ g $ : $$ \nabla g(x,y,z) = (\nabla g_1(x,y,z),\nabla g_2(x,z,z)) $$
+Le gradient de $ g $ : $$ \nabla g(x,y,z) = (\nabla g_1(x,y,z),\nabla g_2(x,y,z)) $$
 $$ = ((\frac{\partial g_1}{\partial x}(x,y,z),\frac{\partial g_1}{\partial y}(x,y,z),\frac{\partial g_1}{\partial z}(x,y,z)),(\frac{\partial g_2}{\partial x}(x,y,z),\frac{\partial g_2}{\partial y}(x,y,z),\frac{\partial g_2}{\partial z}(x,y,z)) $$
 $$ = ((2x,2y,0),(2x,0,2z)). $$
 \newline
 Le gradient du Lagrangien $ L $ :
 $$ \nabla L((x,y,z),(\lambda_1,\lambda_2)) = \nabla J(x,y,z) + \lambda_1 \nabla g_1(x,y,z) + \lambda_2 \nabla g_2(x,y,z)) $$
+$$ = (2x(1 + \lambda_1 + \lambda_2),2y(1 + \lambda_1),2z(1 + \lambda_2)) $$
 \newline
 La matrice hessienne de $ J $ : $$ H[J](x,y,z) =
  \begin{pmatrix}
@@ -808,6 +818,245 @@ La matrice hessienne de $ J $ : $$ H[J](x,y,z) =
  \end{pmatrix} = 2Id_{\mathbb{R}^3} $$
 On en déduit que $ H[J](x,y,z) $ est inversible et que $ H[J](x,y,z)^{-1} = \frac{1}{2}Id_{\mathbb{R}^3} $.
 
+\newpage
+
+\subsection{Trace d'éxécution de l'algorithme pour la méthode de Newton}
+
+\begin{center}
+ \includegraphics[scale=0.2]{sphere2.jpg} \\
+ \footnotesize{
+  \small \it Fig : Exemple de la sphère \\
+  \vspace*{0.5cm}
+ }
+\end{center}
+
+En utilisant le problème $ \mathcal{P} $ précédent :
+
+\textit{Entrées} : $ J $ et $ g $ de classe $ \mathcal{C}^2 $, $ \varepsilon = 0.01 $, $ (x_0,y_0,z_0) = (100, 100 ,0)$  et $(\lambda_{0_1},\lambda_{0_2}) = (1 , 1)$, les rayons : $r = 100$ et $r_1 = r_2 = 10$.
+\newline
+Calcul du Lagrangien $ L $ de $ \mathcal{P} $ en $(x_0,y_0,z_0)$ :
+\newline
+$ L((100,100,0),(1,1)) = 100^2 + 100^2 + 0^2 - 100^2 + 1 * (100^2 +100^2 - 10^2) + 1 * (100^2 + 100^2 -10^2). $
+$ L((100,100,0),(1,1)) = 1000 + 1000 - 1000 + (1000 + 1000 - 100) + (1000 + 1000 - 100). $
+$ L((100,100,0),(1,1)) = 4800. $
+
+\newpage
+\textbf{Trace d'éxécution de l'algorithme :}
+\newline
+\newfloat{algorithm}{t}
+
+%\begin{algorithm}
+ \begin{algorithmic}
+  \REQUIRE $(x_0,y_0,z_0) = (100, 100 ,0), g(x_0,y_0,z_0) \leq 0$
+  \ENSURE $\displaystyle\min_{(x,y,z) \in \mathbb{R}^3} J(x,y,z) = x^2 + y^2 + z^2 -r^2$ and \newline $g(x,y,z) = (g_1(x,y,z), g_2(x,y,z)) = (x^2 + y^2 - r_1^2, x^2 + z^2 -r_2^2) \leq 0 $
+  \STATE \textbf{Data :}
+  \STATE $k \leftarrow 0, (x_k, y_k, z_k) \leftarrow (100, 100, 0), r \leftarrow 100$
+  \STATE $r_1 = r_2 \leftarrow 10, \varepsilon \leftarrow 0.01$
+  \STATE $\lambda_1 = \lambda_2 \leftarrow 1$
+  \STATE $s_k \leftarrow \frac{1}{2}$
+  \STATE $ H[J](x,y,z)^{-1} \leftarrow
+   \begin{pmatrix}
+    0.5 & 0   & 0   \\
+    0   & 0.5 & 0   \\
+    0   & 0   & 0.5 \\
+   \end{pmatrix} $
+  \newline
+
+  \WHILE{$ (\norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $ or k $ \leq 10)$}
+
+      \STATE {//Première itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (200,200,0) $
+      \newline
+      % \STATE {//Calcul des deux composantes du gradient de $ g $:}
+      % \STATE $ \nabla g_1(x_k,y_k,z_k) = (2x_k,2y_k,0)$ \hfill $ //résultat : (200, 200, 0)$
+      % \STATE $ \nabla g_2(x_k,y_k,z_k) = (2x_k,0,2z_k)$ \hfill $ //résultat : (200, 0, 0)$
+      % \STATE $ \nabla g(x_k,y_k,z_k) = (\nabla g_1(x_k,y_k,z_k), \nabla g_2(x_k,y_k,z_k))$
+      % \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (600, 400, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      % \STATE $ \nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = (x_L , y_L, z_L) $
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(100,100,0))$
+      \newline
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (50,50,0)$
+      \newline
+      \STATE {//Incrémentation de $ k $}
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 1$
+      \newline
+
+      \STATE {//Deuxième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (100,100,0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*50, 4*50, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(50,50,0))$
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (25,25,0)$
+      \newline
+      \STATE {//Incrémentation de $ k $ }
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 2$
+      \newline
+
+      \STATE {//Troisième itération :}
+      \STATE {//Calcul du gradient de $ J $:}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (50,50,0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*25, 4*25, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x,y,z)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(25,25,0))$
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \newline
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (12.5,12.5,0)$
+      \STATE {//Incrémentation de $ k $}
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 3$
+      \newline
+
+      \STATE {//Quatrième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (25,25,0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*12.5, 4*12.5, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(12.5,12.5,0))$
+      \newline
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (6.25,6.25,0)$
+      \STATE {//Incrémentation de $ k $}
+      \newline
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 4$
+      \newline
+
+      \STATE {//Cinquième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (12.5,12.5,0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*6.25, 4*6.25, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(6.25,6.25,0))$
+      \newline
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (3.125,3.125,0)$
+      \newline
+      \STATE {//Incrémentation de $ k $}
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 5$
+      \newline
+
+      \STATE {//Sixième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (6.25,6.25,0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*3.125, 4*3.125, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(1.5625,1.5625,0))$
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \newline
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (1.5625,1.5625,0)$
+      \STATE {//Incrémentation de $ k $}
+      \newline
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 6$
+      \newline
+
+      \STATE {//Septième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (3.125, 3.125, 0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ : }
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*1.5625, 4*1.5625, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.78125,0.78125,0))$
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \newline
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.78125,0.78125,0)$
+      \STATE {//Incrémentation de $ k $}
+      \newline
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 7$
+      \newline
+
+      \STATE {//Huitième itération :}
+      \STATE{//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (1.5625, 1.5625, 0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ : }
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*0.78125, 4*0.78125, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.390625,0.390625,0))$
+      \newline
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.390625,0.390625,0)$
+      \newline
+      \STATE {//Incrémentation de $ k $}
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résulat : k = 8$
+      \newline
+
+      \STATE {//Neuvième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.78125, 0.78125, 0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*0.390625, 4*0.390625, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.1953125,0.1953125,0))$
+      \newline
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.1953125,0.1953125,0)$
+      \newline
+      \STATE {//Incrémentation de $ k $}
+      \STATE $ k \leftarrow k + 1 \hfill //résultat : k = 9$
+      \newline
+
+      \STATE {//Dixième itération :}
+      \STATE {//Calcul du gradient de $ J $ :}
+      \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.390625, 0.390625, 0) $
+      \newline
+      \STATE {//Calcul du gradient de $ L $ :}
+      \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*0.1953125, 4*0.1953125, 0)$
+      \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
+      \newline
+      \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
+      \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.097665625,0.097665625,0))$
+      \newline
+      \STATE {//Calcul des nouvelles valeurs des coordonnées}
+      \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.097665625,0.097665625,0)$
+      \newline
+      \STATE {//Incrémentation de $ k $}
+      \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 10$
+      \newline
+      \STATE {//Fin de la boucle "while" car nous avons atteint $ k = 10 $, condition mettant fin à la //boucle}
+      \newline
+
+  \ENDWHILE
+
+
+ \end{algorithmic}
+%\end{floatalgo}
+ %\end{algorithm}
+
 \bibliographystyle{plain}
 \bibliography{stdlib_sbphilo}