请高手帮忙用matlab解决线性规划问题
初学线性规划问题,请大家帮帮忙。用Matlab求解下列线性规划问题:minz=|x1|+2|x2|+3|x3|+4|x4|;s.t.x1-x2-x3+x4=0;x1-x2...
初学线性规划问题,请大家帮帮忙。
用Matlab 求解下列线性规划问题:
min z=|x1|+2|x2|+3|x3|+4|x4|;
s.t. x1-x2-x3+x4=0;
x1-x2+x3-3*x4=1;
x1-x2-2*x3+3*x4=-0.5.
一本书上提供一种转换方法:
对任意的Xi,存在Ui,Vi>0满足
Xi=Ui-Vi,|Xi|=Ui+Vi
Ui=(Xi+|Xi|)/2,Vi=(|Xi|-Xi)/2;
记U=[U1,U2,…Un]^T,V=[V1,V2,……,Vn]^T
原问题可转化为:
min(求和i=1……n,)(Ui+Vi)
s.t.
A(u-v)<=b;
u,v>=0. 展开
用Matlab 求解下列线性规划问题:
min z=|x1|+2|x2|+3|x3|+4|x4|;
s.t. x1-x2-x3+x4=0;
x1-x2+x3-3*x4=1;
x1-x2-2*x3+3*x4=-0.5.
一本书上提供一种转换方法:
对任意的Xi,存在Ui,Vi>0满足
Xi=Ui-Vi,|Xi|=Ui+Vi
Ui=(Xi+|Xi|)/2,Vi=(|Xi|-Xi)/2;
记U=[U1,U2,…Un]^T,V=[V1,V2,……,Vn]^T
原问题可转化为:
min(求和i=1……n,)(Ui+Vi)
s.t.
A(u-v)<=b;
u,v>=0. 展开
1个回答
展开全部
不小心的告诉你Matlab的线性规划函数linprog无法求解,非线性的目标函数,因为你的带有绝对值符号,故linprog是无能为力的
但是幸运的是Matlab提供了fmincon
%by dynamic
%see also http://www.matlabsky.com
%2009.2.16
%
%目标函数
objfun=@(x)abs(x(1))+2*abs(x(2))+3*abs(x(3))+4*abs(x(4))
%等式约束
Aeq=[1 -1 -1 1
1 -1 1 -3
1 -1 -2 3];
beq=[0 1 -0.5]';
x0=[0 0 0 0];%给一个初值 很关键 和很重要哦
x=fmincon(objfun,x0,[],[],Aeq,beq)
恩你的想法的确高,佩服,下面是根据的需要改进的程序
min z=[1 2 3 4 1 2 3 4]*[u1 u2 u3 u4 v1 v2 v3 v4]'
s.t.
A=[1 -1 -1 1 1 -1 -1 1
1 -1 1 -3 1 -1 1 -3
1 -1 -2 3 1 -1 -2 3]
x=[u1 u2 u3 u4 v1 v2 v3 v4]'
b=[0 1 -0.5]'
Ax=b
x>=0
%目标函数
f=[1 2 3 4 1 2 3 4];
%等式约束
Aeq=[1 -1 -1 1 1 -1 -1 1
1 -1 1 -3 1 -1 1 -3
1 -1 -2 3 1 -1 -2 3];
beq=[0 1 -0.5]';
%边界条件
lb=zeros(8,1);
%调用linprog
x=linprog(f,[],[],Aeq,beq,lb)
Optimization terminated.
x =
0.2500
0.0000
0.2500
0.0000
0.2500
0.0000
0.2500
0.0000
但是幸运的是Matlab提供了fmincon
%by dynamic
%see also http://www.matlabsky.com
%2009.2.16
%
%目标函数
objfun=@(x)abs(x(1))+2*abs(x(2))+3*abs(x(3))+4*abs(x(4))
%等式约束
Aeq=[1 -1 -1 1
1 -1 1 -3
1 -1 -2 3];
beq=[0 1 -0.5]';
x0=[0 0 0 0];%给一个初值 很关键 和很重要哦
x=fmincon(objfun,x0,[],[],Aeq,beq)
恩你的想法的确高,佩服,下面是根据的需要改进的程序
min z=[1 2 3 4 1 2 3 4]*[u1 u2 u3 u4 v1 v2 v3 v4]'
s.t.
A=[1 -1 -1 1 1 -1 -1 1
1 -1 1 -3 1 -1 1 -3
1 -1 -2 3 1 -1 -2 3]
x=[u1 u2 u3 u4 v1 v2 v3 v4]'
b=[0 1 -0.5]'
Ax=b
x>=0
%目标函数
f=[1 2 3 4 1 2 3 4];
%等式约束
Aeq=[1 -1 -1 1 1 -1 -1 1
1 -1 1 -3 1 -1 1 -3
1 -1 -2 3 1 -1 -2 3];
beq=[0 1 -0.5]';
%边界条件
lb=zeros(8,1);
%调用linprog
x=linprog(f,[],[],Aeq,beq,lb)
Optimization terminated.
x =
0.2500
0.0000
0.2500
0.0000
0.2500
0.0000
0.2500
0.0000
Sievers分析仪
2024-12-30 广告
2024-12-30 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询