大学“分形与混沌”选修课之分形教学研究

2023-11-01 12:47袁利国聂笃宪张胜祥
淮北职业技术学院学报 2023年5期
关键词:维数分形插值

袁利国,聂笃宪,张胜祥

(华南农业大学 数学与信息学院,广东 广州 510642)

分形(Fractal)、混沌与孤立子是非线性动力学研究的三大主题。分形即分形几何学,是Benoit B.Mandelbrot在20世纪70年代新提出的数学研究分支,分形是由分析自然界中不规则、不光滑几何体或一些人为构造的“病态”几何体而发展起来的一门学科。[1]5-30如:英国的海岸线有多长?[2]Peano曲线与Koch曲线有多长?谢尔宾斯基垫片的维数是多少?这些问题的解决都超出了传统几何学的范畴,从而提出分形(分数)维数、分形插值、分形图像压缩等分形几何的概念与方法。[3]1-20分形在物理学、化学、生物学、经济学、图形学等学科都有广泛应用。高中数学教材也有涉及分形的简单介绍。[4]2-20如:芝加哥大学数学课程设计第四册高中代数中第14章“维数和空间”的内容介绍了分形创始人Mandelborot、举例阐述什么是分形、讲解了分维(分数维数) 概念等。[5]36-41国外也有文献阐述分形几何初步知识融入中学课堂的必要性,以及“海岸线与分形”列入高中数学文化,分析了分形的画法与制作、分形几何与中学数学的关联性等内容。[6]

混沌(Chaos)概念产生于20世纪初,庞加莱在研究n体问题时发现了对初始条件敏感的现象,庞加莱指出:由于长期的不可预测性,随机性和决定论变得可以互相兼容,在确定性系统中有类随机性现象。[7]洛伦兹(Lorenz)于1972年参加一场气象会议时报告了著名的论文:“可预测性:巴西蝴蝶翅膀的扇动会在德克萨斯州引发龙卷风吗?”[8]洛伦兹发现了一个非线性系统的混沌行为,即天气的混沌行为。数学家Li-Yorke在“周期三意味着混沌”论文中才首次提出混沌的概念。[9]混沌的主要特征是初值敏感依赖性、系统的有界性、拓扑传递性、遍历性、周期轨的稠密性、具有奇怪吸引子等。

分形与混沌联系紧密,时常同时出现,如:一维Logistic映射通过倍周期分岔走向混沌,对混沌区的轨道进行放大,则仍有倍周期分岔现象,是分岔的无穷嵌套,具有分形的重要特征即自相似性。分形几何中也可能蕴含混沌,如:Mandelbrot分形集中具有混沌吸引子现象。目前,分形与混沌具有广泛的应用,如:分形图像压缩、混沌图像加密、混沌保密通讯、分形插值拟合振荡数据、分形在植物学中的应用等。[1]5-30

本科院校数学专业,有开设分形与混沌选修课程的必要性。在学完数学分析、实变函数与泛函分析等课程之后,我校高年级本科生开设了此专业选修课。本文将重点阐述分形几何内容的教学探索,针对混沌相关的内容留给以后再阐述。

1 课程基本内容

