fminbnd

描述

fminbnd是查找最小用于通过指定的问题的一维最小化

最小值 X F X 这样 X 1 < X < X 2

XX1X2是有限的标量,和FX)是返回标量的函数。

X= fminbnd(<一个href="#bu_pfzo-fun" class="intrnllnk">开玩笑,<一个href="#bu_pfzo-x1" class="intrnllnk">x1,<一个href="#bu_pfzo-x2" class="intrnllnk">x2返回一个值X这是描述的标量值函数的局部极小化开玩笑在这一期间x1 < x < x2

X= fminbnd(<一个href="#bu_pfzo-fun" class="intrnllnk">开玩笑,<一个href="#bu_pfzo-x1" class="intrnllnk">x1,<一个href="#bu_pfzo-x2" class="intrnllnk">x2,<一个href="#bu_pfzo-options" class="intrnllnk">选项中指定的优化选项最小化选项。采用optimset设置这些选项。

X= fminbnd(<一个href="#bu_pfzo-problem" class="intrnllnk">问题找到最低的问题,在那里问题是一个结构。

创建问题通过从优化应用程序导出的一个问题,如在<一个href="//www.tianjin-qmedu.com/help/optim/ug/graphical-optimization-tool.html" class="a">出口你的工作

[<一个href="#bu_pfzo-x" class="intrnllnk">X,<一个href="#bu_pfzo_sep_shared-fval" class="intrnllnk">FVAL)= fminbnd (___,对于任何输入参数,返回计算得到的目标函数的值开玩笑在解决方案X

[<一个href="#bu_pfzo-x" class="intrnllnk">X,<一个href="#bu_pfzo_sep_shared-fval" class="intrnllnk">FVAL,<一个href="#bu_pfzo-exitflag" class="intrnllnk">exitflag)= fminbnd (___另外返回一个值exitflag这描述了退出条件。

[<一个href="#bu_pfzo-x" class="intrnllnk">X,<一个href="#bu_pfzo_sep_shared-fval" class="intrnllnk">FVAL,<一个href="#bu_pfzo-exitflag" class="intrnllnk">exitflag,<一个href="#bu_pfzo-output" class="intrnllnk">产量)= fminbnd (___另外返回一个结构产量其中包含关于优化的信息。

例子

全部收缩

输入参数

全部收缩

函数最小化,指定为函数句柄或函数名。开玩笑是接受真正的标量函数X并返回实标量F(目标函数评估在X)。

指定开玩笑作为文件的函数句柄:

x = fminbnd (@myfun (x1, x2)

在哪里myfun是MATLAB®等功能

函数f = myfun(x)的F = ...%计算在x处的函数值

您还可以指定开玩笑作为匿名函数的函数句柄:

X = fminbnd(@(x)的范数(X)^ 2,X1,X2);

例子:有趣= @(X)-x * EXP( - 3 * x)的

数据类型:字符|function_handle|字符串

下界,指定为有限实标量。

例子:X1 = -3

数据类型:

上界,指定为有限实标量。

例子:X2 = 5

数据类型:

优化选项,指定为诸如的结构optimset的回报。您可以使用<一个href="//www.tianjin-qmedu.com/help/optim/ug/optimset.html">optimset在选项结构中设置或更改这些字段的值。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/optimization-options-reference.html" class="a">优化选项参考了解详细信息。

显示

显示水平(参见<一个href="//www.tianjin-qmedu.com/help/optim/ug/iterative-display.html" class="a">迭代显示):

  • “通知”(默认)仅当函数不收敛时才显示输出。

  • “关闭”'没有'显示没有输出。

  • 'ITER'在每次迭代中显示输出。

  • “最后一次”只显示最终输出。

FunValCheck

检查目标函数值是否有效。默认的“关闭”允许fminbnd当目标函数返回的值为时继续执行复杂为NaN。的'上'当目标函数返回的值为时,设置将抛出错误复杂为NaN

MaxFunEvals

功能评估的最大数量允许的,一个正整数。默认值是500。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/tolerances-and-stopping-criteria.html" class="a">公差和停止标准和<一个href="//www.tianjin-qmedu.com/help/optim/ug/iterations-and-function-counts.html" class="a">迭代和函数计算

麦克斯特

最大迭代次数允许的,一个正整数。默认值是500。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/tolerances-and-stopping-criteria.html" class="a">公差和停止标准和<一个href="//www.tianjin-qmedu.com/help/optim/ug/iterations-and-function-counts.html" class="a">迭代和函数计算

OutputFcn

指定优化函数在每次迭代时调用的一个或多个用户定义函数,可以作为函数句柄,也可以作为函数句柄的单元数组。默认为none ([])。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/output-function.html" class="a">输出功能语法

PlotFcns

在算法执行时绘制各种进度度量,可以从预定义的绘图中进行选择,也可以编写自己的绘图。传递函数句柄或函数句柄的单元数组。默认为none ([])。

  • @optimplotx绘制当前点

  • @optimplotfunccount绘制功能计数

  • @optimplotfval绘制函数值

自定义功能阴谋使用相同的语法输出功能。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/output-functions.html" class="a">输出功能和<一个href="//www.tianjin-qmedu.com/help/optim/ug/output-function.html" class="a">输出功能语法

TolX

终止上公差X,一个正的标量。默认值是1的军医。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/tolerances-and-stopping-criteria.html" class="a">公差和停止标准

例子:选择= optimset(“显示”,“iter”)

数据类型:结构

问题结构,指定为具有以下字段的结构。

字段名 条目

客观的

目标函数

x1

左端点

x2

右端点

解算器

'fminbnd'

选项

选项结构,如返回<一个href="//www.tianjin-qmedu.com/help/optim/ug/optimset.html">optimset

获得最简单的方法问题结构是从优化应用程序中导出问题。

数据类型:结构

输出参数

全部收缩

解,作为实标量返回。通常情况下,X是局部解决问题的时候吗<一个href="#bu_pfzo-exitflag" class="intrnllnk">exitflag是正的。有关解决方案质量的信息,请参阅<一个href="//www.tianjin-qmedu.com/help/optim/ug/when-the-solver-succeeds.html" class="a">当解算器则成功

目标函数值在解,作为实数返回。一般来说,FVAL=有趣的(x)

原因fminbnd停止,返回一个整数。

1

函数收敛到一个解X

0

超过迭代次数options.MaxIter或评价次数超过options.MaxFunEvals

-1

通过输出函数或绘图功能停止。

-2

界限是不一致的x1 > x2

关于优化过程的信息,以带字段的结构返回:

迭代

采取迭代次数

funcCount

评价次数

算法

黄金分割搜索,抛物线插值

信息

退出消息

算法

fminbnd是一个函数文件。该算法是基于黄金分割搜索和抛物线插值。除非左端点X1是否非常接近正确的终点X2fminbnd没有评估开玩笑在端点,所以开玩笑只需要定义X在这一期间X1<X<X2

如果最小值出现在X1X2fminbnd返回一个点X在区间内(X1X2)是接近极小。在这种情况下,距离X从极小不超过2 *(TolX + 3个* ABS(X)* SQRT(EPS))。看到<一个href="//www.tianjin-qmedu.com/help/optim/ug/fminbnd.html" class="intrnllnk">[1]或<一个href="//www.tianjin-qmedu.com/help/optim/ug/fminbnd.html" class="intrnllnk">[2]参阅有关算法的详细资料。

参考文献

[1]福赛斯,G. E.,M. A.马尔科姆和C. B. Moler。数学计算的计算机方法。新泽西州Englewood Cliffs:Prentice Hall出版社,1976年。

[2]布伦特,理查德。P.没有导数的最小化算法。恩格尔伍德悬崖,新泽西州:普利蒂斯-霍尔,1973年。

扩展功能

R2006a前推出