资源描述
几何画板迭代全解
目 录
² 迭代的基本概念以及迭代的基本操作
u 迭代的概念
u 迭代在代数、几何中的应用
u 画正多边形
u 数列的图像、前n项和与积
² 迭代与分形几何
u Sierpinski 三角形
u Sierpinski 地毯
u 摇曳的Pythagorean Tree毕达哥拉斯树
u 分形树
u KOCH 曲线
u KOCH Snowflake柯克雪花
u 数学之美
u H迭代
u 蜂巢
u 其它分形欣赏
² 函数迭代:函数映射,M集,朱丽亚集
u 迭代法求方程解
u MIRA
u Henon-Attractor
u Mandelbrot集合
u Julia Sets集合
u 牛顿迭代法
² 下期预告
第一章:迭代的概念和操作
迭代是几何画板中一个很有趣的功能,它相当于程序设计的递归算法。通俗的讲就是用自身的结构来描述自身。最典型的例子就是对阶乘运算可看作一下的定义: 。递归算法的特点是书写简单,容易理解,但是运算消耗内存较大。我们先来了解下面这几个最基本的概念。
迭代:按一定的迭代规则,从原象到初象的反复映射过程。
原象:产生迭代序列的初始对象,通常称为“种子”。
初象:原象经过一系列变换操作而得到的象。与原象是相对概念。
更具体一点,在代数学中,如计算数列1,3,5,7,9......的第n项。我们知道,所以迭代的规则就是后一项等于前一项加2。以1作为原像,3作为初像,迭代一次后得到5,再迭代一次得到7,如此下去得到以下数值序列7 , 9,11, 13, 15......如图1.1所示。
图 1.1
图 1.2
在几何学中,迭代使一组对象产生一组新的对象。图1.2中A、B、C、D、E、F、G,各点相距1cm,那么怎么由A点和B点得到其它各点呢?我们可以发现其中的规律就是从左到右,每一个点相当于前面一个点向右平移了1cm。所以我们以A点作为原像,B点作为初像,迭代一次得到B点,二次为C点,以此类推。
所以,迭代像就是迭代操作产生的象的序列,而迭代深度是指迭代的次数。那么下面我们通过例子来进一步地了解迭代以及相关的概念。
几何画板中迭代的控制方式分为两种,一种是没有参数的迭代,另一种是带参数的迭代,我们称为深度迭代。两者没有本质的不同,但前者需要手动改变迭代的深度,后者可通过修改参数的值来改变迭代深度。我们先通过画圆的正n边形这个例子来看一下它们的区别。
【例1】画圆的内接正7边形。
【分析】由正7边形的特征,我们知道,每一个点都相当于前面的点逆时针旋转,抓住这个规律,我们可以用迭代功能来解决。
【步骤】
1. 新建圆O,在圆O上任取一点A。
2. 双击圆心O作为旋转中心。选中A点,单击菜单【变换】【缩放】,旋转参数选为选择固定角度,然后在框中输入360/7,得到B点。连接线段AB。
第 2 步
第 3 步
3. 选择A点,单击【变换】【迭代】,点击B点作为初像。屏幕上显示出迭代的像是正7边形的4条边(因为系统默认非深度迭代的迭代次数是3次)。
4. 单击迭代框的【显示】按钮,选择【增加迭代】。(或者按键盘的‘+’或‘-’)。增加三次迭代后,我们可以看到一个完整的正7边形。此时的迭代次数为6次,正7边形制作完成。
第 4 步
第 5 步
5. 单击迭代框的【显示】按钮【最终迭代】,得到的图像仅是最后一条边。
6. 点击迭代框【结构】按钮,我们可以设置创建的对象,选择“仅没有点的对象”则迭代的像只有正多边形的各条边,而没有顶点,反之则有。
选择迭代像,我们可以修改他们的属性,比如颜色和粗细等,但是细心的你会发现,线段的迭代像是不能够度量其长度的,当然也就不能取中点之类的操作。迭代的点是不能够度量他们的横纵坐标,但是我们可以得到迭代的终点,方法是选择迭代的点,然后单击【变换】【终点】,可以发现最后的那个点变成实点了,这个功能在函数映射里面会用到。
上述方法在增加后减少迭代次数时比较麻烦,而且迭代规则限定了,即每次都是旋转同样的角度。迭代次数和迭代规则能不能用带参数来控制呢?可以的,这就是深度迭代。
【例2】画圆的任意n边形
【步骤】
1. 新建圆O并在圆上任取一点A。双击圆心O作为旋转中心。
2. 新建参数n=7,计算,注意这时要带单位‘度’。
3. 选择A点,单击菜单【变换】【旋转】,出现旋转对话框,单击计算结果‘’作为标记角度,得到B点。连接线段AB。
第 3 步
第 4 步
4. 顺次选择点A和参数n,按住“shift”键不放,单击【变换】【深度迭代I】,出现迭代对话框。单击B点作为初像,屏幕上显示出完整的正7边形。按【迭代】完成操作。
5. 如何改变参数n呢?有两种方法,第一种是双击参数n,然后在对话框中输入值。第二种是单击参数n,按键盘的‘+’、‘-’,系统默认变化量为1。右键单击可以修改变化量的大小。
注意:迭代时,作为迭代深度的参数n一定要在最后面选择,这是系统的规定。
上面讲的都是迭代在几何方面的应用,下面我们来看看用迭代在画数列图像和数列求和方面的应用。
【例3】求数列 (n=1,2......)的图前8项,并在平面上画出散点。
【分析】由数列的表达式可知,是直线y=1+0.5x上面的点。我们要产生两个数列,一个是作为横坐标的数列1,2,3......,一个是作为纵坐标的满足上述通项公式的数列。
【步骤】
1. 新建函数y=1+0.5x。
2. 新建参数a=1,计算a+1,a+1-1,f(a),f(a+1)。
(计算a+1-1是为了得到f(a)对应的横坐标a。因为迭代次数为0的时候,f(a)=1.5,a的值在迭代数据表中是不会显示出来的。)
3. 新建参数n=7作为迭代深度。
4. 选择a和n,做深度迭代,原像是a,初像是a+1。
5. 右键点击数据表,选择‘绘制表中记录’,设置x列变量为(a+1)-1,y列为f(a)。坐标系为直角坐标系。
第 5 步
第 6 步
6. 点击绘图,得到散点。这些点是可以度量的。但是当参数n改变的时候,这些点不与数据表同步,所以是不会改变的。
【例4】求数列1,3,5,7,9(n=1,2......)的前n项和。
【分析】公差为d,假设前n项和为,,在平面上描出(n, )。
【步骤】
1. 新建参数x=1,计算x+1。
2. 新建参数a=1,d=2。分别表示数列首项和公差。
3. 新建参数s=1,计算s+a+x*d
4. 选择x,x+1,s, s+a+x*d,和n做深度迭代。绘制数据表,x列为x+1,y列为s+a+x*d。
第 4 步
第 4 步
与此同理那么等比数列的制作也是一样的。下面我们来看看通项公式不知道的数列怎么画出其图像。
【例4】画出菲波拉契数列。
【分析】数列的前提条件是,因为;所以原像是,初像是。
【步骤】
1. 新建参数f1=0,f2=1,计算f1+f2,把计算结果的标签改为f3。
2. 新建参数a=1,计算a+1,。计算(a+1)+1(因为迭代0次的时候f3=2,而,所以下标应该是3,而a=1,故计算a+1+1)
3. 新建参数n=8
4. 依次选择f1,f2,a1,a1+1,n,做深度迭代。
第 5 步
第 6 步
5. 绘制表中数据,x列为,y列为。
6. 画点(0,1),(1,1)两点,作为数列的前两项。从图像可以看出,数列前面增长的很缓慢,但是到了后面就非常的惊人了。
【小结】
在开始下一章“迭代与分行”之前,先复习一下深度迭代的过程是:
1. 顺次选择原像和参数n。(注意顺序)
2. 按住shift不放,单击菜单【变换】【深度迭代】(出现对话框后可以松开shift键)。
3. 依次选取初像。(注意顺序)。
添加映射的方法是按键盘‘Ctrl+A’。
第二章:迭代与分形几何
分形的特点是,整体与部分之间存在某种自相似性,整体具有多种层次结构。分形图片具有无可争议的美学感召力,特别是对于从事分形研究的科学家来说。欣赏分形之美当然也要求具有一定的科学文化知识,但相对而言,分形美是通俗易懂的。分形就在我们身边,我们身体中的血液循环管道系统、肺脏气管分岔过程、大脑皮层、消化道 小肠绒毛等等都是分形,参天大树、连绵的山脉、奔涌的河水、漂浮的云朵等等,也都是分 形。人们对这些东西太熟悉了,当然熟悉不等于真正理解。分形的确贴近人们的生活,因而由分形而来的分形艺术也并不遥远,普通人也能体验分形之美。
因为分形几何的迭代的原像一般不止一个,而且均为多映射迭代,为了叙述的方便,我们先作以下两个约定。
1. 用(A,B,C)表示有顺序的两点A、B和C。
2. 表示A映射到D,B映射到D,C映射到F,然后添加映射A映射到G,B映射到H,C映射到I,如此类推。
【Sierpinski三角形】
波兰著名数学家谢尔宾斯基在1915-1916年期间,为实变函数理论构造了几个典型的例子, 这些怪物常称作“谢氏地毯”、“谢氏三角”、“谢氏海绵”、“谢氏墓垛”。如今,几乎任何一本讲分形的书都要提到这些例子。它们不但有趣,而且有助于形象地理解分形。
著名的Sierpinski三角形,它是很有代表性的线性分形,具有严格的自相似特点。不断连接等边三角形的中点,挖去中间新的小三角形进行分割---随着分割不断进行Sierpinski三角形总面积趋于零,总长度趋于无穷。Sierpinski三角形在力学上也有实用价值,Sierpinski三角形结构节省材料,强度高,例如埃菲尔铁塔的结构与它就很相似。
【步骤】
1. 在平面上任意画一个三角形ABC,取三边中点为D、E、F,连接DEF。
2. 新建参数n=3
3. 顺次选择B,C,A三点和参数n,作深度迭代,。
4. 添加新的映射, 。
第 3 步
第 4 步
5. 继续添加映射。
6. 改变参数n可观察图形变化。
第 5 步
第 6 步
【Sierpinski地毯】
和Sierpinski地毯相似,只是步骤多了一些。取正方形将其 9 等分,得到 9 个小正方形,舍去中央的小正方形,保留周围 8 个小正方形。然后对每个小正方形再 9 等分,并同样舍去中央正方形。按此规则不断细分与舍去,直至无穷。谢尔宾斯基地毯的极限图形面积趋于零,小正方形个数与其边的线段数目趋于无穷多,它是一个线集,图形具有严格的自相似性。
【步骤】
1. 平面上任取线段AB,以线段AB构造正方形ABCD。
2. 以A为缩放中心,B、D缩放为1/3,得到E、F;以D为缩放中心,A、C缩放为1/3得到G、H。同理得到I、J、K、L。连接各点,将正方形九等分;
3. 并填充中间的正方形MNOP,度量MNOP的面积,选择改度量结果和填充的正方形,单击【显示】【颜色】【参数】,单击确定。则该MNOP的颜色随它的面积变化而变化。
第 2 步
第 3 步
4. 新建参数n=4,顺次选择A、B两点和参数n,作深度迭代,(A,B)(G,P);(P,O);(O,J);(F,M);(M,N);(N,K);(A,E);(E,L);(L,B)。注意迭代中点的对应,当迭代框遮住图像的时候可用鼠标选中拖动开。单击迭代,隐藏不必要的点。
如果我们制作任意三角形的Sierpinski三角形和任意四边形的Sierpinski地毯(即三角形和四边形的顶点都是自由点),然后按照多面体的侧面数将他们复制。利用画板合并点的功能,将它们“粘贴”到三棱锥和正方体的各个侧面上,(如下图)可以制作空间的Sierpinski三角形和地毯。是不是很漂亮呢?
【摇曳的Pythagorean Tree(毕达哥拉斯树)】
毕达哥拉斯学派发现勾股定理(西方叫做毕达哥拉斯定理)闻名于世,又由此导致不可通约量的发现。1988年,劳威尔通过数值研究发现毕达哥拉斯树花是一迭代函数系的J集。
【步骤】
1. 在屏幕上以任取两点A和B,作正方形ABCD,以CD为直径作圆O,取半圆弧,在该弧上任取一点E,连接CE,DE。隐藏不必要的对象。
2. 填充四边形ABCD,度量ABCD的面积。选择四边形和度量结果,单击【显示】【颜色】【参数】。则四边形的颜色会随它的面积变化而变化。
3. 新建参数n=4,选择A、B和n,作深度迭代,。
第2 步
第 3 步
4. 选择E点,单击【编辑】【操作类按钮】【动画】,E点变动,很漂亮的效果。当E点在的中点时,整个树显出对称美。
【分形树】
【分析】和毕达哥拉斯树类似,树枝按一定的规律生长。
【过程】
1. 在垂直方向上画线段AB,在AB左上区域任取一点C。
2. 度量CB,BA的长度,计算CB/BA;度量的大小。
3. 双击C点作为旋转中心,旋转角度为,旋转B得到点E;继续以CB/BA为缩放比例,E点缩为F点;双击线段CB作为标记镜面,得到F点关于线段CB的对称点G。连接GC,FC。
4. 双击线段AB作为标记镜面,得到C、F、G关于线段AB的对称点D、H、I,连接BD、HD、ID。
第 3 步
第4 步
5. 新建参数n=3。顺次选择A、B、C三点和参数n,作深度迭代,(A,B,C) (B,C,G),(B,C,F),(B,D,H),(B,D,I)。
6. 移动C点的位置,改变树枝的形状。
【KOCH 曲线】
瑞典数学家柯赫于1904年构造了如今称之为“柯赫曲线”(Koch curve)的几何对象,这一年 他一共发表了两篇论文描述这种曲线,他画出了此曲线的图形,给出了生成步骤。它的构造过程如下:取一条长度为L的直线段,与构造三分康托尔点集那样先将它三等分,然后保留两侧的两段,将中间的一段改成夹角为的两个等长的直线,每段长度均为L/3,这是n=1的第一次操作。类似地,第二次操作是将上次所得的四段边长为L/3的线段都进行三等分,现在每段长度为L/9,并将它们中间的一段改成夹角为的两个长度为L/9的直线。如果将上述操作一直进行下去,最终得到一条具有自相似结构的曲线,称为三次科赫曲线。
【步骤】
1. 画线段AB,以A为缩放中心,B缩短为1/3,得到C点;同理以B为缩放中心,A缩短为1/3,得到D点。以C点为旋转中心,D点顺时针旋转60度,得到E点。
2. 隐藏线段AB,连接线段AC、CE、ED、DB。
3. 新建参数n=3,顺次选择A、B两点和n,作深度迭代。(A,B) (A,C),(C,E),(E,D),(D,B)。(如下图所示)
4. 单击迭代框的“显示”按钮,选择“显示最终迭代”。隐藏线段AC、CE、ED、DB(如下图所示)。
5. 改变参数n,观察图形变化。
【KOCH雪花】
因为它酷似雪花,所以叫“雪花曲线”(snowflake curve),也很像海岸线。柯赫曲线的生成过程很简单,以一个三角形作为源多边形,即初始元,将三角形的每一边做三等分,舍去中间的1/3,然后按科赫曲线的规则产生生成元。从源多边形开始,第一步形成一个六角星形,第二步将六角星形的12条边然后按科赫曲线的生成规则进行同样的操作得48条边星形,如图4-5,以后依此进行同样得操作,直至无穷,生成称为科赫雪花的图形。在极限的情况下,科赫雪花的上的折线演变成为曲线。由于科赫曲线生成中的每一步操作都会使折线的长度增加,所以在极限的情况下,科赫雪花边的总长度将趋于无穷。
柯赫曲线是很复杂的,首先它有许多折点,到处都是“尖端”,用数学的语言讲,曲线虽然 连续,但处处不可微,即没有切线。
【步骤】
1. 在平面上取AB做一个KOCH曲线,然后在A的左端任取一点G,在B的右边任取一点F,分别在AG和BF上做KOCH雪花,注意三个迭代深度都必须为n。
2. 以B点为旋转中心,A顺时针旋转60度得到H点。选择G,H两点,单击【编辑】【合并点】,则G点与H点合并。同理,再合并H、F两点。KOCH雪花完成了。
【数学之美】
【 步骤】
1. 任取两点A、B,并作正方形ABCD。
2. 在AB上任取一点E,连接BE,度量线段BE的长度并计算BE/AB。
3. 双击A点作为缩放中心,选择D点,单击【变换】【缩放】以计算结果‘AE/AB’为比例缩放,得到点F;同理以D点为中心,缩放C点得到点G;以C点为缩放中心,缩放B点得到点H。连接正方形EFGH。
4. 新建参数n=5,顺次选择A、B两点,和参数n,按下shift键不放,作深度迭代, 。如下图所示:
5. 选择E点,点击【编辑】【操作类按钮】【动画】。E点变动,产生梦幻般的效果。
【H迭代】
【步骤】
1. 在水平直线上取两点A和B,连接AB。以A点为旋转中心,B点顺时针旋转90度,得到C点,再取AC中点D。
2. 以D为旋转中心,C点顺时针旋转90度得到E点,取DE中点F。以D为旋转中心,F点再旋转180度得到G点。连接FG。
3. 同理再画出H、I两点。以AB为标记镜面,得到F、G、H、I关于AB的对称点J、K、L、M,连接线段JK,LM。(如下图所示)
4. 隐藏不必要的点,新建参数n=4。顺次选择A、B两点、参数n,作深度迭代,
.
5. 单击迭代,隐藏各点的标签。
【蜂巢】
蜜蜂地巢你观察过没有?是什么形状呢?聪明的蜜蜂选择了正六边形,因为这样可以填充整个空间,而且正六边形是最省材料的一中结构。从蜂巢中我们也可以发现许多自相似的结构。由三条边迭代就可以得到蜂巢了,不信?请看。
【步骤】
1. 屏幕上任取线段AB,以B为旋转中心,A点顺时针旋转120度得到点C,A点逆时针旋转120度得到点D。
2. 新建参数n=5。选择A、B和参数n,作深度迭代,。
3. 单击迭代,得到蜂巢的图像。
上面的迭代只是分形几何的一部分,由于篇幅所限,下面给出其余一些分形几何的图片,以供欣赏:
第三章:函数迭代
【多项式求根】
【分析】多项式求根的迭代式是。
【步骤】
1. 新建参数a=-0.1,b=-0.1,c=1,d=2,e=-1,n=5。
2. 新建函数,画出它的图像。
3. 在图像上任取一点A,度量A的横坐标。
4. 计算;计算。
5. 依次选择,单击【图表】【绘制点】。得到点B。
6. 度量B的横坐标。
7. 选中点A,和参数n,按住Shift键,单击【变换】菜单【深度迭代】,弹出迭代对话框,单击点B。结果如图1所示。
图 1
图 2
8. 选择迭代像,单击【变换】菜单【终点】,得到迭代的终点C,度量C点的横坐标。
9. 观察表格可知,显示方程的一个近似根是0.42。
10. 拖动A点,改变它的位置。观察表格可知道方程的另外一个近似根是3.41。如图2所示。
【MIRA】
【步骤】
1. 在平面上取一点A,度量A的横坐标和纵坐标。
2. 新建参数a=0.4,b=0,99875。(b取得尽量接近1)
3. 新建函数。
4. 计算f()+b,f(f()+b)-。注意这里用的是函数嵌套。顺次选择这两个结果,单击【图表】【绘制(x,y)】。得到点B。
5. 顺次选择点B和三个计算结果:f()+b,f(f()+b)-,。单击菜单【显示】【颜色】【参数】,单击确定。发现B点的颜色变了,其实B点已经隐藏起来,看到的是同一位置上的另外一个点B’。
6. 新建参数n=1500,选择A点和参数n作深度迭代。
【Henon Map(埃农映射)】
【步骤】
1. 在平面上取一点A,度量A的横坐标和纵坐标。
2. 新建参数a=1.2,b=0.4
3. 计算。顺次选择这两个计算结果,点击【图表】【绘制(x,y)】,得到点B。
4. 选择点B,并依次选择和,单击菜单【显示】【颜色】【参数】,出现颜色参数对话框,单击确定。得到点B’。
5. 新建参数n=1500,选择点A和参数n,作深度迭代,。
因为M集和朱丽亚集其实是复数平面迭代,我们先来复习一下复平面的一些知识。
若 Zk= xk+ iyk , m = p+iq
则 xk+1=xk2-yk2 +p,yk+1=2xkyk +q,聪明的你应该知道怎么表示复平面上的点的平方了吧。
好了,那么什么是Julia集和Mandelbrot集合,他们之间的区别是什么呢?
考虑 Zk+1=Zk2+m,给定复数初值Z0,m ,得到无穷复数序列{Zk}
Julia集:固定m,Jm ={Z0½序列{Zk}有界}
Mandelbrot集:固定Z0,MZ={m ½序列{Zk}有界}
【 Mandelbrot 集合 】
【步骤】
1. 在平面上以原点为中心,建立一个矩形ABCD作为观察区域。
2. 在线段AD上取一点E,点击【编辑】【操作类按钮】【动画】,使得E点能够在AD上运动。
3. 作E点关于Y轴的对称点E ’,然后连接EE ’。在EE ’上取一点G,度量。
4. 在平面上取一点F,度量 。计算,顺次选择这两个度量结果,单击【图表】【绘制(x ,y)】。得到点H。
5. 新建参数n=100,选择点F和参数n,作深度迭代,。
6. 选择迭代像,单击【变换】【终点】,得到迭代终点I。度量I的横、纵坐标,并计算,选择这三个结果和点G(注意是点G),单击【显示】【颜色】【参数】,得到G’。
7. 选中G’,单击【作图】【轨迹】。隐藏线段EE’,选择刚才的轨迹,按右键,单击‘追踪轨迹’。
8. 把F点移至原点。点击动画按钮,则可以得到M集,适当调整窗口大小。
【Julia Sets朱丽亚集】
【步骤】
1. 在平面上以原点为中心,建立一个矩形ABCD作为观察区域。
2. 在线段AD上取一点E,点击【编辑】【操作类按钮】【动画】,使得E点能够在AD上运动。
3. 作E点关于Y轴的对称点E ’,然后连接EE ’。在EE ’上取一点G,度量。
4. 在平面上取一点F,度量 。计算,顺次选择这两个度量结果,单击【图表】【绘制(x ,y)】。得到点H。
5. 新建参数n=100,选择点F和参数n,作深度迭代,。
6. 选择迭代像,单击【变换】【终点】,得到迭代终点I。度量I的横、纵坐标,并计算,选择这三个结果和点F(注意是点F),单击【显示】【颜色】【参数】,得到F’。
7. 选中F’,单击【作图】【轨迹】。隐藏线段EE’,选择刚才的轨迹,按右键追踪轨迹。
8. 点击动画按钮,则可以得到Julia集,调整窗口大小。
【牛顿迭代法】
【步骤】
9. 在平面上以原点为中心,建立一个矩形ABCD作为观察区域。
10. 在线段AD上取一点E,点击【编辑】【操作类按钮】【动画】,使得E点能够在AD上运动。
11. 作E点关于Y轴的对称点E ’,然后连接EE ’。在EE ’上取一点G,度量。
12. 在平面上取一点F,度量 。计算,顺次选择这两个度量结果,单击【图表】【绘制(x ,y)】。得到点H。
13. 新建参数n=100,选择点F和参数n,作深度迭代,。
14. 选择迭代像,单击【变换】【终点】,得到迭代终点I。度量I的横、纵坐标,并计算,选择这三个结果和点G(注意是点G),单击【显示】【颜色】【参数】,得到G’。
15. 选中G’,单击【作图】【轨迹】。隐藏线段EE’,选择刚才的轨迹,按右键追踪轨迹。
把F点移至原点。点击动画按钮,则可以得到M集,调整窗口大小
下期精彩预告:
国外同行Paul Kunkel在September 29, 2003制作了Perspective Tools。同样地,国内的霍焰制作了hot_fire立体几何制作平台。两个工具包在制作立体几何图形非常地方便。而且富有立体感。文章主要介绍两个工具包的使用。初级内容为空间直角坐标系的建立,点线面和简单空间几何体的绘制。高级内容为空间曲线的绘制,包括旋正弦线,转抛物面,双曲面,椭球面,球体等的绘制。
棱锥
球
圆柱
锥
长方体
四棱台
马鞍面 1
椭圆双曲面
旋转双曲面
李萨如曲线
正弦曲线
正弦波
球 1
球 2
球 3
球 3
球 4
球 5
26
展开阅读全文