matlab优化工具箱的使用

上传人:工**** 文档编号:544654155 上传时间:2023-03-02 格式:DOC 页数:15 大小:133.50KB
返回 下载 相关 举报
matlab优化工具箱的使用_第1页
第1页 / 共15页
matlab优化工具箱的使用_第2页
第2页 / 共15页
matlab优化工具箱的使用_第3页
第3页 / 共15页
matlab优化工具箱的使用_第4页
第4页 / 共15页
matlab优化工具箱的使用_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《matlab优化工具箱的使用》由会员分享,可在线阅读,更多相关《matlab优化工具箱的使用(15页珍藏版)》请在金锄头文库上搜索。

1、优化工具箱的使用MATLAB的优化工具箱提供了各种优化函数,这些优化函数可以通过在命令行输入相应的函数名加以调用;此外为了使用方便,MATLAB还提供了图形界面的优化工具GUI Optimization tool.1 GUI优化工具1.1 GUI优化工具的启动有两种启动方法:1在命令行输入optimtool;2在MATLAB主界面单击左下角的Start按钮,然后依次选择ToolboxesOptimizationOptimization tool1.2 GUI优化工具的界面界面分为三大块:左边Problem Setup and Results为优化问题的描述与计算结果显示;中间Options为优

2、化选项的设置;右边Quick Reference为帮助.为了界面的简洁,可以单击右上角的按钮将帮助隐藏或显示.1、优化问题的描述与计算结果显示此板块主要包括选择求解器、目标函数描述、约束条件描述等部分.选择合适的求解器以与恰当的优化算法,是进行优化问题求解的首要工作. Solver:选择优化问题的种类,每类优化问题对应不同的求解函数. Algorithm:选择算法,对于不同的求解函数,可用的算法也不同.Problem框组用于描述优化问题,包括以下内容: Objective function: 输入目标函数. Derivatives: 选择目标函数微分或梯度的计算方式. Start point:

3、 初始点.Constraints框组用于描述约束条件,包括以下内容: Linear inequalities: 线性不等式约束,其中A为约束系数矩阵,b代表约束向量. Linear equalities:线性等式约束,其中Aeq为约束系数矩阵,beq代表约束向量. Bounds:自变量上下界约束. Nonlinear Constraints function; 非线性约束函数. Derivatives:非线性约束函数的微分或梯度的计算方式.Run solver and view results框组用于显示求解过程和结果.对于不同的优化问题类型,此板块可能会不同,这是因为各个求解函数需要的参数个

4、数不一样,如Fminunc函数就没有Constraints框组.2、优化选项Options Stopping criteria:停止准则. Function value check:函数值检查. User-supplied derivatives: 用户自定义微分或梯度. Approximated derivatives: 自适应微分或梯度. Algorithm settings:算法设置. Inner iteration stopping criteria:内迭代停止准则. Plot function:用户自定义绘图函数. Output function:用户自定义输出函数. Display

5、 to command window:输出到命令行窗口.对于不同的优化问题类型,此板块也会不同,3、帮助Quick Reference每选择一个函数求解器,帮助部分都有对这个函数的功能说明,同时还会给出相应的各个输入项说明.1.3 GUI优化工具的使用步骤1选择求解器Solver和优化算法.2选定目标函数.3设定目标函数的相关参数.4设置优化选项.5单击Start按钮,运行求解.6查看求解器的状态和求解结果.7将目标函数、选项和结果导入/导出.在菜单文件中寻找1.4GUI优化工具的应用实例1、无约束优化fminunc求解器fminunc求解器可用的算法有两种: Large scale大规模算法

6、 Medium scale中等规模算法对于一般问题,采用中等规模算法即可.例1:用优化工具求的极小值,初始点取x=0.解:首先在当前MATLAB的工作目录下建立目标函数文件Fununc1.m文件:function y= FunUnc1 % function必须为小写,如果F为大写则不行y=x2+4*x-6;%平方符号输入时用键盘上数字6上的符合,否则错误然后启动优化工具: 在Solver下拉选框中选择fminunc; Algorithm下拉选框中选择Medium scale; 目标函数栏输入FunUnc1;%运算时输入函数不知什么原因老有错误,直接输入目标函数却没有错误 初始点输入0,其余参数

