完整word版matlab解非线性规划例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于非线性规划问题
背景:
线性规划问题,即目标函数和约束条件都是线性函数的规划问题,但在实际工作中,还常常会遇到另一类更一般的规划问题,即目标函数和约束条件中至少有一个是非线性函数问题,即非线性规划问题。
求解方法:Matlab软件
问题:
某厂向用户提供发动机,合同规定,第一、二、三季度末分别f(x)?ax?bx^2(元)交货50台、70台、90台。,每季度的生产费用为x是该季度生产的台数,若交货有剩余可用于下季度交货,但需其中c元。已知工厂每季度最大生产能力为100支付存储费,每季度每台bca=4,问工厂如何安排每台,第一季度开始时无存货,设=0.2,=50,月生产计划,才能既满足合同又使总费用最低(包括生产费用和库存费用)。
问题分析与假设:
F(x)。目标函数是总费用,记为约束条件是生产合同和生产能力的限制。
x1x2台,则第三季度生产台,第二季度生产设第一季度生产(210?x1?x2)台。则:
120?x1?x2?210
50?x1?1000?x2?100
bca=4,
=0.2,=50,由.
T1?50x1?0.2x1^2,第一季度生产费用
k1?4(x1?50),剩余品存储到下一季度的费用
T2?50x2?0.2x2^2同理可得:
k2?4(x1?x2?120)
T3?50(210?x1?x2)?0.2(210?x1?x2)^2
建模
总费用
F(x)?T1?T2?T3?k1?k2?10300?0.2(x1^2?x2^2)?0.2(210?x1?x2)^2?4(2x1?x2?120)先建立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=[1 1 1];b2=210;
v1=[0 0 0]';v2=[100 100 100]';
[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=[1 1 1];b2=210;
v1=[0 0 0]';v2=[100 100 100]';
[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.0000
70.0000
80.0000
faval =
1.4240e+004
exitflag =
1
output =
iterations: 1
constrviolation: -10.0000
algorithm: 'medium-scale: active-set' firstorderopt: 4.2633e-014
cgiterations: []
message: 'Optimization terminated.' lambada =
lower: [3x1 double]
upper: [3x1 double]
eqlin: -82
ineqlin: [2x1 double]
X2 =
1.3680e+004
结果
费用总量最低生产方案:三个季度分别生产60,70,80台。