数学建模算法与应用习题 1-4 解析 MATLAB 换一下思路做题

数学建模算法与应用 习题1-4

在这里插入图片描述
我这里解答方案和答案上有一点点不一样,我是设每个货物的总量为1,这样每个货物在三个仓加起来就是小于等于1。

MatLab代码:

clc;clear;
zero = [0,0,0,0];
%% 这里是利润的判断 一共是 12个数 3个仓*4个货物
c = [3100*18,3800*15,3500*23,2850*12];
c = [c,c,c];
%% 这里是判断每个仓所有的重量加起来不会超过限定量
A1 = [18,15,23,12];
A1 = [A1,zero,zero;zero,A1,zero;zero,zero,A1];
%% 这里是判断每个仓所有的体积加起来不会超过限定量
A2 = [480*18,650*15,580*23,390*12];
A2 = [A2,zero,zero;zero,A2,zero;zero,zero,A2];
%% 这里是判断每个仓的所有的值加起来不会超过限定
% 因为我设定的是分数 所以加起来不会超过1
A3 = zeros(4,12);
for i=1:4
   A3(i,i:4:12) = 1; 
end
%% 这里合并一下
A = [A1;A2;A3];
b = [10,16,8,6800,8700,5300,1,1,1,1]';
%% 这里是判断货物重量和最大限定成比例
A1 = [18,15,23,12];
aeq = [A1,A1,zero;zero,A1,A1];
aeq(1,1:4) = aeq(1,1:4)/10;
aeq(1,5:8) = aeq(1,5:8)/(-16);
aeq(2,5:8) = aeq(2,5:8)/16;
aeq(2,9:12) = aeq(2,9:12)/(-8);
beq = zeros(2,1);
%%
options = optimoptions('linprog','Algorithm','dual-simplex');
[x,y] = linprog(-c,A,b,aeq,beq,zeros(12,1),ones(12,1),options);
%disp(x);
for i = 1:4
    fprintf('货物%d = %.4ft\n',i,(x(i)+x(i+4)+x(i+8))*A1(i));
end
fprintf('最优利润是%.4f元\n',-y);
%disp(-y);

输出:

Optimal solution found.

货物1 = 0.0000t
货物2 = 15.0000t
货物3 = 15.9474t
货物4 = 3.0526t
最优利润是121515.7895元
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
文件夹 PATH 列表 卷序列号为 0000002C 486B:877C C:. │ tree.txt │ 说明.txt │ ├─01第1章 │ book1_1.xls │ data.mat │ data1_1.txt │ eti1_5.lg4 │ eti1_6.lg4 │ eti1_7.lg4 │ eti1_8_1.m │ eti1_8_2.m │ eti1_8_3.m │ eti1_8_4.lg4 │ eti_1_9.lg4 │ ex.txt │ ti1_1_1.m │ ti1_1_2.lg4 │ ti1_2_1.m │ ti1_2_2.lg4 │ ti1_3_1.lg4 │ ti1_3_2.lg4 │ ti1_4_1.m │ ti1_4_2.lg4 │ ├─02第2章 │ data2_1.txt │ data2_2.txt │ eti2_5_1.m │ eti2_5_2.lg4 │ eti2_6_1.m │ eti2_6_2.lg4 │ fen.txt │ gai.txt │ shuchu.txt │ sj.txt │ ti2_2.lg4 │ ti2_3.lg4 │ ti2_4_1.m │ ti2_4_2.lg4 │ ti2_4_3.lg4 │ ti2_4_4.m │ ti2_4_5.m │ ti2_4_6.lg4 │ ├─03第3章 │ eti3_5.lg4 │ eti3_6_1.m │ eti3_6_2.lg4 │ eti3_6_3.lg4 │ eti3_7_1.m │ eti3_7_2.lg4 │ ex37.txt │ fun3_2.m │ fun3_3.m │ fun3_4.m │ fun3_5.m │ ti3_1.lg4 │ ti3_1.m │ ti3_2.m │ ti3_3.m │ ti3_4_1.m │ ti3_4_2.lg4 │ ├─04第4章 │ eti4_10.m │ eti4_11.m │ eti4_12_1.m │ eti4_12_2.lg4 │ eti4_13.m │ eti4_14.m │ eti4_15.m │ eti4_16.m │ eti4_17.m │ ti4_1.m │ ti4_2.m │ ti4_3.m │ ti4_4.m │ ti4_5_1.lg4 │ ti4_5_2.lg4 │ ti4_6_1.m │ ti4_6_2.lg4 │ ti4_7_1.lg4 │ ti4_7_2.lg4 │ ti4_7_3.lg4 │ ti4_8.m │ ti4_9.lg4 │ txt41.txt │ ├─05第5章 │ data51.txt │ data53.txt │ data54.txt │ eti5_5.m │ eti5_6.m │ eti5_7_1.m │ eti5_7_2.m │ eti5_8.m │ ti5_1.m │ ti5_2.m │ ti5_3.m │ ti5_4.m │ ├─06第6章 │ eti6_10.m │ eti6_11.m │ eti6_12.m │ eti6_7_1.m │ eti6_7_2.m │ eti6_8_1.m │ eti6_8_2.m │ eti6_9.m │ ti6_1_1.m │ ti6_1_2.m │ ti6_2.m │ ti6_5_1.m │ ti6_5_2.m │ ti6_6.m │ ├─07第7章 │ ti7_1.m │ ti
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值