《教材如何写》:我们需要怎样的数学教育?
By 苏剑林 | 2011-04-16 | 66921位读者 |转载自:matrix67.com
注:这篇文章里有很多个人观点,带有极强的主观色彩。其中一些思想不见得是正确的,有一些话也是我没有资格说的。我只是想和大家分享一下自己的一些想法。大家记得保留自己的见解。也请大家转载时保留这段话。
我不是一个数学家。我甚至连数学专业的人都不是。我是一个纯粹打酱油的数学爱好者,只是比一般的爱好者更加执着,更加疯狂罢了。初中、高中一路保送,大学不在数学专业,这让我可以不以考试为目的地学习自己感兴趣的数学知识,让我对数学有如此浓厚的兴趣。从 05 年建立这个 Blog 以来,每看到一个惊人的结论或者美妙的证明,我再忙都会花时间把它记录下来,生怕自己忘掉。不过,我深知,这些令人拍案叫绝的雕虫小技其实根本谈不上数学之美,数学真正博大精深的思想我恐怕还不曾有半点体会。
我多次跟人说起,我的人生理想就是,希望有一天能学完数学中的各个分支,然后站在一个至高点,俯瞰整个数学领域,真正体会到数学之美。但是,想要实现这一点是很困难的。最大的困难就是缺少一个学习数学的途径。看课本?这就是我今天想说的——课本极其不靠谱。
这个我深有体会。最近两年,我一直在做初中数学培训,有了一些自己的看法。数学教育大致分成三个阶段,看山是山看水是水,看山不是山看水不是水,看山是山看水是水。
==================================
最早数学教育就是,教你几个定理,告诉你它们是怎么证的,再让你证明一些新的定理。
后来的要求就变了:光学数学不够,还要用数学。数学教育已经上升了一个层次:大家要把数学用到生活中去,解释生活中的现象。一时间,课本也好,中考题也好,全是与生活实际紧密联系的数学应用题,仿佛放眼望去身边真的处处都是数学一样。商场卖货,书店卖书,农民耕地,工人铺砖,再一次涌现在了课本、教辅书和考试题里。其实,数学可以解释生活,只是我们并不会这样去做。生活的变量太多,再强大的数学模型也不可能考虑到一切。对于平常人来说,真正能用到数学的地方,也就只有算算帐了。
总有一天,数学教育会拔高到第三层:返朴归真,数学真正牛 B 的还是它本身。你会发现,那些伟大的数学思想,那些全新的数学理论,最初研究的动机并不是要急于解释我们身边的某某诡异现象,而是它本身的美妙。线性代数的出现,很大程度上要归功于神奇的Cramer 悖论;群论的诞生,也是 Galois 研究多项式的解的结构时的产物;Euler 创立图论,源于那个没有任何实用价值的 K?nigsberg 蛋疼问题;非欧几何的出现,则完全是由于这个问题本身的魅力。微积分呢?它确实有非常广泛的实用价值,物理学的各种定义都依赖于微积分;但很可惜,它不是一种具有颠覆性的数学思想。
初一课本讲负数时,反复说负数的实际意义,比如海拔、得分、温度、收支等等,把负数变成一种真实的存在。其实,这不是人们使用负数的主要动机。负数的价值在于,它可以把减去一个数变成加上一个负数,很多加加减减复杂到甚至需要分类讨论的东西都能够用一个式子统一在一起了。比如说小学的盈亏问题:如果每人分 3 个苹果还多 8 个,如果每人分 5 个苹果则还多 2 个,问有多少人多少苹果?解法是,两种分法多出来的苹果相差 6 个,这是每个人多分了两个苹果引起的,因此一共 3 个人,从而可以算出有 17 个苹果。但是,如果把问题改成“每人分 3 个就多 8 个,每人分 5 个就少 2 个”该怎么办?上面的公式就变了,8 不能减 2,要加 2 。因此,小学讲盈亏问题会分“盈亏”、“盈盈”、“亏亏”三种情况讨论。其实,如果把“少 2 个”理解成“多 -2 个”,问题是一模一样的,之前的公式同样适用。负数这一新思想立即把三种情况统一在了一起,它们的本质变得一模一样了。
这是我给初一学生讲负数时必讲的例子。这才是负数的意义。这才是课本里应该反复举例强调的。
某次看到论坛里有人问,群论有什么意思啊?某人回复,群论很有意思啊,只是课本把它写得没意思了,比方说,讲群论怎么能不讲魔方呢?我不赞同这个回复。数学吸引人的地方,不在于它在生活中的应用,而在于它本身的美。为什么不讲 Lagrange 定理?为什么不讲 Sylow 定理?对于我来说,最能吸引我学习一个数学课题的,莫过于一系列非平凡的结论以及它的精彩证明了。
科幻小说《伤心者》的末尾列举了很多长期以来未得到实际应用的数学理论,不过却没有说到一个更为极端的例子。数学中的皇冠——数论——2000 年来一直没有任何实际应用,是最纯粹的数学。直到计算机,尤其是现代密码学的出现,才让数论第一次走出数学,走进了人们的生活中。是什么在支持数论的研究呢?只能是数学本身了。
在我给初中孩子出几何题时,我都尝试着给出一般性的问题,求证三角形中两边的平均长度大于第三边上的中线长,求证三角形三条高的倒数和等于内切圆半径的倒数,等等。即使是纯代数问题和解析几何问题,我也总能编出题目描述简单并且极具挑战性的问题。两数的和与积相等共有多少个整数解?把直线 y=x 沿 y=2x 翻折后得到的直线方程是什么?在感受结论之美的同时,他们也会因自己独立解决了一个真正的数学问题而激动。
==================================
然而,这还不算教育的主要问题。某次与一个数学专业的同学聊到 Riemann 假设时,对方说她从没听说过 Riemann 假设。我大吃一惊,数学专业的人怎么可能不知道 Riemann 假设呢?随即明白,这也是拜数学教育所赐。翻开数学课本,总是成套的理论体系,先定义再证明,说得头头是道。可是,这些东西都是怎么来的呢?在得出这些东西的过程中,数学家们走了哪些弯路呢?课本上只字不提。课本里从来都只讲什么是对的,却从来不讲什么是错的。数学考试只会让你证明一个结论,从不会让你推翻一个结论。
2010 年江苏高考数学题因为“太难”备受争议。其中最后一道大题如下:已知 △ABC 的三边长都是有理数,(1) 求证 cos(A) 是有理数; (2) 求证对任意正整数 n , cos(nA) 是有理数。其实这道题是一个非常漂亮的好题,描述简单,问题普遍,结论有趣,证明巧妙,中考题就该这么出。不过我觉得,如果再补上这么一个小问,这道题就真的完美了:证明或推翻, sin(A) 一定是有理数。当然,问题本身并不难,等边三角形就是一个最简单的反例。关键在于,推翻一个结论,寻找一个反例,也是数学研究的一个基本能力,而这是中学数学教育中很少重视的。
于是,在教初中数学时,我布置的每道作业题都无一例外地以“证明或推翻”打头。偶尔,有些题目真的是需要学生们去推翻它。比方说,证明或推翻,周长和面积都相等的两个三角形全等。不同的人找到的反例不一样,有的简单有的复杂,有的深刻有的盲目。再用一整节课的时间逐一讲解并点评大家构造的反例,给孩子们带来的收获远比直接讲题要大得多。
==================================
但是,我还没有讲到数学教育中最主要的问题。前段时间去图灵的作译者交流会,期间和刘江老师简单地聊了几句。刘江老师提到一个网站叫做 Better Explained 。他说,其实大家没能理解数学之妙,是因为教的时候没教好,数学本来可以讲得更直观,更通俗的。
我非常同意刘江老师的说法。举个例子吧。如果有学生问,质数是什么?老师会说,质数就是除了 1 和自身以外,没有其它约数的数。不对,这不是学生想要的答案。学生真正想知道的是,质数究竟是什么?其实,质数就是不可再分的数,是组成一切自然数的基本元素。 12 是由两个 2 和一个 3 组成的,正如 H2O 是由两个 H 原子和一个 O 原子组成的一样。只是和化学世界不同,算术世界的元素有无穷多个。算术世界内的一切对象、定理和方法,都是由这些基本元素组成的,这才是质数为什么那么重要的原因。
高中学复数时,相信很多人会纳闷儿:虚数是什么?为什么要承认虚数?虚数怎么就表示旋转了?其实,人们建立复数理论,并不是因为人们有时需要处理根号里是负数的情况,而是因为下面这个不可抗拒的理由:如果承认虚数,那么 n 次多项式就会有恰好 n 个根,数系一下子就如同水晶球一般的完美了。但复数并不能形象地反映在数轴上,这不仅是因为实数在数轴上已经完备了,还有另外一个原因:没有什么几何操作连做两次就能实现取相反数。比如,“乘以 3”就代表数轴上的点离原点的距离扩大到原来的三倍,“3 的平方”,也就是“乘以 3 再乘以 3”,就是把上述操作连做两次,即扩大到 9 倍。同样地,“乘以 -1”表示把点翻折到数轴另一侧,“-1 的平方”就会把这个点又翻回来。但是,怎么在数轴上表示“乘以 i ”的操作?换句话说,什么操作连做两次能够把 1 变成 -1 ?一个颇具革命性的创意答案便是,把这个点绕着原点旋转 90 度。转 90 度转两次,自然就跑到数轴的另一侧了。没错,这就把数轴扩展到了整个平面,正好解决了复数没地方表示的问题。于是,复数的乘法可以解释为缩放加旋转,复数本身自然也就有了 z = r (cosθ + sinθi) 的表示方式。顺着这个道理推下去,一切都顺理成章了。复数不但有了几何解释,有时还能更便捷地处理几何问题。
一直对线性代数很感兴趣,于是大学选了线性代数这门课,结果收获几乎为零。原因很简单,本来期待着来一次大彻大悟,结果学了一个学期,我还是不知道矩阵究竟是什么,矩阵乘法为什么要这么定义,矩阵可逆又怎么了,行列式究竟表示什么。
直到今天看到这个网页,才看见有人一语道破线性代数的真谛(这也是我终于决定写成此文的直接原因)。我终于找到了我那一个学期企图寻找的东西。就好像把 x 变成 2 x 一样,我们经常需要把 (x, y) 变成 (2 x + y, x - 3 y) 之类的东西,这就叫做线性变换。于是才想到定义矩阵乘法,用于表示一切线性变换。几何上看,把平面上的每个点 (x, y) 都变到 (2 x + y, x - 3 y) 的位置上去,效果就相当于对这个平面进行了一个“线性的拉扯”。
矩阵的乘法,其实就是多个线性变换叠加的效果,它显然满足结合律,但不满足交换律。主对角线全是 1 的矩阵所对应的线性变换其实就是不变的意思,因此它叫做单位矩阵。矩阵 A 乘以矩阵 B 得单位矩阵,就是做完线性变换 A 后再做一次线性变换 B 就又变回去了的意思,难怪我们说矩阵 B 是矩阵 A 的逆矩阵。课本上对行列式的定义千奇百怪,又是什么递归,又是什么逆序对,还编写口诀帮助大家记忆。其实,行列式的真正定义就一句话:每个单位正方形在线性变换之后的面积。因此,单位矩阵的行列式当然就为 1,某行全为 0 的行列式显然为 0 (因为某一维度会被无视掉,线性变换会把整个平面压扁), |A·B| 显然等于 |A|·|B| 。行列式为 0 ,对应的矩阵当然不可逆,因为这样的线性变换已经把平面压成一条线了,什么都不能把它变回去了。当然,更高阶的矩阵就对应了更高维的空间。一瞬间,所有东西都解释清楚了。
难以置信的是,如此令人兴奋的东西,我们所用的课本上竟然一点都没有说到!那些开篇就讲行列式定义的课本,为什么不先把线性变换下的面积当作行列式的定义,再推导出行列式的计算方法,再来补充说明“其实从逻辑上说,我们应该先用这个计算公式来定义行列式,然后才说行列式可以用来表示面积”?为了严密性而牺牲了可读性,太不值得了。写到这里,我真想立即拾起线性代数课本,用全新的眼光重看所有的定义和定理,然后重新写一份真正的线性代数教材来。
高数课本同样荒唐。主流的高数课本都是先讲导数,再讲不定积分,再讲定积分,完全把顺序弄颠倒了。好多人学完微积分,虽然已经用得得心应手,但仍然没懂这是怎么回事。究其原因,还是数学教学的问题。
我理想中的微积分课本则应该是先讲定积分,再讲导数,再讲不定积分。先讲定积分,不过千万不能用现在的定积分符号,避免学生误认为定积分是由不定积分发展而来的。讲自古就有的积分思想,讲分割求和取极限的方法,自创一套定积分的符号。然后另起炉灶,开始讲微分,讲无穷小,讲变化量。最后才讲到,随着 x 一点一点的增加,曲线下方面积的变化量就是那一条条竖线的高度——不就是这个曲线本身的函数值吗?因此,反过来,为了求出一个函数对应的曲线下方的面积,只需要找到一个新函数,使得它的微分正好就是原来那个函数。啪,微积分诞生了。
光讲形式化的推导沒有用。这才是真正把微积分讲懂的方式。严格定义和严格证明应该放到直观理解之后。只可惜,我还没看到哪本课本是这样写的。
==================================
说了这么多,其实总结起来只有一句话:我们学习数学的过程,应该和人类认识数学的过程一样。我们应该按照数学发展历史的顺序学习数学。我们应该从古人计数开始学起,学到算术和几何,学到坐标系和微积分,了解每个数学分支创立的动机,以及这个分支曲折的发展历程。我们应该体会数学发展的每个瓶颈,体会每个全新理论的伟大之处,体会每一次数学危机让数学家们手忙脚乱的感觉,体会先有直观思维再给出形式化描述的艰难。
可惜,我没有找到任何用这种方式学习数学的途径。
不过也好。既然没有捷径,那就让我自己把那堆形式化的定义和证明通看一遍,然后自己去体会其中的道理吧。这样看来,我们的教育也没错:先用考试逼着大家把该学的东西都学了,尽管自己也不知道自己学的是啥;等将来的某一天达到一定高度时,回头看看过去学的东西,突然恍然大悟,明白了当初学的究竟是什么。这无疑是一件更有乐趣的事情。我希望有一天能像今天这样,能悟出高等代数究竟在讲什么,能悟出范畴论到底有什么用,能悟出 Riemann 假设为何如此牛 B,能悟出 Hilbert 空间是什么东西,然后把它们都写下来。
这恐怕得花我大半辈子的时间吧。
转载到请包括本文地址:https://spaces.ac.cn/archives/1324
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Apr. 16, 2011). 《《教材如何写》:我们需要怎样的数学教育? 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/1324
@online{kexuefm-1324,
title={《教材如何写》:我们需要怎样的数学教育?},
author={苏剑林},
year={2011},
month={Apr},
url={\url{https://spaces.ac.cn/archives/1324}},
}
April 18th, 2011
那个构造反例证明周长和面积相等的三角形不一定全等的题目很妙,但套用文中的一句话,如果加上“还加上另外一个什么条件就能全等(举2-3个情况)”就完美了,因为这个还和能快速构造出反例三角形的原理有关。可以证明,两个直角三角形就全等,有一条边相等的两个三角形亦全等。所以最快能构造出的反例是底边不相等的两个等腰三角形(而且不能出现正三角形)。
其实推翻很简单,就是两个三元方程的方程组有无限组解的问题。但是我比较感兴趣的是三边都是正整数的反例。我用了两节英语课的时间,借助您的思路,推导出了一个反例:1、底边为210,腰为617;2、底边为672,腰为386。这两个三角形周长和面积都相等,显然不全等。(稍后再发布推导过程...)
不好意思,没仔细算您的反例,其实您的例子的面积就是整数了,到时可以拜读一下您的推导过程。
April 21st, 2011
三边都是整数(或者说是有理数,因为再将边长乘以分母的最小公倍数就是整数了)的两个反例三角形的构造其实很简单,我几乎是每花一分钟就可以构造出一组(关键就是构造那个一元三次方程的各个系数的思路,我想以您的水平应该很快就能想明白了)。像(5.6,5.6,4)和(4.6,4.6,6),化成整数解就是(28,28,20)和(23,23,30),又像是(7.4,7.4,2)和(4.4,4.4,8)。真正难的是边长和面积均为有理数的两个反例三角形,我现在也正在思考当中(尤其是非等腰三角形的情况)。
April 21st, 2011
如何两个等腰三角形,其中一个的底边长为r1,另一个的底边长为r2,(r1,r2均为有理数)。当r1^2+r1r2+r2^2的值为一个有理数的平方时,则其面积亦为有理数。你该不是写计算机程序找到这两个数的吧?
你的思路对了,再进一步就可以得到答案了(用理论分析,不用计算机编程,因为其实我也不大懂编程)。过些时间就发出推导过程
April 21st, 2011
现在我找到一个更小的,很可能也是最简单的解(40, 29, 29), (24, 37, 37)。面积为420,周长98。需要的话我也可以贴出推导的过程。(其实是受了你以前的一些帖子的启发)。
April 21st, 2011
最后的问题就是在三边不等的三角形中能否找到比上面的这个解的周长更短(或者面积更小)的边长面积整数解的反例了。关于这个问题我就无能为力了。不过我已经可以证明这两个三角形的任一边不能相等,任一角亦不能相等(至于任一中线或任一角平分线的长度能否相等我还没弄清楚)。
好,现在的目标就是寻找更小的整数解(边长、面积都是整数),最期待的就是三边互不相等的解。
另外还可以讨论面积不是整数的情况下的整数解(越小越好)
April 22nd, 2011
周长更短的情况应该更简单一些,但很有可能还是必须靠计算机编程计算穷举。不过根据海伦公式可知,边长和面积为整数 时,周长C必须是个偶数,而且半周长s必须是个合数而不能是素数。因为1-48之间的素数不少,所以符合条件的周长值其实不多,只有8,12,16,18,20,24,28,30,32,36,40,42,44,48,50,52,54,56,60,64,66,68,70,72,76,78,80,84,88,90,92,96,只能从这里面找。
而面积更小的情况相对麻烦很多,因为高的长度不一定是个整数,我还没什么思路。
至于面积不是有理数的情况下的边长整数解,在等腰三角形的条件下我能找到的最小周长解是(4,11,11)(12,7,7),周长为26,面积是6乘以根号13,所以三边不等周长更小的情况下周长只能从6到25之间去找。
很好,我也差不多找到了这些结果。看来大家的思路是类似的。至于计算机编程穷举,我只能尝试一下了,我不熟悉编程,只会用一下vb。
April 22nd, 2011
进一步讨论三边不等边长和面积为整数时,可能的周长最小解问题。其实现在已经变成一个类似数论的问题了。可知当半周长s为状如2N (N为奇素数),即周长C为状如4N的偶数时,也不行。因为这样s-a,s-b和s-c中有一个必须为N,即a,b,c中有一个长度必须是N,这样能做出的三角形只有一个。所以又筛掉一堆周长值,只剩下8,16,18,24,30,32,36,40,42,48,50,54,56,60,64,66,70,72,78,80,84,88,90,96,只剩二十四个了。
March 15th, 2012
最近学了python编程的课程,又将这个一年前的问题翻出了,写了个小程序进行穷举计算,在周长100以内找到了三个周长共四组反例三角形。有意思的是,这四组囊括了我能想到的所有的特殊情况。
(17,25,28) &(20,21,29)(直角三角形) – 周长70,面积210 (周长最小的一组反例三角形,同时也是最小的一组不等腰反例三角形)
(10,35,39) &(14,30,40) – 周长84,面积168 (面积最小的一组反例三角形,证明在后面讨论)
(17,28,39) &(12,35,37)(直角三角形) – 周长84,面积210 (周长相等的两组反例三角形)
(24,37,37),(29,29,40),(25,34,39) – 周长98,面积420 (首次出现一组三个反例三角形,不出所料,其中的两个等腰三角形是周长最小的等腰反例三角形)
这些反例三角形的周长值有一个我完全意想不到的现象,不知你留意到了没有。
另外就是关于面积最小(168)的那组反例三角形的证明。我可以证明当穷举完所有周长不大于582的反例三角形都找不到比168面积更小的反例三角形时,这个面积的反例三角形就是面积最小的一组反例三角形。而所有周长不大于582的反例三角形用我的程序穷举只需要5秒,就可以知道面积为168的反例三角形的面积是其中最小的,于是得证。现在你备考太忙了。等考完还有兴趣的话,我们可以讨论一下。顺祝你高考顺利。
它们的周长和面积都是14的倍数?
这的确是我最开头感到非常意外的地方,因为这样意味着只要s不是49的倍数,则三角形的一边长必须为7的倍数,由于7是个较大的素数,所以可供选择的边长就变得不多了。但我穷举完周长小于300的所有反例三角形却发现周长和面积是7的倍数的例子仍然很多。不过仔细想想还不算太意外,因为毕竟7和11,13,17等相比还是小很多的。但接下来的发现就真是很意外了。我至今没有发现面积不是3的倍数的反例三角形(当然周长可以不是3的倍数),而且最关键的,理论上应该存在面积为奇数的整数边长三角形(不管是不是属于反例三角形的范畴),尽管出现概率很低,但我用程序穷举到周长2000都没发现。
November 11th, 2024
像我这种脑子笨的人也能学好数学吗