主要内容

优化求解器绘图函数

什么是图函数?

PlotFcns字段选项结构指定了优化函数在每次迭代时调用的一个或多个函数,以绘制各种进度度量。传递一个函数句柄或函数句柄的单元格数组。图函数的结构与输出函数的结构相同。有关此结构的更多信息,请参见优化求解器输出函数

您可以使用PlotFcns选项与下面的MATLAB®优化功能:

这些优化函数的预定义图函数是:

  • @optimplotx绘制当前点

  • @optimplotfval绘制函数值

  • @optimplotfunccount绘制函数计数(不可用于fzero

若要查看或修改预定义的绘图函数,请在MATLAB编辑器中打开函数文件。例如,要查看绘制当前点的函数文件,输入:

编辑optimplotx.m

示例:Plot函数

使用查看最小化的进度fminsearch用绘图函数@optimplotfval

  1. 为目标函数编写一个文件。对于这个例子,使用:

    函数f = onehump(x) r = x(1)^2 + x(2)^2;S = exp(-r);F = x(1)*s+r/20;
  2. 设置选项以使用绘图功能:

    options = optimset('PlotFcns',@optimplotfval);
  3. 调用fminsearch从[2,1]开始:

    [x final] = fminsearch(@onehump,[2,1],options)
  4. MATLAB返回如下:

    X = -0.6691 0.0000 final = -0.4052

    随着迭代的进行,函数值首先减小,然后变成常数。

相关的话题