实验1 数学实验简介 1.1什么是数学实验 实验1数学实验简介 数学实验是20世纪90年代我国高等学校开设的一门新课,作为教材,在第一个实验中首先介绍数学实验的目的、要求、内容、方法等,然后给出几个实例,以期说明数学实验的主要形式及学习方式,最后简单介绍几个与数学实验相关的数学软件. 1.1什么是数学实验 物理、化学、生物、医学等自然科学以物质世界为直接研究对象,在特定条件下进行大量、重复的实验,可以方便地重现客体在现实世界里人们难以观察到的发生和变化的过程,使得实验成为一些重大的发明、著名的定律以及许多新材料、新手段的主要源泉之一,而实践——认识——再实践,正是辩证唯物主义哲学对认识的发生、发展过程所揭示的一般规律. 数学的对象以其特殊性和抽象性与其他自然科学相区别关于(纯)数学的对象我国长期沿用恩格斯的论述,被译为“现实世界的空间形式和数量关系”,但多有质疑该译文不准确.近来有“数学是研究量的科学”的提法,其中“量”随着时代的发展,具有常量、变量、结构等几个层次.,几千年来呈现着强调经验和归纳与强调理性和演绎的交互发展历程.最初数学从现实生活中产生,是经验的积累和总结.早期的数学家也曾通过实验来研究数学,如根据现有的记载,巴比伦就是用数字例子来解释代数恒等式的.公理方法和公理系统的出现,使数学一度重视演绎推理的定性分析,忽视(甚至鄙视)来自实际的定量研究.17世纪科学技术的发展促成了微积分的诞生,以此为核心的数学分析学科在科技和生产中发挥了巨大作用,人们又强调实践和经验对数学的推动,同时形成了纯粹数学和应用数学两大研究领域.此后一般所说的数学多指纯粹数学.19世纪以来,集合论、实变函数论、复变函数论、抽象代数、微分几何等近代数学分支的产生,既推动了纯粹数学和应用数学的发展,也逐渐形成了用形式的、抽象的表述来发表最终结果的传统,而那些最初引导数学家构想出一般定理的数字例子未能刊出,并最终被遗忘.数学究竟是经验科学还是演绎科学的争论一直在继续[1]. 20世纪电子计算机的出现和发展,是科学家和工程师对人类做出的重大贡献,这一信息技术革命的成果,很快就在大多数科学和工程领域得到应用,飞速发展的计算机技术被融入他们的研究方法,如物理学家利用数字模拟研究超新星爆炸这样在传统的实验室里无法进行的实验,化学家、材料学家利用精密的量子力学计算揭露原子尺度上的各种现象,生物学家利用巨型计算机处理、分析大量的基因组数据,地理和环境学家利用精密的信号处理技术去探测地球的自然资源,航空工程师利用大尺度流体动力学计算设计飞机机翼和发动机,甚至经济学家、心理学家、社会学家也利用计算机对经验数据分析趋势、做出推断. 而在这样的技术革命浪潮中,最大的嘲弄之一也许是,虽然计算机通过如冯·诺依曼(John von Neumann)和图灵(Alan Turing)这样的天才巨人从纯数学领域中孕育、诞生,但是几十年来这项神奇的技术在它产生的领域中只有很小的影响.这种情况直到20世纪80年代才有所改变[2]. 随着计算机在高速度和高精度方向的进展,以及一些通用数学软件如Mathematica的出现,数学家们开始利用先进的计算机技术作为他们日常研究工作的新工具,导致一些新的数学成果部分或全部由计算机完成.这种将计算机技术用于数学研究的新手段被称为实验数学(experimental mathematics). 虽然被称为数学实验(mathematical experiments)课程的目的和内容,与所谓的实验数学有所不同,但是它们产生的背景、使用的工具,以及从认识论的角度看待研究问题的方法,均有相同之处.这里先简单介绍实验数学出现的背景及其内涵,再说明数学实验的指导思想、内容设计、基本要求及学习方法. 1.1.1一个新的学科分支——实验数学 1976年美国数学家阿佩尔(Appel)和哈肯(Haken)在两台计算机上,用1200小时作了100亿次判断,完成了100多年前提出的四色猜想四色猜想是指: 对任何平面地图着色,使得任意有相同边界的邻国都没有相同的颜色,最多只需4色.的证明.这是第一个主要由计算机证明的数学定理,但它并不被一些数学家接受,即使后来对其用不同的计算机和程序独立地进行了复检(如1996年Neil Robertson等人的工作),竟然有人对它做出这样的评论: 一个好的数学证明应当像一首诗,而这纯粹是一本电话号码簿!可是从现在的观点看,作为数学定理基于计算机证明的典型例子,这个工作实际上成为数学史上一系列新思维的起点. 20世纪80年代后期美国数学学会(AMS)在它的月刊上正式开辟“计算机与数学”版面,力图让数学界认识到,计算机可以成为研究数学的有力工具.1992年一本新的刊物《实验数学》(Journal Experimental Mathematics) 开始发行,网站是http://www.expmath.org,每年4期,发表由实验方法产生的形式上的结果、借助实验联想到的猜想,以及由特定含义的假设支持的论据所撰写的原创论文.它宣称: 理论和实验彼此相依,数学界将从更彻底暴露的实验进程中受益.在这一刊物的创办者David EpsteinDavid Epstein(1937—) 英国数学家,皇家学会会员,研究领域包括双曲几何、三维流形、群论等,1992年创办实验数学期刊.和Silvio Levy等人周围形成了一群致力于实验数学的数学家. 在加拿大Simon Fraser大学Jonathan BorweinJonathan Borwein (1951—) 加拿大数学家,1974年在牛津大学获博士学位,曾任加拿大数学学会主席,研究领域涉及分析、优化、数值计算及高精度计算机计算.近年来与David Bailey合作,有多本实验数学的专著问世.和David BaileyDavid Bailey (1948—) 数学家、计算机科学家,1976年在斯坦福大学获博士学位,曾长期在美国国家航空与航天局工作,后在伯克利国家实验室计算研究部门任技术总管,研究领域涉及数值分析和并行计算.近年来与Jonathan Borwein合作,有多本实验数学的专著问世.等人1993年成立了实验与构造(constructive)数学中心(CECM),这是一群非常活跃的实验数学倡导者,近年来出版了多本有关实验数学的专著[2~6].与CECM的研究工作有关,但哲学思想不同的还有Doron Zeilberger 等人. 在20世纪80年代和90年代,数学界的主流观点认为,以计算机为主要手段的实验,作为启发和探索是有用的,但是按照数学的演绎方法和形式主义,这种探索应限于发现和教学的非正式范畴.而越来越多涌现的实验数学家们挑战这种观点,引起一系列的争论,其中包括对实验一词的各种哲学意义上的讨论[7]. Jonathan Borwein 和David Bailey在文献[2]中对实验数学这一数学学科的新分支作了这样的描述: 将先进的计算机技术用于数学研究的新手段称为实验数学,计算机为数学家提供“实验室”,让他们进行实验,以分析例子、检验新想法、探寻新模型,包括: 1. 获取直观和领悟; 2. 发现新的模型和关系; 3. 利用图形显示来启发研究中的数学定理; 4. 检验特别是证伪猜想; 5. 探索一个可能的结果看它是否值得去作形式的证明; 6. 启发形式证明的途径; 7. 用基于计算机的推导代替冗长的手工推导; 8. 分析地验证得到的结果. 对于4,作者强调,证伪是最有价值的用途之一,因为一个简单的计算例子就可节约为证明一个错误的观点所要付出的大量劳动.对于5,作者指出,数学家在研究过程中一般不知道能否成功,按照传统的数学方法,为保证这个问题有意义,需要证明所有的细节,而实验数学方法允许数学家在最初阶段不必“拿下”全部引理,只需保持一个合理的研究水平,之后再决定该结果是否值得证明,如果前景不像想象的那样,或者它简单到没有足够的兴趣,那就不要花费过多的时间. 在Jonathan Borwein和David Bailey建立的实验数学网站 http://www.experimentalmath.info 上,可以找到有关的书籍、文章、软件、工具及其他信息. 1.1.2学习和应用数学的新途径——数学实验 电子计算机技术及数学软件的飞速发展,不仅为数学家提供了研究数学的新手段,催生了一门新的学科分支——实验数学,而且给以用数学做工具,来分析和解决实际问题为主要目的广大学生和科学技术工作者,开辟了一条学习并掌握数学知识的新途径,即数学实验. 我们看到的最早的一本关于数学实验的教材是Mount Holyoke College于1997年出版的《数学实验室》(Laboratories in Mathematical Experimentation),从前言中知道,这所学校早在1989年就开设了数学实验课程,要求学生通过观察自己总结规律,鼓励他们建立描述的语言,猜想并分析所研究的现象.中译本[8]的译者认为该书“体现了用归纳方法和实验手段进行数学教育的思想方法: 从若干实例出发(包括学生自己设计的例子)→在计算机上做大量的实验→发现其中(可能存在的)规律→提出猜想→进行证明和论证”.从书的前言和内容看,这本书和这门课的对象主要是数学系学生. 我国在20世纪90年代中期开始探索将数学实验引入大学数学教学体系,经过教育部立项的课题研究和几所院校的试点,数学实验课程的指导思想、内容设计、基本要求以及在大学数学教育中的定位等逐步明确. 数学实验的指导思想是,学生在教师的指导下,通过利用数学软件在计算机上做实验,学习解决实际问题常用的数学原理和方法,分析并解决经过简化的实际问题,提高学数学、用数学的兴趣、意识和能力. 与传统的数学课程以教师讲授为主不同,数学实验让学生在教师指导下,在计算机上自己动手、动眼、动脑,自由地选择软件,比较算法,分析结果,通过数值的、几何的观察、联想、类比,去发现解决问题的线索,探讨规律性的结果. 在设计数学实验的内容时,将它定位为非数学专业的大学数学三门主干课程(微积分、代数与几何、随机数学方法)之后,与数学的应用密切相关的一门基础课,起着承上(上述三门数学课)启下(后续课及研究生课程)的作用.内容选择那些最常用的解决实际问题的数学方法,包括数值计算、优化方法和数理统计的基本原理、主要算法及软件实现,并以数学建模的思想和案例相贯穿. 数值计算包括插值与数值积分、常微分方程数值解、线性代数方程组的数值解法、非线性代数方程4个实验.优化方法包括无约束优化、线性规划、非线性规划、整数规划4个实验.数理统计包括数据的统计与分析、统计推断、回归分析3个实验.数学建模有数学建模初步、数学建模与数学实验2个实验. 可以看出,这是一门重组课程,它集数值计算、优化方法、数理统计、数学建模以及数学软件于一体,既是三门数学主干课程的巩固和提高,又在基本数学知识和数学的应用之间架起一座桥梁. 要在有限的一门课的学时内,学习数值计算等课程的诸多内容及数学软件的使用,不可能按照传统的办法及原来这几门课的教学大纲,让学生掌握那么多的知识,而应该根据本科非数学专业对这些数学内容的实际需求和计算机技术与数学软件的发展状况,合理地制定数学实验的基本要求. 我们拟定的数学实验的基本要求可归纳为: 了解数学基本原理、知道主要数值算法、会用数学软件实现、培养数学建模能力.具体地说: 了解数学基本原理每个实验都明确提出要解决的数学问题,给出解决问题的数学原理如定义、定理等,但一般不给证明. 知道主要数值算法每个实验都给出实现数学原理的主要数值算法,如公式、计算步骤等,有些公式不做推导. 会用数学软件实现每个实验都给出实现主要数值算法的软件程序,包括输入输出、参数选择等,特别强调对输出结果的分析. 培养数学建模能力每个实验开始都从实际问题的建模引出数学问题,介绍数学原理、算法和软件后,落实于数学模型的求解,及对实际问题的回答. 数学实验力图实现数学方法、数学软件和数学建模的融合. 数学方法涵盖数值计算、优化方法和数理统计三部分内容,可以说是学完大学数学三门主干课程后,用数学工具分析和解决实际问题所需要的最基本、最常用、最重要的内容.既强调指出,什么样的实际问题及其归结的数学问题需要这些数学方法来解决,又一般地介绍这些数学内容的原理和算法. 从实用角度选择数学软件MATLAB和LINGO,可以方便、有效地完成上述数学方法的软件实现.这里不是全面地、而只是结合上述三部分数学内容的算法学习这两个软件. 数学建模通过实例给出模型分析与假设、模型求解和结果解释的全过程,初步培养数学建模的意识和能力. 需要强调的是,数学实验是以学生做实验(而不是教师讲授)为主.一方面,只有亲自动手编程,在计算机上反复地计算、修改、再计算,对输出结果认真地核对、分析、解释,才能逐渐掌握和熟练使用软件.另一方面,在做实验的过程中,可以通过对不同的数学方法、不同的数值算法的分析、比较,来学习和探讨数学知识本身的“奥妙”,这一点与1.1.1节中介绍的新学科——实验数学的研究有相通之处.当然,在计算机上完成一个(哪怕是简化的)实际问题数学建模的全过程,也会让同学们充满成就感的. 最后指出,以上关于数学实验的课程定位、内容设计、基本要求等主要是针对非数学专业学生而言.目前国内有许多风格各异、内容不尽相同的数学实验教材,如参考文献[9~12],这门课程的目的、模式、内容、方法等都还在不断地探索和发展. 1.2数学实验实例 1.2数学实验实例 本节介绍几个数学实验的实例. 1.2.1饮酒驾车血液中的酒精含量 问题在城乡道路交通事故中,由饮酒驾车造成的交通事故占有相当的比例.2004年发布的《车辆驾驶人员血液、呼气酒精含量阈值与检验》国家标准中规定,车辆驾驶人员血液中的酒精含量大于或等于20mg/100mL、小于80mg/100mL为饮酒驾车,酒精含量大于或等于80mg/100mL为醉酒驾车.对饮酒驾车和醉酒驾车者予以重罚. 为了确定饮酒后多长时间才能驾车,一志愿者(体重约70kg)在短时间内喝了2瓶啤酒,然后每隔一小时检测一次血液中的酒精含量,得到表1.1的数据. 表1.1血液中的酒精含量检测数据 时间/h 1 2 3 4 5 6 7 8 9 10 11 12 酒精含量/(mg/100mL) 82 77 68 51 41 38 35 28 25 18 15 12 试分析这些数据,并建立饮酒后血液中酒精含量的数学模型,讨论饮酒数量、饮酒者状况等因素对血液中酒精含量的影响. 数据分析将表1.1数据在普通坐标系下作图,时间和酒精含量分别记作t和c(t),可以看出,随着t的增加,c(t)并非按线性规律减少(图1.1).而在半对数坐标系下画图,得图1.2,可知t~lnc(t)近似于直线关系,即c(t)有按负指数规律减少的趋势. 图1.1普通坐标下的酒精含量数据c(t) 图1.2半对数坐标系下酒精含量数据c(t) 机理分析和假设酒精进入机体后随体液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外.人的体液占体重的65%~70%,其中血液只占体重的7%左右,而酒精在血液与体液中的含量大体是一样的. 最简单的假设是将整个机体看作一个房室,室内的酒精含量c(t)是均匀的,称一室模型. 对一室模型的动态过程,通常假设酒精向体外排出的速率与室内的酒精含量成正比,比例系数为k(>0),称为排出速率. 短时间内(相对于整个排出过程而言)饮酒,可以视为t=0瞬时饮入酒精剂量d,而整个房室的容积为常数V,于是t=0瞬时酒精含量为d/V. 模型建立根据上面的假设,酒精含量c(t)应满足微分方程 dcdt=-kc(1) 和初始条件 c(0)=c0=d/V.(2) 求解(1)式,(2)式可得 c(t)=dVe-kt=c0e-kt,(3) 即酒精含量c(t)按指数规律下降,与对检测数据的观察(图1.1)相符. 为了根据表1.1中的数据ti,ci(i=1,2,…,12)确定(3)式的系数k和c0,先对(3)式取自然对数得ln c=ln c0-kt,记y=ln c,a1=-k,a2=ln c0,问题化为由数据ti,yi(i=1,2,…,12)拟合一次函数y=a1t+a2,计算出a1,a2以后很容易得到k和c0. 结果和讨论用MATLAB软件(参见实验7)由数据ti,ci(i=1,2,…,12)算出k=0.1747,c0=106.9412,将k和c0代入(3)式画出曲线c(t),与检测数据比较,如图1.3所示. 图1.3酒精含量c(t)曲线及与检测数据比较 由计算结果可知,该志愿者(体重约70kg)在短时间内喝了2瓶啤酒10h后,酒精含量会降至20mg/100mL以下,可以驾车,与检测数据一致. 从模型(3)还知道,酒精含量c(t)与t=0瞬时饮入的酒精剂量d成正比,与房室的容积V成反比.于是,如果该志愿者在短时间内只喝1瓶啤酒,那么约5h后即可驾车.而对那些体重与该志愿者(约70kg)相差较大的司机,则需做相应的考虑.至于不同的人排出速率k是否有变化,就要进一步结合试验来研究了. 1.2.2市场经济中的蛛网模型 问题在自由贸易的集市上常会出现这样的现象: 一段时期以来某种消费品如鸡蛋的上市量远大于需求,由于销售不畅致使价格下跌,生产者发现养鸡赔钱,于是转而经营其他农副业.过一段时间鸡蛋上市量就会大减,供不应求将导致价格上涨,生产者看到有利可图又重操旧业,这样,下一个时期又会重现供过于求、价格下跌的局面. 商品数量和价格的这种振荡现象在自由竞争的市场经济中常常是不可避免的.进一步的观察可以发现,振荡有两种完全不同的形式,一种是振幅逐渐减小,市场经济趋向平稳,另一种是振幅越来越大,如果没有外界如政府的干预,将导致经济崩溃.试建立一个简化的数学模型描述这种现象,研究经济趋向平稳的条件,并讨论当经济趋向不稳定时政府可能采取的干预方式. 蛛网模型商品在市场上的数量和价格出现反复的振荡,是由消费者的需求关系和生产者的供应关系决定的.记商品第k时段的上市数量为xk,价格为yk.这里我们把时间离散化为时段,1个时段相当于1个生产周期,对于肉、禽等指牲畜饲养周期,蔬菜、水果等指种植周期. 按照经济规律,价格yk依赖于数量xk,由消费者的需求关系决定,记作yk=f(xk),称为需求函数.因为上市数量越多,价格越低,所以f是减函数.下一时段商品数量xk+1依赖于上一时段的价格yk,由生产者的供应关系决定,记作xk+1=h(yk),称为供应函数.因为价格越高,生产量(即下一时段上市量)越大,所以h是增函数.设h的反函数为g,即yk =g(xk+1),g也是增函数. 在商品数量和价格变化不大的范围内,可以将f和g简化为线性函数,在图1.4(a)和图1.4(b)中用两条直线表示,它们相交于P0(x0, y0) 点.称P0点为平衡点,意思是一旦某一时段k商品的上市量xk= x0,则由yk=f(xk)和xk+1=h(yk)可知,yk= y0,xk+1= x0,yk+1= y0, …,即以后的上市量和价格将永远保持在P0(x0, y0) 点.但实际上由于种种干扰使得数量和价格不可能保持不变,不妨设x1偏离x0,如图1.4所示.我们分析xk, yk的变化. 商品数量x1给定后,价格y1由直线f上的P1点决定.数量x2又由y1和直线g上的P2点决定,y2由x2和f上的P3点决定,这样在图1.4(a)上得到一系列的点P1, P2,P3,…,这些点按图1.4上箭头方向趋向P0点,称P0为稳定平衡点,意味着商品的数量和价格的振荡将趋向稳定. 但是如果直线f和g由图1.4(b)给出,类似的分析可以发现,P1, P2, P3,…,沿着箭头的方向,将越来越远离P0点,称P0为不稳定平衡点,意味着商品的数量和价格将出现越来越大的振荡.图1.4(a)和1.4(b)中的折线P1P2P3…形似蛛网,在经济学中称为蛛网模型. 为什么会有这样截然相反的现象呢?分析一下图1.4(a)和图1.4(b)的不同之处就可发现,图1.4(a)的f比g平,而图1.4(b)的f比g陡.用Kf和Kg分别表示f和g的斜率(取绝对值),可以看出,当Kf < Kg时,P0稳定; 当Kf > Kg时,P0不稳定. 图1.4 方程模型为了定量地分析上述现象,将需求函数f表示为 yk-y0=-α(xk-x0),α>0,k=1,2,… (4) 供应函数h表示为 xk+1-x0=β(yk-y0),β>0,k=1,2,…(5) 从(4)式,(5)式中消去yk可得 xk+1-x0=-αβ(xk-x0),k=1,2,… (6) 知道了x0, y0, x1,α, β,可以用(4)式,(5)式或(6)式计算xk ,yk. 为了讨论时间充分长以后(即k→∞时)xk的变化趋势,由(6)式可递推地解出 xk+1-x0=(-αβ)k(x1-x0),k=1,2,… (7) 显然,当方程(6)的系数(取绝对值)小于1,即 αβ<1或 α<1/β(8) 时,xk→x0,P0点稳定; 而当 αβ>1 或 α>1/β(9) 时,xk→∞,P0点不稳定. 注意到(4)式,(5)式的系数α,β有Kf =α, Kg=1/β(因为Kh=β),所以条件(8),(9)与蛛网模型中的分析是完全一致的. 看一个例子.设某种商品在市场上处于平衡状态时的数量为x0=100(单位),y0=10(元/单位),开始时段商品数量为x1=110.若上市量减少1个单位价格上涨0.1元,而价格上涨1元下一时段供应量增加5个单位,即α=0.1, β=5,则按照方程(4)及方程(5)计算得到的xk,yk(k=1,2,…,10).如图1.5所示,可以看出xk,yk 分别趋向x0,y0.当α升高至0.24时(β不变),得到的结果如图1.6所示,xk,yk越来越大. 图1.5α=0.1,β=5时蛛网模型xk,yk的变化 图1.6α=0.24,β=5时蛛网模型xk,yk的变化 (4) 式,(5)式或(6)式表示了xk, yk和xk+1, yk+1之间的关系,称为差分方程. 结果解释考察α,β的含义,可以对市场经济是否会趋于平稳做出合理的解释.由(4)式可知,α表示商品上市量减少1个单位时价格的上涨幅度; 由(5)式可知,β表示价格上涨1个单位时(下一时段)供应量的增加.所以α反映消费者需求的敏感程度,如果是生活必需品,消费者处于持币待购状态,商品数量稍缺,人们立即蜂拥抢购,α就会较大; 反之,若消费者购物心态稳定,则α较小.β的数值反映生产经营者对价格的敏感程度,如果他们目光短浅,热衷于追逐一时的高利润,价格稍有上涨就大量增加生产,β就会较大; 反之,若他们素质较高,有长远的计划,则β较小.定量分析的结果(8)式表明,当α,β的乘积小于1时,P0是稳定平衡点,商品数量和价格的振荡会趋向平稳. 政府的干预基于上述分析可以看出,当经济趋向不稳定时政府有两种干预办法. 一种办法是使α尽量小,不妨考察其极端情况α=0,即需求直线f变为水平,这时不管供应函数如何,即不管β多大,(8)式恒成立,经济总是稳定的.实际上这种办法相当于政府控制价格,无论商品上市量有多少,命令价格y0不得改变(图1.7(a)). 另一种办法是使β尽量小,极端情况是β=0,即供应直线g变为竖直,于是不管需求函数如何,即不管α多大,(8)式恒成立,经济稳定.实际上这相当于政府控制商品的上市数量,当供应量少于需求时,从外地收购,投入市场; 而当供过于求时,收购过剩部分,维持上市量x0不变(图1.7(b)).当然这种办法需要政府具有相当的经济实力. 图1.7 1.2.3汽车厂生产计划 问题某汽车厂生产小、中、大3种类型的汽车,已知生产各种类型每辆汽车需要的钢材、劳动时间以及获得的利润如表1.2所示,目前汽车厂每月钢材的供应量为600t,每月总的劳动时间为60000h,试为该厂制订月生产计划,使得利润最大.进一步研究以下问题: 由于各种条件限制,如果生产某一类型汽车,则至少要生产80辆,那么最优的生产计划应作何改变?