Exemple de fonction à minimiser
Cette méthode calcule systématiquement le gradient de la fonction au point donné en paramètre, et optionnellement la valeur de la fonction (si le nombre de paramètres en sortie est égal à 2). Deux variables globales permettent le comptage de ces opérations et doivent être initialisées dans le programme principal.
Contents
function [dx,f] = f5(x) global NB_EVAL_FONC; global NB_EVAL_GRAD; n = length(x); if nargout==2 f = 1-cos(x(1))-sin(x(2)); for i=2:n-1 f = f+i*((1-cos(x(i)))+sin(x(i-1))-sin(x(i+1))); end f = f+n*((1-cos(x(n)))+sin(x(n-1))); NB_EVAL_FONC = NB_EVAL_FONC+1; end dx = zeros(1,n); dx(1) = sin(x(1))+2*cos(x(1)); dx(n) = (1-n)*cos(x(n))+n*sin(x(n)); for i=2:n-1 dx(i)=2*cos(x(i))+i*sin(x(i)); end NB_EVAL_GRAD=NB_EVAL_GRAD+1; end