机械优化设计实例及matlab优化工具PPT模版
- 格式:ppt
- 大小:1.92 MB
- 文档页数:55
机械优化设计Matlab_优化工具箱基本用法Matlab 优化工具箱类型模型基本函数名一元函数极小Min F(x)s.t.x1<x无约束极小Min F(X)X=fminunc(‘F’,X0) X=fminsearch(‘F’,X0)线性规划Min Xc Ts.t.AX<=bX=linprog(c,A,b)二次规划Min21x T Hx+c T xs.t. Ax<=bX=quadprog(H,c,A,b)约束极小(非线性规划)Min F(X)s.t. G(X)<=0X=fmincon(‘FG’,X0)达到目标问题Min rs.t. F(x)-wr<=goalX=fgoalattain(‘F’,x,goal,w)极小极大问题Min max {F i(x)}X {Fi(x)}s.t. G(x)<=0X=fminimax(‘FG’,x0)变量调用函数描述f linprog,quadprog 线性规划的目标函数f*X 或二次规划的目标函数X’*H*X+f*X 中线性项的系数向量funfminbnd,fminsearch,fminunc,fmincon,lsqcurvefit,lsqnonlin,fgoalattain,fminimax非线性优化的目标函数.fun必须为行命令对象或M文件、嵌入函数、或MEX文件的名称H quadprog 二次规划的目标函数X’*H*X+f*X 中二次项的系数矩阵A,b linprog,quadprog,fgoalattain,fmincon, fminimaxA矩阵和b向量分别为线性不等式约束:bAX≤中的系数矩阵和右端向量Aeq,beq linprog,quadprog,fgoalattain,fmincon, fminimaxAeq矩阵和beq向量分别为线性等式约束:beqXAeq=中的系数矩阵和右端向量vlb,vub linprog,quadprog,fgoalattain,fmincon,fminimax,lsqcurvefit,lsqnonlinX的下限和上限向量:vlb≤X≤vubX0 除fminbnd外所有优化函数迭代初始点坐标x1,x2 fminbnd 函数最小化的区间options 所有优化函数优化选项参数结构,定义用于优化函数的参数x = bintprog(f, A, b, Aeq, Beq, x0, options) 0-1规划用MATLAB 优化工具箱解线性规划命令:x=linprog (c ,A ,b )2、模型:beqAeqX bAX ..min =≤=t s cXz 命令:x=linprog (c ,A ,b ,Aeq,beq )注意:若没有不等式:b AX ≤存在,则令A=[ ],b=[ ]. 若没有等式约束, 则令Aeq=[ ], beq=[ ]. 3、模型:VUBX VLB beq AeqX bAX ..min ≤≤=≤=t s cX z命令:[1] x=linprog (c ,A ,b ,Aeq,beq, VLB ,VUB )[2] x=linprog (c ,A ,b ,Aeq,beq, VLB ,VUB, X0)注意:[1] 若没有等式约束, 则令Aeq=[ ], beq=[ ]. [2]其中X0表示初始点 4、命令:[x,fval]=linprog(…)返回最优解x及x处的目标函数值fval.例1 max 6543216.064.072.032.028.04.0x x x x x x z +++++= 85003.003.003.001.001.001.0..654321≤+++++x x x x x x t s70005.002.041≤+x x 10005.002.052≤+x x 90008.003.063≤+x x6,2,10=≥j x j解编写M 文件小xxgh1.m 如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[];vlb=[0;0;0;0;0;0]; vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)min z=cXb AX t s≤..1、模型:例2 321436min x x x z ++= 120..321=++x x x t s301≥x 5002≤≤x203≥x解: 编写M 文件xxgh2.m 如下: c=[6 3 4]; A=[0 1 0]; b=[50];Aeq=[1 1 1]; beq=[120]; vlb=[30,0,20];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub例3 (任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。