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

上传人:b****4 文档编号:5513356 上传时间:2022-12-17 格式:DOCX 页数:14 大小:185.81KB
下载 相关 举报
Lingo求解线性规划问题Matlab与Excel数据交互.docx_第1页
第1页 / 共14页
Lingo求解线性规划问题Matlab与Excel数据交互.docx_第2页
第2页 / 共14页
Lingo求解线性规划问题Matlab与Excel数据交互.docx_第3页
第3页 / 共14页
Lingo求解线性规划问题Matlab与Excel数据交互.docx_第4页
第4页 / 共14页
Lingo求解线性规划问题Matlab与Excel数据交互.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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

《Lingo求解线性规划问题Matlab与Excel数据交互.docx》由会员分享,可在线阅读,更多相关《Lingo求解线性规划问题Matlab与Excel数据交互.docx(14页珍藏版)》请在冰豆网上搜索。

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

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文件:

WH1WH2WH3WH4WH5WH6~

V1V2V3V4V5V6V7V8~

605551434152~

3537223241324338~

62674259

49538582

52197433

76739271

23957265

55228143

在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\数学建模\2013\LINGO10\LINGO10\1_2.xls')/:

capacity;

vendors/@ole('D:

\study\数学建模\2013\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\数学建模\2013\LINGO10\LINGO10\1_2.xls');

demand=@ole('D:

\study\数学建模\2013\LINGO10\LINGO10\1_2.xls');

cost=@ole('D:

\study\数学建模\2013\LINGO10\LINGO10\1_2.xls');

enddata

end

运行

二、MATLAB与EXCEL数据的交互,xlsread、xlsread的使用

建立Excel,输入姓名,学号,成绩

 

在Matlab命令窗口输入:

[numberstringscore]=xlsread('cjb.xls');

row_length=length(score(:

1));

temp=score(2:

row_length,:

);

A=(number(:

2)+number(:

3)+number(:

4))/3

fori=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);

ifsuccess==1

disp('成功!

!

')

else

disp('失败!

!

')

end

 

结论

(结果)

 

结论

(结果)

 

结论

(结果)

 

结论

(结果)

 

一、Lingo数据的读入和计算

Lingo读入*.dat,*.txt,*.xls数据计算结果都为:

Globaloptimalsolutionfound.

Objectivevalue:

664.0000

Totalsolveriterations:

15

 

VariableValueReducedCost

CAPACITY(WH1)60.000000.000000

CAPACITY(WH2)55.000000.000000

CAPACITY(WH3)51.000000.000000

CAPACITY(WH4)43.000000.000000

CAPACITY(WH5)41.000000.000000

CAPACITY(WH6)52.000000.000000

DEMAND(V1)35.000000.000000

DEMAND(V2)37.000000.000000

DEMAND(V3)22.000000.000000

DEMAND(V4)32.000000.000000

DEMAND(V5)41.000000.000000

DEMAND(V6)32.000000.000000

DEMAND(V7)43.000000.000000

DEMAND(V8)38.000000.000000

COST(WH1,V1)6.0000000.000000

COST(WH1,V2)2.0000000.000000

COST(WH1,V3)6.0000000.000000

COST(WH1,V4)7.0000000.000000

COST(WH1,V5)4.0000000.000000

COST(WH1,V6)2.0000000.000000

COST(WH1,V7)5.0000000.000000

COST(WH1,V8)9.0000000.000000

COST(WH2,V1)4.0000000.000000

COST(WH2,V2)9.0000000.000000

COST(WH2,V3)5.0000000.000000

COST(WH2,V4)3.0000000.000000

COST(WH2,V5)8.0000000.000000

COST(WH2,V6)5.0000000.000000

COST(WH2,V7)8.0000000.000000

COST(WH2,V8)2.0000000.000000

COST(WH3,V1)5.0000000.000000

COST(WH3,V2)2.0000000.000000

COST(WH3,V3)1.0000000.000000

COST(WH3,V4)9.0000000.000000

COST(WH3,V5)7.0000000.000000

COST(WH3,V6)4.0000000.000000

COST(WH3,V7)3.0000000.000000

COST(WH3,V8)3.0000000.000000

COST(WH4,V1)7.0000000.000000

COST(WH4,V2)6.0000000.000000

COST(WH4,V3)7.0000000.000000

COST(WH4,V4)3.0000000.000000

COST(WH4,V5)9.0000000.000000

COST(WH4,V6)2.0000000.000000

COST(WH4,V7)7.0000000.000000

COST(WH4,V8)1.0000000.000000

COST(WH5,V1)2.0000000.000000

COST(WH5,V2)3.0000000.000000

COST(WH5,V3)9.0000000.000000

COST(WH5,V4)5.0000000.000000

COST(WH5,V5)7.0000000.000000

COST(WH5,V6)2.0000000.000000

COST(WH5,V7)6.0000000.000000

COST(WH5,V8)5.0000000.000000

COST(WH6,V1)5.0000000.000000

COST(WH6,V2)5.0000000.000000

COST(WH6,V3)2.0000000.000000

COST(WH6,V4)2.0000000.000000

COST(WH6,V5)8.0000000.000000

COST(WH6,V6)1.0000000.000000

COST(WH6,V7)4.0000000.000000

COST(WH6,V8)3.0000000.000000

VOLUME(WH1,V1)0.0000005.000000

VOLUME(WH1,V2)19.000000.000000

VOLUME(WH1,V3)0.0000005.000000

VOLUME(WH1,V4)0.0000007.000000

VOLUME(WH1,V5)41.000000.000000

VOLUME(WH1,V6)0.0000002.000000

VOLUME(WH1,V7)0.0000002.000000

VOLUME(WH1,V8)0.00000010.00000

VOLUME(WH2,V1)1.0000000.000000

VOLUME(WH2,V2)0.0000004.000000

VOLUME(WH2,V3)0.0000001.000000

VOLUME(WH2,V4)32.000000.000000

VOLUME(WH2,V5)0.0000001.000000

VOLUME(WH2,V6)0.0000002.000000

VOLUME(WH2,V7)0.0000002.000000

VOLUME(WH2,V8)0.0000000.000000

VOLUME(WH3,V1)0.0000004.000000

VOLUME(WH3,V2)11.000000.000000

VOLUME(WH3,V3)0.0000000.000000

VOLUME(WH3,V4)0.0000009.000000

VOLUME(WH3,V5)0.0000003.000000

VOLUME(WH3,V6)0.0000004.000000

VOLUME(WH3,V7)40.000000.000000

VOLUME(WH3,V8)0.0000004.000000

VOLUME(WH4,V1)0.0000004.000000

VOLUME(WH4,V2)0.0000002.000000

VOLUME(WH4,V3)0.0000004.000000

VOLUME(WH4,V4)0.0000001.000000

VOLUME(WH4,V5)0.0000003.000000

VOLUME(WH4,V6)5.0000000.000000

VOLUME(WH4,V7)0.0000002.000000

VOLUME(WH4,V8)38.000000.000000

VOLUME(WH5,V1)34.000000.000000

VOLUME(WH5,V2)7.0000000.000000

VOLUME(WH5,V3)0.0000007.000000

VOLUME(WH5,V4)0.0000004.000000

VOLUME(WH5,V5)0.0000002.000000

VOLUME(WH5,V6)0.0000001.000000

VOLUME(WH5,V7)0.0000002.000000

VOLUME(WH5,V8)0.0000005.000000

VOLUME(WH6,V1)0.0000003.000000

VOLUME(WH6,V2)0.0000002.000000

VOLUME(WH6,V3)22.000000.000000

VOLUME(WH6,V4)0.0000001.000000

VOLUME(WH6,V5)0.0000003.000000

VOLUME(WH6,V6)27.000000.000000

VOLUME(WH6,V7)3.0000000.000000

VOLUME(WH6,V8)0.0000003.000000

RowSlackorSurplusDualPrice

1664.0000-1.000000

20.000000-4.000000

30.000000-5.000000

40.000000-4.000000

50.000000-3.000000

60.000000-7.000000

70.000000-3.000000

80.000000-6.000000

90.000000-2.000000

100.0000003.000000

1122.000000.000000

120.0000003.000000

130.0000001.000000

140.0000002.000000

150.0000002.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列,在程序编写时也出现了错误,所以一直没能得出结果,以后应加强对程序语句的具体细节的理解。

指导教师评分(包括对实验的预习、操作和结果的综合评分):

指导教师总评:

签名:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1