MATLAB 函数解优化问题 联系客服

发布时间 : 星期六 文章MATLAB 函数解优化问题更新完毕开始阅读34d5b3679b6648d7c1c7460c

程序: f=[-70 -120]; A=[9 4 ;4 5;3 10 ]; b=[3600;2000;3000]; lb=[0 0]; ub=[];

[x,fval,exitflag]=linprog(f,A,b,[],[],lb,ub) maxf=-fval 结果: x = 200.0000 240.0000

fval =

-4.2800e+004

exitflag = 1 maxf =

4.2800e+004

例5:求解实例2 建立数学模型:

max f=0.15x1+0.1x2+0.08 x3+0.12 x4 s.t x1-x2- x3- x4≤0 x2+ x3- x4≥0 x1+x2+x3+ x4=1

xj≥0 j=1,2,3,4 将其转换为标准形式:

min z=-0.15x1-0.1x2-0.08 x3-0.12 x4 s.t x1-x2- x3- x4≤0 -x2- x3+ x4≤0 x1+x2+x3+ x4=1

xj≥0 j=1,2,3,4

程序: f = [-0.15;-0.1;-0.08;-0.12];

A = [1 -1 -1 -1

0 -1 -1 1];

b = [0; 0]; Aeq=[1 1 1 1]; beq=[1]; lb = zeros(4,1);

[x,fval,exitflag] = linprog(f,A,b,Aeq,beq,lb) f=-fval 结果:x = 0.5000 0.2500 0.0000 0.2500

fval =

-0.1300

exitflag =

1

f =

0.1300

即4个项目的投资百分数分别为50%,25%,0, 25%时可使该公司获得最大的收益,其最大收益可到达13%。过程正常收敛。

例6:求解实例3 建立数学模型:

设ai j为由工厂i运到市场j的费用,xi j 是由工厂i运到市场j的箱数。bi是工厂i的产量,dj是市场j的需求量。

[endif]-->

b= ( 60 40 50 )T d= ( 20 35 33 34 )T

s.t

x i j≥0

程序: A=[2 1 3 2;1 3 2 1;3 4 1 1]; f=A(:);

B=[ 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1]; D=[1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0