数学建模小实例(共9页).doc
精选优质文档-倾情为你奉上1、司乘人员配备问题某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下: 班次时间最少需要人数16:0010:0060210:0014:0070314:0018:0060418:0022:0050522:002:002062:006:0030设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机和乘务人员? 解: 设为第班应报到的人员,建立线性模型如下: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块长方形瓷砖,试着铺地面,结果无法铺好。试问是这人的功夫不到家还是这个问题根本无解呢? 解答: 01010010101010101010101010101010101010103、 棋子颜色问题在任意拿出黑白两种颜色的棋子共n个,随机排成一个圆圈。然后在两颗颜色相同的棋子中间放一颗黑色棋子,在两颗颜色不同的棋子中间放一颗白色棋子,放完后撤掉原来所放的棋子,再重复以上的过程,这样放下一圈后就拿走前次的一圈棋子,问这样重复进行下去各棋子的颜色会怎样变化呢?分析与求解:由于在两颗同色棋子中放一颗黑色棋子,两颗不同色的棋子中间放一颗白色棋子,故可将黑色棋子用1表示,白色棋子用-1表示。这是因为-1×(-1)=1,1×1=1,这代表两颗同色棋子中放一颗黑色棋子;1×(-1)= -1,这代表两颗不同色的棋子中间放一颗白色棋子。 设棋子数为,为初始状态。当n=3时步数 状态(舍掉偶次项) 0 1 2 3 4 说明当n=3时,经过3步进入初始状态。 当n=4时步数 状态(舍掉偶次项) 0 1 2 3 4 说明当n=4时,经过4步全变为黑色棋子。既不循环也不全为黑子结论:当棋子数为时,至多经过次操作,就可以全部变为黑子,当棋子数不为时则一般不能全变为黑子。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 课程情况 课程编号课程名称学分所属类别先修课要求 1微积分5数学 2线性代数4数学 3最优化方法4数学;运筹学微积分;线性代数 4数据结构3数学;计算机计算机编程 5应用统计4数学;运筹学微积分;线性代数 6计算机模拟3计算机;运筹学计算机编程 7计算机编程2计算机 8预测理论2运筹学应用统计 9数学实验3运筹学;计算机微积分;线性代数模型的建立1不考虑学分情形:记i=1,2,9表示9门课程的编号。设表示第i门课程选修,表示第i门课程不选。问题的目标为选修的课程总数最少,即 约束条件包括两个方面:第一方面是课程数量的约束:每个人最少要学习2门数学课,则 每个人最少要学习3门运筹学课 ,则 每个人最少要学习2门计算机课,则有: 第二方面是先修课程的关系约束: 如“数据结构”的先修课程是“计算机编程”,这意味着如果,必须,这个条件可以表示为(注意当时对没有限制)。这样,所有课程的先修课要求可表为如下的约束“最优化方法”的先修课是“微积分”和“线性代数”,有:“数据结构”的先修课程是“计算机编程”,有: “应用统计”的先修课是“微积分”和“线性代数”,有: “计算机模拟”的先修课程是“计算机编程”,有: “预测理论”的先修课程是“应用统计”,有: “数学实验”是“微积分”和“线性代数”,有: 这样一来,总的0-1规划模型为:解得:。即选修课程为:微积分,线性代数.最优化方法,计算机模拟,计算机编程,数学实验。LINGO程序为:model:sets:item/1.9/:c,x;endsetsdata:c=5,4,4,3,4,3,2,2,3;enddatamin=sum(item(i):x(i);!课程最少;x(1)+x(2)+x(3)+x(4)+x(5)>=2;x(3)+x(5)+x(6)+x(8)+x(9)>=3;x(4)+x(6)+x(7)+x(9)>=2;x(3)<=x(1);x(3)<=x(2);x(4)<=x(7);x(5)<=x(1);x(5)<=x(2);x(6)<=x(7);x(8)<=x(5);x(9)<=x(1);x(9)<=x(2);for(item(i):bin(x(i);end2 考虑学分情形:当要求学分最多时,设各门课程学分为,则增加学分最大的目标函数为:这样总的双目标0-1规划模型为:当把选修课程指定为6门时,对学分最大求最优,解得:。最大学分为z=22。即选修课程为:微积分,线性代数.最优化方法, 应用统计,计算机编程,数学实验。学分达到22分。LINGO程序为:model:sets:item/1.9/:c,x;endsetsdata:c=5,4,4,3,4,3,2,2,3;enddatamax=sum(item(i):c(i)*x(i);sum(item(i):x(i)=6; !课程为6门;x(1)+x(2)+x(3)+x(4)+x(5)>=2;x(3)+x(5)+x(6)+x(8)+x(9)>=3;x(4)+x(6)+x(7)+x(9)>=2;x(3)<=x(1);x(3)<=x(2);x(4)<=x(7);x(5)<=x(1);x(5)<=x(2);x(6)<=x(7);x(8)<=x(5);x(9)<=x(1);x(9)<=x(2);for(item(i):bin(x(i);end专心-专注-专业