数学建模小实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、司乘人员配备问题

某昼夜服务的公交路线每天各时间区段内需司机与乘务人员如下:

设司机与乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机与乘务人员? 解: 设i x 为第i 班应报到的人员

)6,,2,1( i ,建立线性模型如下:

6

1min i i

x Z

,...,,3020

506070

60..62

1655

4433221

61x x x x x x x x x x x x x x x t s LINGO 程序如下:

MODEL:

min=x1+x2+x3+x4+x5+x6; x1+x6>=60; x1+x2>=70; x2+x3>=60; x3+x4>=50; x4+x5>=20; x5+x6>=30; END 得到的解为:

x1=60,x2=10,x3=50,x4=0,x5=30,x6=0;

配备的司机与乘务人员最少为150人。

2、铺瓷砖问题

要用40块方形瓷砖铺下图所示形状的地面,但当时市场上只有长方形瓷砖,每块大小等于方形的两块。一人买了20块长方形瓷砖,试着铺地面,结果无法铺好。试问就是这人的功夫不到家还就是这个问题根本无解呢?

3、棋子颜色问题

在任意拿出黑白两种颜色的棋子共n个,随机排成一个圆圈。然

后在两颗颜色相同的棋子中间放一颗黑色棋子,在两颗颜色不同的棋子中间放一颗白色棋子,放完后撤掉原来所放的棋子,再重复以上的过程,这样放下一圈后就拿走前次的一圈棋子,问这样重复进行下去各棋子的颜色会怎样变化呢?

分析与求解:

由于在两颗同色棋子中放一颗黑色棋子,两颗不同色的棋子中间放一颗白色棋子,故可将黑色棋子用1表示,白色棋子用-1表示。这就是因为-1×(-1)=1,1×1=1,这代表两颗同色棋子中放一颗黑色棋子;1×(-1)= -1,这代表两颗不同色的棋子中间放一颗白色棋子。 设棋子数为n ,12,,,n a a a L 为初始状态。

当n=3时

步数 状态(舍掉偶次项)

0 1a 2a 3a 1 21a a 32a a 13a a 2 31a a 21a a 32a a 3 32a a

31a a 21a a

4 12a a 23a a 31a a 说明当n=3时,经过3步进入初始状态。 当n=4时

步数 状态(舍掉偶次项)

0 1a 2a 3a 4a 1 21a a 32a a 43a a 14a a 2 31a a 42a a 31a a 42a a 3 4321a a a a 4321a a a a 4321a a a a 4321a a a a

4 24232221a a a a 24232221a a a a 24232221a a a a 2

4232221a a a a

说明当n=4时,经过4步全变为黑色棋子。

既不循环也不全为黑子

结论:当棋子数为n2时,至多经过n2次操作,就可以全部变为黑子,当棋子数不为n2时则一般不能全变为黑子。

Matlab程序:进行实验

%棋子颜色问题演示

% 1---黑子,-1 -----白子

n=4; %定义棋子数

times=6;%定义迭代次数

x0=zeros(1,n);

x1=zeros(1,n); %定义数组

for i=1:n

k=rand(1,1);

if(k>0、5) x0(i)=1;

else x0(i)=-1;

end

end; % 赋初值

x0

for i=1:times

i

for k=1:n-1

x1(k)=x0(k)*x0(k+1);

end

x1(n)=x0(n)*x0(1);

x1 %显示各次结果

x0=x1;

end

程序语句解释:

1、zeros(m,n),产生一个m×n的0矩阵,通常用于定义一个指定大小的矩阵、zeros(1,n)则产生一个全部为0的行向量。

2、rand(m,n),产生一个m×n的随机矩阵,每个元素都服从[0,1]上的均匀分布、rand(1,1)则产生一个服从[0,1]上的均匀分布的数字。

4、选修课策略问题

某学校规定,运筹学专业的学生毕业时必须至少学习过两门数学课、三门运筹学课与两门计算机课。这些课程的编号、名称、学分、所属类别与先修课要求如表1所示。那么,毕业时学生最少可以学习这些课程中哪些课程。

如果某个学生既希望选修课程的数量少,又希望所获得的学分多,她可以选修哪些课程?

模型的建立

1不考虑学分情形:

记i=1,2,…,9表示9门课程的编号。设1 i x 表示第i 门课程选修,0 i x 表示第i 门课程不选。问题的目标为选修的课程总数最少,即

9

1

min i

i Z x

约束条件包括两个方面:

第一方面就是课程数量的约束: 每个人最少要学习2门数学课,则

123452x x x x x 每个人最少要学习3门运筹学课 ,则

356893x x x x x

每个人最少要学习2门计算机课,则有:

46792x x x x

第二方面就是先修课程的关系约束:

如“数据结构”的先修课程就是“计算机编程”,这意味着如果14 x ,必须17 x ,这个条件可以表示为74x x (注意当04 x 时对7x 没有限制)。这样,所有课程的先修课要求可表为如下的约束

“最优化方法”的先修课就是“微积分”与“线性代数”,有:

2313,x x x x

“数据结构”的先修课程就是“计算机编程”,有: 47x x

“应用统计”的先修课就是“微积分”与“线性代数”,有:

5152,x x x x

“计算机模拟”的先修课程就是“计算机编程”,有:

67x x “预测理论”的先修课程就是“应用统计”,有:

相关文档
最新文档