MATLAB中文论坛

标题: linprog函数中f,A,b不匹配问题 [打印本页]

作者: SnowMIt    时间: 2021-10-11 21:29
标题: linprog函数中f,A,b不匹配问题
版本是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
不能因为目标函数解析式中的自变量角标看起来是来自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
TouAkira 发表于 2021-10-12 00:31
不能因为目标函数解析式中的自变量角标看起来是来自3*3矩阵,就被引导着以为A也是3*3矩阵了

这种情况,新 ...

您好,我的基础有点差,我的理解是目标函数中有九个自变量,将其中的每一个变量用x1到x9表示构成N*9的矩阵,不知道理解对不对,谢谢!
作者: SnowMIt    时间: 2021-10-12 16:50
TouAkira 发表于 2021-10-12 00:31
不能因为目标函数解析式中的自变量角标看起来是来自3*3矩阵,就被引导着以为A也是3*3矩阵了

这种情况,新 ...

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




欢迎光临 MATLAB中文论坛 (https://www.ilovematlab.cn/) Powered by Discuz! X3.4