m a t l a b在优化设计中的应用The Standardization Office was revised on the afternoon of December 13, 2020Matlab 在优化设计中的应用摘 要常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。
本文研究了matlab 在这些常见优化问题中的应用及求解。
在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab 进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab 编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab 工具箱的功能强大,是处理优化问题的非常方便的编程工具。
关键词:matlab 优化问题二、基本概念线性规划线性规划是优化的一个重要分支。
它在理论和算法上都比较成熟,在实际中有广泛的应用。
例如数学表达形式:⎪⎪⎪⎩⎪⎪⎪⎨⎧=≥=+++=+++=++++++n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c i m n mn m m n n n n nn ,,2,1,0..min 221122222121112121112211在MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下,),,(b A c linprog x =求解下列形式的线性规划:⎩⎨⎧≤bAx t s x c T ..min ),,,,(beq Aeq b A c linprog x =求解下面形式的线性规划:⎪⎩⎪⎨⎧⎩⎨⎧=•≤beq x Aeq b Ax t s x c T ..min若没有不等式约束b Ax ≤,则只需命令[][],==b A 。
),,,,,,(ub lb beq Aeq b A c linprog x =求解下面形式的线性规划:⎪⎪⎩⎪⎪⎨⎧⎪⎩⎪⎨⎧≤≤=•≤ub x lb beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需令[][],==b A ;若只有下界约束,则可以不用输入ub 。
无约束优化算法对于无约束优化问题,已经有许多有效的算法。
这些算法基本都是迭代法,它们都遵循下面的步骤:① 选取初始点x 0 ,一般来说初始点越靠近最优解越好;② 如果当前迭代点x k 不是原问题的最优解,那么就需要找一个搜索方向p k ,使得目标函数f (x )从x k 出发,沿方向p k 有所下降;③ 用适当的方法选择步长a k (≥0),得到下一个迭代点x k+1=x k +a k p k ;④ 检验新的迭代点xk+1是否为原问题的最优解,或者是否与最优解的近似误差满足预先给定的容忍度。
单变量约束优化问题单变量约束优化问题的标准形式为⎩⎨⎧<<b x a t s x f ..)(min 即为求目标函数在区间(a ,b )上的极小点。
最小二乘法优化最小二乘优化时一类非常特殊的优化问题,它在实际中,尤其是在处理一些曲线拟合问题、线性方程组无解时的近似解等问题,用的非常多。
最小二乘优化问题的目标函数一般为若干个函数的平方和,即:()∑=∈≅m i n R x x f x F 121)(min多目标规划问题在大多数的优化、中,都将多目标规划的一般形式表述为:()()()[]T p x f x f x f x F 21)(min = ()()⎩⎨⎧===≥ni x h m i x g t s i i ,,2,1,0,,2,1,0.. 其中,()x f i 、()x g i 、()x h i 既可以为线性函数,也可以为非线性函数。
三、基本方法对于解决那些常见优化问题,基本思路将在解题过程中得到体现。
我们给出具体一些建模实例来体现基本算法:就下列命令求下面分段函数的极小值点。
()⎪⎩⎪⎨⎧-<++≤≤-+->+-=1,3411,11,56222x x x x x x x x x f解:首先编写目标函数的M 文件如下:end x x y elsex y x x elseif x x y x if x example y function ;342;121&1;5621)(78++=+-=<=->=+-=>=*∧∧*∧然后为了分析直观,利用MTLAB 画出目标函数的图像,步骤如下:>> x=-5::5;>> n=length(x)n =1001>> for i=1:1001y(i)=example8_7(x(i));end对于下面的线性规划问题:min –x1-3x2. ⎪⎩⎪⎨⎧≥≤=-≤+02,18221621x x x x x x先利用图解法求其最优解,然后利用优化工具箱中的linprog 命令求解。
解 〈图解法〉先利用MATLAB 画出该线性规划的可行集及目标函数等值线:>>clear>>syms x1 x2>>f=-x1-3*x2;>>c1=x1+x2-6;>>c2=-x1+2*x2-8;>>ezcontourf(f)>>axis([0 6 0 6])>>hold on>>ezplot(c1)>>ezplot(c2)>>legend('f 等值线','x1+x2-6=0','-x1+2*x2-8=0')>>title('利用图解法求线性规划问题')>>gtext('x')运行结果如下图:从上图中可以看出可行集的顶点x (4/3,14/3)即为线性规划的最优解,它也是两个线性约束的交点。
求解下面的最小二乘优化问题:2221mind Cx - ⎪⎪⎩⎪⎪⎨⎧≤≤-≤≤-≤++-≤++225,513212..321321321x x x x x x x x x t s 其中⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛---=101,023101210d C程序输入及结果>> clearA=[1 2 1;-2 1 3];b=[1 1]';C=[0 -1 2;1 0 -1;-3 2 0];d=[1 0 1]';lb=[-5 -5 -2]';ub=[5 5 2]';Aeq=[];beq=[];[x,resnorm,residual,exitflag,output,lambda]=lsqlin(C,d,A,b,Aeq,beq,lb,ub) Warning:Large-scale method can handle bound constraints only;switching to medium-scale method.Warning: Large-scale method can handle bound constraints only;using medium-scale method instead.> In lsqlin at 249Optimization terminated.x = %最优解resnorm = %残差向量2-范数的平方,即reanorm=norm(residual)^2 residual = %残差向量exitflag =1 %函数收敛到最优解output =iterations: 4 %迭代4次algorithm: 'medium-scale: active-set' %调用的积极集算法firstorderopt: []cgiterations: []message: 'Optimization terminated.'lambda = %Lagrange 乘子lower: [3x1 double]upper: [3x1 double]eqlin: [0x1 double]ineqlin: [2x1 double]ineqlin:[2xl double]求下面优化问题的最优解,并求出相应的梯度、Hessian 矩阵以及Lagrang 乘子。
()()222112min -+-x x⎩⎨⎧≥+--≥+-020..21221x x x x t s 解 现将该优化问题转化为下面的标准形式:()()222112min -+-x x⎩⎨⎧≤+≤-20..21221x x x x t s 编写目标函数的M 文件如下:function y=example8_9(x)y=(x(1)-2)^2+(x(2)-1)^2;function [c1,c2]=nonlin(x)c1=x(1)^2-x(2);c2=[];clearA=[1 1];b=2;Aeq=[];beq=[];lb=[];ub=[];x0=[0 0]';[x,fval,exitflag,output,lambda,g,H]=fmincon(@example8_9,x0,Aeq,beq,lb,ub,@n onlin)Warning £ºLarge-scale £¨trust region £©method does not currently solve this type of problem£¬switching to medium-scale£¨line search£©¡£四、实际应用V 带轮优化设计提出问题:设计带式输送机传动装置上的普通V 带传动,已知电动机额定功率P=4Kw ,转速n1=1440r/min ,传动比i=3,采用A 型V 带,每天工作不超过10小时,设计带根数尽量少,带轮直径和中心距尽量小的方案。
数学模型建立(1)设计变量:V 带传动的独立设计变量是小带轮直径和带的基准长度 即X=[1x ,2x T ]=[ 1d d ,d L T ](2)目标函数包括三个分目标:a .小带轮直径 min 1f (X )=1d d =1xb .中心距 min 2f (X )=a=1a +221a a -其中,1a =d L /4-π(i+1)1d d /8,2a =(i-12)21d d /8c .带的根数 min 3f (X )=z=A K P/(0P +0P ∆)αK L K(3)约束条件小带轮直径不小于推荐的A 型带轮最小直径mm d 100min = 即=)(1X g 11min 100x d d d -=-≤0带速不超过最大带速s m v /25max =即02560000/60000/)(1max 12≤-=-=n d v n d X g d d ππ小带轮包角大于。