Bonjour,

Dans le but d'optimiser un modèle que je devellope, je suis en train de comparer ce modèle à des donnèes expérimentales.
J'utilisais jusqu'à présent la fonction fminsearch avec comme fonction 'input' une fonction qui me calculait le carré de la différence entre mes donnèes expérimentales et mon modèle.

Jusqu'ici, tout fonctionne nickel sauf que fminsearch me donne des valeurs pour mes paramètres (5*n au total) qui sont physiquement absurdes.
Je me suis alors penché vers fmincon qui permet de mettre des contraintes.
Je n'arrive cependant pas à la faire fonctionner correctement.
J'ai essayé ainsi (si je n'ai que 5 paramètres) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
X=[1;2;3;4;5]; % La valeurs initiales de mes paramètres
% Mes matrices de "contraintes"
% Je veux que mes 5 paramètres soient positifs
A=-eyes(5);      
B=zeros(5,1); 
options=optimset ('TolFun',1e-6,'TolX',1e-6,'MaxIter',10e5,'MaxFunEvals',10e5);
X2=fmincon(@myfun,X,A,B,options);
Sachant que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
X2=fminsearch(@myfun,X,options);
fonctionne sans problème, d'où peut venir le problème ?

Question subsidiaire, comment avec fmincon, je peux à la fois fournir pour un parmètre une condition>0 , et pour un autre un intervalle ?

Voili voulou, j'espère avoir été assez clair dans ma demande !

Merci beaucoup !