Problem with "lsqnonlin" function in matlab
Afficher commentaires plus anciens
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?!
Réponses (0)
Catégories
En savoir plus sur Nonlinear Optimization dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!