admin 管理员组文章数量: 1086019
2024年3月29日发(作者:执行shell脚本中的某个方法)
(完整word版)matlab解非线性规划例题
关于非线性规划问题
背景:
线性规划问题,即目标函数和约束条件都是线性函数的规划问题,但在实际工作中,还常常会遇到另一类
更一般的规划问题,即目标函数和约束条件中至少有一个是非线性函数问题,即非线性规划问题.
求解方法:Matlab软件
问题:
某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货50台、70台、90台。每季度的生产
费用为
f(x)axbx^2
(元),
其中
x
是该季度生产的台数,若交货有剩余可用于下季度交货,但需支付存储费,每季度每台
c
元。已知工
厂每季度最大生产能力为100台,第一季度开始时无存货,设
a
=50,
b
=0。2,
c
=4,问工厂如何安排每月生产
计划,才能既满足合同又使总费用最低(包括生产费用和库存费用)。
问题分析与假设:
目标函数是总费用,记为
F(x)
.
约束条件是生产合同和生产能力的限制.
设第一季度生产
x1
台,第二季度生产
x2
台,则第三季度生产
(210x1x2)
台。则:
120x1x2210
(完整word版)matlab解非线性规划例题
50x1100
0x2100
由
a
=50,
b
=0.2,
c
=4,
第一季度生产费用
T150x10.2x1^2
,
剩余品存储到下一季度的费用
k14(x150)
,
同理可得:
T250x20.2x2^2
k24(x1x2120)
T350(210x1x2)0.2(210x1x2)^2
建模
总费用
F(x)T1T2T3k1k2103000.2(x1^2x2^2)0.2(210x1x2)^24(2x1x2120)
先建立M-文件:
a=50;b=0.2;c=4;
H=diag(2*b*ones(1,3));C=[a+2*c,a+c,a];
(完整word版)matlab解非线性规划例题
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:
firstorderopt: 4.2633e-014
cgiterations: []
(完整word版)matlab解非线性规划例题
active—set'
(完整word版)matlab解非线性规划例题
message: ’Optimization terminated.'
lambada =
lower: [3x1 double]
upper: [3x1 double]
eqlin: —82
ineqlin: [2x1 double]
X2 =
1。3680e+004
结果
费用总量最低生产方案:三个季度分别生产60,70,80台。
版权声明:本文标题:(完整word版)matlab解非线性规划例题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711688780a605732.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论