|
通过模拟程序演示抽象概念的含义:一个例子 www.minglang.org 吴建国 从1989年开始,波士顿大学科学与数学教育中心和聚合物研究中心为高中生和大学生开发了一批以现代科学研究为基础的学习资源,包括hands-on活动,实验室实验和交互的计算机多媒体程序。这些活动鼓励学生们探索完全随机的微观事件是怎样形成自然界巨观的分形图样。 他们提供的资源目前(2001年)有五个部分,其中第一部分自然分形模拟 (Patterns in Nature Simulations)包含9个单元。下面介绍第8单元和第9单元。
第8单元:分形海岸线 如果海岸线可以表达为连续的且可导的(不要求逐点可导)曲线,那么它有一个确定的长度。然而,海岸线的形成过程决定了它是一种分形曲线,它的长度是不定的。1967年曼得勃罗在《科学》杂志上发表了一篇“英国的海岸线有多长?统计自相似性与分数维数”的论文,首次提出这个命题,随后开创了“分形几何”。物理上对分形问题的研究包括“物理上的分形”和“分形上的物理学”,最近十几年,已经积累了大量的研究成果,并有多方面的应用。 “分形海岸线”导语部分写道:“测量海岸线的长度,与测量圆的周长或正方形的周长是怎样地不同?一辆汽车沿着靠近海滩的公路上行驶,海岸线的长度可以由汽车的里程表读出吗?在靠近海滩的小路上骑一辆自行车,海岸线的长度等于骑车人的行程吗?紧挨海水在沙滩上慢跑,海岸线的长度等于他的行程吗?小鸟沿水边奔跑觅食,海岸线的长度等于它的行程吗?谁测得的“海岸线的长度”是真的?尝试着回答这些简单的问题,会引向比较深刻的问题,引向自然界分形的主题。” “分形海岸线”这个单元的教学中,要求学生先用圆规(步长可适当调节)测量地图上某段海岸线的长度--测量时圆规沿着海岸线“迈步”,前后脚都踩在海岸线上;不同的同学用不同的步长来测量,纪录步长和步数。接着用坐标纸绘制“步长-步数”图像和“log步长-log步数”图像。进行小组讨论。步长与步数的乘积,是表示海岸线长度的,(在步长不很小的情况下)它随着步长的减小而增大,而“log步长-log步数”图线竟然非常接近于直线,揭示了一种简单的规律。学生将信将疑。然后安排学生使用为该活动单元特别设计的交互性的软件“Coastline Physlet”做进一步的,也是更方便的更吸引人的研究。
如图,最初,海岸线被表示为直线段,有两个端点;用鼠标点一次“draw"按钮,海岸线变为折线,拐点的位置被随机生成,再点一次“draw”,拐点增加2个,然后增加4,8,16,32,64,128…个,海岸线拐点和端点的总数可达到257,513,1025。由于屏幕分辨率的局限,拐点总数不能充分地增加,因此对于较小的步长,这样的模拟海岸线不能显示分形曲线的性质,这是这个软件无法克服的困难。 点“measure(测量)”按钮后,可在“grid measure(网格测量)”和“ruler measure(直尺测量)”两者中任选一种测量方法,后者与圆规测量在原理上是一样的。选择“ruler measure”后,可以在“auto measure(自动测量)”和“manul measure(手工测量)”选择其一。点“auto measure”,立即得到一组“步长,步数”数据;改变“length(步长)”后,点“auto measure”,立即得到另一组“步长,步数”数据;如此得到多组数据。点“done measuring”后,点“table(表格)”可看到自动生成的数据表格,点“gragh(图像)”可看到“步长-步数”图像。“lineal scale(线性尺度)”被选中的情况下,“步长-步数”图线是弯曲的;“log-log scale(对数尺度)”被选中的情况下,图线几乎是直的,图象下面显示两个参量的函数关系式,直线的斜率与函数式的指数是一致的,为负值。由斜率的绝对值,可引出“分形维数”概念。 学生们可以设定不同的roughness(粗糙度),随机生成新的海岸线,采用快速的auto manual或饶有趣味的manual measure测量方式,反复试验。分形概念当然是不可能轻易地掌握的,美国教师比较看重渗透学习法,这正好是一个例子。 第9单元:林火与渗滤 林火与渗滤这个单元所配的Java 程序对森林中火的蔓延做某种简单化的假设,让学生探索大火过后幸存的树木的数目与起火之前树木总数有何定性的关系。这个模型对于植树和防火并没有多大实际意义,设计者的目的是,通过一个吸引人的有感性经验背景的话题,让学生接触渗滤(Percolation)这样一个概念。 首先建议学生通过动手活动初步考察由随机性决定的树木的分布与火势蔓延。学生打好横5行竖5列25个格子(可以用现成的方格纸),假定每个格子内要么有一颗树或者没有树,假定几率是0。5,用一枚硬币来决定每一格是否有一颗树。做好记号。然后假定突然起火,左边的树同时着火;假定没有风,已经起火的树只殃及上下左右的树。可以判断哪些树会烧毁,哪些树会幸存。做上记号。纪录幸免于火的树的数目。比较不同小组的结果。 然后假设任一格子有树的几率为2/3,为了确定树的分布,改用骰子。结果幸免于难的很少。有的小组的结果是,烧得一颗不剩--树木的这种分布称为渗滤。
前面手工载树,地方小,树少,不足以说明问题。下面改用Java模拟程序。有900格,最多可种900颗树。几率可在[0,1]范围内任取。图所示的例子中,几率取为0。51。点三角形符号设定几率;点“Grow”,自动种树;点“Start Fire”,左边一列树同时起火。图中深色小圆表示被烧过的树。火熄灭后,下部一行字显示幸存的树的数目。火势蔓延的时候,可以浇水(或者可以理解为伐树)。时间有限,人力有限,在何处浇水?这涉及到策略问题。为了引起学生的兴趣,为了引起学生的深入思考,通过网页给以详细的指导。最后的“连接”指引学生在有关资料的帮助下学习渗滤这个概念的实际应用。 参考文献: |