admin 管理员组

文章数量: 1086019


2024年3月29日发(作者:执行shell脚本中的某个方法)

(完整word版)matlab解非线性规划例题

关于非线性规划问题

背景:

线性规划问题,即目标函数和约束条件都是线性函数的规划问题,但在实际工作中,还常常会遇到另一类

更一般的规划问题,即目标函数和约束条件中至少有一个是非线性函数问题,即非线性规划问题.

求解方法:Matlab软件

问题:

某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货50台、70台、90台。每季度的生产

费用为

f(x)axbx^2

(元),

其中

x

是该季度生产的台数,若交货有剩余可用于下季度交货,但需支付存储费,每季度每台

c

元。已知工

厂每季度最大生产能力为100台,第一季度开始时无存货,设

a

=50,

b

=0。2,

c

=4,问工厂如何安排每月生产

计划,才能既满足合同又使总费用最低(包括生产费用和库存费用)。

问题分析与假设:

目标函数是总费用,记为

F(x)

.

约束条件是生产合同和生产能力的限制.

设第一季度生产

x1

台,第二季度生产

x2

台,则第三季度生产

(210x1x2)

台。则:

120x1x2210

(完整word版)matlab解非线性规划例题

50x1100

0x2100

a

=50,

b

=0.2,

c

=4,

第一季度生产费用

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];

(完整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台。


本文标签: 生产 问题 费用