文档库 最新最全的文档下载
当前位置:文档库 › 吴琛实验四

吴琛实验四

吴琛实验四
吴琛实验四

实验四数组

实验课程名:高级语言程序设计(C)

专业班级:电气本二学号:20姓名:吴琛

实验时间:2012-5-9实验地点:K4-202指导教师:吴建设

一、实验目的和要求

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2.掌握字符数组和字符串函数的使用;

3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

1、任务名称1.调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。

#inclue

#define N 10

void main( )

{ int i,a[N],av;

for(i=0;i

scanf("%d",a[i]);

for(i=0;i

{ printf("%d",a[i]);

if(i%3==0)

printf("\n");

}

for(i=0;i!=N;i++)

av+=a[i];

printf("av=%f\n",av);

}

上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意数组元素的输入问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。

相关知识:①数组元素值的输入;②求和求平均值的相关变量初始化问题;

③输出格式符的正确使用。④数组元素的格式化输出。

源代码:

#inclue

#define N 10

void main( )

{ int i,a[N],av;

for(i=0;i

scanf("%d",a[i]);

for(i=0;i

{ printf("%d",a[i]);

if(i%3==0)

printf("\n");

}

for(i=0;i!=N;i++)

av+=a[i];

printf("av=%f\n",av);

}

改正后程序:

#include

void main( )

{

int i,n,a[10]。

float avg。

n = 10。

for(i=0。i

scanf("%d",&a[i])。

for(i=0。i

{

printf("%d ",a[i])。

if((i+1)%3==0)

printf("\n")。

}

avg=0。

for(i=0。i

avg+=a[i]。

avg/=10。

printf("\navg = %f\n",avg)。

printf("学号:20 姓名:吴琛实验四第一题")。}

运行结果:(需要截图)

运行结果分析:①数组元素值的输入②求和求平均值的相关变量初始化问题③输出格式符的正确使用④数组元素的格式化输出。

2、任务名称

下面程序是输入5个数据,然后求它们的和并输出结果。

源代码:#include

void main( )

{int i, a[5], sum = 0。

scanf("%d,%d,%d,%d,%d", a )。

for (i = 0。i <= 4。i ++)

sum += a[i]。

printf("sum = %d \n", sum)。

}

该程序中有哪些错误?如何修改?写出正确运行后的结果。

相关知识:数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。改正后的程序:

#include

void main( )

{int i,a[5],sum=0。

for (i=0。i<=4。i++)

scanf("%d", &a[i])。

sum = a[0]+a[1]+a[2]+a[3]+a[4]。

printf("sum=%d\n",sum)。

printf("学号:20 姓名:吴琛实验四第二题")。

}

运行结果:(需要截图)

运行结果分析:数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。

3、任务名称

有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。程序的初始说明和输出语句如下所示,请补充完成该程序。

源代码:

#include

void main( )

{ int i, j, row, colum, max。

static int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}。

……

printf(" Max = %d, Row = %d, Colum = %d \n", max, row, colum)。

}

编程点拨:

①初始化row、colum及max。

②使用for循环的双重循环逐行把元素值与max值进行比较,比较结果如

果元素值比max值大,则改变max值,同时改变row和colum的值。

③最后输出max,row和colum的值。

相关知识:①二维数组的定义和初始化;②使用二重循环对二维数组元素的访问;

③求最值时相关变量初值的设定。

#include

void main

{

int i,j row=0,colum=0,max。

int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}。

max=a[0][0]。

for(i=0。i<=2。i++)

for(j=0。j<=3。j++)

if(a[i][j]>max)

{

max=a[i][j]。

row=i。

colum=j。

}

printf("max=%d,row=%d,colum=%d\n",max,row,colum)。

printf("学号:20 姓名:吴琛实验四第三题")。

}

运行结果:(需要截图)

运行结果分析:初始化row、colum及max,再使用for循环的双重循环逐行把元素值与max值进行比较,比较结果如果元素值比max值大,则改变max值,同时改变row和colum的值。

4、任务名称

数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。

编程点拨:

①输入要查找的变量x的值;

②使用循环将输入的数和数组元素逐个进行比较,若找到,则提前退出循环;

③根据循环是正常结束还是提前结束来判断是否找到x。

部分源代码:

#include

void main( )

{ int i, x, a[10]={1,2,3,4,5,6,7,8,9,10}。

/*输入x变量的值*/

for ( i=0。i<10。i++ ) printf("%4d",a[i])。

printf("\n")。

/* 循环查找与x相等的元素*/

if () printf("%d\n",i)。/* 输出查找结论,输出下标值*/

else printf("Not found %d\n",x)。

}

源代码:

#include

void main( )

{ int i, x, a[10]={1,2,3,4,5,6,7,8,9,10}。

printf("请输入一个整数:")。

scanf("%d",&x)。

for ( i=0。i<10。i++ )

printf("%2d\n",a[i])。

for ( i=0。i<10。i++ )

if (x==a[i])

{printf("i=%d\n",i)。break。}

if(i>=10)

printf("Not found %d\n",x)。

printf("学号:20 姓名:吴琛实验四第四题")。

}

运行结果:(需要截图)

运行结果分析:输入要查找的变量x 的值,使用循环将输入的数和数组元素逐个进行比较,若找到,则提前退出循环,根据循环是正常结束还是提前结束来判断是否找到x 。

5、任务名称

编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。

编程点拨:

① 定义数组时多开辟一个存储单元;

② 找合适的插入位置;

j=0 a[j] ≥k? 即20 ≥15 ? 是 j++

j=1 a[j] ≥k? 即18 ≥15 ? 是 j++

j=2 a[j] ≥k? 即16 ≥15 ? 是 j++

j=3 a[j] ≥k? 即14 ≥15 ? 不是,结束循环

while( a[j]>=k && j<10 )

j++。

k 小的元素时也要退出循环

③ 向右移动插入点后的元素;先把a[9]移到a[10],a[8]移到a[9],…a[i]移到a[i+1],直到把a[j]移到a[j+1],即:i=j 停止移动元素。

for(i=9。i>=j 。i-- ) a[i+1]=a[i]。

a 0 1 2 3 4 5 6 7 8 9 下标=

10 j=3

部分源代码:

#include

#define N 11

void main()

{ int i,j,a[N]。

printf(“Please input 10 numbers:”)。

for (i=0。 i

scanf(“%d ”,&a[i])。 /*乱序输入10个整数*/

……

}

相关知识:①比较排序法、选择排序法和冒泡排序法;②数据元素的插入。

源代码:

# include

#define N 11

void main()

{ int i,j,t,x,temp1,temp2,a[N]。

printf("Please input 10 numbers:\n")。

for (i=0。 i

scanf("%d",&a[i])。for(j=0。j<9。j++)

for(i=0。i<9-j 。i++)

if (a[i]

{t=a[i]。a[i]=a[i+1]。a[i+1]=t 。}

printf("the sorted numbers:\n")。

for(i=0。i<10。i++)

printf("%d ",a[i])。

printf("\n")。

scanf("%d",&x)。

t=a[9]。

if (x

a[10]=x 。

else

{for (i=0。i<10。i++)

{if (a[i]

0 1 2 3 4 5 6 7 8 9 下标=

10

k=0。

for ( i=1。i<10。i++ )

if ( a[k]

{temp1=a[i]。

a[i]=x。

for (j=i+1。j<11。j++)

{temp2=a[j]。

a[j]=temp1。

temp1=temp2。

}

break。

}

}

}

printf("Now array a:\n")。

for (i=0。i<11。i++)

printf("%5d",a[i])。

printf("\n")。

printf("学号:20 姓名:吴琛实验四第五题")。

}

运行结果:(需要截图)

运行结果分析:编辑程序运行即可,通过冒泡法编写。

6、任务名称

输入十个互不相同的整数并存在数组中,找出最大元素,并删除。

编程点拨:

①求最大值所在元素下标:不必用max记住最大值,只要用k记住最大值所在的元素

下标;

②删除最大值:从最大值开始将其后面元素依次前移一个位置。

部分源代码:

k=0。

if ( a[k]

k=1。

执行

if ( a[k]

a

0 1 2 3 4 5 6 7 8 9

下标= 10

k=2。不执行

if ( a[k]

k=3。执行

相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。

源代码:

#include

void main()

{ int i,k,a[10]={2,8,16,14,7,21,10,13,22,18}。

printf("array a:\n")。

for (i=0。i<10。i++)

printf("%5d",a[i])。

printf("\n")。

k=0。

for(i=1。i<10。i++)

if(a[k]

k=i。

printf("max=%d\n",a[k])。

while(k<9)

{a[k]=a[k+1]。k++。}

for(i=0。i<9。i++)

printf("%4d",a[i])。

printf("\n")。

printf("学号:20 姓名:吴琛实验四第六题")。

}

运行结果:(需要截图)

运行结果分析:根据结构图编写程序并输入程序运行即可。

7、任务名称

以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空:

#include

void main( )

{ float x[1000], sum=0.0, ave, a。

int n=0, i。

printf ("Enter mark : \n") 。

scanf("%f", &a)。

while (a>=0.0 && n<1000)

{ sum+= 。x[n]= 。

n++。scanf("%f", &a)。

}

ave= 。

printf ("Output : \n")。

printf ("ave = %f\n", ave)。

for (i=0。i

if ( ) printf("%f\n", x[i])。

}

源代码:

#include

void main( )

{ int i,n=0,sum=0 ,x[1000]。

float aver。

for ( 。。)

{scanf("%d", &x[n])。

if (x[n]==-1)

break。

else {sum=sum+x[n] 。n++。}

}

aver=sum/n 。

printf("aver=%f\n",aver)。

for (i=0。i

if ( x[i]

printf("%d\n", x[i])。

printf("学号:20 姓名:吴琛实验四第七题")。

}

运行结果:(需要截图)

运行结果分析:编辑程序,运行程序输出即可。

8、任务名称

综合编程题:打印如下杨辉三角形

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

编程点拨:

杨辉三角形有如下特点:

①只有下半三角形有确定的值;

②第一列和对角线上的元素值都是1;

③其它元素值均是前一行同一列元素与前一行前一列元素之和。

源代码:

#include

#define N 6

int main()

{ int i,j,a[N][N]。

for (i=0。i

{a[i][i]=1。

a[i][0]=1。

}

for (i=2。i

for (j=1。j<=i-1。j++)

a[i][j]=a[i-1][j-1]+a[i-1][j]。

for (i=0。i

{for (j=0。j<=i。j++)

printf("%4d",a[i][j])。

printf("\n")。

}

printf("\n")。

printf("学号:20 姓名:吴琛实验四第八题\n")。

}

运行结果:(需要截图)

运行结果分析:通过二维数组编写程序,运行即可。

三、结论(写本次实验的收获)

1.学习了一维数组和二维数组的定义、赋值和输入输出的方法。

2.学习了字符数组和字符串函数的使用。

3.学习了与数组有关的算法。

运筹学实验报告

运 筹 学 实 验 报 告 学院:经济管理学院 专业班级:工商11-2班 姓名:石慧婕 学号:311110010207

实验一线性规划 一实验目的 学习WinQSB软件的基本操作,利用Linear Programming功能求解线性规划问题。掌握线性规划的基本理论与求解方法,重点在于单纯形法的应用以及灵敏度分析方法。 二、实验内容 安装WinQSB软件,了解WinQSB软件在Windows环境下的文件管理操作,熟悉软件界面内容,掌握操作命令。利用Linear Programming功能建立线性模型,输入模型,求解模型,并对求解结果进行简单分析。 三实验步骤 1.将WinQSB文件复制到本地硬盘;在WinQSB文件夹中双击setup.exe。 2.指定安装WinQSB软件的目标目录(默认为C:\ WinQSB)。 3.安装过程需要输入用户名和单位名称(任意输入),安装完毕之后,WinQSB菜单自动生成在系统程序中。 4.熟悉WinQSB软件子菜单内容及其功能,掌握操作命令。 5.求解线性规划问题。启动程序开始→程序→WinQSB→Linear and Integer Programming。 某工厂要用三种原材料C、P、H混合调配出三种不同规格的产品A、B、D。已知产品的规格要求,产品单价,每天能供应的原材料数量及原材料单价分别见下表1和2。该厂应如何安排生产,使利润收入为最大? 表1 产品名称规格要求单价(元/kg) A 原材料C不少于50% 原材料P不超过25% 50 B 原材料C不少于25% 原材料P不超过50% 35 D 不限25 表2 原材料名称每天最多供应量(kg)单价(元/kg)

最优化实验报告

最优化方法 课程设计报告班级:________________ 姓名: ______ 学号: __________ 成绩: 2017年 5月 21 日

目录 一、摘要 (1) 二、单纯形算法 (2) 1.1 单纯形算法的基本思路 (2) 1.2 算法流程图 (3) 1.3 用matlab编写源程序 (4) 二、黄金分割法 (7) 2.1 黄金分割法的基本思路 (7) 2.2 算法流程图 (8) 2.3 用matlab编写源程序 (9) 2.4 黄金分割法应用举例 (11) 三、最速下降法 (11) 3.1 最速下降法的基本思路 (11) 3.2 算法流程图 (13) 3.3 用matlab编写源程序 (13) 3.4 最速下降法应用举例 (13) 四、惩罚函数法 (17) 4.1 惩罚函数法的基本思路 (17) 4.2 算法流程图 (18) 4.3 用matlab编写源程序 (18) 4.4 惩罚函数法应用举例 (19) 五、自我总结 (20) 六、参考文献 (20)

一、摘要 运筹学是一门以人机系统的组织、管理为对象,应用数学和计算机等工具来研究各类有限资源的合理规划使用并提供优化决策方案的科学。通过对数据的调查、收集和统计分析,以及具体模型的建立。收集和统计上述拟定之模型所需要的各种基础数据,并最终将数据整理形成分析和解决问题的具体模型。 最优化理论和方法日益受到重视,已经渗透到生产、管理、商业、军事、决策等各个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、通信、政府机关等各个部门及各个领域。伴随着计算机技术的高速发展,最优化理论与方法的迅速进步为解决实际最优化问题的软件也在飞速发展。其中,MATLAB软件已经成为最优化领域应用最广的软件之一。有了MATLAB 这个强大的计算平台,既可以利用MATLAB优化工具箱(OptimizationToolbox)中的函数,又可以通过算法变成实现相应的最优化计算。 关键词:优化、线性规划、黄金分割法、最速下降法、惩罚函数法

运筹学实验报告1

运筹学实验报告(一) 实验要求:学会在Excel 软件中求解。 实验目的:通过小型线性规划模型的计算机求解方法。 熟练掌握并理解所学方法。 实验内容: 题目: 某昼夜服务的公交线路每天各时间区段内所需司机和乘务人员数如下; 设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线 路至少配备多少名司机和乘 务人员。列出这个问题的线 性规划模型。 解:设Xj 表示在第j 时间区段开始上班的司机和乘务人员数 班次 时间 所需人数 1 6:00-10:00 60 2 10:00-14:00 70 3 14:00-18:00 60 4 18:00-22:00 50 5 22:00-2:00 20 6 2:00-6:00 30

。 6-10 10-14 14-18 18-22 22-2 2-6 1 X1--- X1 2 X2--- X2 3 X3--- X3 4 X4--- X4 5 X5--- X5 6 X6 X6--- 60 70 60 50 20 30 所需人 数 Min z=x1+x2+x3+x4+x5+x6 St: x1+x6>=60 X1+x2>=70 X2+x3>=60 X3+x4>=50 X4+x5>=20 X5+x6>=30 Xj>=0,xj为整数, j=1,2,3,4,5,6

过程: 工作表[Book1]Sheet1 报告的建立: 2011-9-28 19:45:01 目标单元格(最小值) 单元格名字初值终值 $B$1 min 0 150 可变单元格 单元格名字初值终值 $B$3 x 0 45 $C$3 x 0 25 $D$3 x 0 35 $E$3 x 0 15 $F$3 x 0 15 $G$3 x 0 15 结果:最优解X=(45,25,35,15,15,15)T 目标函数值z=150 小结:1.计算机计算给规划问题的解答带来方便,让解答变得简洁;

运筹学上机实验指导书.

运筹学上机实验指导书 重庆交通大学管理学院

目录 绪论 运筹学上机实验软件简介 第一章运筹学上机实验指导 §1.1 中小型线性规划模型的计算机求解 §1.2 大型线性规划模型的编程计算机求解 §1.3线性规划的灵敏度分析 §1.4运输问题数学模型的计算机求解 §1.5目标规划数学模型的计算机求解 §1.6整数规划数学模型的计算机求解 §1.7 指派问题的计算机求解 §1.8最短路问题的计算机求解 §1.9最大流问题的计算机求解 第二章LINGO软件基础及应用 §2.1 原始集(primitive set)和派生集(derived set)与集的定义 §2.2 LINGO中的函数与目标函数和约束条件的表示 §2.3 LINGO中的数据 §2.4 LINDO简介

第三章运筹学上机实验及要求 实验一.中小型线性规划模型的求解与Lingo软件的初步使用实验二.中小型运输问题数学模型的Lingo软件求解。 实验三.大型线性规划模型的编程求解。 实验四.运输问题数学模型的Lingo编程求解。 实验五.分支定界法上机实验 实验六.整数规划、0-1规划和指派问题的计算机求解 实验七:最短路问题的计算机求解 实验八:最大流问题的计算机求解 实验九:运筹学综合实验

绪论 运筹学是研究资源最优规划和使用的数量化的管理科学,它是广泛利用现有的科学技术和计算机技术,特别是应用数学方法和数学模型,研究和解决生产、经营和经济管理活动中的各种优化决策问题。 运筹学通常是从实际问题出发,根据决策问题的特征,建立适当的数学模型,研究和分析模型的性质和特点,设计解决模型的方法或算法来解决实际问题,是一门应用性很强的科学技术。运筹学的思想、内容和研究方法广泛应用于工程管理、工商企业管理、物流和供应链管理、交通运输规划与管理等各行各业,也是现代管理科学和经济学等许多学科研究的重要基础。 在解决生产、经营和管理活动中的实际决策问题时,一般都是建立变量多、约束多的大型复杂的运筹学模型,通常都只能通过计算机软件才能求解,因此,学习运筹学的计算机求解和进行上机实验,就是运筹学教学的重要组成部分。 现在求解各类运筹学模型的软件多种,主要有Microexcel,Matlab,LINDO,LINGO,WinQSB和英国运筹学软件Dash-Xpress。Microexcel主要利用规划求解来解线性规划模型,WinQSB功能比较齐全,但是主要适合解决规模较小的运筹学模型,英国运筹学软件Dash-Xpress现在在中国的使用率不高,Matlab是通过矩阵的方法解决线性规划,对非线性规划和其它运筹学模型特别是大规模的模型的输入不太方便,。而LINGO和LINDO是使用最广泛的运筹学专业软件,前者功能强大,能解决几乎所有的运筹学优化模型,后者主要功能是线性规划模型的求解。在LINGO中模型的输入和编程都比较方便,可解决大规模的运筹学模型。因此,本课程的教学就是以LINGO为主,适当补充Excel和LINDO作为运筹学上机软件,后者的优势主要在于能获得最优单纯形表以进行更全面地灵敏度分析。 LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 LINGO全称是Linear INteractive and General Optimizer的缩写---交互式的线性和通用优化求解器。它是一套设计用来帮助您快速,方便和有效的构建和求解线性,非线性,和整数最优化模型的功能全面的工具.包括功能强大的建模语言,建立和编辑问题的全功能环境,读取和写入Excel和数据库的功能,和一系列完全内置的求解程序. 运行环境:Win9x/NT/2000/XP/2003/Vista/Win7 软件类别:国外软件/工具软件/计算工具 软件语言:英文 LINGO 是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。LINGO 提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。LINGO具有如下的优势: 1.简单的模型表示 LINGO 可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。LINGO的建模语言允许您使用汇总和下标变量以一种易懂的直观的方式来表达模型,非常类似您在使用纸和笔。模型更加容易构建,更容易

运筹学实验1预测模型

实验一、需求预测模型 预测是用科学的方法预计、推断事物发展的必要性或可能性的行为,即根据过去和现在预计未来,由已知推断未知的过程。 预测分析的具体方法很多,概括起来主要有两种:定量预测法和定性预测法。定量预测法是在掌握与预测对象有关的各种要素的定量资料的基础上,运用现代数学方法进行数据处理,据以建立能够反映有关变量之间规律性联系的各类预测模型的方法体系。定量预测法又可分为时间系列预测法和因果关系预测法。定性预测法是由有关方面的专业人员根据个人经验和知识,结合预测对象的特点进行综合分析,对事物的未来状况和发展趋势做出推测的预测方法。它一般不需要进行复杂的定量分析,适用于缺乏完备的历史资料或有关变量之间缺乏明显的数量关系等情况下的预测。定性预测法又可分为德尔菲法、各部门主管集体讨论法、销售人员意见汇集法、消费市场调查法等。 定性预测法和定量预测法在实际应用中相互补充、相辅相成。定量分析法虽然较精确,但许多非计量因素无法考虑;定性分析法虽然可以将非计量因素考虑进去,但估计的准确性在很大程度上受预测人员的经验和素质的影响,难免产生预测结论因人而异,带有一定的主观随意性。因此,在实际工作中常常是二者结合,相互取长补短,以提高预测的准确性和预测结论的可信度。 不管何种机构,如果按照以下步骤进行预测,将会使自己的预测结果更加有效:⑴明确定预测目标;⑵将需求规划和预测结合起来;⑶识别影响需求预测的主要因素;⑷理解和识别顾客群;⑸决定采用适当的预测方法;⑹确定预测效果的评估方法和误差的测度方法。 通过上面的介绍,我们知道,需求预测的方法很多,而在本次实验中,我们主要训练学生如何使用Excel来完成定量预测法中时间序列预测法的计算和分析工作。 一、实验目的 1、掌握如何建立时间序列预测模型,并能根据不同的系统需求框架选择合适的预 测方法。 2、掌握如何用Excel完成时间序列预测模型的计算和数据分析工作,包括回归分 析、预测误差的测定。 二、实验内容 1、时间序列预测法的相关知识 任何预测方法的目的都是预测系统需求部分和估计随机需求部分。系统需求部分的数据在一般形式下包含有需求水平、需求趋势和季节性需求。它也可能表现为如下列方程所示的多种形式。 ○复合型:系统需求=需求水平×需求趋势×季节性需求 ○附加型:系统需求=需求水平+需求趋势+季节性需求 ○混合型:系统需求=(需求水平+需求趋势)×季节性需求 运用于既定预测的系统需求部分的具体形式,取决于需求的性质。针对每种形式,企业都可以采用静态法和适应法这两种方法。 下面我们将通过一个实例来阐述时间序列预测法中的静态法和适应法,在预测过程中,我们假定系统需求是混合型,即系统需求=(需求水平+需求趋势)×季节性需求。 2、引例 天然气在线公司利用现有的管道设施供应天然气,同时满足各个分销商的网上紧急订购需求。该公司自2003年第二季度成立以来,需求一直在增长。计划年度将从某给定年度的第二季度开始,并延续到下一年的第一季度。公司正在规划其必备的生产能力及从2006年第

运筹学线性规划实验报告

《管理运筹学》实验报告 实验日期:2016年04月21日——2016年05月18日 实验目的: 通过实验学生应该熟练掌握“管理运筹学 3.0”软件的使用,并能利用“管理运筹学 3.0” 对具体问题进行问题处理,且能对软件处理结果进行解释和说明。实验所用软件及版本:管理运筹学3.0 实验过程:(含基本步骤及异常情况记录等―) 一、实验步骤(以P31页习题1为例) 1?打开软件“管理运筹学3.0” 2?在主菜单中选择线性规划模型,屏幕中会出现线性规划页面 3?在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数级约束条件的歌变量的系数和b值,并选择好“w”、“》”或“二”, 如图二所示,最后点击解决 班级2014级04班姓名杨艺玲学号2014190456实验 名称 管理运筹学问题的计算机求解 n 幵 目标的数 娈童个数约束条件个数 芙 遇出 保存解决关于

X 4?注意事项: (1)输入的系数可以是整数、小数,但不能是分数,要把分数化为小数再输入。 (2)输入前要合并同类项。 当约束条件输入完毕后,请点击“解决”按钮,屏幕上讲显现线性规划问题的结果, 如 图所示 D tiff 0% 关于遇出 变童个数约朿条件个数F目标的数3V 标淮北结杲: 上一曲

5.输出结果如下 me車最优解如下***#尊1林*祜除目标函数最优值知2?20 变1 最优解相差値 XI 4.00 0.00 X2 8.00 0100 釣束松弛颅11余变量对偶价格 01. 00 16. 5€ 0.00 13.33 目标函数系数范園: 娈1下限当前值上限 XI 120. 30 200.00430. 00 X2 100. 0D 240.00400.00 常数【页范園; 的束T眼当前值上限 143.00120 00152.00 240.00 64.00 160.00 5.课后习题: 一、P31习题1 某家具公司生产甲、乙两种型号的组合柜,每种组合柜需要两种工艺(制白坯和油漆).甲型号组合柜需要制白坯6工时,油漆8工时:乙型号组合柜需要制白坯12工时,油漆4工时.已知制白坯工艺的生产能力为120工时/天,油漆工艺的生产能力为64工时/天,甲型号组合柜单位利润200元,乙型号组合柜单位利润为240 元. max z = 200x 240y; 约束条件:6x,12心2°, 8x +4y 兰64, x 一0, y -0. 问题: (1)甲、乙两种柜的日产量是多少?这时最大利润是多少? 答:由实验过程中的输出结果得甲组合柜的日产量是4个,乙的事8个

运筹学线性规划实验报告

《管理运筹学》实验报告实验日期: 2016年 04月 21日—— 2016 年 05 月 18 日

3.在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数级约束条件的歌变量的系数和b值,并选择好“≤”、“≥”或“=”,如图二所示,最后点击解决

4.注意事项: (1)输入的系数可以是整数、小数,但不能是分数,要把分数化为小数再输入。(2)输入前要合并同类项。 当约束条件输入完毕后,请点击“解决”按钮,屏幕上讲显现线性规划问题的结果,如图所示

5.输出结果如下

5.课后习题: 一、P31习题1 某家具公司生产甲、乙两种型号的组合柜,每种组合柜需要两种工艺(制白坯和油漆).甲型号组合柜需要制白坯6工时,油漆8工时:乙型号组合柜需要制白坯12工时,油漆4工时.已知制白坯工艺的生产能力为120工时/天,油漆工艺的生产能力为64工时/天,甲型号组合柜单位利润200元,乙型号组合柜单位利润为240元. 约束条件: 问题: (1)甲、乙两种柜的日产量是多少?这时最大利润是多少? 答:由实验过程中的输出结果得甲组合柜的日产量是4个,乙的事8个。 . 0,0,6448,120126;240200 z max ≥≥≤+≤++=y x y x y x y x

(2)图中的对偶价格13.333的含义是什么? 答: 对偶价格13.333的含义是约束条件2中,每增加一个工时的油漆工作,利润会增加13.33元。 (3)对图中的常数项围的上、下限的含义给予具体说明,并阐述如何使用这些信息。 答:当约束条件1的常数项在48~192围变化,且其他约束条件不变时,约束条件1的对偶价格不变,仍为15.56;当约束条件2的常数项在40~180围变化,而其他约束条件的常数项不变时,约束条件2的对偶价格不然,仍为13.333。 (4)若甲组合柜的利润变为300,最优解不变?为什么? 答:目标函数的最优值会变,因为甲组合柜的利润增加,所以总利润和对偶价格增加;甲、乙的工艺耗时不变,所以甲、乙的生产安排不变。 二、学号题 约束条件: 无约束条件 (学号)学号43214321432143214321 0 0,30 9991285376)(53432max x x x x x x x x x x x x x x x x x x x x z ≤≥≤-+-+≥-+-+=-++-+++=??????????????-≥?-?-?-?-?-7606165060~5154050~414 )30(40~313)20(30~21210 20~11 10~1)(学号)(学号)(学号学号学号)(学号不变学号规则

《运筹学B》实验指导书(2版)

《运筹学B》实验指导书 (第二版) 南昌航空大学数信学院应用数学系 邱根胜编 2011年09月

目录 实验1、用Lingo求解最短路、最小树问题 (4) 实验2、用Lingo求解最大流、最小费用流问题 (11) 实验3、利用Lingo求解排队与存贮模型 (16) 实验4、利用数学软件求解对策论问题 (30) 实验5、运筹学综合应用 (37)

一、授课对象 四年制本科数学与应用数学、信息与计算科学专业。 二、课程类型 专业选修课 三、实验的性质、目的与任务 1、实验性质 《运筹学B》实验是一门重要的专业课实验。要求通过上机实验,使学生了解运筹学中的网络优化、排队论、对策论等在实际中的应用,了解运筹学解决实际问题的基本方法,培养建模能力和计算机应用能力。 2、实验的目的 培养与提高学生分析问题和解决问题的能力、自学能力,利用运筹学和数学软件求解实际问题的能力,以及程序设计能力。 3、实验的任务 应用Matlab、lindo/lingo求解网络优化模型、排队与存储模型、对策论模型等,加深对运筹学方法的理解,并初步具有利用运筹学和计算机软件解决实际问题的能力。 五、实验内容与实验要求 实验一、用Lingo求解最短路、最小树问题 实验要求: 1、了解Lingo软件求解一般数学规划的方法; 2、理解最短路问题和最小树的数学规划模型。 实验二、用Lingo求解最大流、最小费用流问题 实验要求: 1、熟悉Lingo软件求解一般数学规划的方法;

2、熟悉最大流、最小费用流问题的数学规划模型; 3、掌握利用Lingo求解最大流、最小费用流问题的数学模型的用法。 实验三、利用Lingo求解排队与存贮模型 实验要求: 1、理解排队论与存贮论中的几个基本模型; 2、利用Lingo求解排队与存贮模型。 实验四、利用数学软件求解对策论问题 实验要求: 1、了解将对策论模型转化为数学规划模型的方法; 2、利用Lingo求解对策论模型。 实验四、运筹学综合应用 本实验为综合性实验,主要内容为对一个实际问题,能利用运筹学建立模型,并利用计算机编程求解,培养学生数学建模的能力和计算机应用能力。 实验要求: 1、根据要求选取一个实际问题,利用运筹学知识,建立实际问题的数学模型; 2、利用数学软件求解模型,并对结果进行分析、讨论,最后给出问题的解决方案; 3、写出实验报告。 注:从12学时的实验内容中选择8学时的实验内容,其中有一个综合性实验。 六、主要参考书 [1] 谢金星,薛毅编著,《优化建模与LINDO/LINGO》,清华大学出版社,2005年7月。 [2]《运筹学》教材编写组编,《运筹学》(第三版),清华大学出版社,2005年6月, [3] 姜启源,邢文训,谢金星等,《大学数学实验》,清华大学出版社,2005年。 [4] 胡运权主编,《运筹学教程》(第三版),清华大学出版社,2007年。

运筹学实验

实验5 动态规划模型编程解算 1、用Lingo软件求解下列最短路线问题: 下图是一个线路网,连线上的数字表示两点之间的距离(或费用)。试寻求一条由A到G 距离最短(或费用最省)的路线。 见“Matlab数学建模算法全收录”P59页Lingo程序——最优值为18. 再此基础上,自己编写下列最短路径规划程序: Title Dynamic Programming; sets: vertex/A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G/:L; road(vertex,vertex)/A B1,A B2,B1 C1,B1 C2,B1 c3,B2 C2,B2 C3,B2 C4, C1 D1,C1 D2,C2 D1,C2 D2,C3 D2,C3 D3,C4 D2,C4 D3, D1 E1,D1 E2,D2 E2,D2 E3,D3 E2,D3 E3, E1 F1,E1 F2,E2 F1,E2 F2,E3 F1,E3 F2,F1 G,F2 G/:D; endsets data: D=5 3 1 3 6 8 7 6 6 8 3 5 3 3 8 4 2 2 1 2 3 3 3 5 5 2 6 6 4 3; L=0,,,,,,,,,,,,,,,; enddata @for(vertex(i)|i#GT#1:L(i)=@min(road(j,i):L(j)+D(j,i))); end 运行结果:

2、用Lingo求解下列最短路径规划程序: 如下图,求从S到T的最短路径。设d(x,y)为城市x与城市y之间的直线距离;L(x)为城市S到城市x的最优行驶路线的路长。模型为: min {L(x)+d(x,y)} L(S)=0 注释:求得最短路径为20。

运筹学指派问题的匈牙利法实验报告

运筹学 课 程 设 计 报 告 专业: 班级: 学号: : 2012年6月20日

目录 一、题目。 二、算法思想。 三、算法步骤。 四、算法源程序。 五、算例和结果。 六、结论与总结。

一、题目:匈牙利法求解指派问题。 二、算法思想。 匈牙利解法的指派问题最优解的以下性质: 设指派问题的系数矩阵为C=()c ij n n?,若将C的一行(或列)各元素分别减去一个常数k(如该行或列的最小元素),则得到一个新的矩阵C’=()'c ij n n?。那么,以C’位系数矩阵的指派问题和以C位系数矩阵的原指派问题有相同最优解。 由于系数矩阵的这种变化不影响约束方程组,只是使目标函数值减少了常 数k,所以,最优解并不改变。必须指出,虽然不比要求指派问题系数矩阵中无 负元素,但在匈牙利法求解指派问题时,为了从以变换后的系数矩阵中判别能否 得到最优指派方案,要求此时的系数矩阵中无负元素。因为只有这样,才能从总 费用为零这一特征判定此时的指派方案为最优指派方案。 三、算法步骤。 (1)变换系数矩阵,使各行和各列皆出现零元素。 各行及各列分别减去本行及本列最小元素,这样可保证每行及每列中都有 零元素,同时,也避免了出现负元素。 (2)做能覆盖所有零元素的最少数目的直线集合。

因此,若直线数等于n,则以可得出最优解。否则,转第(3)步。 对于系数矩阵非负的指派问题来说,总费用为零的指派方案一定是最优指派方案。在第(1)步的基础上,若能找到n个不同行、不同列的零元素,则对应的指派方案总费用为零,从而是最优的。当同一行(或列)上有几个零元素时,如选择其一,则其与的零元素就不能再被选择,从而成为多余的。因此,重要的是零元素能恰当地分布在不同行和不同列上,而并在与它们的多少。但第(1)步并不能保证这一要求。若覆盖所有零元素的最少数目的直线集合中的直线数目是n,则表明能做到这一点。 此时,可以从零元素的最少的行或列开始圈“0”,每圈一个“0”,同时把位于同行合同列的其他零元素划去(标记为),如此逐步进行,最终可得n个位于不同行、不同列的零元素,他们就对应了最优解;若覆盖所有零元素的最少数目的直线集合中的元素个数少于n,则表明无法实现这一点。需要对零元素的分布做适当调整,这就是第(3)步。 (3)变换系数矩阵,是未被直线覆盖的元素中出现零元素。回到第(2)步。 在未被直线覆盖的元素中总有一个最小元素。对未被直线覆盖的元素所在的行(或列)中各元素都减去这一最小元素,这样,在未被直线覆盖的元素中势必会出现零元素,但同时却又是以被直线覆盖的元素中出现负元素。为了消除负元素,只要对它们所在的列(或行)中个元素都加上这一最小元素(可以看作减去这一最小元素的相反数)即可。 四、算法源程序。

2015《运筹学》实验指导书

《运筹学》实验指导书中南民族大学管理学院信息管理系编写

《运筹学》实验报告撰写规范 一、所提交的实验报告一律要求为“打印”纸质版,纸张大小要求为B5纸,不得用A4纸。 二、实验报告格式统一使用“中南民族大学管理学院实验报告.doc”模版。 第一封面处修改姓名、学号、年级、专业即可,保持原有模板中的字体及对齐方式。 第二报告模板中已填写部分不要改动,包括目录页中的实验名称、每个实验的实验属性与实验时间等。 第三不要自行更改模板的任何格式和内容,包括页面设置、字体、表格、页眉、页脚等所有内容。 第四前一个实验项目完成后,后一个实验项目应另起一页,所提供的模板已经对此进行了划分,请不要删除各实验项目之间的分页符。指导教师批阅部分保证留出3行。 三、严格按照所提供的实验模板填写相关内容。其中: (1)实验报告“步骤与分析”部分撰写格式为5号仿宋_GB2312,单倍行距,首行缩进2个字符。 (2)实验报告中“实验步骤”栏目要求详细写出实验过程(附截图)。 (3)实验报告中“实验结果分析”栏目主要分析结果所涉及的知识点以及心得体会。 四、不提交实验报告或所提交实验报告不符合要求

者期末考试不及格。 五、发现有抄袭他人者,抄袭者和被抄袭者期末考试均按不及格处理。 六、实验成绩由格式分和内容分两部分构成,其中格式占30分,内容占70分,不符合本规范要求的将扣除格式分。

目录 实验一线性规划求解(1) 实验二线性规划求解(2) 实验三线性规划建模求解(1)实验四线性规划建模求解(2)实验五运输问题 实验六LINOG软件初步应用

实验一、线性规划求解(1)(验证型) 一、实验目的 1.理解线性规划解的基本概念;并掌握线性规划的求解原理和方法。 2.掌握运用“管理运筹学软件”对线性规划问题进行建模与求解;并学会灵敏度分析方法。 二、实验内容: 1.认真阅读下列各题,注意每个问题的特征; 2.用本书附带的《管理运筹学软件》求解下列问题,并记录结果;(对照书第3章有关软件的介绍理解计算结果的相关解释,要求包含全部运算结果及相关的敏感性分析结果) 3.对结果作适当分析(与图解对比); 4.完成实验报告。(如有余力,以该软件做一下课后题,对单纯形法相对照) (1) max z=x1+x2 s.t. x1+2x2<=4 x1-2x2>=5 x1,x2>=0 (2) max z=2x1+x2 s.t. x1+x2>=2 x1-2x2<=0 x1,x2>=0 (3) min z=x1+x2+x3+x4+x5+x6 s.t. x1+x6>=60 x1+x2>=70 x2+x3>=60 x3+x4>=50 x4+x5>=20 x5+x6>=30 x1,…x6>=0

运筹学实验报告

运筹学实验报告 专业: 班级:? 姓名:? ?学号: 指导教师: 数学与应用数学专业 2015—12—18 实验目录 一、实验目得?3 二、实验要求?3 三、实验内容..................................................................................................................... 3 1、线性规划?3 2、整数规划?6 3、非线性规划 (13) 4、动态规划........................................................................................................... 14 5、排队论?19 四、需用仪器设备........................................................................................................... 26 五、MATLAB优化工具箱使用方法简介 (26) 六、LINGO优化软件简介.......................................................................................... 26 七、实验总结?27

一、实验目得 1、会利用适当得方法建立相关实际问题得数学模型; 2、会用数学规划思想及方法解决实际问题; 3、会用排队论思想及方法解决实际问题; 4、会用决策论思想及方法解决实际问题; 5、掌握MATLAB、LINGO等数学软件得应用; 二、实验要求 1、七人一组每人至少完成一项实验内容; 2、每组上交一份实验报告; 3、每人进行1~2分钟实验演示; 4、实验成绩比例: 出勤:40% 课堂提问:20% 实验报告:30% 实验演示:10%. 三、实验内容 1、线性规划 例运筹学74页14题 Minz=—2x —x2 s、t、2x1+5x2≤60 x1+x2≤18 3x1+x2≤44 X2≤10 X1,x2≥0 用matlab运行后得到以下结果:

运筹学实验指导书

运筹学实验指导书-CAL-FENGHAI.-(YICAI)-Company One1

实验一、线性规划综合性实验 一、实验目的与要求: 使学生掌握线性规划建模的方法以及至少掌握一种线性规划软件的使用,提高学生应用线性规划方法解决实际问题的实践动手能力。通过实验,使学生更深入、直观地理解和掌握线性规划的基本概念及基本理论和方法。要求学生能对一般的线性规划问题建立正确的线性规划数学模型,掌握运筹学软件包线性规划模块的操作方法与步骤,能对求解结果进行简单的应用分析。 二、实验内容与步骤: 1.选择合适的线性规划问题 学生可根据自己的建模能力,从本实验指导书提供的参考选题中或从其它途径选择合适的线性规划问题。 2.建立线性规划数学模型 学生针对所选的线性规划问题,运用线性规划建模的方法,建立恰当的线性规划数学模型。 3.用运筹学软件求解线性规划数学模型 学生应用运筹学软件包线性规划模块对已建好的线性规划数学模型进行求解。 4.对求解结果进行应用分析 学生对求解结果进行简单的应用分析。 三、实验例题: (一)线性规划问题 某集团摩托车公司产品年度生产计划的优化研究 1)问题的提出 某集团摩托车公司是生产各种类型摩托车的专业厂家,有30多年从事摩托车生产的丰富经验。近年来,随着国内摩托车行业的发展,市场竞争日趋激烈,该集团原有的优势逐渐丧失,摩托车公司的生存和发展面临严峻的挑战。为此公司决策层决心顺应市场,狠抓管理,挖潜创新,从市场调查入手,紧密结合公司实际,运用科学方法对其进行优化组合,制定出1999年度总体经济效益最优的生产计划方案。 2)市场调查与生产状况分析 1998年,受东南亚金融风暴的影响,国内摩托车市场出现疲软,供给远大于需求,该集团的摩托车生产经营也出现开工不足、库存增加和资金周转困难等问题。 该集团共有三个专业厂,分别生产轻便摩托车、普通两轮车和三轮摩托车三大系列产品。

2015运筹学实验报告

实验报告 课程名称:运筹学 专业:市场营销 班级:11302 任课教师:汪长飚 学号:201305549 (21) 姓名:杨威 实验日期:2015 年 6 月10 日 长江大学管理学院

一、实验性质和教学目的 本实验是管理及经济类本科生运筹学课程的上机操作实验,实验的内容是本科生阶段运筹学Ⅰ的所有内容,主要包括线性规划、整数规划、运输问题、目标规划、动态规划、图与网络、网络计划等。实验目的在于使学生掌握应用计算机工具解决运筹学模型优化求解的方法步骤,熟悉各种运筹学优化软件的使用,特别是Excel 优化功能的使用,为今后在实际工作中解决大型的实际问题优化模型奠定基础。同时,通过熟悉优化软件的操作激发同学的学习兴趣,提高本课程的教学效果。 二、实验软件 软件名称:MS-office Excel电子表格软件 开发者:Microsoft 软件内容:Office Excel 规划求解软件包及相关挂接软件包

实验一应用EXCEL规划求解的加载与参数的设置 一、实验目的与要求 1. 1.掌握EXCEL宏的加载和规划工具的加载 2. 2.了解规划求解参数的设置 二、实验步骤与方法 1.规划求解加载,在“工具”菜单上,单击“加载宏”。 2.规划求解参数。 1)设置目标单元格 在此指定要设置为特定数值或者最大值或最小值的目标单元格。该单元格必须包含公式,公式为规划问题的目标函数,根据不同问题的线性规划而异。 2)等于 在此指定是否希望目标单元格为最大值、最小值或某一特定数值。如果需要指定数值,请在右侧编辑框中输入该值。 3)可变单元格 在此指定可变单元格。求解时其中的数值不断调整,直到满足约束条件并且“设置目标单元格”框中指定的单元格达到目标值。可变单元格必须直接或间接地与目标单元格相关联。可变单元格即为数学模型中的决策变量。 4)推测 单击此按钮,自动推测“设置目标单元格”框中的公式所引用的所有非公式单元格,并在“可变单元格”框中定位这些单元格的引用。一般不选择“推测”,而是将光标置于可变单元格内,再在工作表中选择决策变量所在的单元格区域。 5)约束 在此列出了规划求解的所有约束条件。 (1) 添加:显示“添加约束”对话框。 (2) 更改:显示“更改约束”对话框。 (3) 删除:删除选定的约束条件。 6)求解 对定义好的问题进行求解。 在“可用加载宏”框中,选中“规划求解”旁边的复选框

运筹学实验指导书Excel版

运筹学 实验报告册(适用于经济管理类专业) 学号: 姓名: 专业:信息管理与信息系统

实验一线性规划的Excel求解与软件求解 一、实验目的 熟悉Excel软件、管理运筹学软件,掌握线性规划的Excel求解和管理运筹学软件求解。 二、实验要求 能识别线性规划有关问题并建立相应的线性规划模型,能写出线性规划的标准形式,理解线性规划解的概念,理解单纯形法原理。 三、实验原理及内容 依据单纯形法求解原理及步骤,在Excel界面中输入数据,进行求解。熟悉线性规划模型的建立过程,掌握数据整理与Excel规划求解的操作步骤。线性规划模型的建立,数据的输入与求解是最基础的要求。 本节实验要求完成以下内容: 1、线性规划模型的建立; 2、Excel界面内数据的输入; 3、利用Excel规划求解进行线性规划模型的求解。 四、实验步骤及结论分析 1、某饲养场养动物出售,设每头动物每天至少需700g蛋白质、30g矿物质、100mg维生素。现有五种饲料可供选用,各种饲料每kg营养成分含量及单价如表示。 饲料蛋白质(g)矿物质(g)维生素(mg)价格(元/kg) 1 3 1 0.5 0.2 2 2 0.5 1.0 0.7 3 1 0.2 0.2 0.4 4 6 2 2 0.3 5 18 0.5 0.8 0.8 (1)建立这个问题的线性规划模型 Min f=0.2X1+0.7X2+0.4X3+0.3X4+0.8X5 约束条件: 3X1+2X2+X3+6X4+18X5>=700 X1+0.5X2+0.2X3+2X4+0.5X5>=30 0.5X1+X2+0.2X3+2X4+0.5X5>=100 X1,X2,X3,X4,X5>=0 (2)对建立的模型进行Excel求解 2、福安商场是个中型的百货商场,它对销售人员的需求经过统计分析如下所示:

运筹学实验报告

. 运筹学实验报告 专业: 班级: 姓名: 学号: 指导教师:

数学与应用数学专业 2015-12-18 实验目录 一、实验目的 (3) 二、实验要求 (3) 三、实验内容 (3) 1、线性规划 (3) 2、整数规划 (6) 3、非线性规划 (13) 4、动态规划 (115) 5、排队论 (19) 四、需用仪器设备 (26) 五、MATLAB优化工具箱使用方法简介 (26) 六、LINGO优化软件简介 (26) 七、实验总结 (27)

一、实验目的 1、会利用适当的方法建立相关实际问题的数学模型; 2、会用数学规划思想及方法解决实际问题; 3、会用排队论思想及方法解决实际问题; 4、会用决策论思想及方法解决实际问题; 5、掌握MATLAB、LINGO等数学软件的应用; 二、实验要求 1、七人一组每人至少完成一项实验内容; 2、每组上交一份实验报告; 3、每人进行1~2分钟实验演示; 4、实验成绩比例: 出勤:40% 课堂提问:20% 实验报告:30% 实验演示:10%。 三、实验内容 1、线性规划 例运筹学74页14题 Min z=-2x 1-x2 2x1+5x2≤60 x1+x2≤18 3x1+x2≤44 X2≤10 X1,x2≥0

用matlab运行后得到以下结果: the program is with the linear programming Please input the constraints number of the linear programming m=6 m = 6 Please input the variant number of the linear programming n=2 n = 2 Please input cost array of the objective function c(n)_T=[-2,-1]' c = -2 -1 Please input the coefficient matrix of the constraints A(m,n)=[2,5;1,1;3,1;0,1;-1,0;0,-1] A = 2 5 1 1 3 1 0 1 -1 0 0 -1 Please input the resource array of the program b(m)_T=[60,18,44,10,0,0]' b = 60

运筹学实验指导书

Excel中规划求解宏模块的使用 Excel自带的宏模块“规划求解”可用于求解线性规划、非线性规划、整数规划的最优解。 规划求解宏模块在Excel普通运行状况下一般不会启动,当需要调用时,可以从工具菜单条中加载宏来启动,其基本步骤如下。 (1)在工具菜单中选择“加载宏”选型。 (2)在加载宏对话框中选择“规划求解”选型。 图0-1加载“规划求解”宏 (3)如果成功加载,则在工具菜单条中会出现“规划求解”选型。 由此,可以运用规划求解宏模块求解任何一个线性规划问题、整数规划问题、非线性规划问题,分别举例说明如下。 例1 营养配餐问题 根据生物营养学理论,一个成年人每天要维持人体正常的生理健康需求,需要从食物中获取3000卡路里热量、55g蛋白质和800mg钙。假定市场上可供选择的食品有猪肉、鸡蛋、大米和白菜,这些食品每千克所含热量和营养成分以及市场价格如表1-1所示。如何选购才能在满足营养的前提下,使购买食品的总费用最小? 表0-1 营养配餐问题数据表

解,建立该问题的线性规划模型如下: 假设x j (j=1,2,3,4)分别为猪肉、鸡蛋、大米和白菜每天的购买量,则其线性规划模型为: ??? ??? ?=≥≥+++≥+++≥++++++=)4,3,2,1(080050030020040055 1020605030002009008001200..24820min 43214 32143214 321j x x x x x x x x x x x x x t s x x x x z j 第一步:需要在Excel 中建立该问题的电子表格模型,如图0-2所示。 图0-2 营养配餐问题的Excel 表模型 其中单元格B10:E10设置为决策变量单元格,F12设置为目标单元格,F4:F6设置为三个约束条件的左边项,即表示实际获得的营养。目标单元格和约束条件左边项的函数如图0-3所示 图0-3营养配餐问题中的公式设置 函数sumproduct(区域1,区域2)为Excel 的常用函数,表示将区域1中对应元素与区域2中对应元素相乘后再相加。 第二步:调用Excel 中的“规划求解”宏,并设置目标单元格、可变单元格(即决策变量)、约束条件地址参数,如图0-4所示。

运筹学实验

运筹学课程上机实验要求 每项实验提交一份实验报告,根据实验报告进行上机实验成绩评定。提交实验报告要求: 1.提交电子word版运筹学课程实验报告一份,文件名以学生的学号命名(撰写要求及格式参考附件); 2. 实验报告统一由学习委员打包发送到chen.zhh@16 https://www.wendangku.net/doc/6a5288330.html, 3.提交报告时间:下次上机之前。 成绩评定等级主要分5级,优秀(100分)、良好(85分)、中等(70分)、及格(60分)、不及格(60分以下)。具体成绩评定还可根据实际情况界于5等级成绩之间细评为10等级。优(100分)、优-(95分)、良+(90分)、良(85分)、良-(80)、中+(75分)、中(70分)、中-(65分)、及格(60分)、不及格(60分以下)。 5级成绩评定标准如下: 优秀: 能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果可靠,体现了学生较强的分析和解决实际问题的能力,实验报告完整。实验工作量充分。 良好: 能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果基本可靠,体现了学生较强的分析和解决实际问题的能力,实验报告较完整。实验工作量较充分。 中等: 能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程基本合理,求解过程及结果基本可靠,体现了学生分析和解决实际问题的基本能力,实验报告较完整。 及格: 基本能够综合应用所学过运筹学知识解决案例问题,具有问题分析过程及建立了问题基本模型,体现了学生分析和解决实际问题的基本能力,实验报告基本完整。 不及格: 没有问题分析过程及模型,实验报告不符合要求。 【注】:如有两份或以上实验报告雷同,均评定为不及格。

相关文档
相关文档 最新文档