fminbnd

描述

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

x f ( x ) 这样 x 1 < x < x 2

x,x1,x2是有限的标量,并f(x)是返回标函数。

例子

x= fminbnd (<一个href="#bvadyg6-1-fun" class="intrnllnk">有趣的,<一个href="#bvadyg6-1-x1" class="intrnllnk">X1,<一个href="#bvadyg6-1-x2" class="intrnllnk">X2,<一个href="#bvadyg6-1-options" class="intrnllnk">选项)与优化选项最小化指定的选项。使用<一个href="//www.tatmou.com/help/matlab/ref/optimset.html">optimset设置这些选项。

x= fminbnd (<一个href="#bvadyg6-1-problem" class="intrnllnk">问题)求最小值问题,其中问题是一个结构。

例子

(<一个href="#bvadyg6-1-x" class="intrnllnk">x,<一个href="#bvadyg6-1-fval" class="intrnllnk">fval] = fminbnd(___),对于任何输入参数,返回目标函数中计算出的值有趣的在该解决方案x

(<一个href="#bvadyg6-1-x" class="intrnllnk">x,<一个href="#bvadyg6-1-fval" class="intrnllnk">fval,<一个href="#bvadyg6-1-exitflag" class="intrnllnk">exitflag] = fminbnd(___)另外返回一个值exitflag它描述了退出条件。

例子

(<一个href="#bvadyg6-1-x" class="intrnllnk">x,<一个href="#bvadyg6-1-fval" class="intrnllnk">fval,<一个href="#bvadyg6-1-exitflag" class="intrnllnk">exitflag,<一个href="#bvadyg6-1-output" class="intrnllnk">输出] = fminbnd(___)另外返回结构输出包含有关优化的信息。

例子

全部折叠

输入参数

全部折叠

功能,以尽量减少,指定为功能手柄或函数的名称。有趣的函数是否接受实标量x然后返回一个标量f目标函数的取值为x)。

指定有趣的对于文件的函数句柄:

X = fminbnd(@ myfun,X1,X2)

哪里myfunMATLAB是一种®功能如

函数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.tatmou.com/help/matlab/ref/optimset.html">optimset在选项结构中设置或更改这些字段的值。看到<一个href="//www.tatmou.com/help/matlab/math/setting-options.html" class="a">设置优化选项的详细信息。

显示

显示器的水平(见<一个href="//www.tatmou.com/help/matlab/math/iterative-display.html" class="a">优化迭代求解器显示):

  • “通知”(默认)显示器输出仅当该功能不收敛。

  • “关”要么“没有”显示没有输出。

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

  • '最后'只显示最终输出。

FunValCheck

检查的目标函数值是否有效。默认“关”允许fminbnd继续进行时,目标函数返回一个值,该值是复杂的要么。的“上”当目标函数返回一个值,该值是设定引发错误复杂的要么

MaxFunEvals

允许的最大函数求值数,为正整数。默认值是500。看到<一个href="//www.tatmou.com/help/matlab/math/setting-options.html" class="a">公差和停止条件

MAXITER

最大允许的迭代次数,一个正整数。默认值是500。看到<一个href="//www.tatmou.com/help/matlab/math/setting-options.html" class="a">公差和停止条件

OutputFcn

指定一个或多个用户定义的函数,一个优化函数调用在每次迭代中,既可以作为一个功能句柄或函数处理的一个单元阵列。默认值是无([])。看到<一个href="//www.tatmou.com/help/matlab/math/output-functions.html" class="a">优化求解器输出功能

PlotFcns

情节进展的各项措施,同时该算法执行,从预定义的地块选择或自己编写。传递一个函数手柄或手柄功能的单元阵列。默认值是无([])。

  • @optimplotx绘制当前点

  • @optimplotfunccount绘制函数计数

  • @optimplotfval绘制函数值

有关编写自定义的绘图功能的信息,请参阅<一个href="//www.tatmou.com/help/matlab/math/plot-functions.html" class="a">优化求解绘图功能

TolX

关于终止宽容x,正面标。默认值是1E-4。看到<一个href="//www.tatmou.com/help/matlab/math/setting-options.html" class="a">公差和停止条件

例:选项= optimset( '显示', 'ITER')

数据类型:结构体

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

字段名称 条目

目的

目标函数

X1

左端点

X2

正确的端点

求解

“fminbnd”

选项

选项结构,通过返回的<一个href="//www.tatmou.com/help/matlab/ref/optimset.html">optimset

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

数据类型:结构体

输出参数

全部折叠

在该解决方案的目标函数值,返回一个实数。通常,fval=有趣(X)

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

1

功能融合到一个解决方案x

0

超过迭代次数options.MaxIter或超过函数计算的次数options.MaxFunEvals

1

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

2

边界是不一致的,意义X1> X2

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

迭代

迭代次数

funcCount

函数求值数

算法

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

消息

退出消息

限制

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

  • fminbnd可能只给本地的解决方案。金宝搏官方网站

  • fminbnd可以表现出收敛速度慢时的解决方案是间隔的边界上。

算法

fminbnd是一个函数文件。该算法基于黄金分割搜索和抛物线插值。除非左端点x1非常接近正确的端点x2,fminbnd从不计算有趣的在端点处有趣的只需要定义为x在间隔x1<x<x2

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

参考

[1] Forsythe, G. E., M. A. Malcolm和C. B. Moler。对于数学计算的计算机方法。恩格尔伍德悬崖,新泽西州:普伦蒂斯霍尔,1976年。

[2]布伦特,Richard。P。算法最小化,而不衍生品。新泽西州Englewood Cliffs:普伦蒂斯霍尔,1973年。

扩展功能

之前介绍过的R2006a