Recherche du minimum d'une fonction
La fonction fminbnd permet de trouver le minimum d'une fonction à une variable.
Il faut fournir d'une part la fonction \(f\) elle-même et d'autre part les bornes inférieure et supérieure de l'intervalle dans lequel le minimum est recherché. \(f\) peut être définie dans un fichier ou par l'intermédiaire d'une fonction anonyme.
Seule l'utilisation d'une fonction anonyme est traité ici (on peut s'inspirer de ce qui a été présenté pour fzero si une fonction est définie dans un fichier).
Exemple :
On cherche le minimum de la fonction suivante :
dans l'intervalle compris entre \(-2 \pi\) et \(2 \pi\).
>> f= @(x) sin(x.^2) - x.*cos(x); >> x_minimum = fminbnd(f,-2*pi,2*pi) x_minimum = 0.3919
En fait, par défaut, la fonction fminbnd renvoie l'abscisse du minimum (parce qu'en pratique, c'est souvent ce que l'on cherche !), mais on peut aussi récupérer la valeur de ce minimum, c'est-à-dire l'ordonnée :
Exemple :
>> [x_minimum,y_minimum,exitflag] = fminbnd(@(x) sin(x.^2) - x.*cos(x),-2*pi,2*pi) x_minimum = 0.3919 y_minimum = -0.2092 exitflag = 1
Remarque :
Le booléen renvoyé dans la variable exitflag indique si la recherche a été fructueuse (exitflag=1) ou non (exitflag=0).
Attention :
Dans le cas d'une fonction dépendant de plusieurs paramètres, on s'inspirera de ce qui a été présenté de l'utilisation des fonctions anonymes avec fzero.