[已解决] linprog函数中f,A,b不匹配问题

[复制链接]
SnowMIt 发表于 2021-10-11 21:29:27
版本是2021a
函数

约束条件


程序
maxZ = [-11000 -9500 -9000 -8000 -6800 -6000 -14000 -12000 -10000];
A = [-11000 -9500 -9000 -8000 -6800 -6000 -14000 -12000 -10000];
b = [-190000 -130000 -350000];
Aeq = [1 1 1;1 1 1;1 1 1];
beq = [100 300 200];
lb = [0 0 0;0 0 0;0 0 0];
x = linprog(maxZ,A,b,Aeq,beq,lb)

程序报错

我的疑问在于对于函数中自变量较多,约束条件较多,并且约束条件中的自变量有独立的约束条件,我的问题在于如何处理f,A,b的对应关系
感谢!


最佳答案


TouAkira 发表于 2021-10-12 00:31:08
不能因为目标函数解析式中的自变量角标看起来是来自3*3矩阵,就被引导着以为A也是3*3矩阵了

这种情况,新手想要看清楚,是要换元的,令X1 = x11, ..., X9 = x33,显然是9个自变量,系数矩阵A是N行*9列,数值向量b则对应为N行1列

对于每一组约束,A都应当是3*9矩阵,b则应当是3*1向量,然后两组约束合并,A应当是6*9矩阵,b则应当是6*1向量
回复此楼

3 条回复


TouAkira 发表于 2021-10-12 00:31:08
不能因为目标函数解析式中的自变量角标看起来是来自3*3矩阵,就被引导着以为A也是3*3矩阵了

这种情况,新手想要看清楚,是要换元的,令X1 = x11, ..., X9 = x33,显然是9个自变量,系数矩阵A是N行*9列,数值向量b则对应为N行1列

对于每一组约束,A都应当是3*9矩阵,b则应当是3*1向量,然后两组约束合并,A应当是6*9矩阵,b则应当是6*1向量
回复此楼

SnowMIt 发表于 2021-10-12 09:24:33
TouAkira 发表于 2021-10-12 00:31
不能因为目标函数解析式中的自变量角标看起来是来自3*3矩阵,就被引导着以为A也是3*3矩阵了

这种情况,新 ...

您好,我的基础有点差,我的理解是目标函数中有九个自变量,将其中的每一个变量用x1到x9表示构成N*9的矩阵,不知道理解对不对,谢谢!

SnowMIt 发表于 2021-10-12 16:50:13
TouAkira 发表于 2021-10-12 00:31
不能因为目标函数解析式中的自变量角标看起来是来自3*3矩阵,就被引导着以为A也是3*3矩阵了

这种情况,新 ...

您好,我明白了,需要用0来表示式子中缺少的变量,不知道我的理解对不对,但是我用程序跑出来了,答案和标准答案一致,非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表