Matlab optimisation fmincon
Bonjour à tous,
Je suis nouveau sur ce forum et sur matlab aussi
Mon problème consiste à trouver le polynôme y(x) qui minimise une intégrale en f(y(x)).dx entre bornes connues. j'ai donc écrit dans une macro :
Code:
1 2 3 4
| function out=obj(x,A)
aux=sqrt(1+polyval(polyder(A,x),x).^2);
out=aux./(sqrt(20*(1-polyval(A,x)))+0.001); |
pour définir ma fonction f(y(x)). A est la matrice des coef du polynôme y
Ensuite dans une autre macro j'ai mis :
Code:
1 2 3 4
| function t=temps(A)
x=0:0.01:1;
t=quad(@(x) obj(x,A),0,1); |
pour calculer mon intégrale.
et enfin dans le programme principal j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11
| Aeq=zeros(2,4);
Aeq(1,4)=1;
for i=1:1:4;
Aeq(2,i)=1;
end;
beq=[1 0]';
[A,t]=fmincon(temps,zeros(4,1),[],[],Aeq,beq) |
où Aeq et beq permettent de définir ma contrainte d'optimisation (y(x) doit passer par 2 points imposés).
Quand j'essaie de lancer fmincon dans matlab, il me demande de définir A. Or A est ma variable et je ne sais pas comment lui faire comprendre :(
Si quelqu'un a la patience de m'expliquer le problème, je l'en remercie d'avance !