Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

优化求解器绘制函数

什么是绘图函数?

options 结构体的 PlotFcns 字段指定优化函数在每次迭代时调用的一个或多个函数,用于绘制各种进度测度。传递函数句柄或函数句柄的元胞数组。绘图函数的结构体与输出函数的结构体相同。有关此结构体的详细信息,请参阅优化求解器输出函数

PlotFcns 选项可以与下列 MATLAB® 优化函数配合使用:

这些优化函数的预定义绘图函数包括:

  • @optimplotx 绘制当前点

  • @optimplotfval 绘制函数值

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

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

edit optimplotx.m

示例:绘图函数

查看使用 fminsearch 与绘图函数 @optimplotfval 求最小值的进度:

  1. 为目标函数编写一个文件。在本示例中,使用:

    function f = onehump(x)
    
    r = x(1)^2 + x(2)^2;
    s = exp(-r);
    f = x(1)*s+r/20;
  2. 设置 options 以便使用绘图函数:

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

    [x ffinal] = fminsearch(@onehump,[2,1],options)
  4. MATLAB 返回以下内容:

    x =
       -0.6691    0.0000
    
    ffinal =
       -0.4052

    As the iterations proceed, the function value first decreases, then becomes constant.

相关主题