“分形与混沌”课程在我校开设十多年,作为高年级的数学拓展选修课程,该课程共分三大部分:理论课、实验课与课程设计。[10]这也是响应教育部的课程设置改革要求,提升实践实验教学课的占重比例,实验课与课程设计也正当其时,切实把理论与实践相结合。该课程中理论课32学时,16学时/个学分,合计2个学分。内容大致覆盖了分形与混沌的历史起源、分形图形的生成方法、分形空间与迭代函数系统、测度与维数、分形插值、混沌的基本概念与分析方法、分形混沌动力系统、随机分形与分形图像压缩等。同时,配套的实验课16学时,计0.5个学分,共8次实验,以实验报告的形式完成。主要基于Matlab软件与Python软件,上机完成8个编程实验。例如:如何编程实现生成各种分形集、如何实现随机迭代函数系统、如何计算盒维数、分形插值、分形图像压缩、混沌图像加密等。要求学生写出相应的程序代码及运行结果。另附加课程设计1个学分,分散在整个学期的平时完成,无须教室或机房,根据老师给出的课程设计题目在期末提交一份报告,类似于文献综述,提倡创新。通常老师布置一些问题,同学们三五人分组合作完成撰写课程设计。例如:课程设计题目:分形插值与传统插值的比较分析及其应用、分形图像压缩的Python实现等。课程考核情况,理论课在期末组织闭卷考试,实验与课程设计则只需要提交报告,分别给出成绩。最后,对这些教学过程的材料进行归档建档。同时,随着网络技术的发展,特别是疫情防控期间,线上课程占了主流。因此,顺应课程的开放性趋势,可建设分形与混沌的网络课程,把上课的视频材料上传到网站,更多的分享出去,让更多的同学了解这门课程,学习相关知识。

2 开设此课程的必要性

高中数学已经融入了分形的内容。[5]36-41教育部制定了《普通高中数学课程标准(2017年版2020年修订)》,其中:D类课程包括美与数学,共1个学分。美与数学的简洁指出:“数学可以刻画现实世界中的简洁美。例如:雪花、云彩、群山、海岸线、某些现代设计等美的共性与分形相关。”[11]这里明确指出了分形几何与现实生活及自然界紧密相连,分形几何要融入高中数学教学,除了平面与立体几何,都是非常规则的几何体,现实世界的几何是更复杂的。如何准确高质量地实现高中数学课程标准中对分形几何的教学要求?对中学教师提出新的挑战。因此,要培养具有这方面专业素养的数学教师,大学的数学本科专业很有必要开设分形几何的课程,对大学生进行分形几何方面的教学,进行这方面的培养。当这些大学生走进中学课堂,才有能力胜任新标准下的高中数学教学工作。

图1 Sierpinski三角形

同时,不少大学也开设了分形与混沌的本科生课程。如:北京大学素质教育通选课开设了自然科学中的混沌和分形,华中科技大学物理教学过程中也有交叉结合分形理论,对非线性物理教学进行改革。也有其他学科融入了分形的内容,如:地球科学、高等教育、经济学、计算机科学与化学等,都有成功地把分形应用到这些学科,促进了交叉学科的发展。“分形与混沌”课程需要做相应的系列数值模拟实验,从而促进程序语言的应用,例如:C语言、Matlab语言与Python语言等,相应提升大学生的计算机能力。其中:课程设计促进学生的思维能力、文字能力、查找文献与创新能力,撰写论文与毕业设计的能力等。本科阶段开设“分形与混沌”课程拓展了本科生的视野,也促进其他学科的发展。毕业生也有些会攻读研究生,从事分形与混沌及非线性动力学的研究,这也为将来打下一定的研究基础。由此开设此选修课十分必要。

3 存在的困难与解决方案

缺少合适的与时俱进的新教材,包括理论课教材与实验课教材,以及配套的习题集。“分形”是一本经典分形几何本科生教材。[3]1-20但现在已经停止发行,且侧重分形知识的介绍,对混沌的内容介绍相对较少。应减少分形图形的生成章节,增加迭代函数系统、测度与维数、分形插值与混沌相关的理论知识,以及分形与混沌的典型应用的介绍,如:分形图像压缩、混沌图像加密等,拟做到理论与应用相结合,本科阶段突出应用,而不是纯理论的讲解。同时,配套习题集与详细解答,以及配套的基于某种程序的实验教材,如:基于Python或Matlab的分形与混沌实验教材。这样才是较完整的一个课程体系。

“分形与混沌”课程教学的师资力量相对较弱,不像微分方程、复变函数或实变函数、概率统计等传统学科有较强的师资。在硕士和博士研究生阶段做这方面研究的教师并不多,因此,能直接胜任这门课程教学的老师较少。此课程需要掌握分形几何与非线性动力学中的分岔混沌等理论知识,同时需要会写应用程序,如:Matlab或Python等。我们需要引进或培养一些擅长分形与混沌方面的师资。可以组建三人以上的教学团队,以传帮带的方式培养我们自己的任课老师,以免出现断层断代现象,使得这门课程可持续发展,这也是倒逼老师与时俱进,教学相长,及时更新自己的知识储备,以适应时代的发展,适应学科的发展。

