MATLAB线性优化问题程序,老是出错,大家帮忙给个编好的程序吧某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出.目前有两个
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 03:42:11
![MATLAB线性优化问题程序,老是出错,大家帮忙给个编好的程序吧某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出.目前有两个](/uploads/image/z/12541979-11-9.jpg?t=MATLAB%E7%BA%BF%E6%80%A7%E4%BC%98%E5%8C%96%E9%97%AE%E9%A2%98%E7%A8%8B%E5%BA%8F%2C%E8%80%81%E6%98%AF%E5%87%BA%E9%94%99%2C%E5%A4%A7%E5%AE%B6%E5%B8%AE%E5%BF%99%E7%BB%99%E4%B8%AA%E7%BC%96%E5%A5%BD%E7%9A%84%E7%A8%8B%E5%BA%8F%E5%90%A7%E6%9F%90%E5%85%AC%E5%8F%B8%E6%9C%896%E4%B8%AA%E5%BB%BA%E7%AD%91%E5%B7%A5%E5%9C%B0%E8%A6%81%E5%BC%80%E5%B7%A5%2C%E6%AF%8F%E4%B8%AA%E5%B7%A5%E5%9C%B0%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%88%E7%94%A8%E5%B9%B3%E9%9D%A2%E5%9D%90%E6%A0%87%E7%B3%BBa%2Cb%E8%A1%A8%E7%A4%BA%2C%E8%B7%9D%E7%A6%BB%E5%8D%95%E4%BD%8D%EF%BC%9A%E5%8D%83%E7%B1%B3+%EF%BC%89%E5%8F%8A%E6%B0%B4%E6%B3%A5%E6%97%A5%E7%94%A8%E9%87%8Fd%28%E5%90%A8%29%E7%94%B1%E4%B8%8B%E8%A1%A8%E7%BB%99%E5%87%BA.%E7%9B%AE%E5%89%8D%E6%9C%89%E4%B8%A4%E4%B8%AA)
MATLAB线性优化问题程序,老是出错,大家帮忙给个编好的程序吧某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出.目前有两个
MATLAB线性优化问题程序,老是出错,大家帮忙给个编好的程序吧
某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出.目前有两个临时料场位于A(5,1),B(2,7),日储量各有20吨.假设从料场到工地之间均有直线道路相连.
(1)试制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨千米数最小.
(2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两个新的,日储量各为20吨,问应建在何处,节省的吨千米数有多大?
工地位置(a,b)及水泥日用量d
1 2 3 4 5 6
a 1.25 8.75 0.5 5.75 3 7.25
b 1.25 0.75 4.75 5 6.5 7.25
d 3 5 4 7 6 11
MATLAB线性优化问题程序,老是出错,大家帮忙给个编好的程序吧某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出.目前有两个
clear all
clc
tic
%-----------------------------------
% 构造目标函数系数向量与不等式和等式约束矩阵等
% 构造目标函数系数向量
a=[1.25 8.75 0.5 5.75 3 7.25];
b=[1.25 0.75 4.75 5 6.5 7.75];
d=[3 5 4 7 6 11];
x=[5 2]; y=[1 7]; e=[20 20];
for i=1:6
for j=1:2
aa(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2);
end
end
C=[aa(:,1); aa(:,2)]';
% 构造不等式和等式约束矩阵
A=[1 1 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1];
B=[20;20];
Aeq=[1 0 0 0 0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0 0 0 0 1 ];
beq=[d(1);d(2);d(3);d(4);d(5);d(6)];
% 变量的上下界
VLB=[0 0 0 0 0 0 0 0 0 0 0 0]; VUB=[];
x0=[1 2 3 0 1 0 0 1 0 1 0 1];
% 参数设置---options
options=optimset('LargeScale','off');
% 函数调用
[xx,fval,EXITFLAG,output]=linprog(C,A,B,Aeq,beq,VLB,VUB,x0,options);
% 结果输出
x=reshape(xx,6,2)',fval,EXITFLAG,output % 注意
T=toc