主要内容

fminbnd

描述

fminbnd是一维最小化器,用于找到由此指定的问题的最小值

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

XX1, 和X2是有限标量吗FX)是一个返回标量的函数。

例子

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.tatmou.com/help/optim/ug/fminbnd.html" class="intrnllnk">问题

例子

[<一种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 = ...%compute函数值x

您也可以指定乐趣作为匿名函数的函数句柄:

x = fminbnd(@(x)rang(x)^ 2,x1,x2);

例子:fun = @(x)-x * exp(-3 * x)

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

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

例子:x1 = -3

数据类型:

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

例子:x2 = 5

数据类型:

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

显示

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

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

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

  • 'iter'显示每次迭代的输出。

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

FunValCheck

检查目标函数值是否有效。默认的“关闭”允许fminbnd当目标函数返回一个值时复杂的.这'在'设置将在目标函数返回值时抛出错误复杂的

MaxFunEvals

允许最大函数评估数,一个正整数。默认为500..看<一种href="//www.tatmou.com/help/optim/ug/tolerances-and-stopping-criteria.html" class="a">公差和停止标准和<一种href="//www.tatmou.com/help/optim/ug/iterations-and-function-counts.html" class="a">迭代和函数计数

maxiter.

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

outputfcn.

指定一个或多个用户定义的函数,即在每个迭代时进行优化函数调用,作为函数句柄或作为功能句柄的单元格数组。默认为none ([])。看<一种href="//www.tatmou.com/help/optim/ug/output-function.html" class="a">输出函数和绘图函数语法

Plotfcns.

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

  • @Optimplotx.绘制当前点

  • @optimplotfunccount.绘制函数计数

  • @optimplotfval绘制功能值

自定义绘图功能使用与输出功能相同的语法。看<一种href="//www.tatmou.com/help/optim/ug/output-functions.html" class="a">优化工具箱™的输出功能和<一种href="//www.tatmou.com/help/optim/ug/output-function.html" class="a">输出函数和绘图函数语法

托克斯

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

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

数据类型:塑造

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

字段名称 入口

客观的

目标职能

x1

左端点

x2

右终点

解算器

'fminbnd'

选项

选项结构,如返回<一种href="//www.tatmou.com/help/optim/ug/optimset.html">optimset

数据类型:塑造

输出参数

全部收缩

解,返回实标量。通常情况下,X什么时候能解决局部问题<一种href="#bu_pfzo-exitflag" class="intrnllnk">ExitFlag.是正的。有关解决方案质量的信息,请参见<一种href="//www.tatmou.com/help/optim/ug/when-the-solver-succeeds.html" class="a">当求职者成功时

目标函数在解处的值,以实数返回。一般来说,fval.=有趣的(x)

原因fminbnd停止,返回整数。

1

功能融合到解决方案X

0.

超出迭代次数options.maxiter.或超出函数评估数选项。MaxFunEvals

-1

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

-2

界限是不一致的,意思是x1> x2

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

迭代

采取的迭代人数

Funccount.

功能评估数量

算法

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

信息

退出消息

限制

  • 要最小化的函数必须是连续的。

  • fminbnd可能只给出局部解决方案。金宝搏官方网站

  • fminbnd当解在区间的边界上时,可以表现出缓慢的收敛。在这种情况下,<一种href="//www.tatmou.com/help/optim/ug/fmincon.html">fmincon经常提供更快,更准确的解决方案。金宝搏官方网站

算法

fminbnd是一个函数文件。该算法基于Golden Poects搜索和抛物线插值。除非左端点X1非常靠近正确的端点X2fminbnd没有评估乐趣在终点上,所以乐趣只需要定义X在这一期间X1<X<X2

如果最小值实际发生在X1X2fminbnd返回一个点X在间隔的内部(X1X2)接近最小化器。在这种情况下,距离X从最小化器不超过2 *(托克斯+ 3 * abs(x)* sqrt(eps)).看<一种href="//www.tatmou.com/help/optim/ug/fminbnd.html" class="intrnllnk">[1]或<一种href="//www.tatmou.com/help/optim/ug/fminbnd.html" class="intrnllnk">[2]有关算法的详细信息。

参考

[1] Forsythe,G.E.,M.A.Malcolm和C. B. Moler。数学计算的计算机方法.Englewood Cliffs,NJ:Prentice Hall,1976年。

[2]布伦特,理查德。P.无衍生物的最小化算法.Englewood Cliffs, NJ: Prentice-Hall, 1973。

扩展功能

在R2006A之前介绍