【问题标题】:Finding global minima using matlab?使用matlab找到全局最小值?
【发布时间】:2015-08-01 04:08:15
【问题描述】:

我正在尝试使用以下代码查找 peaks 函数的全局最小值:

    opts = optimoptions(@fmincon,'Algorithm','interior-point');
problem = createOptimProblem('fmincon','objective',...
     @(x) ...
     3*(1-x(1)).^2.*exp(-(x(1).^2) - (x(2)+1).^2) ... 
   - 10*(x(1)/5 - x(1).^3 - x(2).^5).*exp(-x(1).^2-x(2).^2) ... 
   - 1/3*exp(-(x(1)+1).^2 - x(2).^2),...
     'x0',[0,0],'lb',[-Inf,-Inf],'ub',[Inf,Inf],'options',opts);
gs = GlobalSearch;
[x,f] = run(gs,problem);
x

我明白了:

x =

    4.2454    2.3345

这不应该是正确的答案。 (根据网上教程)

我可能有什么问题?谢谢。

【问题讨论】:

    标签: matlab modeling data-fitting


    【解决方案1】:

    Matlab 的示例使用区域 [-3,3]、[-3,3] 中的绑定约束。如果您将代码更改为以下,您将得到 Matlab 的答案

        problem = createOptimProblem('fmincon','objective',...
         @(x) ...
         3*(1-x(1)).^2.*exp(-(x(1).^2) - (x(2)+1).^2) ...
       - 10*(x(1)/5 - x(1).^3 - x(2).^5).*exp(-x(1).^2-x(2).^2) ...
       - 1/3*exp(-(x(1)+1).^2 - x(2).^2),...
         'x0',[0,0],'lb',[-3,-3],'ub',[3,3],'options',opts);
    

    顺便说一句,如果您想解决无约束问题,请改用fminunc

    【讨论】:

    • 是的,这是 [-3,3],[-3,3] 的问题。在我发布这个问题后,我意识到这一点。哈谢谢。
    • 还有,只是想知道。由于 fmincon 给了我正确的答案(对于我尝试过的所有其他示例),使用 fmincon 和 fminunc 之间有区别吗?谢谢。
    猜你喜欢
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2011-04-09
    • 2013-10-09
    • 2017-01-04
    • 1970-01-01
    相关资源
    最近更新 更多