您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > matlab解非线性规划例题
关于非线性规划问题背景:线性规划问题,即目标函数和约束条件都是线性函数的规划问题,但在实际工作中,还常常会遇到另一类更一般的规划问题,即目标函数和约束条件中至少有一个是非线性函数问题,即非线性规划问题。求解方法:Matlab软件问题:某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货50台、70台、90台。每季度的生产费用为()^2fxaxbx(元),其中x是该季度生产的台数,若交货有剩余可用于下季度交货,但需支付存储费,每季度每台c元。已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50,b=0.2,c=4,问工厂如何安排每月生产计划,才能既满足合同又使总费用最低(包括生产费用和库存费用)。问题分析与假设:目标函数是总费用,记为()Fx。约束条件是生产合同和生产能力的限制。设第一季度生产1x台,第二季度生产2x台,则第三季度生产(21012)xx台。则:12012210xx501100x02100x由a=50,b=0.2,c=4,第一季度生产费用15010.21^2Txx,剩余品存储到下一季度的费用14(150)kx,同理可得:25020.22^2Txx24(12120)kxx350(21012)0.2(21012)^2Txxxx建模总费用()12312103000.2(1^22^2)0.2(21012)^24(212120)FxTTTkkxxxxxx先建立M-文件:a=50;b=0.2;c=4;H=diag(2*b*ones(1,3));C=[a+2*c,a+c,a];A1=[-1,0,0;-1,-1,0];b1=[-50,-120]';A2=[111];b2=210;v1=[000]';v2=[100100100]';[x,faval,exitflag,output,lambada]=quadprog(H,C,A1,b1,A2,b2,v1,v2,[])X2=x'*H*x/2+C*x-140*c再建立主程序:a=50;b=0.2;c=4;H=diag(2*b*ones(1,3));C=[a+2*c,a+c,a];A1=[-1,0,0;-1,-1,0];b1=[-50,-100]';A2=[111];b2=210;v1=[000]';v2=[100100100]';[x,faval,exitflag,output,lambada]=quadprog(H,C,A1,b1,A2,b2,v1,v2,[])X2=x'*H*x/2+C*x-140*c运算结果:x=60.000070.000080.0000faval=1.4240e+004exitflag=1output=iterations:1constrviolation:-10.0000algorithm:'medium-scale:active-set'firstorderopt:4.2633e-014cgiterations:[]message:'Optimizationterminated.'lambada=lower:[3x1double]upper:[3x1double]eqlin:-82ineqlin:[2x1double]X2=1.3680e+004结果费用总量最低生产方案:三个季度分别生产60,70,80台。
本文标题:matlab解非线性规划例题
链接地址:https://www.777doc.com/doc-2408268 .html