Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-08-25, 01:06   #1
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
酷 [原创]怎样在MATLAB中求解线性规划问题

bintprog 求解0-1规划问题 格式如下
x = bintprog(f)
x = bintprog(f, A, b)
x = bintprog(f, A, b, Aeq, beq)
x = bintprog(f, A, b, Aeq, beq, x0)
x = bintprog(f, A, b, Aeq, Beq, x0, options)
[x, fval] = bintprog(...)
[x,fval, exitflag] = bintprog(...)
[x, fval, exitflag, output] = bintprog(...)


这里x是问题的解向量
f是由目标函数的系数构成的向量
A是一个矩阵,b是一个向量
A,b和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件
A,b是系数矩阵和右端向量。
Aeq和Beq表示了线性规划中等式约束条件中的系数矩阵和右端向量。
X0是给定的变量的初始值
options为控制规划过程的参数系列。
返回值中fval是优化结束后得到的目标函数值。
exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数;
exitflag>0表示优化过程中变量收敛于解X,
exitflag<0表示计算不收敛。
output有3个分量,
iterations表示优化过程的迭代次数,
cgiterations表示PCG迭代次数,
algorithm表示优化所采用的运算规则。
在使用linprog()命令时,系统默认它的参数至少为1个,
但如果我们需要给定第6个参数,则第2、3、4、5个参数也必须给出,否则系统无法认定给出的是第6个参数。遇到无法给出时,则用空矩阵“[]”替代。



例如

max=193*x1+191*x2+187*x3+186*x4+180*x5+185*x6; %f由这里给出

st.
x5+x6>=1;
x3+x5>=1;
x1+x2<=1;
x2+x6<=1;
x4+x6<=1;
%a、b由不等关系给出,如没有不等关系,a、b取[]

x1+x2+x3+x4+x5+x6=1; %aep、bep由等式约束给出

代码如下
f=[-193;-191;-187;-186;-180;-185;];
a=[0 0 0 0 -1 -1;0 -1 0 0 -1 0;1 1 0 0 0 0;0 1 0 0 0 1;0 0 0 1 0 1];
b=[-1,-1,1,1,1]';
aeq=[1 1 1 1 1 1];
beq=[3];
x=bintprog(f,a,b,aeq,beq)

注意
目标值为最大值时应乘以-1化为求最小值;
不等约束为>=时应乘以-1化为<=;

linprog 非0-1规划 格式如下
x = linprog(f,A,b)
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
x,fval] = linprog(...)
x,lambda,exitflag] = linprog(...)
[x,lambda,exitflag,output] = linprog(...)
[x,fval,exitflag,output,lambda] = linprog(...)
参数说明和使用格式同bintprog

LB和UB是约束变量的下界和上界向量
lambda有4个分量,
ineqlin是线性不等式约束条件,
eqlin是线性等式约束条件,
upper是变量的上界约束条件,
lower是变量的下界约束条件。
它们的返回值分别表示相应的约束条件在优化过程中是否有效。
pslpsl 当前离线   回复时引用此帖
旧 2008-08-25, 11:01   #2
叉叉
初级会员
 
注册日期: 2008-08-14
年龄: 36
帖子: 17
声望力: 17
叉叉 正向着好的方向发展
默认 回复: [求助]matlab多项式的问题

牛人啊~~呵呵:redface:
叉叉 当前离线   回复时引用此帖
旧 2008-12-25, 18:32   #3
qiuding
初级会员
 
注册日期: 2008-08-15
年龄: 37
帖子: 9
声望力: 0
qiuding 正向着好的方向发展
默认 回复: [求助]matlab多项式的问题

呵呵。。。。。
bintprog 在7.0以后的版本中才新加的
qiuding 当前离线   回复时引用此帖
旧 2009-01-10, 10:14   #4
cnzt
初级会员
 
注册日期: 2009-01-10
年龄: 52
帖子: 2
声望力: 0
cnzt 正向着好的方向发展
默认 回复: [原创]怎样在MATLAB中求解线性规划问题

学习一下,比较有用的功能。
cnzt 当前离线   回复时引用此帖
旧 2010-04-12, 21:38   #5
未注册
游客
 
帖子: n/a
默认 回复: [原创]怎样在MATLAB中求解线性规划问题

你好,请问下这个函数能实现0-1整数非线性规划么,
  回复时引用此帖
旧 2010-04-12, 21:43   #6
未注册
游客
 
帖子: n/a
默认 回复: [原创]怎样在MATLAB中求解线性规划问题

补充下,就是目标函数为非线性的0-1整数规划,请问下这个函数能解决吗,或者有没有其他函数有这个功能
  回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
请大家帮忙看看这个程序问题出在哪? likochen MATLAB论坛 0 2008-11-13 02:38
[求助]各位达人 beardgh MATLAB论坛 0 2008-09-19 16:34
[求助]请各位大哥帮帮忙 warlock8238 MATLAB论坛 3 2008-09-14 15:31
[原创]哥德巴赫猜想-张俊龙的“0+0”是新的数学手段 龙舞山威 数学 0 2008-09-10 10:02
[求助]DFT求两路正弦信号相差 mayllen MATLAB论坛 0 2008-07-07 21:52


所有时间均为北京时间。现在的时间是 21:18


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.