在lingo里面求解实际问题的线性规划,lingo没有报错,但是解出来的x和实际情况不符合。xi为食物消费量,共有十类,但是解出来很多x为0.请问有人能帮我看看哪里有问题吗?



在lingo里面求解实际问题的线性规划,lingo没有报错,但是解出来的x和实际情况不符合。xi为食物消费量,共有十类,但是解出来很多x为0.请问有人能帮我看看哪里有问题吗?



关注引自微信小程序:皆我百晓生:
根据提供的信息,我理解到你希望使用Lingo来解决一个线性规划问题,但是解出来的变量x与实际情况不相符。根据提供的图2和图3内容,我将根据这些信息来看看有可能的问题所在。
首先,我假设你已经正确地安装和配置了Lingo软件。接下来,我将使用提供的图3内容,并在matlab中使用YALMIP工具箱和Gurobi求解器来求解该线性规划问题。这样我可以帮助你验证是否存在问题。
以下是一个示例代码,你可以尝试在matlab中运行它,前提是你已正确安装和配置了相应的工具箱和求解器。
% 导入YALMIP库
addpath('路径到YALMIP库的文件夹')
% 创建问题
x = sdpvar(10,1); % 定义变量
cf = [0.185, 0.270, 0.380, 0.810, 0.410, 0.240, 0.240, 0.210, 0.830, 0.710];
wf = [0.827, 0.091, 8.651, 3.561, 18.997, 0.099, 1.050, 2.201, 3.550, 3.111];
nf = [1.400, 10.600, 3.400, 4.700, 4.700, 3.000, 10.600, 5.700, 0.870, 3.400];
pf = [3.850, 0.630, 2.600, 0.130, 0.190, 2.560, 0.020, 0.930, 0.010, 1.500];
p = [2.880, 3.158, 6.110, 11.353, 14.393, 9.423, 2.890, 2.000, 6.975, 8.700];
constraints = [sum(x) >= 446.395, sum(x) <= 553.523]; % 添加约束条件
objective = 0.31 * cf * x + 0.252 * wf * x + 0.159 * nf * x + 0.279 * pf * x; % 定义目标函数
% 定义求解器选项
opts = sdpsettings('solver','gurobi','verbose',1);
% 求解问题
sol = optimize(constraints, objective, opts);
% 打印结果
disp(value(x));
disp(value(sum(x)));
请将上述代码中的"路径到YALMIP库的文件夹"替换为你YALMIP库文件夹的实际路径。如果一切正常,这个代码将打印出变量x的值,并且变量x的总和应该在约束条件下。
如果该代码也产生了与Lingo相同的结果,那么很可能是你的期望值不正确,或者Lingo的约束条件定义存在问题。在这种情况下,你需要检查你的实际情况以确保约束条件和期望值是正确的。
如果该代码产生不同的结果,那么很可能是你的Lingo代码存在问题。在这种情况下,请仔细检查你的Lingo代码,并确保你在matlab中正确地模拟了该问题。
希望这些信息对解决你的问题有所帮助。如果你有任何进一步的疑问,请随时向我提问。