Problem with "lsqnonlin" function in matlab

3 visualizaciones (últimos 30 días)
fsalehi
fsalehi el 24 de Ag. de 2011
Dear all,
I have a problem with 'lsqnonlin' function in matlab. I used it to optimizing this function:
objfun = @(z) y - ( z(5).*exp(-z(1).*(t-z(7)).^2).*cos(2*pi.*z(2).*(t-z(7))+z(3)) + z(6).*exp(-z(1).*(t-z(8)).^2).*cos(2*pi.*z(2).*(t-z(8))+z(4)) );
% y is my signal and I optimize a guassian pulse function for Model Base Estimation
options = optimset(options, 'MaxFunEvals', 10000, 'TolX', 1e-3, 'TolFun', 1e-2, 'MaxIter', 800, 'LargeScale', 'on', 'LevenbergMarquardt', 'on', 'DiffMaxChange', 1e-7, 'DiffMinChange', 1e-10, 'Display', 'off', 'Diagnostics', 'off');
[Z,q,w,e,r]=lsqnonlin(objfun,...
[alpha Fc amptf(1:4) phase phase],...
[alpha-(2e6)^2 Fc-(2e6) toll(1:4) [] [] ],...
[alpha+(2e6)^2 Fc+(2e6) tolu(1:4) [] [] ],options);
the problem is the result of optimization, I have 8 variable to optimizing, but in result Z, only 7 of them changes and one of them (z(1)) doesnt change. I should note that 'alpha', 'Fc', 'tolu' and 'toll' are known.
why this happend?!

Respuestas (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by