Matlab和机械优化设计课件

上传人:石磨 文档编号:183740610 上传时间:2021-06-12 格式:PPT 页数:26 大小:349KB
返回 下载 相关 举报
Matlab和机械优化设计课件_第1页
第1页 / 共26页
Matlab和机械优化设计课件_第2页
第2页 / 共26页
Matlab和机械优化设计课件_第3页
第3页 / 共26页
Matlab和机械优化设计课件_第4页
第4页 / 共26页
Matlab和机械优化设计课件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

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

1、Matlab优化工具箱的使用,1,Matlab和机械优化设计,MATLAB优化工具箱能求解的优化模型,优化工具箱3.0 (MATLAB 7.0 R14),连续优化,离散优化,无约束优化,非线性 极小 fminunc,非光滑(不可 微)优化 fminsearch,非线性 方程(组) fzero fsolve,全局 优化 暂缺,非线性 最小二乘 lsqnonlin lsqcurvefit,线性规划 linprog,0-1规划 bitprog 一般(暂缺),非线性规划 fmincon fseminf,上下界约束 fminbnd fmincon lsqnonlin lsqcurvefit,约束线性 最

2、小二乘 lsqnonneg lsqlin,约束优化,二次规划 quadprog,多目标优化fgoalattain fminimax,2,Matlab和机械优化设计,无约束优化问题,数学模型: Matlab函数: 对于连续(处处光滑)的函数,使用fminunc 对于不连续的函数,使用fminsearch 一般而言fminunc比fminsearch有更高的寻优效率,因为它利用了梯度信息 两者都不是解决最小化平方和的问题首选方法,对这类问题,推荐使用(lsqnonlin )。,3,Matlab和机械优化设计,无约束优化问题,x,fval,exitflag,output,grad,hessian =

3、 fminunc(fun,x0,options) 输入参数: fun: 目标函数,以函数句柄的形式给出。函数句柄的构造: 函数首先用m文件定义好,然后采用下列方式构造函数句柄: 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函

4、数的时候有两种方式: sin(10), f_h(10),返回同样的结果。,4,Matlab和机械优化设计,无约束优化问题,x,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options) 输入参数: x0: 初始点的值。 Options: 提供和函数本身有关的一些细节控制,如采用的算法,是否采用梯度等信息。本身是一个结构数组,其中每一个属性值的改变或设定可用函数optimset完成,如: options = optimset(Display,iter,TolFun,1e-8); options = optimset(optimfun):

5、 返回优化函数“optimfun”所有的options属性的名称和属性值。如: options = optimset(fminunc): 观察结果。Options各个属性的含义请参考帮助文件。,5,Matlab和机械优化设计,无约束优化问题,x,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options) 输出参数: X, fval: 算法终止时函数的最优解和最优值。 exitflag: 整数标志,算法终止的原因,返回值大于0表示找到局部最优点,否则没有找到局部最优点。具体的返回请参照函数“fminunc”的帮助。 Output:Str

6、ucture containing information about the optimization. The fields of the structure are: iterations: Number of iterations taken; funcCount:Number of function evaluations; algorithm:Algorithm used; Cgiterations:Number of PCG iterations (large-scale algorithm only);stepsize:Final step size taken (medium

7、-scale algorithm only); grad,hessian:最优解X点处的剃度和Hessian矩阵,6,Matlab和机械优化设计,无约束优化问题,x,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options) 例子: 求目标函数 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(

8、-(x(:,1)+1).2 - x(:,2).2); fminsearch与fminunc有相同的输入和输出参数,但是它使用单纯形法来找到局部最优。 分别用fminsearch和fminunc函数求上述目标函数的极小值点,可发现在利用了梯度信息的时候,迭代的次数大大减小。,7,Matlab和机械优化设计,约束优化问题,1。单变量(标量)、上下界约束优化问题。 x,fval,exitflag,output = fminbnd(fun,x1,x2,options) 目标函数必须是连续的,只能求出局部最优值,所用算法:黄金分割和二次插值方法。 例子: 求函数 f(x)=x(2/3)-(x2+1)(1

9、/3),8,Matlab和机械优化设计,约束优化问题,2。线性规划问题。 x,fval,exitflag,output,lambda = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)它的输出只是最终结果,没有迭代过程。 例:,9,Matlab和机械优化设计,约束优化问题,数学模型: 设计变量: 各个方案切割的套数:x=x1,x2,x3,x4,x5; 目标函数: 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

10、=100 0=x1,x2,x3,x4,x5,10,Matlab和机械优化设计,约束优化问题,3。二次规划问题 x,fval,exitflag,output,lambda = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) ;当问题不是严格凸规划问题时,返回局部最小点。,11,Matlab和机械优化设计,约束优化问题,4。非线性约束优化问题 x,fval,exitflag,output,lambda,grad,hessian = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) ; 函数fun以函数句柄的形式

11、或匿名函数的形式给出; Nonlcon:返回等式和不等式约束向量c(x)和ceq(x)的一个函数。如: x= fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon) 其中 mycon 是Matlab函数,其定义如下: function c,ceq = mycon(x) c = . % Compute nonlinear inequalities at x. ceq = . % Compute nonlinear equalities at x.,12,Matlab和机械优化设计,约束优化问题,4。非线性约束优化问题 如果 options = optimset(Gra

12、dConstr,on),也就是优化过程需要用到非线性约束的梯度信息时,非线性约束函数必须在第3和第4个返回值中返回不等式非线性约束的梯度和等式非线性约束的梯度信息。 function c,ceq,GC,GCeq = mycon(x) c = . % Nonlinear inequalities at x ceq = . % Nonlinear equalities at x if nargout 2 % nonlcon called with 4 outputs GC = . % Gradients of the inequalities GCeq = . % Gradients of the

13、 equalities end,13,Matlab和机械优化设计,4. fmincon函数,MATLAB代码: %首先编写目标函数的.m文件: function f = myfun (x) f = -x(1)*x(2)*x(3); x0=10; 10; 10 %起始点 x, fval = fmincon (myfun, x0, A, b),14,Matlab和机械优化设计,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*

14、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; options = optimset(LargeScale,off); x, fval = fmincon(objfun,x0,confun,options),15,Matlab和机械优化设计,4. fmincon函数,目标函数:,H,16,Matlab和机械优化设计,4. fmincon函数,Step1:建立数学模型 设计变

15、量和目标函数:管直径D和支架高度H 约束条件:,17,Matlab和机械优化设计,4. fmincon函数,Step1:建立数学模型 约束条件:,18,Matlab和机械优化设计,4. fmincon函数,Step2:编制程序 目标函数 function f=objfun1(x) f=1.225e-4*x(1)*sqrt(577600.0+x(2)*x(2); 约束函数 function c,ceq=confun1(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)/(

16、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),19,Matlab和机械优化设计,多目标优化问题,1.目标规划法 x,fval,attainfactor,exitflag = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub); 函数fun以函数句柄的形式或匿名函数的形式给出,它多个目标函数构成的向量; goal:每个目标函数想要达到的目标,和fun具有相同的维数。 Weight:每个目标函数在优化过程中重要性的体现。当某个目标函数的Weight为正值时,允许函数值大于目标值;当它为负值时,允许函数值小于目标值;如果希望某个目标值尽量接近目标值,在Options中设置“GoalsExactAchieve ”,并让该目标函数作

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

当前位置:首页 > 中学教育 > 教学研究

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