收藏 分销(赏)

Lingo求解线性规划问题Matlab与Excel数据交互.doc

上传人:二*** 文档编号:4542654 上传时间:2024-09-27 格式:DOC 页数:12 大小:2.63MB 下载积分:5 金币
下载 相关 举报
Lingo求解线性规划问题Matlab与Excel数据交互.doc_第1页
第1页 / 共12页
本文档共12页,全文阅读请下载到手机保存,查看更方便
资源描述
Lingo求解线性规划问题Matlab与Excel数据交互(完整版) (文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载) 云南财经大学实验报告 系 (院): 专 业: 班 级: 学 号: 姓 名: 课程名称: 实验时间: 指导教师: 云南财经大学教务处制 实验名称 实验七、用LINGO求解线性规划问题、Matlab与Excel数据交互 实验目的 (1)用Lingo软件读入数据求解“六个产地八个销地”问题,学习用@file命令读入*.dat、*.txt数据,@ole命令读入*.xls文件的数据进行计算(可进行数据交互)。 (2)编写MATLAB程序,用xlsread和xlswrite读入和写出数据,了解MATLAB与EXCEL的数据交互及相关排序计算程序的编写 实验内容(算法、程序、步骤和方法 ) 实验内容(算法、程序、步骤和方法) 实验内容(算法、程序、步骤和方法) 实验内容(算法、程序、步骤和方法) 一、 Lingo数据的读入和计算 1、读入txt数据: 建立1_2.txt文件: WH1 WH2 WH3 WH4 WH5 WH6 ~ V1 V2 V3 V4 V5 V6 V7 V8 ~ 60 55 51 43 41 52 ~ 35 37 22 32 41 32 43 38 ~ 6 2 6 7 4 2 5 9 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3 在Lingo窗口输入: sets: warehouse/@file('G:\study\数学建模\LINGO10\LINGO10\1_2.txt')/:capacity; vendors/@file('G:\study\数学建模\LINGO10\LINGO10\1_2.txt')/:demand; links(warehouse,vendors):cost,volume; endsets min=@sum(links:cost*volume); @for(vendors(J): @sum(warehouse(I):volume(I,J))=demand(J)); @for(warehouse(I): @sum(vendors(J):volume(I,J))<=capacity(I)); data: capacity=@file('G:\study\数学建模\LINGO10\LINGO10\1_2.txt'); demand=@file('G:\study\数学建模\LINGO10\LINGO10\1_2.txt'); cost=@file('G:\study\数学建模\LINGO10\LINGO10\1_2.txt'); enddata end 运行 2、读入*.dat数据: 在Lingo窗口输入: sets: warehouse/@file('G:\study\数学建模\LINGO10\LINGO10\1_2.dat')/:capacity; vendors/@file('G:\study\数学建模\LINGO10\LINGO10\1_2.dat')/:demand; links(warehouse,vendors):cost,volume; endsets min=@sum(links:cost*volume); @for(vendors(J): @sum(warehouse(I):volume(I,J))=demand(J)); @for(warehouse(I): @sum(vendors(J):volume(I,J))<=capacity(I)); data: capacity=@file('G:\study\数学建模\LINGO10\LINGO10\1_2.dat'); demand=@file('G:\study\数学建模\LINGO10\LINGO10\1_2.dat'); cost=@file('G:\study\数学建模\LINGO10\LINGO10\1_2.dat'); enddata end 运行 3、读入*.Xls数据 建立1_2.xls文件: 选中A1:F1,插入姓名,定义为”warehouse” 选中A2:H2,插入姓名,定义为”vendors” 选中A3:F3,插入姓名,定义为”capacity” 选中A4:H4,插入姓名,定义为”demand” 选中A2:H2,插入姓名,定义为”vendors” 选中B6:I11,插入姓名,定义为”cost” 在Lingo窗口输入 sets: warehouse/@ole('D:\study\数学建模\2021\LINGO10\LINGO10\1_2.xls')/:capacity; vendors/@ole('D:\study\数学建模\2021\LINGO10\LINGO10\1_2.xls')/:demand; links(warehouse,vendors):cost,volume; endsets min=@sum(links:cost*volume); @for(vendors(J): @sum(warehouse(I):volume(I,J))=demand(J)); @for(warehouse(I): @sum(vendors(J):volume(I,J))<=capacity(I)); data: capacity=@ole('D:\study\数学建模\2021\LINGO10\LINGO10\1_2.xls'); demand=@ole('D:\study\数学建模\2021\LINGO10\LINGO10\1_2.xls'); cost=@ole('D:\study\数学建模\2021\LINGO10\LINGO10\1_2.xls'); enddata end 运行 二、MATLAB与EXCEL数据的交互,xlsread、xlsread的使用 建立Excel,输入姓名,学号,成绩 在Matlab命令窗口输入: [number string score]=xlsread('cjb.xls'); row_length=length(score(:,1)); temp=score(2:row_length,:); A=(number(:,2)+number(:,3)+number(:,4))/3 for i=1:5 temp1(i,:)=[temp(i,:) A(i)]; end score1=[score(1,:) 'average']; data_sorted=sortrows(temp1,6); data_out=[score1;data_sorted]; success=xlswrite('result.xls',data_out); if success==1 disp('成功!!') else disp('失败!!') end 结论 (结果) 结论 (结果) 结论 (结果) 结论 (结果) 一、 Lingo数据的读入和计算 Lingo读入*.dat,*.txt,*.xls数据计算结果都为: Global optimal solution found. Objective value: 664.0000 Total solver iterations: 15 Variable Value Reduced Cost CAPACITY( WH1) 60.00000 0.000000 CAPACITY( WH2) 55.00000 0.000000 CAPACITY( WH3) 51.00000 0.000000 CAPACITY( WH4) 43.00000 0.000000 CAPACITY( WH5) 41.00000 0.000000 CAPACITY( WH6) 52.00000 0.000000 DEMAND( V1) 35.00000 0.000000 DEMAND( V2) 37.00000 0.000000 DEMAND( V3) 22.00000 0.000000 DEMAND( V4) 32.00000 0.000000 DEMAND( V5) 41.00000 0.000000 DEMAND( V6) 32.00000 0.000000 DEMAND( V7) 43.00000 0.000000 DEMAND( V8) 38.00000 0.000000 COST( WH1, V1) 6.000000 0.000000 COST( WH1, V2) 2.000000 0.000000 COST( WH1, V3) 6.000000 0.000000 COST( WH1, V4) 7.000000 0.000000 COST( WH1, V5) 4.000000 0.000000 COST( WH1, V6) 2.000000 0.000000 COST( WH1, V7) 5.000000 0.000000 COST( WH1, V8) 9.000000 0.000000 COST( WH2, V1) 4.000000 0.000000 COST( WH2, V2) 9.000000 0.000000 COST( WH2, V3) 5.000000 0.000000 COST( WH2, V4) 3.000000 0.000000 COST( WH2, V5) 8.000000 0.000000 COST( WH2, V6) 5.000000 0.000000 COST( WH2, V7) 8.000000 0.000000 COST( WH2, V8) 2.000000 0.000000 COST( WH3, V1) 5.000000 0.000000 COST( WH3, V2) 2.000000 0.000000 COST( WH3, V3) 1.000000 0.000000 COST( WH3, V4) 9.000000 0.000000 COST( WH3, V5) 7.000000 0.000000 COST( WH3, V6) 4.000000 0.000000 COST( WH3, V7) 3.000000 0.000000 COST( WH3, V8) 3.000000 0.000000 COST( WH4, V1) 7.000000 0.000000 COST( WH4, V2) 6.000000 0.000000 COST( WH4, V3) 7.000000 0.000000 COST( WH4, V4) 3.000000 0.000000 COST( WH4, V5) 9.000000 0.000000 COST( WH4, V6) 2.000000 0.000000 COST( WH4, V7) 7.000000 0.000000 COST( WH4, V8) 1.000000 0.000000 COST( WH5, V1) 2.000000 0.000000 COST( WH5, V2) 3.000000 0.000000 COST( WH5, V3) 9.000000 0.000000 COST( WH5, V4) 5.000000 0.000000 COST( WH5, V5) 7.000000 0.000000 COST( WH5, V6) 2.000000 0.000000 COST( WH5, V7) 6.000000 0.000000 COST( WH5, V8) 5.000000 0.000000 COST( WH6, V1) 5.000000 0.000000 COST( WH6, V2) 5.000000 0.000000 COST( WH6, V3) 2.000000 0.000000 COST( WH6, V4) 2.000000 0.000000 COST( WH6, V5) 8.000000 0.000000 COST( WH6, V6) 1.000000 0.000000 COST( WH6, V7) 4.000000 0.000000 COST( WH6, V8) 3.000000 0.000000 VOLUME( WH1, V1) 0.000000 5.000000 VOLUME( WH1, V2) 19.00000 0.000000 VOLUME( WH1, V3) 0.000000 5.000000 VOLUME( WH1, V4) 0.000000 7.000000 VOLUME( WH1, V5) 41.00000 0.000000 VOLUME( WH1, V6) 0.000000 2.000000 VOLUME( WH1, V7) 0.000000 2.000000 VOLUME( WH1, V8) 0.000000 10.00000 VOLUME( WH2, V1) 1.000000 0.000000 VOLUME( WH2, V2) 0.000000 4.000000 VOLUME( WH2, V3) 0.000000 1.000000 VOLUME( WH2, V4) 32.00000 0.000000 VOLUME( WH2, V5) 0.000000 1.000000 VOLUME( WH2, V6) 0.000000 2.000000 VOLUME( WH2, V7) 0.000000 2.000000 VOLUME( WH2, V8) 0.000000 0.000000 VOLUME( WH3, V1) 0.000000 4.000000 VOLUME( WH3, V2) 11.00000 0.000000 VOLUME( WH3, V3) 0.000000 0.000000 VOLUME( WH3, V4) 0.000000 9.000000 VOLUME( WH3, V5) 0.000000 3.000000 VOLUME( WH3, V6) 0.000000 4.000000 VOLUME( WH3, V7) 40.00000 0.000000 VOLUME( WH3, V8) 0.000000 4.000000 VOLUME( WH4, V1) 0.000000 4.000000 VOLUME( WH4, V2) 0.000000 2.000000 VOLUME( WH4, V3) 0.000000 4.000000 VOLUME( WH4, V4) 0.000000 1.000000 VOLUME( WH4, V5) 0.000000 3.000000 VOLUME( WH4, V6) 5.000000 0.000000 VOLUME( WH4, V7) 0.000000 2.000000 VOLUME( WH4, V8) 38.00000 0.000000 VOLUME( WH5, V1) 34.00000 0.000000 VOLUME( WH5, V2) 7.000000 0.000000 VOLUME( WH5, V3) 0.000000 7.000000 VOLUME( WH5, V4) 0.000000 4.000000 VOLUME( WH5, V5) 0.000000 2.000000 VOLUME( WH5, V6) 0.000000 1.000000 VOLUME( WH5, V7) 0.000000 2.000000 VOLUME( WH5, V8) 0.000000 5.000000 VOLUME( WH6, V1) 0.000000 3.000000 VOLUME( WH6, V2) 0.000000 2.000000 VOLUME( WH6, V3) 22.00000 0.000000 VOLUME( WH6, V4) 0.000000 1.000000 VOLUME( WH6, V5) 0.000000 3.000000 VOLUME( WH6, V6) 27.00000 0.000000 VOLUME( WH6, V7) 3.000000 0.000000 VOLUME( WH6, V8) 0.000000 3.000000 Row Slack or Surplus Dual Price 1 664.0000 -1.000000 2 0.000000 -4.000000 3 0.000000 -5.000000 4 0.000000 -4.000000 5 0.000000 -3.000000 6 0.000000 -7.000000 7 0.000000 -3.000000 8 0.000000 -6.000000 9 0.000000 -2.000000 10 0.000000 3.000000 11 22.00000 0.000000 12 0.000000 3.000000 13 0.000000 1.000000 14 0.000000 2.000000 15 0.000000 2.000000 二、MATLAB与EXCEL数据交互 A = 87.0000 81.0000 81.3333 87.6667 85.0000 成功!! 备注或说明(成功或失败的原因、实验后的心得体会) 当把成绩表中的姓名、学号两列对调时,则无法输出平均成绩,所以一直得不到正确结果,在定义A时,number(:,n)应对4、5、6列求平均,但在输入n值时,应该是number的2、3、4列,在程序编写时也出现了错误,所以一直没能得出结果,以后应加强对程序语句的具体细节的理解。 指导教师评分(包括对实验的预习、操作和结果的综合评分): 指导教师总评: 签名: 日期:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 计算机应用

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服