文档帮助中心
使用无衍生物的方法发现无约束多变量函数的最小
X = fminsearch(乐趣,X0)
X = fminsearch(乐趣,X0,选项)
X = fminsearch(问题)
[X,FVAL] = fminsearch(___)
[X,FVAL,exitflag] = fminsearch(___)
[X,FVAL,exitflag,输出] = fminsearch(___)
非线性规划求解。搜索最小指明的问题
分 X F ( X )
F(X)是返回标功能,和X是矢量或矩阵;看到矩阵参数。
例
X= fminsearch(开玩笑,X0)始于点X0并尝试找到当地最低X的功能描述开玩笑。
X= fminsearch(开玩笑,X0)
X
开玩笑
X0
X= fminsearch(开玩笑,X0,选项)在该结构中指定的优化选项最小化选项。采用optimset设置这些选项。
X= fminsearch(开玩笑,X0,选项)
选项
optimset
X= fminsearch(问题)找到最低的问题,其中问题是一个结构。创建问题通过从优化应用程序导出的一个问题,如在导出您的工作。
X= fminsearch(问题)
问题
[X,FVAL] = fminsearch(___)对于任何先前输入的语法,返回FVAL目标函数的值开玩笑在该解决方案X。
FVAL
[X,FVAL,exitflag] = fminsearch(___)另外返回一个值exitflag描述退出条件。
exitflag
[X,FVAL,exitflag,产量] = fminsearch(___)另外返回结构产量有关优化过程的信息。
[X,FVAL,exitflag,产量] = fminsearch(___)
产量
全部收缩
最小化的ROSENBROCK的功能,许多算法非常困难的优化问题:
F ( X ) = 1 0 0 ( X 2 - X 1 2 ) 2 + ( 1 - X 1 ) 2 。
该函数在该点处被最小化X = [1,1]与最小值0。
X = [1,1]
0
设置起点X0 = [-1.2,1]并使用最小化的ROSENBROCK的功能fminsearch。
X0 = [-1.2,1]
fminsearch
有趣= @(X)100 *(X(2) - X(1)^ 2)^ 2 +(1 - X(1))^ 2;X0 = [-1.2,1];X = fminsearch(乐趣,X0)
X =1×21.0000 1.0000
设置选项来监控过程fminsearch尝试找到最低。
设置选项,以在每次迭代绘制的目标函数。
选项= optimset('PlotFcns',@ optimplotfval);
设定目标函数的ROSENBROCK的功能,
有趣= @(X)100 *(X(2) - X(1)^ 2)^ 2 +(1 - X(1))^ 2;X0 = [-1.2,1];X = fminsearch(乐趣,X0,选项)
最小化的目标函数,其值由执行文件中给出。函数文件必须接受一个真正的矢量X并返回一个真正的标量为目标函数的值。
复制下面的代码,并把它作为一档名为objectivefcn1.m您MATLAB®路径。
objectivefcn1.m
功能F = objectivefcn1(X)F = 0;对于K = -10:10 F = F + EXP( - (X(1)-x(2))^ 2 - 2 *×(1)^ 2)* COS(X(2))* SIN(2 * X(2));结束
在开始X0 = [0.25,-0.25]和搜索最小的objectivefcn。
X0 = [0.25,-0.25]
objectivefcn
X0 = [0.25,-0.25];X = fminsearch(@ objectivefcn1,X0)
X = -0.1696 -0.5086
有时候,你的目标函数有额外的参数。这些参数不变量进行优化,它们在优化过程中固定值。例如,假设你有一个参数一个在的ROSENBROCK型函数
一个
F ( X , 一个 ) = 1 0 0 ( X 2 - X 1 2 ) 2 + ( 一个 - X 1 ) 2 。
该函数具有在最小值0 X 1 = 一个 , X 2 = 一个 2 。如果,例如, 一个 = 3 ,你可以通过创建一个匿名函数包含在你的目标函数的参数。
创建了额外的参数作为附加参数的目标函数。
F = @(X,A)100 *(X(2) - X(1)^ 2)^ 2 +(A-X(1))^ 2;
把参数在MATLAB®工作区。
一个= 3;
创建一个匿名函数X单独包含参数的工作区中的值。
有趣= @(X)F(X,A);
解决起始于问题X0 = [-1,1.9]。
X0 = [-1,1.9]
X0 = [-1,1.9];X = fminsearch(乐趣,X0)
X =1×23.0000 9.0000
有关在你的目标函数中使用额外的参数的详细信息,请参阅参数化功能(MATLAB)。
发现无论是使用最小的目标函数的位置和价值fminsearch。
写一个三变量的问题一个匿名的目标函数。
X0 = [1,2,3];有趣= @(x)的范数(X + X0)^ 2 * EXP(范数(X-X0)^ 2 + SUM(X));
找到最低的开玩笑开始于X0。找出最小的值也是如此。
[X,FVAL] = fminsearch(乐趣,X0)
X =1×31.5359 2.5645 3.5932
FVAL = -5.9565e + 04
检查优化的结果,无论是在其运行时,它完成之后。
设置选项提供迭代显示,这给了优化的求解器运行的信息。此外,设置了绘图功能,以显示目标函数值的求解器运行。
选项= optimset('显示','ITER','PlotFcns',@ optimplotfval);
设定的目标函数和起点。
包括代码objectivefcn1为您的MATLAB®路径上的一个文件。
objectivefcn1
X0 = [0.25,-0.25];有趣= @ objectivefcn1;
获得所有求解器的输出。使用这些输出求解完成后检查结果。
[X,FVAL,exitflag,输出] = fminsearch(乐趣,X0,选项)
迭代函数功能计数分钟F(X)步骤0 1 -6.70447 1 3 -6.89837初始单纯2 5 -7.34101扩大3 7 -7.91894扩大4 9 -9.07939扩大5 11 -10.5047扩大6 13 -12.4957扩大7 15 -12.6957反映8 17 -12.8052合同以外内部10 21 9 19 -12.8052合同-13.0189扩大11 23 -13.0189合同内12 25 -13.0374反映13 27 -13.122反映14 28 -13.122 15反映29 -13.122反映16 31 -13.122合同以外1733 -13.1279合同内18 35 -13.1279合同内19 37 -13.1296合同内20 39 -13.1301合同内21 41 -13.1305反映22 43 -13.1306合同内23 45 -13.1309合同内24 47 -13.1309合同内25 49 -13.131反映内部32 63 -13.131合同内33 65 -13.131合同以外34内部27 53 -13.131 26合同51 -13.131合同内28 55 -13.131合同内29 57 -13.131合同以外30 59 -13.131合同内31 61 -13.131合同67 -13.131内35 69 -13.131合同项合同IDE优化终止:当前x满足使用1.000000e-04和F(X)满足OPTIONS.TolX使用1.000000e-04的OPTIONS.TolFun收敛标准终止条件X = -0.1696 -0.5086 FVAL = -13.1310 exitflag =1个输出=结构与字段:迭代:35 funcCount:69算法: '内尔德-Mead单纯直接搜索' 消息: '优化终止:...'
的价值exitflag是1,意义fminsearch可能收敛到局部最小。
1
该产量结构示出了迭代次数。迭代显示的情节显示该信息为好。该产量结构还示出了功能评价,评价迭代显示节目的数量,但所选择的绘图功能没有。
功能,以尽量减少,指定为功能手柄或函数的名称。开玩笑是接受载体或阵列的功能X然后返回一个标量F(目标函数评估在X)。
F
指定开玩笑对于文件的函数句柄:
X = fminsearch(@ myfun,X0)
哪里myfun是MATLAB®功能如
myfun
函数f = myfun(x)的F = ...%计算在x处的函数值
您还可以指定开玩笑作为一个匿名函数的函数句柄:
X = fminsearch(@(x)的范数(X)^ 2,X0);
例:有趣= @(X)-x * EXP( - 3 * x)的
有趣= @(X)-x * EXP( - 3 * x)的
数据类型:烧焦|function_handle|串
烧焦
function_handle
串
初始点,指定为实向量或真正的数组。求解器使用元素的数量X0和大小X0确定这些变量的数量和大小开玩笑接受。
例:X0 = [1,2,3,4]
X0 = [1,2,3,4]
数据类型:双
双
优化选项,指定为诸如的结构optimset回报。您可以使用optimset要设置或改变的选项结构这些字段的值。看到优化选项参考了解详细信息。
显示
显示器的水平(见迭代显示):
'通知'(默认)显示器输出仅当该功能不收敛。
'通知'
'最后'只显示最终输出。
'最后'
“关”要么'没有'显示没有输出。
“关”
'没有'
'ITER'显示输出在每次迭代。
'ITER'
FunValCheck
检查的目标函数值是否有效。'上'显示当目标函数返回一个值,该值是一个错误复杂要么为NaN。默认“关”显示没有错误。
'上'
复杂
为NaN
MaxFunEvals
功能评估的最大数量允许的,一个正整数。默认值是200个* numberOfVariables。看到公差和停止条件和迭代和函数计算。
200个* numberOfVariables
MAXITER
最大迭代次数允许的,一个正整数。默认值是200个* numberOfVariables。看到公差和停止条件和迭代和函数计算。
OutputFcn
指定一个或多个用户定义的函数,一个优化函数调用在每次迭代中,既可以作为一个功能句柄或函数处理的一个单元阵列。默认值是无([])。看到输出功能语法。
[]
PlotFcns
地块而算法执行进度的各项措施。从预定义的地块选择或自己编写。传递一个函数手柄或手柄功能的单元阵列。默认值是无([]):
@optimplotx绘制当前点。
@optimplotx
@optimplotfunccount绘制功能计数。
@optimplotfunccount
@optimplotfval绘制函数值。
@optimplotfval
自定义功能阴谋使用相同的语法输出功能。看到输出功能和输出功能语法。
TolFun
在函数值,正标量终止宽容。默认值是1E-4。看到公差和停止条件。不像其他的解决者,fminsearch停止时,它满足都TolFun和TolX。
1E-4
TolX
关于终止宽容X,正面标。默认值是1E-4。看到公差和停止条件。不像其他的解决者,fminsearch停止时,它满足都TolFun和TolX。
例:选项= optimset( '显示', 'ITER')
选项= optimset( '显示', 'ITER')
数据类型:结构
结构
问题结构,指定为具有以下字段的结构。
目的
求解
'fminsearch'
获得最简单的方法问题结构是从优化应用程序导出问题。
溶液,返回为真实载体或真正的数组。的大小X相同的尺寸X0。通常情况下,X是本地解决问题的时候exitflag是积极的。有关解决方案的质量信息,请参阅当解算器则成功。
在该解决方案的目标函数值,返回一个实数。通常,FVAL=有趣(X)。
有趣(X)
原因fminsearch停止,返回一个整数。
该函数收敛至溶液X。
超过迭代次数options.MaxIter或评价次数超过options.MaxFunEvals。
options.MaxIter
options.MaxFunEvals
-1
该算法是由输出功能终止。
关于优化过程的信息,返回与字段的结构:
迭代
迭代次数
funcCount
评价次数
算法
“内尔德-Mead单纯直接搜索”
信息
退出消息
fminsearch只有最大限度地减少在实数,也就是说,X必须只为实数和F(X)只能返回实数。什么时候X具有复数值,分割X成实部和虚部。
采用fminsearch解决问题不可微或问题的不连续性,尤其是当该溶液附近没有发生不连续。
fminsearch总体上是小于高效fminunc,特别是对于尺寸大于二的问题。然而,当这个问题是不连续的,fminsearch可以比更稳健fminunc。
fminunc
fminsearch不是该是平方和问题的求解器,即形式的,
分 X ‖ F ( X ) ‖ 2 2 = 分 X ( F 1 ( X ) 2 + F 2 ( X ) 2 + ... + F ñ ( X ) 2 )
相反,使用lsqnonlin功能,其已经被用于这种形式的问题进行了优化。
lsqnonlin
fminsearch使用Lagarias等人的单纯形搜索方法。[1]。这是不使用数字或解析梯度作为直接搜索方法fminunc。该算法中详细地描述fminsearch算法。该算法不能保证收敛到局部最小值。
[1] Lagarias,J.C.,J. A.芦苇,M. H. Wright和P. E.赖特。“低维的内尔德 - 米德单纯形法的收敛性。”SIAM杂志优化。卷。9,第1号,1998年,第112-147。
对于C / C ++代码生成:
fminsearch忽略显示选项,并且不给迭代显示器或退出消息。要检查解决方案的质量,检查出口标志。
输出结构不包括算法要么信息领域。
fminsearch忽略OutputFcn和PlotFcns选项。
fminbnd|fminunc|optimset|optimtool
fminbnd
optimtool
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
选择一个网站,以获得翻译的内容,其中可看到当地的活动和优惠。根据您的位置,我们建议您选择:。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
请联系您当地的办事处