主要内容

fminbnd

描述

fminbnd为指定的问题找到最小值的一维极小化器

最小值 x f x 这样 x 1 < x < x 2

xx1,x2是有限标量吗fx)是一个返回标量的函数。

例子

x= fminbnd (<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-fun" class="intrnllnk">有趣的,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-x1" class="intrnllnk">x1,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-x2" class="intrnllnk">x2,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-options" class="intrnllnk">选项中指定的优化选项最小化选项.使用optimset设置这些选项。

x= fminbnd (<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-problem" class="intrnllnk">问题求最小值问题中所描述的结构<一个href="//www.tatmou.com/uk/help/optim/ug/fminbnd.html" class="intrnllnk">问题

例子

[<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-x" class="intrnllnk">x,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo_sep_shared-fval" class="intrnllnk">fval) = fminbnd (___,对于任何输入参数,返回在其中计算的目标函数的值有趣的在解决方案x

[<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-x" class="intrnllnk">x,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo_sep_shared-fval" class="intrnllnk">fval,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-exitflag" class="intrnllnk">exitflag) = fminbnd (___另外返回一个值exitflag它描述了退出条件。

例子

[<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-x" class="intrnllnk">x,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo_sep_shared-fval" class="intrnllnk">fval,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-exitflag" class="intrnllnk">exitflag,<一个href="//www.tatmou.com/uk/help/optim/ug/#bu_pfzo-output" class="intrnllnk">输出) = fminbnd (___另外返回一个结构输出包含关于优化的信息。

例子

全部折叠

输入参数

全部折叠

要最小化的函数,指定为函数句柄或函数名。有趣的是接受实标量的函数吗x并返回一个实标量f(目标函数值为x).

指定有趣的作为文件的函数句柄:

x = fminbnd (@myfun (x1, x2)

在哪里myfunMATLAB是一种®功能如

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

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

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

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

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

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

例子:x1 = 3

数据类型:

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

例子:x2 = 5

数据类型:

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

显示

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

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

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

  • “通路”显示每次迭代的输出。

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

FunValCheck

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

MaxFunEvals

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

麦克斯特

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

outputfcn.

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

PlotFcns

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

  • @optimplotx绘制当前点

  • @optimplotfunccount.绘制函数计数

  • @optimplotfval绘制功能值

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

TolX

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

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

数据类型:结构体

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

字段名称 条目

客观的

目标职能

x1

左端点

x2

正确的端点

解算器

“fminbnd”

选项

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

数据类型:结构体

输出参数

全部折叠

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

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

原因fminbnd已停止,返回为整数。

1

功能融合到解决方案x

0

超过迭代次数选项。麦克斯特或超过函数求值次数选项。MaxFunEvals

-1

被输出函数或绘图函数停止。

-2

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

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

迭代

迭代次数

funcCount

函数计算次数

算法

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

消息

退出消息

限制

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

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

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

算法

fminbnd是函数文件。该算法基于黄金分割搜索和抛物线插值。除非左端点x1非常靠近正确的端点x2fminbnd没有评估有趣的在端点处,所以有趣的只需要为x在这一期间x1<x<x2

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

参考

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

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

扩展功能

之前介绍过的R2006a