主要内容

fminbnd

求固定区间上单变量函数的最小值

描述

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

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

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

例子

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

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

例子

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

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

例子

[<一个href="//www.tatmou.com/ch/ch/help/optim/ug/#bu_pfzo-x" class="intrnllnk">x,<一个href="//www.tatmou.com/ch/ch/help/optim/ug/#bu_pfzo_sep_shared-fval" class="intrnllnk">fval,<一个href="//www.tatmou.com/ch/ch/help/optim/ug/#bu_pfzo-exitflag" class="intrnllnk">exitflag,<一个href="//www.tatmou.com/ch/ch/help/optim/ug/#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);

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

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

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

例子:X1 = -3

数据类型:

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

例子:X2 = 5

数据类型:

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

显示

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

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

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

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

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

FunValCheck

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

MaxFunEvals

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

麦克斯特

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

OutputFcn

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

PlotFcns

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

  • @optimplotx绘制当前点

  • @optimplotfunccount绘制函数计数图

  • @optimplotfval绘制函数值

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

TolX

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

例子:options = optimset('Display','iter')

数据类型:结构体

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

字段名 条目

客观的

目标函数

x1

左端点

x2

正确的端点

解算器

“fminbnd”

选项

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

数据类型:结构体

输出参数

全部折叠

解,作为实标量返回。通常情况下,x什么时候局部解决问题<一个href="//www.tatmou.com/ch/ch/help/optim/ug/#bu_pfzo-exitflag" class="intrnllnk">exitflag是正的。有关解决方案质量的信息,请参见<一个href="//www.tatmou.com/ch/ch/ch/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/ch/ch/ch/help/optim/ug/fmincon.html">fmincon通常会给出更快更准确的答案。金宝搏官方网站

算法

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

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

参考文献

[1]福赛、g.e.、m.a.马尔科姆和c.b.莫勒。计算机数学计算方法“,.恩格尔伍德悬崖,新泽西州:普伦蒂斯大厅,1976年。

布伦特,理查德。P。无导数极小化算法.恩格尔伍德悬崖,新泽西州:Prentice-Hall, 1973。

扩展功能

版本历史

R2006a之前介绍