数学建模是推动大学数学教学改革的必经之路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:现在大学数学的课堂教育完全还是应试教育,明显存在弊端,所以我们必须打破学生们对数学的某些错误的认知。但是大学数学的教学还是这么一成不变,是无法改变这种局面的,这就必须改革。拿什么来改革呢?我们通过一道数学建模题来感受数学建模是推动大学数学教学改革的必经之路。
关键词:数学建模弊端教学改革
在大学里,学生们要学习的数学主要是《高等数学》、《线性代数》、《概率论与数理统计》这三门数学分支学科,他们会遇到不同的数学老师、不同科目的数学考试。大部分学生对数学的认知是数学分类学科都是相互独立的,他们认为高数和线性代数完全是没有联系的,更糟糕的是他们认为数学学了是毫无用处的,而在数学课堂学习数学的目的基本都是为了过期末考试拿学分以及考研。说到考研,就连考研试卷的题目也是明显划分科目界限,微积分就是微积分,线性代数就是线性代数,概率就是概率,更谈不上应用价值了。这样的大学数学的课堂教育完全还是应试教育,明显存在弊端,所以我们必须打破学生们对数学的这些错误的认知。但是大学数学的教学还是这么一成不变,是无法改变这种局面的,这就必须改革。拿什么来改革呢?
首先我们从一道数学建模题目来具体地认知一下大学数学知识的魅力。
【题目】某锁厂生产的锁具,每把钥匙有5个槽,每槽的高度为小于等于6的自然数。并且规定:每把钥匙至少有3个不同高度的槽,且高度为1和6的槽不相邻。问该锁厂共能生产多少把不同的锁(钥匙)?(本问题是1994年全国大学生数学建模竞赛中锁具装箱问题的第一部分。)下面我们来讨论这个问题:
方法1:看到这个题目大家应该很快地想到用排列组合的思想来做。
首先可以求出有5个槽、每个槽有6个高度的所有可能的个数为n1=65=7776。为了满足题目中提出的至少有三个不同的高度,且相邻高差不应为5的要求,我们应该减去不满足要求的锁具。
仅有一个槽高的锁具数目为n2=C61=6。
仅有两个槽高的锁具数目为n3=C62(25-2)=450。
下面要考察相邻槽高之差为5的锁具,为了方便,记相邻槽高之差为5的锁具集合记为A,将A分解为以下4种集合:
A1:16abc 或 61abc
A2:a16bc 或 a61bc
A3:ab16c 或 ab61c
A4:abc16 或 abc61
其中a、b、c可以取“1,2,3,4,5,6”这几个自然数中的任一个。显然∪Ai=A,若记n(B)为集合B中元素的个数,则由集合论的知识得:
n(A)=∑n(Ai)-∑ n(AiAj)+∑ n(AiAjAk)-n(A1A2A3A4)
∑n(Ai)=C41A2263=1728。
A1A2的槽数高为161ab或616ab,故n(A1A2)=2×62=72;同理n(A2A3)=n(A3A4)=72。A1A3为1616a,或1661a,或6116a,或6161a,故n(A1A3)=24;同理n(A1A4)=24,n(A2A4)=24。A1A2A3的槽高为1616a或6161a,故n(A1A2A3)=2×6=12;同理n(A2A3A4)=12。A1A2A4的槽高为16116,或16161,或61616或61661,故n(A1A2A4)=4;同理n(A1A3A4)=4。A1A2A3A4的槽高为16161或61616,故n(A1A2A3A4)=2。故n4=n(A)=1728-3×72-24×3+12×2+4×2-2=1470。
5个槽中仅有两个高度,且相邻高差为5的锁具个数为n5=25-2=30。最后可以得到一批锁具的个数为n1-n2-n3-n4+n5=7776-6-450-1470+30=5880,所以每批锁具有5880把。
方法2:利用集合思想原理及一般化递归的方法。
(1)首先,将这个问题数学化:
问题是求集合A的个数(记为|A|)。
(2)一切研究从最简状态开始。集合A有两个限制条件:①至少有3个不同数字;②1、6不相邻。显然,条件②比①重要得多,也难处理得多,因此,条件②是问题的主要矛盾。为此,我们暂时舍去条件①,集中精力来处理条件②(这也是某种意义下的一般化)。
(3)为了求出|B|,我们进一步一般化(这是关键一步),
因此, B=B5。
(4)由于有了Bk,我们可以讨论Bk的递归结构,也即Bk+1与Bk的关系。为此,进一步将Bk按末位分解,令Bk(m)={n|n∈Bk,且末位是m}。
Bk+1(m)∪Bk(j),m≠1,6
由此Bk+1(1)∪Bk(j),Bk+1(6)∪Bk(j),
由于Bk(i)∩Bk(j)=φ(i≠j)
所以有|Bk+1(m)|=∑|Bk(j)|,m≠1,6
|Bk+1(1)|=∑|Bk(j)|,|Bk+1(6)|=∑|Bk(j)|。
再加上初始条件B1(m)=1(1≤m≤6),可得如下表格:
(5)为了求|A|=|A5|,只要在B5中减去只含1个数字及2个数字的5位数即可。
只含1个数字的5位数共6个,只含2个数字的5位数有:
C42×( 25 -2)+2×C41×( 25 -2)=420
故|A|=|A5|=6306-420-6=5880。方法3:利用矩阵的运算。
方法3是用来求方法2中提到的|B|,具体如下,先建立矩阵A:
其中A的所有元素之和即2个槽的所有种类数,A2的所有元素之和即为3个槽的所有种类数,类推A4的所有元素之和即为5个槽的所有种类数。设B=A4,
求B的所有元素之和为[1 1 1 1 1 1]?B?[1 1 1 1 1 1]T
=6306,与方法2中的答案一样。
方法4:利用计算机计算。
(1)利用c语言
#include<stdio.h>
void main()
{int a,b,c,d,e,j=0;
for(a=1;a<=6;a++)
{for(b=1;b<=6;b++)
{for(c=1;c<=6;c++)
{for(d=1;d<=6;d++)
{for(e=1;e<=6;e++)
{if(a==b&&a==c&&d==e)continue;
if(a==b&&a==d&&c==e)continue;
if(a==b&&a==e&&c==d)continue;
if(a==d&&a==e&&b==c)continue;
if(a==c&&a==d&&b==e)continue;
if(a==c&&a==e&&b==d)continue;
if(b==c&&b==d&&a==e)continue;
if(b==c&&b==e&&a==d)continue;
if(b==d&&b==e&&a==c)continue;