(完整word版)matlab解非线性规划例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于非线性规划问题
背景:
线性规划问题,即目标函数和约束条件都是线性函数的规划问题,但在实际工作中,还常常会遇到另一类更一般的规划问题,即目标函数和约束条件中至少有一个是非线性函数问题,即非线性规划问题.
求解方法:Matlab软件
问题:
某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货50台、70台、90台。
每季度的生产费用为()^2
=+(元),
f x ax bx
其中x是该季度生产的台数,若交货有剩余可用于下季度交货,但需支付存储费,每季度每台c元。
已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50,b=0。
2,c=4,问工厂如何安排每月生产计划,才能既满足合同又使总费用最低(包括生产费用和库存费用)。
问题分析与假设:
目标函数是总费用,记为()
F x.
约束条件是生产合同和生产能力的限制.
设第一季度生产1x台,第二季度生产2x台,则第三季度生产(21012)
--台。
则:
x x
≤+≤
x x
12012210
≤≤
x
501100
≤≤
x
02100
由a=50,b=0.2,c=4,
第一季度生产费用15010.21^2
=+,
T x x
剩余品存储到下一季度的费用14(150)
=-,
k x
同理可得:25020.22^2
T x x
=+
=+-
24(12120)
k x x
350(21012)0.2(21012)^2
=--+--
T x x x x
建模
总费用
=++++=+++--++-先建立M-文件: F x T T T k k x x x x x x
()12312103000.2(1^22^2)0.2(21012)^24(212120)
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台。