GeoGebra中生成集合可以用序列、映射、迭代列表。
其中映射最好理解,从一个列表,通过运算到另一个列表,元素是一一对应关系,如列表l1={A,B,C,D,E,F},用这5个点画5个单位圆:
映射(圆周(m,1),m,l1)
它的使用是不需要元素序数参与计算时非常简捷。
再来说序列,这是GeoGebra中用的最多的命令,需要元素序数参与计算时,就用使用“列表”命令了,如不使用折线命令的情况下,把l1={A,B,C,D,E,F}五个点用线段连起来:
序列(线段(l1(m),l1(m+1)),m,1,长度(l1)-1)
这里用来元素的序数了,因此用上了"序列"命令。
最不好理解或者不易掌握的是迭代列表,生成元素与上一个元素或者上几个元素有关时,用迭代列表,这个几句话也说不清,先举个迭代中最常用的斐不拉其数列:
l3 = 迭代列表(a + b, a, b, {1, 1}, 10)
其结果是:
{1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89}
前两元素相加,得后一元素,依此类推,其中a+b为表达式,a,b为变量,{1,1}为a、b初始取值,必须是列表形式给出,10为迭代次数。
当然,GeoGebra不仅可以对数值进行迭代,它可以是其它几何对象,如下有A、B两点,从A点出发,求出AB中点C后,用C代替A,继续求CB中点,一直重复6次。

l4 = 迭代列表(中点(m, B), m, {A}, 6)
这里的变量m不再是数值,而是点,请注意的是你要生成的东西,和变量初始值必须是同一类东西才行。
下边相对复杂一点了,正方形迭代图:

A = (2, 2)
B = (-2, 2)
f = 线段(A, B)
k = 0.08
n = 16
l1 = 迭代列表(线段(描点(m, k), 描点(线段(顶点(m, 2), 顶点(m, 2) + 法向量(m)), k)), m, {f}, n)
l2 = 映射(多边形(顶点(m, 1), 顶点(m, 2), 4), m, l1)
在这个l1中,迭代变得复杂点,主要是我们把若干命令整理到一个表达式中了,它是这么一个过程:
C = 描点(f, k)
g = 线段(B, B + 法向量(f))
D = 描点(g, k)
h = 线段(C, D)
E = 描点(h, k)
..........................................

上述命令除最后一条,组合在一起,就是迭代列表中的表达式了,只是把变量,有明确名称的点换成通用表达。
当然,在使用迭代列表时,我们有时候要迭代出来的东西,不太可能整合成一个表达式,这个时候可以使用自定义工具来协助了,如下勾股树的生成,我们先定义一个自定义工具,取名叫“生成元”:

这个工具输入参数是a和poly3,输出为lst2
然后我们用迭代列表来生成勾股树:
a = 0.6
n = 4
poly1 = 多边形((1, 0), (3, 0), 4)
L = 合并(迭代列表(合并(映射(生成元(p, a), p, lst)), lst, {{poly1}}, n))

其中映射最好理解,从一个列表,通过运算到另一个列表,元素是一一对应关系,如列表l1={A,B,C,D,E,F},用这5个点画5个单位圆:
映射(圆周(m,1),m,l1)
它的使用是不需要元素序数参与计算时非常简捷。
再来说序列,这是GeoGebra中用的最多的命令,需要元素序数参与计算时,就用使用“列表”命令了,如不使用折线命令的情况下,把l1={A,B,C,D,E,F}五个点用线段连起来:
序列(线段(l1(m),l1(m+1)),m,1,长度(l1)-1)
这里用来元素的序数了,因此用上了"序列"命令。
最不好理解或者不易掌握的是迭代列表,生成元素与上一个元素或者上几个元素有关时,用迭代列表,这个几句话也说不清,先举个迭代中最常用的斐不拉其数列:
l3 = 迭代列表(a + b, a, b, {1, 1}, 10)
其结果是:
{1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89}
前两元素相加,得后一元素,依此类推,其中a+b为表达式,a,b为变量,{1,1}为a、b初始取值,必须是列表形式给出,10为迭代次数。
当然,GeoGebra不仅可以对数值进行迭代,它可以是其它几何对象,如下有A、B两点,从A点出发,求出AB中点C后,用C代替A,继续求CB中点,一直重复6次。

l4 = 迭代列表(中点(m, B), m, {A}, 6)
这里的变量m不再是数值,而是点,请注意的是你要生成的东西,和变量初始值必须是同一类东西才行。
下边相对复杂一点了,正方形迭代图:

A = (2, 2)
B = (-2, 2)
f = 线段(A, B)
k = 0.08
n = 16
l1 = 迭代列表(线段(描点(m, k), 描点(线段(顶点(m, 2), 顶点(m, 2) + 法向量(m)), k)), m, {f}, n)
l2 = 映射(多边形(顶点(m, 1), 顶点(m, 2), 4), m, l1)
在这个l1中,迭代变得复杂点,主要是我们把若干命令整理到一个表达式中了,它是这么一个过程:
C = 描点(f, k)
g = 线段(B, B + 法向量(f))
D = 描点(g, k)
h = 线段(C, D)
E = 描点(h, k)
..........................................

上述命令除最后一条,组合在一起,就是迭代列表中的表达式了,只是把变量,有明确名称的点换成通用表达。
当然,在使用迭代列表时,我们有时候要迭代出来的东西,不太可能整合成一个表达式,这个时候可以使用自定义工具来协助了,如下勾股树的生成,我们先定义一个自定义工具,取名叫“生成元”:

这个工具输入参数是a和poly3,输出为lst2
然后我们用迭代列表来生成勾股树:
a = 0.6
n = 4
poly1 = 多边形((1, 0), (3, 0), 4)
L = 合并(迭代列表(合并(映射(生成元(p, a), p, lst)), lst, {{poly1}}, n))
