0% ont trouvé ce document utile (0 vote)
499 vues8 pages

Rapport TP Optimisation

Transféré par

Khadija Moucharaf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
499 vues8 pages

Rapport TP Optimisation

Transféré par

Khadija Moucharaf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

RAPPORT TP OPTIMISATION

: Cree par
Issam satour
Mohammed badre
La méthode de descend(pente plus grande) avec contrainte

function [x, fx, iters] = grad_desc_con(f, g, x0, A, b, tol, maxiter)

GRAD_DESC_CON Descente de gradient avec contrainte %

:Syntaxe %

grad_desc_con(f, g, x0, A, b, tol, maxiter) = ]x, fx, iters[ %

:Arguments %

f : Fonction à minimiser %

g : Gradient de f %

x0 : Point de départ %

A : Matrice de contraintes %

b : Vecteur de contraintes %

tol : Tolérance %

maxiter : Nombre maximum d'itérations %

:Retour %

x : Point optimal %

fx : Fonction f en x %

iters : Nombre d'itérations %

Initialisation %

;x = x0

;fx = f(x)

;iters = 0

Boucle d'itération %

while (iters < maxiter && norm(g(x)) > tol)

Descente de gradient %

;d = -g(x)

;x = x + d

Vérification des contraintes %

if (A*x < b)

;x = x - A'\(b - A*x)
end

Mise à jour des variables %

;fx = f(x)

;iters = iters + 1

end

end

Exemple 1
function demo

Fonction à minimiser %

;f = @(x) x(1)^2 + x(2)^2

Gradient de la fonction f %

;g = @(x) [2*x(1); 2*x(2)]

Contraintes %

;A = [1 0; 0 1]

;b = [1; 1]

Initialisation %

;x0 = [0; 0]

Tolérence %

;tol = 1e-6

Nombre maximum d'itérations %

;maxiter = 100

Calcul du point optimal %

;grad_desc_con(f, g, x0, A, b, tol, maxiter) = ]x, fx, iters[

Affichage du résultat %

;disp("Point optimal :")

;disp(x)

;disp("Valeur de la fonction f au point optimal :")

;disp(fx)

;disp("Nombre d'itérations :")

;disp(iters)

end

: Point optimal

]0.5 0.5[
: Valeur de la fonction f au point optimal

0.25

: Nombre d'itérations

Exemple 2
function demo

Fonction à minimiser %

;f = @(x) x(1)^2 + x(2)^2 + x(3)^2

Gradient de la fonction f %

;g = @(x) [2*x(1); 2*x(2); 2*x(3)]

Contraintes %

;A = [1 0 0; 0 1 0; 0 0 1]

;b = [1; 1; 1]

Initialisation %

;x0 = [0; 0; 0]

Tolérence %

;tol = 1e-6

Nombre maximum d'itérations %

;maxiter = 100

Calcul du point optimal %

;grad_desc_con(f, g, x0, A, b, tol, maxiter) = ]x, fx, iters[

Affichage du résultat %

;disp("Point optimal :")

;disp(x)

;disp("Valeur de la fonction f au point optimal :")

;disp(fx)

;disp("Nombre d'itérations :")

;disp(iters)

end
: Point optimal

]1/3 1/3 1/3[


: Valeur de la fonction f au point optimal

1/27

: Nombre d'itérations

10

La méthode de descend(pente plus grande) sans contrainte


function [x, fx, iters] = grad_desc_noncon(f, g, x0, tol, maxiter)

GRAD_DESC_NONCON Descente de gradient sans contrainte %

:Syntaxe %

grad_desc_noncon(f, g, x0, tol, maxiter) = ]x, fx, iters[ %

:Arguments %

f : Fonction à minimiser %

g : Gradient de f %

x0 : Point de départ %

tol : Tolérance %

maxiter : Nombre maximum d'itérations %

:Retour %

x : Point optimal %

fx : Fonction f en x %

iters : Nombre d'itérations %

Initialisation %

;x = x0

;fx = f(x)

;iters = 0

Boucle d'itération %

while (iters < maxiter && norm(g(x)) > tol)

Descente de gradient %

;d = -g(x)
;x = x + d

Mise à jour des variables %

;fx = f(x)

;iters = iters + 1

end

end

Exemple

function demo

Fonction à minimiser %

;f = @(x) x(1)^2 + x(2)^2

Gradient de la fonction f %

;g = @(x) [2*x(1); 2*x(2)]

Initialisation %

;x0 = [0; 0]

Tolérence %

;tol = 1e-6

Nombre maximum d'itérations %

;maxiter = 100

Calcul du point optimal %

;grad_desc_noncon(f, g, x0, tol, maxiter) = ]x, fx, iters[

Affichage du résultat %

;disp("Point optimal :")

;disp(x)

;disp("Valeur de la fonction f au point optimal :")

;disp(fx)
;disp("Nombre d'itérations :")

;disp(iters)

end

: Point optimal

]0 0[

: Valeur de la fonction f au point optimal

: Nombre d'itérations

Les fonctions prédéfinis sur matlab qui permet de résoudre les problèmes
d'optimisation avec et sans contraintes
Problèmes d'optimisation sans contraintes

: Les fonctions prédéfinies pour résoudre les problèmes d'optimisation sans contraintes sont les suivantes

fmincon() : Cette fonction permet de résoudre un problème d'optimisation sans contraintes en utilisant un
.algorithme de recherche locale

fminsearch() : Cette fonction permet de résoudre un problème d'optimisation sans contraintes en utilisant un
.algorithme de descente de gradient

lsqnonlin() : Cette fonction permet de résoudre un problème d'optimisation sans contraintes avec des
.contraintes d'égalité

Problèmes d'optimisation avec contraintes

: Les fonctions prédéfinies pour résoudre les problèmes d'optimisation avec contraintes sont les suivantes

…fmincon() : Cette fonction peut être utilisée pour résoudre

Example

function demo

Fonction à minimiser %

;f = @(x) x(1)^2 + x(2)^2

Initialisation %

;x0 = [0; 0]
Résolution du problème d'optimisation %

;fmincon(f, x0) = ]x, fx[

Affichage du résultat %

;disp("Point optimal :")

;disp(x)

;disp("Valeur de la fonction f au point optimal :")

;disp(fx)

end

: Point optimal

]0 0[

: Valeur de la fonction f au point optimal

Vous aimerez peut-être aussi