Bonjour,
J'utilise la fonction fminsearchbnd sous MATLAB pour résoudre une optimisation à 12 coefficients.
Actuellement, j'ai crée une fonction coût qui est grosse-modo l'écart (en valeurs) entre ma |Courbe mesuré – Courbe théorique| et que je rentres en paramètre dans l'optimiseur (fminsearchbnd). C'est cette fonction que l'optimiseur va chercher à minimiser.
Je trouve que cette fonction est bien adapté à ce que je souhaite car elle fonctionne à partir d'un certain de nombre de coefficients, mais dès que je passe à 12 coefficients ... la par contre : les bornes que j'ai appliqué dans mon code ne sont pas du tout respecté, j'ai l'impression que l'optimiseur fait n'importe quoi. De plus, le résultat n'est pas du tout représentatif entre la mesure et la simulation lorsque j'applique les constantes que la fonction est parvenu à optimiser.
Dans mon code :
Tout d'abord j'initialise mes constantes pour donner à ma fonction d'optimisation un point de départ :
Ensuite je défini mes bornes de cette manière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 initP.constante1 = [6,6,2,5,5,4.5]; initP.constante2 = [0.05,0.02,0.02,0.02,0.05,0.05];
Mais le résultat que j’obtiens n'est pas bon du tout, et j'ai un taux d'erreur important. Je n’arrive pas à comprendre pourquoi l'optimiseur cherche à aller au delà de mes bornes que lui ai affecté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 LB = [0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0]; UB = [7 4,7 4,3 1,6 4,6 4, 6 4];
Avez vous des idées svp ?
Partager