Problem with "lsqnonlin" function in matlab

2 views (last 30 days)
fsalehi
fsalehi on 24 Aug 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?!

Answers (0)

Community Treasure Hunt

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

Start Hunting!