Matlab与机械优化设计(5.优化工具箱)

上传人:油条 文档编号:27027162 上传时间:2018-01-05 格式:PPT 页数:26 大小:2.08MB
返回 下载 相关 举报
Matlab与机械优化设计(5.优化工具箱)_第1页
第1页 / 共26页
Matlab与机械优化设计(5.优化工具箱)_第2页
第2页 / 共26页
Matlab与机械优化设计(5.优化工具箱)_第3页
第3页 / 共26页
Matlab与机械优化设计(5.优化工具箱)_第4页
第4页 / 共26页
Matlab与机械优化设计(5.优化工具箱)_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Matlab与机械优化设计(5.优化工具箱)》由会员分享,可在线阅读,更多相关《Matlab与机械优化设计(5.优化工具箱)(26页珍藏版)》请在金锄头文库上搜索。

1、Matlab优化工具箱的使用,MATLAB优化工具箱能求解的优化模型,优化工具箱3.0 (MATLAB 7.0 R14),连续优化,离散优化,无约束优化,非线性极小fminunc,非光滑(不可微)优化fminsearch,非线性方程(组)fzerofsolve,全局优化暂缺,非线性最小二乘lsqnonlinlsqcurvefit,线性规划linprog,0-1规划 bitprog一般(暂缺),非线性规划fminconfseminf,上下界约束fminbndfminconlsqnonlinlsqcurvefit,约束线性最小二乘lsqnonneglsqlin,约束优化,二次规划quadprog,

2、多目标优化fgoalattain fminimax,无约束优化问题,数学模型:Matlab函数:对于连续(处处光滑)的函数,使用fminunc对于不连续的函数,使用fminsearch一般而言fminunc比fminsearch有更高的寻优效率,因为它利用了梯度信息两者都不是解决最小化平方和的问题首选方法,对这类问题,推荐使用(lsqnonlin )。,无约束优化问题,x,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options)输入参数: fun: 目标函数,以函数句柄的形式给出。函数句柄的构造:函数首先用m文件定义好,然后采用下列

3、方式构造函数句柄: fhandle= function_name 如: f_h=sin; f_h=cos匿名函数的形式(Anonymous function),函数的表达式直接给出: fhandle= (var_list) expression(var_list),如: f_h=(x) sin(x); f_h=(x) cos(x);采用函数句柄的方式调用函数:把函数的名称用函数句柄直接替换。比如定义: f_h=sin, 则使用sin函数的时候有两种方式: sin(10), f_h(10),返回同样的结果。,无约束优化问题,x,fval,exitflag,output,grad,hessian

4、= fminunc(fun,x0,options)输入参数: x0: 初始点的值。Options: 提供和函数本身有关的一些细节控制,如采用的算法,是否采用梯度等信息。本身是一个结构数组,其中每一个属性值的改变或设定可用函数optimset完成,如: options = optimset(Display,iter,TolFun,1e-8); options = optimset(optimfun): 返回优化函数“optimfun”所有的options属性的名称和属性值。如: options = optimset(fminunc): 观察结果。Options各个属性的含义请参考帮助文件。,无约

5、束优化问题,x,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options)输出参数: X, fval: 算法终止时函数的最优解和最优值。exitflag: 整数标志,算法终止的原因,返回值大于0表示找到局部最优点,否则没有找到局部最优点。具体的返回请参照函数“fminunc”的帮助。Output:Structure containing information about the optimization. The fields of the structure are: iterations: Number of iteration

