Написах скрипт в MATLAB 2010, в който извиках функцията lqnonlin и тя работи добре.
options = optimset('TolFun',0.001,...
'Display','off',...
'Algorithm','levenberg-marquardt');
[X,R2,r] = lsqnonlin(@FCN,XO,[],[],options);
След това стартирах кода в MATLAB 2008a, както следва (след като прочетох MATLAB: LSQNONLIN промени в R2011a? а>)
options = optimset('TolFun',0.01,...
'Display','off',...
'LargeScale','off',...
'LevenbergMarquardt','on')
[X,R2,r] = lsqnonlin(@FCN,XO,[],[],options);
Той дава изход, но не дава правилния отговор - всъщност той остава непроменен спрямо оригиналните входове
Мисля/надявам се, че е свързано с настройките ми за опции
Решен
Трябваше да настроя „TolFun“ на много по-ниска настройка. нямам представа защо.