迭代法计算公式详解(根号数的迭代毕氏螺线)

上一个作品,我们是在数轴上依次画出表示根号2、根号3、根号4、根号5……根号10的点:

迭代法计算公式详解(根号数的迭代毕氏螺线)(1)

那么,类似地,可以利用勾股定理(毕达哥拉斯定理),作出长为根号2、根号3、根号4、根号5……的线段:

迭代法计算公式详解(根号数的迭代毕氏螺线)(2)

源文件获取方式,请见文末

有人称之为毕氏螺线。毕氏,即毕达哥拉斯。也有人称之为根号数的迭代。

前一个叫法好理解,而后一个叫法,则与其制作有关。

那么,是怎么制作的呢?

迭代法计算公式详解(根号数的迭代毕氏螺线)(3)

迭代

何为迭代?

每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

而毕氏螺线是怎么得来的?我们先来看下图中的点B2,B3,B4是怎么得来的。

迭代法计算公式详解(根号数的迭代毕氏螺线)(4)

将点B1作为起始点:

迭代法计算公式详解(根号数的迭代毕氏螺线)(5)

点B4,B5,B6,……也可以依照此规律作出来。

而作出这些点的过程,就是不断地对上一个点进行相同操作(“垂直”,“长为1”)的重复过程,即为“迭代”。

在GeoGebra中,有迭代(Iteration)指令:

迭代( <表达式>, <变量>, <起始值>, <迭代次数> )

▪ 例:

  1. 将点B以点A为中心,逆时针旋转90度,得到第一个新点;
  2. 再将此点以点A为中心,逆时针旋转90度,得到第二个新点;
  3. 又将此点以点A为中心,逆时针旋转90度,得到第三个新点;

也就是迭代三次,即:

迭代(旋转(A, -90°, P), P, {B}, 3)

其中,起始值需用花括号{ }括起来。

迭代法计算公式详解(根号数的迭代毕氏螺线)(6)

由上图可见,只得到一个新点——点C。点C为第三个新点,也就是最后一次迭代所得结果。

那么,如果需要显示迭代过程中所产生的点,应该如何做呢?

在GeoGebra中,有相应的指令——迭代列表(IterationList)指令:

迭代列表( <表达式>, <变量>, <起始值>, <迭代次数> )

迭代列表指令,返回的是一个列表,其中,第一个元素为起始值,其后的元素为每次迭代所得到的结果。

▪ 以上面的例子为例,如需显示迭代过程,即:

迭代列表(旋转(A, -90°, P), P, {B}, 3)

迭代法计算公式详解(根号数的迭代毕氏螺线)(7)

需要注意的是:起始值也需用花括号{ }括起来。

迭代法计算公式详解(根号数的迭代毕氏螺线)(8)

对迭代、迭代列表有了初步认识后,我们来看看怎么用迭代列表作出毕氏螺线中相关的点。

至于需要动态显示,只需让迭代次数是一个变量即可,我们用滑动条n来表示,即:

n = 滑动条(1, 18, 1)

当然,n的最大值并非必须是18,也可以再大一些。

再作出点A、点B:

A = 交点(x轴, y轴)

B = (-1, 0)

备注:滑动条(slider)、交点(intersect)、x轴(xAxis)、y轴(yAxis)

为了保证“垂直”与“长为1”,有多种做法。这里介绍三种方法。

迭代法计算公式详解(根号数的迭代毕氏螺线)(9)

【法一】

  1. “垂直”——旋转90度;
  2. “长为1”——除以自身的长度。

即:

迭代列表(P 向量(P, 旋转(A, -90°, P)) / 距离(P, 旋转(A, -90°, P)), P, {B}, n)

备注:向量(vector)、旋转(rotate)、距离(distance)

迭代法计算公式详解(根号数的迭代毕氏螺线)(10)

【法二】

  1. “垂直”——旋转90度;
  2. “长为1”的向量——单位向量。

即:

迭代列表(P 单位向量(向量(P, 旋转(A, -90°, P))), P, {B}, n)

备注:单位向量(unitvector)

  • 法一、法二是着眼于点,由点旋转90度,保证垂直。
  • 若是着眼于线段,那么,为保证垂直于线段,则可取其法向量。
  • 【法三】

    “垂直”,且“长为1”的向量——单位法向量。

    即:

    迭代列表(P 单位法向量(线段(A,P)), P, {B}, n)

    备注:单位法向量(unitperpendicularvector)

    取以上任意一种方法构造点均可,并命名为l1

    迭代法计算公式详解(根号数的迭代毕氏螺线)(11)

    多边形

    有了这些点,即 l1;则可构造出相应的直角三角形。即:

    l2 = 序列(多边形(A, 元素(l1, k), 元素(l1, k 1)), k, 1, n)

    迭代法计算公式详解(根号数的迭代毕氏螺线)(12)

    备注:序列(sequence)、多边形(polygon)、元素(element)

    关于序列指令的解读,请见链接。

    迭代法计算公式详解(根号数的迭代毕氏螺线)(13)

    文本

    先标出直角边AB的长为“1”:

    迭代法计算公式详解(根号数的迭代毕氏螺线)(14)

    利用文本工具

    而其他长为1的直角边,则可利用序列指令标出“1”,即:

    l3 = 序列(文本("1", 中点(元素(l1, k - 1), 元素(l1, k)), true, true), k, 2, n 1)

    迭代法计算公式详解(根号数的迭代毕氏螺线)(15)

    而根号2、根号3、根号4……等文本的显示,也同样可利用序列指令,即:

    序列(文本("\sqrt{" k "}", 中点(A, 元素(l1, k)), true, true), k, 2, n 1)

    但是,发现文本的位置并不太妥当。

    迭代法计算公式详解(根号数的迭代毕氏螺线)(16)

    还记得,《文本进阶》中的“放大招”吗?

    此刻,即可派上用场,操作如下:

    迭代法计算公式详解(根号数的迭代毕氏螺线)(17)

    引入点C来调整文本位置

    至此,拉动滑动条n,即有开头演示的效果。

    结语

    有重复性操作,不仅可以交给序列,还可以交给迭代迭代列表

    打个比方:

    • 如果是已知通项公式,即知道第n项与n之间的关系,则可使用序列
    • 如果是已知递推公式,即知道第n项与其前一项或几项的关系,则可使用迭代迭代列表。其中,如需显示迭代过程的,则用迭代列表;而只需最终的迭代结果,则用迭代

    在GeoGebra中,除了序列指令、迭代迭代列表指令,还有一大指令——映射(zip)指令,也是可以使得制作更方便、更高效!映射指令,主要是在批量构造对象、处理对应关系上,有极大的优势。

    • 批量构造对象的例子,请参照链接的第二部分。
    • 在处理对应关系上,请参照链接。

    如需作品源文件,请回复:毕氏螺线

    ,

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页