weixin_46134072 2023-12-29 10:48 采纳率: 0%
浏览 12
已结题

lingo求解实际问题的线性规划

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

img

img

img

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-12-29 10:56
    关注
    获得0.45元问题酬金

    引自微信小程序:皆我百晓生

    根据提供的信息,我理解到你希望使用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中正确地模拟了该问题。

    希望这些信息对解决你的问题有所帮助。如果你有任何进一步的疑问,请随时向我提问。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 创建了问题 12月29日