【问题标题】:MATLAB: lsqnonlin code from 2010b not working in 2008aMATLAB:2010b 的 lsqnonlin 代码在 2008a 中不起作用
【发布时间】:2011-11-09 05:19:49
【问题描述】:

我在 MATLAB 2010 中编写了一个脚本,在其中我调用了 lqnonlin 函数,它运行良好。

options = optimset('TolFun',0.001,...
                   'Display','off',...
                   'Algorithm','levenberg-marquardt');
[X,R2,r] = lsqnonlin(@FCN,XO,[],[],options);

然后我在 MATLAB 2008a 中运行代码如下(在阅读 MATLAB: LSQNONLIN changes in R2011a? 之后)

options = optimset('TolFun',0.01,...
                   'Display','off',...
                   'LargeScale','off',...
                   'LevenbergMarquardt','on')
[X,R2,r] = lsqnonlin(@FCN,XO,[],[],options);

它给出了一个输出,但没有给出正确的答案 - 事实上它与原始输入保持不变

想/希望这与我的选项设置有关

已解决

不得不将“TolFun”调整到低得多的设置。不知道为什么。

【问题讨论】:

  • 也许您应该将您的解决方案发布为答案,并将问题标记为已解决

标签: mathematical-optimization matlab


【解决方案1】:

是一个“TolFun”问题。不得不将其设置得更低(1e-9)。虽然我不知道这是为什么。其余代码相同。

【讨论】:

    猜你喜欢
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    相关资源
    最近更新 更多