主要内容

多种解决方案金宝搏官方网站

对多个解决方案金宝搏官方网站

通过呼叫,您在对象中获得多个解决方案金宝搏官方网站与语法

[x,fval,eflag,输出,manymins] =运行(...);

manymins是解决方案对象的矢量;看GlobalOptimsolution..当manymins向量是客观函数值的顺序,从最低(最佳)到最高(最差)。每个解决方案对象包含以下属性(字段):

  • X.-局部最小值

  • fval.- 目标函数的值X.

  • ExitFlag.- 本地解算器的退出标志(本地解算器功能参考页中描述:粉刺ExitFlag.Fminunc.ExitFlag.lsqcurvefit.ExitFlag.或者lsqnonlin.ExitFlag.

  • 输出- 本地解算器的输出结构(本地解算器功能参考页中描述:粉刺输出Fminunc.输出lsqcurvefit.输出或者lsqnonlin.输出

  • X0.- 导致解决方案点的开始点的单元格阵列X.

有几种方法可以检查解决方案对象的矢量:

  • 在matlab.®工作区浏览器。双击“解决方案”对象,然后双击变量编辑器中的结果显示。

  • 使用点表示法。GlobalOptimsolution.属性是大写。使用适当的大写来访问属性。

    例如,要查找函数值的向量,请输入:

    fcnvals = [manymins.fval] fcnvals = -1.0316 -0.2155 0

    获取导致最低功能值的所有起始点的单元格数组(第一个元素)manymins),输入:

    smallx0 = manymins(1).x0
  • 绘制一些字段值。例如,要查看所得的范围fval.,输入:

    直方图([Manymins.fval],10)

    这将产生一个计算函数值的直方图。(图中显示的是来自不同例子的直方图,与之前的几张图不同。)

改变不同解的定义金宝搏官方网站

获得多个本地解决方案后,您可能会发现,您的公差不合适。金宝搏官方网站您可以拥有比您想要的更多本地解决方案,间隔太紧密。金宝搏官方网站或者您可以具有比您想要更少的解决方案金宝搏官方网站Globalsearch.多层的聚集了太多的解决方案。金宝搏官方网站

要处理这种情况,请再次使用不同的公差再次运行求解器。当Xtolerance.functiontolerance.公差决定了求解器如何将其产出分为GlobalOptimsolution.向量。这些公差是Globalsearch.多层的对象。

例如,假设您要使用主动集算法粉刺解决问题使用multiStart运行示例.进一步假设您想要容忍0.01对于两者来说Xtolerance.functiontolerance..当方法组内部函数值的本地解决方案金宝搏官方网站functiontolerance.彼此之间,孰轻孰重,孰轻孰重Xtolerance.除了彼此。要获得解决方案:

%%设置随机流以获得完全相同的输出%RNG(14,'Twister')MS = MultiStart('FunctionTolerance',0.01,'Xtolerance',0.01);opts = Optimoptions(@ Fmincon,'算法','Active-Set');六分= @(x)(4 * x(1)^ 2  -  2.1 * x(1)^ 4 + x(1)^ 6/3 ... + x(1)* x(2) -  4 * x(2)^ 2 + 4 * x(2)^ 4);问题= createOptimprobrom('fmincon','x0',[ -  1,2],...'目标',六分钟,'lb',[ -  3,-3],'UB',[3,3],...'选项',选择);[Xminm,Fminm,Flagm,OutptM,Someminsm] =运行(MS,问题,50);MultiStart完成了所有起始点的运行。所有50个本地解算器运行融合,并使用正本地求解器出口标志。someminsm someminsm = 1x5 globaloptimsolution属性:x fval ExitFlag输出X0

在这种情况下,多层的产生了五个不同的解决方案。金宝搏官方网站这里的“不同”是指解在目标函数值或位置上的距离大于0.01。金宝搏官方网站

相关的话题