6、s taken; funcCount:Number of function evaluations; algorithm:Algorithm used;Cgiterations:Number of PCG iterations (large-scale algorithm only);stepsize:Final step size taken (medium-scale algorithm only);grad,hessian:最优解X点处的剃度和Hessian矩阵,无约束优化问题,x,fval,exitflag,output,grad,hessian = fminunc(fun,x0,op

7、tions)例子: 求目标函数 mypeaks的局部最小值。 mypeaks=3*(1-x(:,1).2.*exp(-(x(:,1).2) - (x(:,2)+1).2) . - 10*(x(:,1)/5 - x(:,1).3 - x(:,2).5).*exp(-x(:,1).2-x(:,2).2) . - 1/3*exp(-(x(:,1)+1).2 - x(:,2).2); fminsearch与fminunc有相同的输入和输出参数,但是它使用单纯形法来找到局部最优。分别用fminsearch和fminunc函数求上述目标函数的极小值点,可发现在利用了梯度信息的时候,迭代的次数大大减小。,约

8、束优化问题,1。单变量(标量)、上下界约束优化问题。x,fval,exitflag,output = fminbnd(fun,x1,x2,options)目标函数必须是连续的,只能求出局部最优值,所用算法:黄金分割和二次插值方法。例子: 求函数 f(x)=x(2/3)-(x2+1)(1/3),约束优化问题,2。线性规划问题。x,fval,exitflag,output,lambda = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)它的输出只是最终结果,没有迭代过程。例:,约束优化问题,数学模型:设计变量: 各个方案切割的套数:x=x1,x2,x3,x4,x5;

9、目标函数: min f(x)=0.1*x2+0.2*x3+0.3*x4+0.8*x5约束条件: 总套数限制: x1+2*x2+x4=100 2* x3+2*x4+x5=100 3* x1+x2+2*x3+3*x5=100 0 2 % nonlcon called with 4 outputs GC = . % Gradients of the inequalities GCeq = . % Gradients of the equalitiesend,4. fmincon函数,MATLAB代码:%首先编写目标函数的.m文件:function f = myfun (x)f = -x(1)*x(2

10、)*x(3);x0=10; 10; 10 %起始点x, fval = fmincon (myfun, x0, A, b),4. fmincon函数,MATLAB代码:%首先编写目标函数的.m文件:function f = objfun(x)f = exp(x(1)*(4*x(1)2 + 2*x(2)2 + 4*x(1)*x(2) + 2*x(2) + 1);%编写非线性约束函数的.m文件: function c, ceq = confun(x)c = 1.5 + x(1)*x(2) - x(1) - x(2); -x(1)*x(2) - 10;ceq = ; %求解优化问题:x0 = -1,1

11、; options = optimset(LargeScale,off);x, fval = fmincon(objfun,x0,confun,options),4. fmincon函数,目标函数:,H,4. fmincon函数,Step1:建立数学模型 设计变量和目标函数:管直径D和支架高度H约束条件:,4. fmincon函数,Step1:建立数学模型 约束条件:,4. fmincon函数,Step2:编制程序目标函数function f=objfun1(x)f=1.225e-4*x(1)*sqrt(577600.0+x(2)*x(2); 约束函数function c,ceq=confun

12、1(x)c=19098.59*sqrt(577600.0+x(2)*x(2)/(x(1)*x(2)-700.0; 19098.59*sqrt(577600.0+x(2)*x(2)/(x(1)*x(2)-2.6e5*(x(1)*x(1)+6.25)/(577600.0+x(2)*x(2);ceq=;,x0=1,1 lb=zeros(2,1); ub=Inf*ones(2,1); %ub= x,fval,exitflag,output,lambda,grad,hessian = fmincon(objfun1,x0,lb,ub,confun1),多目标优化问题,1.目标规划法x,fval,atta

13、infactor,exitflag = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub);函数fun以函数句柄的形式或匿名函数的形式给出,它多个目标函数构成的向量;goal:每个目标函数想要达到的目标,和fun具有相同的维数。Weight:每个目标函数在优化过程中重要性的体现。当某个目标函数的Weight为正值时,允许函数值大于目标值;当它为负值时,允许函数值小于目标值;如果希望某个目标值尽量接近目标值,在Options中设置“GoalsExactAchieve ”,并让该目标函数作为Fun中的第一个函数。如果希望每一个函数值从目标值有相同百分比的偏差,则设置每一个函数的weight(i)=abs(goal(i);,

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

当前位置:首页 > 行业资料 > 其它行业文档

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