大学数学实验(第二版) 清华大学出版社 实验8 线性规划 第5题 某市有甲乙丙丁四个居民区,自来水由ABC

某市有甲乙丙丁四个居民区,自来水由ABC三个水库供应,四个区每天必须得到保证的基本生活用水量分别为30kt,70kt,10kt,10kt,由于水源紧张,三个水库每天最多只能分别供应50kt,60kt,50kt 自来水,由于地理位置的差别,自来水公司从各水库向各区送水所需付出的引水管理费不同(见表8.4,其中C与丁水库间没有输水管道),其他管理费用都是450元/kt.根据公司规定,各区用户按照统一标准900元/kt收费。此外,4个区都向公司申请了额外用水量,分别为每天50kt,70kt,20kt,40kt.该公司应如何分配供水量,才能获利最多?
为了增加供水量,自来水公司正在考虑进行水库改造,使3个水库每天的最大供水量都提高一倍,问那时供水方案应如何改变?公司利润可增加多少?
表8.4
引水管理费/(元/kt) 甲 乙 丙 丁
A 160 130 220 170
B 140 130 190 150
C 190 200 230 —
写出具体 的,用MATLAB编程,最好有输出结果。急!!!

模型与解析:设A水库向甲、乙、丙、丁供水量为x(1),x(2),x(3),x(4)(单位为kt,以下皆同)。设B水库向甲、乙、丙、丁供水量为x(5),x(6),x(7),x(8) 。C水库向甲、乙、丙供水量为x(9),x(10),x(11)。设自来水公司的获利为z(单位为元)。
z=(900-450)*(x(1)+x(2)+x(3)+x(4) )+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11))-(160*x(1)+130*x(2)+220*x(3)+170*x(4)+140*x(5)+130*x(6)+190*x(7)+150*x(8)+190*x(9)+200*x(10)+230*x(11)=290*x(1)+320*x(2)+230*x(3)+280*x(4)+310*x(5)+320*x(6)+260*x(7)+300*x(8)+260*x(9)+250*x(10)+220*x(11)
约束条件为:
x(1)+x(2)+x(3)+x(4)≤50 (1)
x(5)+x(6)+x(7)+x(8)≤60 (2)
x(9)+x(10)+x(11)≤50 (3)
x(1)+x(5)+x(9)≤30+50 (4)
x(2)+x(6)+x(10)≤70+70 (5)
x(3)+x(7)+x(11)≤10+20 (6)
x(4)+x(8)≤10+40 (7)
x(1)+x(5)+x(9)≥30 (8)
x(2)+x(6)+x(10)≥70 (9)
x(3)+x(7)+x(11)≥10 (10)
x(4)+x(8)≥10 (11)
x(i)≥0, i=1,2,3,4,5,6,7,8,9,10,11 (12)
本题要求解z的最大值,即求解(-z)的最小值。这是一个线性规划的问题。用MATLAB求解,程序如下:
c=-[290,320,230,280,310,320,260,300,260,250,220];
% 加负号将求极大化为求极小
part=[eye(3);zeros(1,3)];
%A1=[ 1 1 1 1 0 0 0 0 0 0 0
% 0 0 0 0 1 1 1 1 0 0 0
% 0 0 0 0 0 0 0 0 1 1 1
% 1 0 0 0 1 0 0 0 1 0 0
% 0 1 0 0 0 1 0 0 0 1 0
% 0 0 1 0 0 0 1 0 0 0 1
% 0 0 0 1 0 0 0 1 0 0 0
% -1 0 0 0 -1 0 0 0 -1 0 0
% 0 -1 0 0 0 -1 0 0 0 -1 0
% 0 0 -1 0 0 0 -1 0 0 0 -1
% 0 0 0 -1 0 0 0 -1 0 0 0 ]
A1=[ones(1,4),zeros(1,7);zeros(1,4),ones(1,4),zeros(1,3);zeros(1,8),ones(1,3);eye(4),eye(4),part;-eye(4),-eye(4),-part];
b1=[50,60,50,80,140,30,50,-30,-70,-10,-10];
v1=[0,0,0,0,0,0,0,0,0,0,0];
%下界
[x,f,exitflag,output,lag]=linprog(c,A1,b1,[],[],v1)
得到最优解为 x=[0,50,0,0,0,50,0,10,40,0,10],最优值为 f=-47600(最大值z=-f=47600),exitflag=1(收敛)。列表如下:
供水量/kt 甲 乙 丙 丁
A 0 50 0 0
B 0 50 0 10
C 40 0 10 /
该公司如此分配供水量,才能获利最多,为47600元。
若三个水库每天的最大供水量都提高一倍,则目标函数不变,约束条件(4)~(12)不变,(1)~(3)改变,如下:
x(1)+x(2)+x(3)+x(4)≤100 (1)
x(5)+x(6)+x(7)+x(8)≤120 (2)
x(9)+x(10)+x(11)≤100 (3)
用MATLAB求解,程序如下:
c=-[290,320,230,280,310,320,260,300,260,250,220];
% 加负号将求极大化为求极小
part=[eye(3);zeros(1,3)];
%A1=[ 1 1 1 1 0 0 0 0 0 0 0
% 0 0 0 0 1 1 1 1 0 0 0
% 0 0 0 0 0 0 0 0 1 1 1
% 1 0 0 0 1 0 0 0 1 0 0
% 0 1 0 0 0 1 0 0 0 1 0
% 0 0 1 0 0 0 1 0 0 0 1
% 0 0 0 1 0 0 0 1 0 0 0
% -1 0 0 0 -1 0 0 0 -1 0 0
% 0 -1 0 0 0 -1 0 0 0 -1 0
% 0 0 -1 0 0 0 -1 0 0 0 -1
% 0 0 0 -1 0 0 0 -1 0 0 0 ]
A1=[ones(1,4),zeros(1,7);zeros(1,4),ones(1,4),zeros(1,3);zeros(1,8),ones(1,3);eye(4),eye(4),part;-eye(4),-eye(4),-part];
b1=[100,120,100,80,140,30,50,-30,-70,-10,-10];
v1=[0,0,0,0,0,0,0,0,0,0,0];
%下界
[x,f,exitflag,output,lag]=linprog(c,A1,b1,[],[],v1)
得到最优解为 x=[0,100,0,0,30,40,0,50,50,0,30],最优值 f=-88700(最大值z=-f=88700),exitflag=1(收敛)。列表如下:
供水量/kt 甲 乙 丙 丁
A 0 100 0 0
B 30 40 0 50
C 50 0 30 /
三个水库每天的最大供水量都提高一倍后,该公司如此分配供水量,才能获利最多,为88700元,相比之前提高了41100元。
温馨提示:答案为网友推荐,仅供参考
相似回答