《MATLAB优化应用技术 .docx》由会员分享,可在线阅读,更多相关《MATLAB优化应用技术 .docx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结methmodeltjut mathematicaMATLAB优化应用1 线性规划模型一、线性规划问题:实例 1:生产方案问题假设某厂方案生产甲、乙两种产品,现库存主要材料有A 类 3600 公斤, B 类 2000 公斤, C类 3000 公斤。每件甲产品需用材料A类 9 公斤, B类 4 公斤, C类 3 公斤。每件乙产品,需用材料 A类 4 公斤, B 类 5 公斤, C类 10 公斤。甲单位产品的利润 70 元,乙单位产品的利润 120 元。问如何支配生产,才能使该厂所获的利润最大。建立数学模型:设 x1、x2 分别为生产甲、乙产品的件数。 f 为该厂所获总润。max
2、f=70x 1+120x2s.t9x 1+4x23600 4x1+5x2 20003x1+10x2 3000x1,x 2 0实例 2:投资问题某公司有一批资金用于4 个工程工程的投资, 其投资各工程时所得的净收益 投入资金百分比 如下表:工程工程收益表工程工程ABCD收益%1510812可编辑资料 - - - 欢迎下载精品名师归纳总结由于某种缘由, 准备用于工程 A的投资不大于其他各项投资之和而用于工程B和 C的投资要大于工程 D的投资。试确定该公司收益最大的投资支配方案。建立数学模型:设 x1、x2 、x3 、x4 分别代表用于工程 A、B、C、D 的投资百分数。max f=0.15x 1+
3、0.1x 2+0.08 x 3+0.12 x 4s.tx 1-x 2- x 3- x 4 0 x2 + x 3- x 4 0x 1+x2+x3+ x 4=1x j 0j=1,2,3,4实例 3:运输问题四个市场每天的需求量如下表:从各厂运到各市场的运输费 元/ 每箱 由下表给出:发点工厂有 A、B、C三个食品加工厂,负责供应甲、乙、丙、丁四个市场。三个厂每天生产食品箱数上限如下表:工厂ABC生产数604050市场甲乙丙丁需求量20353334收点甲乙市场丙丁A2132B1321C3411求在基本中意供需平稳的约束条件下使总运输费用最小。建立数学模型:设 ai j 为由工厂 i 运到市场 j 的
4、费用, xi j是由工厂 i 运到市场 j 的箱数。 bi是工厂 i 的产量, dj 是市场 j 的需求量。可编辑资料 - - - 欢迎下载精品名师归纳总结XX21X22X23X24A1321X31X32X33X343411X 11X 12X 13X 14,213260,40, 50,d20,35, 33,34Maxfa ij x iji 1j 14st.x ijbi , i1, 2, 3j13xijd j , j1,2,3,4i 1xij0,i1,2,3; j1,2,3,4b2132总运费fAX T1321.341134x11x21x31x12x22x32x13x23x33x14x24x34
5、当我们用 MATLAB软件作优化问题时,全部求 maxf 的问题化为求 min-f 来作。约束 g i x 0,化为 g i 0 来作。上述实例去掉实际背景,归结出规划问题:目标函数和约束条件都是变量x的线性函数。T形如:1min fXs.tA X bAeq X =beqlb XubT其中 X 为 n 维未知向量, f =f 1 ,f 2, f n 为目标函数系数向量,小于等于约束系数矩阵 A 为 m n 矩阵, b 为其右端 m维列向量, Aeq为等式约束系数矩阵, beq 为等式约束右端常数列向量。 lb,ub 为自变量取值上界与下界约束的 n 维常数向量。可编辑资料 - - - 欢迎下载
6、精品名师归纳总结二线性规划问题求最优解函数:调用格式:x=linprogf,A,bx=linprogf,A,b,Aeq,beq x=linprogf,A,b,Aeq,beq,lb,ubx=linprogf,A,b,Aeq,beq,lb,ub,x0x=linprogf,A,b,Aeq,beq,lb,ub,x0,optionsx,fval=linprog x, fval, exitflag=linprogx, fval, exitflag, output=linprogx, fval, exitflag, output, lambda=linprog说明: x=linprogf,A,b返回值 x
7、为最优解向量。x=linprogf,A,b,Aeq,beq作有等式约束的问题。 如没有不等式约束,就令 A= 、b= 。x=linprogf,A,b,Aeq,beq,lb,ub,x0,options中 lb ,ub 为变量x 的下界和上界, x0 为初值点, options为指定优化参数进行最小化。Options 的参数描述:Display显示水平。选择 off 不显示输出。 选择 iter显示每一步迭代过程的输出。选择 final 显示最终结果。MaxFunEvals 函数评判的最大答应次数Maxiter最大答应迭代次数TolXx 处的终止容限可编辑资料 - - - 欢迎下载精品名师归纳总结
8、x,fval=linprog左端 fval返回解 x 处的目标函数值。x,fval,exitflag,output,lambda=linprogf,A,b, Aeq,beq,lb,ub,x0的输出部分:exitflag描述函数运算的退出条件:如为正值,表示目标函数收敛于解x 处。如为负值,表示目标函数不收敛。如为零值,表示已经达到函数评判或迭代 的最大次数。output返回优化信息: output.iterations表示迭代次数。output.algorithm表示所接受的算法。 outprt.funcCount表示函数评判次数。lambda 返回 x 处的拉格朗日乘子。它有以下属性: la
9、mbda.lower-lambda的下界。 lambda.upper-lambda的上界。 lambda.ineqlin-lambda的线性不等式。 lambda.eqlin-lambda的线性等式。三举例例 1:求解线性规划问题:可编辑资料 - - - 欢迎下载精品名师归纳总结maxf2 x 1x 14x 235 x 2可编辑资料 - - - 欢迎下载精品名师归纳总结st .x 1x 12 x 280,x 20可编辑资料 - - - 欢迎下载精品名师归纳总结先将目标函数转化成最小值问题: min-f=-2x1-5x 2程序:f=-2 -5。A=1 0 。0 1 。1 2 。b=4 。3。8
10、。x,fval=linprogf,A,b可编辑资料 - - - 欢迎下载精品名师归纳总结f=fval*-1结果:x = 2 3fval = -19.0000maxf =19例 2:minf=5x 1-x 2 +2x3+3x4-8x 5s.t2x1+x2-x 3+x4 -3x 56 2x1+x2-x 3+4x4+x570 xj 15j=1,2,3,4,5程序:f=5 -1 2 3 -8。A=-2 1 -1 1 -3。2 1 -1 4 1。b=6 。7 。lb=0 0 0 0 0。ub=15 15 15 15 15。x,fval=linprogf,A,b,lb,ub结果: x =0.00000.0
11、0008.00000.000015.0000minf =-104可编辑资料 - - - 欢迎下载精品名师归纳总结例 3:求解线性规划问题:minf=5x 1+x2 +2x3+3x4+x5s.t 2x1+x2-x 3+x4-3x 512x1 +3x2-x 3 +2x4+x5 -20 xj 1j=1,2,3,4,5程序:f=5 1 2 3 1。A=-2 1 -1 1 -3。2 3 -1 2 1。b=1 。-2 。lb=0 0 0 0 0。ub=1 1 1 1 1。x,fval,exitflag,output,lambda=linprogf,A,b,lb,ub运行结果:Exiting:Oneor m
12、ore of the residuals,dualitygap, or totalrelative error has grown 100000 times greater than its minimum value so far: theprimal appears to be infeasible and the dual unbounded.The dual residual 1g1=8*x1+5*x2。g2=5*x1+4*x2。end通过下面将优化选项结构 options.GradObj设置为 on来得到梯度值。options=optimsetGradobj , on 。x0=1,1
13、。x,fval,exitflag=fminuncff3,x0,options可编辑资料 - - - 欢迎下载精品名师归纳总结结果:x =1.0e-015 *-0.2220-0.2220fval =5.4234e-031exitflag =12. fminsearch函数调用格式: x=fminsearchfun,x0x=fminsearchfun,x0,optionsx=fminsearchfun,x0,options,P1,P2x,fval=fminsearchx,fval, exitflag=fminsearch x,fval,exitflag,output=fminsearchx,fva
14、l, exitflag,output,grad=fminsearchx,fval, exitflag,output,grad,hessian=fminsearch说明: 参数及返回变量同上一函数。对求解二次以上的问题,fminsearch函数比 fminunc 函数有效。3. 多元非线性最小二乘问题:非线线性最小二乘问题的数学模型为:可编辑资料 - - - 欢迎下载精品名师归纳总结minmfi xi 2i 1f x L可编辑资料 - - - 欢迎下载精品名师归纳总结其中 L 为常数。调用格式: x=lsqnonlinfun,x0x=lsqnonlinfun,x0,lb,ub x=lsqnonl
15、infun,x0,optionsx=lsqnonlinfun,x0,options,P1,P2x,resnorm=lsqnonlin x,resnorm,residual,exitflag=lsqnonlinx,resnorm, residual , exitflag,output=lsqnonlin x,resnorm,residual,exitflag,output,lambda=lsqnonlinx,resnorm, residual,exitflag,output,lambda,jacobian=lsqnonlin说明:x 返回解向量。resnorm 返回 x 处残差的平方范数值: s
16、umfunx.2。 residual返回 x 处的残差值 funx 。lambda 返回包含 x 处拉格朗日乘子的结构参数。 jacobian返回解 x 处的 fun 函数的雅可比矩阵。lsqnonlin默认时选择大型优化算法。 lsqnonlin通过将2options.LargeScale设置为 off 来作中型优化算法。其接受一维搜寻法。可编辑资料 - - - 欢迎下载精品名师归纳总结2例 4求 minf=4x 2 -x 1+x 2 -4,选择初始点 x01,1可编辑资料 - - - 欢迎下载精品名师归纳总结程序:f =4*x2-x12+x2-42x,reshorm=lsqnonlinf,
17、1,1结果:x =3.98963.9912reshorm =5.0037e-009210kxkx可编辑资料 - - - 欢迎下载精品名师归纳总结例 5:求 min f22ke 1e 2k 1可编辑资料 - - - 欢迎下载精品名师归纳总结选择初始点 x00.2,0.3求解:先编辑 ff5.m文件:function f=ff5x k=1:10 。f=2+2*k-expk*x1-expk*x2。然后作程序: x0=0.2,0.3。x,resnorm=lsqnonlinff5,x0结果: x =0.25780.2578resnorm =124.3622二有约束非线性规划问题:数学模型:min Fxs
18、.tGi x 0i=1,mGj x =0j=m+1, ,nxl xxu其中: Fx 为多元实值函数, Gx 为向量值函数,可编辑资料 - - - 欢迎下载精品名师归纳总结在有约束非线性规划问题中,通常要将该问题转换为更简洁的子问题,这些子问题可以求并作为迭代过程的基础。其基于 K-T 方程解的方法。 它的 K-T 方程nf x iGi x i 1Gi x i0, i0, im1,1, m, n0可表达为:方程第一行描述了目标函数和约束条件在解处梯度的取消。由于梯度取消,需要用拉格朗日乘子 i 来平稳目标函数与约束梯度间大小的差异。调用格式 :x=fminconf,x0,A,bx=fmincon
19、f,x0,A,b,Aeq,beq x=fminconf,x0,A,b,Aeq,beq,lb,ubx=fminconf,x0,A,b,Aeq,beq,lb,ub,nonlconx=fminconf,x0,A,b,Aeq,beq,lb,ub,nonlcon,optionsx,fval=fminconx, fval, exitflag=fminconx, fval, exitflag, output=fminconx, fval, exitflag, output,lambda=fmincon 说明: x=fminconf,x0,A,b返回值 x 为最优解向量。其中: x0为初始点。 A,b 为不等
20、式约束的系数矩阵和右端列向量。x=fminconf,x0,A,b,Aeq,beq作有等式约束的问题。如没有不等式约束,就令 A= 、b= 。x=fminconf, x0,A,b,Aeq,beq,lb,ub, nonlcon ,options中 lb ,ub为变量 x 的下界和上界。 nonlcon=fun, 由 M文件 fun.m 给定非线性不等式约束c x 0 和等式约束 gx=0 。 options为指定优化参数进行最小化。222例 6:求解: min 100x 2-x 1 +1-x 1s.tx 12。可编辑资料 - - - 欢迎下载精品名师归纳总结x2 2程序: 第一建立 ff6.m文件
21、:function f=ff6xf=100*x2-x222+1-x12。然后在工作空间键入程序:x0=1.1,1.1。A=1 0 。0 1 。b=2 。2 。x,fval=fminconff6,x0,A,b结果:x =1.00001.0000fval =3.1936e-011可编辑资料 - - - 欢迎下载精品名师归纳总结例 7: 求解:min st .0f x x 12 x 2x 1 x 2 x 22 x 372可编辑资料 - - - 欢迎下载精品名师归纳总结第一建立目标函数文件ff7.m文件:function f=ff7x f=-x1*x2*x3然后将约束条件改写成如下不等式:-x 1-2
22、x 2-2x 30 x1+2x2+2x372在工作空间键入程序:A=-12 2。1 2 2。可编辑资料 - - - 欢迎下载精品名师归纳总结b=0 。72 。x0=10 。10。10 。x,fval=fminconff71,x0,A,b结果:x =24.000012.000012.0000fval =-3456可编辑资料 - - - 欢迎下载精品名师归纳总结2x1例 8 求解: minf=e6x 1+3x2+2x1x2+4x2+1可编辑资料 - - - 欢迎下载精品名师归纳总结2s.tx 1x2-x 1 -x 2+10-2x 1x2 -5 0程序: 第一建立目标函数文件ff8.m文件:func
23、tionf=ff8xf=expx1*6*x12+3*x22+2*x1*x2+4*x2+1。再建立非线性的约束条件文件:ff8g.m可编辑资料 - - - 欢迎下载精品名师归纳总结function c,g=ff8gx c1=x1*x2-x1-x2+1。c2=-2*x1*x2-5。g= 。然后在工作空间键入程序:x0=1,1 。nonlcon=ff8g x,fval =fminconff8,x0,nonlcon结果:x =-2.50001.0000fval =3.3244exitflag =1当有等式约束时,要放在矩阵 g 的位置,如上例中加等式约束:x1+2*x1=0程序: 第一建立 fun1.m文件:functionc,g=ff8g1x c1=x1*x2-x1-x2+1。 c2=-2*x1*x2-5。g1=x1+2*x2。然后在工作空间键入程序:x0=-1,1。nonlcon=ff8g1 。可编辑资料 - - - 欢迎下载精品名师归纳总结