Problem with "lsqnonlin" function in matlab

조회 수: 3 (최근 30일)
fsalehi
fsalehi 2011년 8월 24일
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?!

답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by