Bonsoir,
Je suis en train de faire de la minimisation par les moindres carrés avec Matlab mais j'ai un problème.
Voici mon code:
1 2 3 4 5 6 7 8 9 10
| function [y]=funct(p,xdata)
e=0.01;
x=0.01;
N=140;
l=length(xdata);
for t=1:1:l
n=1:N;
y(t)=1+2*sum((cos((n.*pi*x)./e).*(exp((-(n.^2*pi^2*p(1).*xdata(t))./e^2)))));
end
end |
et
1 2 3 4 5 6
| open data.xlsx
xdata=columnA;
ydata=columnB;
fun=@(p,xdata) funct(xdata,p);
p=[6e-7];
[p,fmires]=lsqcurvefit(fun,p,xdata,ydata); |
et voici mon erreur:
Error using lsqcurvefit (line 244)
Function value and YDATA sizes are not
equal.
J'ai déjà utilisé cette fonction d'optimisation et ça marchait avant mais là je ne comprends pas.
Merci d'avance.
Partager