主要内容

fminbnd

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

描述

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

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

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

例子

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.ru-cchi.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)

在哪里myfun是一个MATLAB®函数如

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

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

X = fminbnd(@(X)norm(X)^2,x1,x2);

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

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

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

例子:X1 = -3

数据类型:

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

例子:X2 = 5

数据类型:

优化选项,指定为结构,例如optimset的回报。你可以用<一个href="//www.ru-cchi.com/help/matlab/ref/optimset.html">optimset在选项结构中设置或更改这些字段的值。看到<一个href="//www.ru-cchi.com/help/matlab/math/setting-options.html" class="a">设置优化选项详细信息。

显示

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

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

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

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

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

FunValCheck

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

MaxFunEvals

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

麦克斯特

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

OutputFcn

指定优化函数在每次迭代时调用的一个或多个用户定义函数,可以作为函数句柄,也可以作为函数句柄的单元格数组。默认值是none ([]).看到<一个href="//www.ru-cchi.com/help/matlab/math/output-functions.html" class="a">优化求解器输出函数

PlotFcns

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

  • @optimplotx绘制当前点

  • @optimplotfunccount绘制函数计数

  • @optimplotfval绘制函数值

有关编写自定义plot函数的信息,请参见<一个href="//www.ru-cchi.com/help/matlab/math/plot-functions.html" class="a">优化求解器绘图函数

TolX

终止公差x,一个正标量。默认为1的军医.看到<一个href="//www.ru-cchi.com/help/matlab/math/setting-options.html" class="a">公差和停止标准

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

数据类型:结构体

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

字段名 条目

客观的

目标函数

x1

左端点

x2

正确的端点

解算器

“fminbnd”

选项

返回的选项结构<一个href="//www.ru-cchi.com/help/matlab/ref/optimset.html">optimset

数据类型:结构体

输出参数

全部折叠

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

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

1

函数收敛到一个解x

0

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

-1

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

-2

边界是不一致的,意思是X1 > x2

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

迭代

迭代次数

funcCount

函数求值的次数

算法

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

消息

退出消息

限制

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

  • fminbnd可能只给出局部的解决方案。

  • fminbnd当解在区间的边界上时,可以表现出缓慢的收敛。

算法

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

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

参考文献

[1]福赛斯,g.e., M. A.马尔科姆,C. B.莫尔。数学计算的计算机方法“,.恩格尔伍德悬崖,新泽西州:普伦蒂斯大厅,1976年。

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

扩展功能

版本历史

R2006a之前介绍过

Baidu
map