matlab 矩阵线性规划,matlab线性规划-线性规划,matlab

本教程分享:《matlab线性规划》,

如何用MATLAB处理线性规划问题

利用linprog()函数就可以了,下面是我做的一个题,给你参考一下:

求解线性规划问题:

min z=-0.9*x1-0.45*x2+0.05*x3-1.4*x4-0.95*x5-0.45*x6-1.9*x7-1.45*x8-0.95*x9

s.t.

x1+x2+x3<=2000;

x4+x5+x6<=2500;

x7+x8+x9<=1200;

-0.4*x1+0.6*x2+0.6*x3<=0;

-0.2*x1-0.2x4+0.8*x7<=0;

-0.7*x2+0.3*x5+0.3*x8<=0;

-0.5*x2-0.5*x5+0.8*x8<=0;

-0.6*x3-0.6*x6+0.4*x9<=0;

现在用matlab求解这个问题得到的结果是:

Optimization terminated.

x =

1.0e+003 *

0.5800

1.4200

0.0000

0.2862

2.2138

0.0000

0.1005

1.0995

0.0000

fval =

5.4500e+003

源程序如下:

f=[-0.9;-0.45;0.05;-1.4;-0.95;-0.45;-1.9;-1.45;-0.95];

A=[1 1 1 0 0 0 0 0 0

0 0 0 1 1 1 0 0 0

0 0 0 0 0 0 1 1 1

-0.4 0 0 0.6 0 0 0.6 0 0

-0.2 0 0 -0.2 0 0 0.8 0 0

0 -0.7 0 0 0.3 0 0 0.3 0

0 -0.5 0 0 -0.5 0 0 0.5 0

0 0 -0.6 0 0 -0.6 0 0 0.4];

B=[2000;2500;1200;0;0;0;0;0];

lb=zeros(9,1); %生成一个9*1的零矩阵,来作为X的取值直下界(lower bound)

[x,fval]=linprog(f,A,B,[],[],lb) %两个中括号表示条件中无等号的约束,如果有等号约束SX=D,在第一个中括号中填入S,第二个填入D即可。lb是X的下界约束,如果还有上界约束ub,将函数写成[x,fval]=linprog(f,A,B,[],[],lb,ub)就可以了。

说明:此题的最优解是fval,是当变量取值为x时取得的。需要补充一点的是,matlab中默认的LP问题标准形式是min z=CX,AX<=b,但是对X的取值可以自选为lb

Matlab中线性规划x的上界和下界及初始值怎么确

在MATLAB中,用于LP的求解函数为linprog.其调用格式为:

[x,fval,lambda]=linprog

(f,A,b,Aeq,beq,vlb,vub,x0,options)

其中f,A,b,是不可缺省的输入变量,x是不可缺省的输出变量,它是问题的解.vlb,vub均是向量,分别表示x的下界和上界,x0为x的起始点,options为optimset函数中定义的参数的值,fval是目标函

数在解x处的值,lambda为在解x处的lagrange乘子.lambda.lower对应于vlb,lambda.upper对应于ulb,lambda.ineqlin是对应于线性不等式约束的,lambda.eqlin是对应于线性等式约束的.

下面举一个小例子看看函数的作用:

minZ=-4a+b+7c

s.t.

a+b-c=5 3a-b+c<=4

a+b-4c<=-7 a,b>=0

问a,b,c分别取何值时,Z有最小值

编写M文件</

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值