课时数与教学大纲等需要修订,此课程是选修课,涉及的教学内容较多,教学大纲涉及了分形几何与混沌两大块,但理论学时只有32学时,对每个知识点的讲解只是略作介绍,很少有深入分析,更少有证明与推导过程,因此,有必要增加学时数以应对教学内容的增加,建议增至48学时,这样才基本够用。

4 分形教学理论课案例——分形维数

5 分形教学实验课案例——基于Python的沙漏花实验

分形与混沌的教学可设计大量的实验,这些实验可以更好地理解理论知识,也能更好地将理论应用到一些具体问题,同时,促进计算机程序语言的学习,促使同学们掌握一门新的计算机语言。[14]根据电脑的操作系统windows版本不同,在以下网站下载相应的Python版本https://www.python.org/downloads/,否则无法安装成功。然后,在Python中打开代码开发工具IDLE可以撰写并运行程序了。

图2 沙漏花生成元

图3 沙漏花(4次迭代)

#沙漏花的Python程序

import turtle #导入Python自带的库实现海龟运动作图

def flower(distance,m): #定义函数flower,括号中为形参,调用时是实参

if(m==0):

turtle.fd(distance) #向前画distance个单位像素的距离

else: #与if配套的判断语句

for angle in[0,60,-120,0,120,-60]: #把序列中的每一个对象分配给angle角度

turtle.left(angle) #更改turtle的方向,左转angle角度

flower(distance/4,m-1) #调用函数flower

turtle.shape('turtle')

wn=turtle.Screen() #画笔形状与新建作图窗口

wn.setup(width=100,height=500) #作图窗口的大小设置

turtle.pensize(3) #画笔粗细,数字越大越粗

turtle.penup() #提起笔

turtle.goto(-300,-100) #移动笔但不画线

turtle.pendown() #放下笔

turtle.speed(0) #画图速度,0代表最快

flower(300,4) #调用函数

turtle.hideturtle() #关闭画笔

#Python使用缩进表示上下级关系,注意缩进空格数规范,否则会报错

Fig=turtle.getscreen()

Fig.getcanvas().postscript(file="flower.eps") #输出eps格式图形课程设计方面,也可布置一些问题并用Python实现,如:分形插值、经典分形集、分形图像压缩等的Python程序实现,通过分形的学习,促进Python的学习,反之,通过写程序代码也加深分形几何的概念方法等的理解与应用,二者相互促进。

6 结论

从“分形与混沌”选修课的课程大纲、学分学时数、实验课设置、课程设计等方面进行了阐述,并对开设此课程的必要性与困难、分形维数的教学案例、基于Python语言的分形实验等进行了分析。开设“分形与混沌”选修课可拓宽学生的视野,增加学生的数学知识贮备,无论是继续深造数学专业的研究生,还是走上中学数学教师岗位,或升学转专业至其他学科深造,了解并掌握一定的分形与混沌知识是必要且有益的。但目前设置“分形与混沌”选修课的高校并不多,这是多种原因导致的现状,特别是师资力量的缺失。通过以上分析,对该门课程的建设与教学进行了一定探索,希望有更多的高校开设此课程,并得到更好的发展,为理工类特别是数学系的大学生提供更多的优质课程选项。

猜你喜欢
维数分形插值
β-变换中一致丢番图逼近问题的维数理论
感受分形
一类齐次Moran集的上盒维数
分形之美
基于Sinc插值与相关谱的纵横波速度比扫描方法
分形——2018芳草地艺术节
分形空间上广义凸函数的新Simpson型不等式及应用
关于齐次Moran集的packing维数结果
涉及相变问题Julia集的Hausdorff维数
一种改进FFT多谱线插值谐波分析方法