7、默认; 单击Start按钮运行.从求解结果可以看出,函数的极小值为-10,且在x=-2时取到,而且从Current iteration框可以看出迭代的步数.对于函数形式比较简单的情况,可以直接输入目标函数,而不用建立目标函数文件,在目标函数栏中直接输入xx2+4*x-6,也可求出结果.此题能否用进退法和黄金分割法或二次插值法求解吗?不能,要用进退法或黄金分割法得自己先编程序,然后才能调用这样的函数.2、无约束优化fminsearch求解器fminsearch求解器也可用来求解无约束优化问题,它有时候能求解fminunc不能解决的问题.例2:用优化工具求的极小值,初始点取x=-7,比较fminu

8、nc和fminsearch求出的结果.解:通过数学计算,可以得到本例中的极小点有两个x1=1,x2=2.启动优化工具: 在Solver下拉选框中选择fminunc; Algorithm下拉选框中选择Medium scale; 目标函数栏输入abs; 初始点输入-7,其余参数默认; 单击Start按钮运行.Fminunc求得的结果为x=1.5,显然数值不对,它是未加绝对值时函数的极小值. 然后在Solver下拉选框中选择fminsearch; Algorithm下拉选框中选择Medium scale; 目标函数栏输入abs; 初始点输入-7,其余参数默认; 单击Start按钮运行.fminsea

9、rch求得的结果为x=2,显然数值是对的.可为什么不能求出数值x=1呢,因为此时的函数值也是最小的.由此可得结论:对于非光滑优化问题Fminunc可能求不到正确的结果,而fminsearch却能很好地胜任这类问题的求解.2 MATLAB优化工具箱在一维优化问题中的应用2.1 应用fminbnd函数在MATLAB中,fminbnd函数可用来求解一维优化问题,其调用格式为:1x=fminbnd; %求函数fun在区间上的极小值对应的自变量值.2x=fminbnd; % 按options结构指定的优化参数求函数fun在区间上的极小值对应的自变量值,而options结构的参数可以通过函数optimse

10、t来设置,其中options结构中的字段如下:Display设置结果的显示方式:off不显示任何结果;iter显示每步迭代后的结果;final只显示最后的结果;notify只有当求解不收敛的时候才显示结果.FunValCheck检查目标函数值是否可接受:On当目标函数值为复数或NaN时显示出错信息;Off不显示任何错误信息.MaxFunEvals最大的目标函数检查步数.MaxIter最大的迭代步数.OutputFcn用户自定义的输出函数,它将在每个迭代步调用.PlotFcns用户自定义的绘图函数.TolX自变量的精度.3x,fval= fminbnd; %此格式中的输出参数fval返回目标函数

11、的极小值.4x,fval,exitflag= fminbnd;%此格式中的输出参数exitflag返回函数fminbnd的求解状态成功或失败,说明如下:exitflag=1fminbnd成功求得最优解,且解的精度为TolX;exitflag=0由于目标函数检查步数达到最大或迭代步数达到最大值而推出.exitflag=-1用户自定义函数引起的退出.exitflag=-2边界条件不协调x1x2.5x,fval,exitflag,output= fminbnd;%此格式中的输出参数output返回函数fminbnd的求解信息迭代次数、所用算法等,说明如下:output结构中的字段:output.al

12、gorithm: 优化算法output.iterations: 优化迭代步数output.funcCount: 目标函数检查步数output.message: 退出信息例1:用fminbnd求函数在区间-2,1上的极小值.解:在MATLAB命令窗口输入x,fval,exitflag,output= fminbnd所得结果为x =-0.8846fval =-2.0548exitflag =1output = iterations: 11 %迭代次数为11次 funcCount: 12 %函数计算了12次 algorithm: golden section search, parabolic in

13、terpolation %fminbnd用了黄金分割法和抛物线算法求本例函数的极小值 message: 1x112 char要查看结果的精度,可以接着在MATLAB命令窗口中输入output.message可得如下信息ans =Optimization terminated: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004说明求得结果的精度为1.0e-4,如果想提高精度,可以通过option结构来指定,在MATLAB命令窗口输入opt=optimset;format lon

14、g;x,fval,exitflag,output= fminbnd所得结果为x = -0.884646164474752fval = -2.054784062185396exitflag = 1output = iterations: 11 funcCount: 12 algorithm: golden section search, parabolic interpolation message: 1x112 char这样求得的结果x就有了1.0e-6的精度.为了理解fminbnd的求解原理,将每一步的迭代过程打印出来,在MATLAB命令窗口中输入opt=optimset;x,fval,exitflag,output= fminbnd所得结果为Func-count

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号