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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !