欢迎光临散文网 会员登陆 & 注册

S7G6 序列与三角垛

2020-12-01 23:42 作者:学用数学  | 我要投稿


在数列这单元常见的图形数就是 1+2+3+..._n 这些三角数。若将这个往三维发展时,就是三角垛的问题。其中堆垛的数量就是 1+(1+2)+(1+2+3) +...+(1+2+3+...+n) 。在这节就将利用 Geogebra 的立体绘图区来图示这个三角垛堆。

三角垛堆的计算公式


补充 :三角垛级数的总和公式。

关于  1+(1+2)+(1+2+3) +...+(1+2+3+...+n)  这数列的总和公式可以参考如下图形说明。以 n = 4 为例,将 1+(1+2)+(1+2+3)+(1+2+3+4) 排成一个三角形。接着将这三角形旋转 120 度,可得另两个有这些数构成的三角形。将对应的位置作累加,可得每个位置的和都是 6,因此这旋转三次后的数字总和为 6*(1+2+3+4),所以,一堆的和为 (4*5*6)/(2*3) 。而将此推广到 n 层时,就可得到公式 n(n+1)(n+2)/(3*2*1)


三角垛堆的计算公式说明


任务一 利用双层序列来绘制三角形

利用双层序列来绘制三角形点列。


这节最主要利用双层序列来完成三角形点列的绘制,再使用双层序列要注意两个要点。一个是内层序列 i 的范围为从 0 到 n-1-j ,这时才会随着 j 的增大,让每一个横列的数量减少。另一个是利用 vx 与 vy 来控制点列延伸的方向。

PXs = Sequence( (i,0,0), i, 1, n-1 )

O = (0,0,0)

vx = Vector( (1,0,0) )

vy = Vector((1/2, 3**0.5/2, 0)

PXYs=序列(序列(O+i vx+j vy, i, 0, n-1-j), j, 0,n-1)


任务二 利用三层序列来绘制三角垛

SfPXYZs

在此节基于前一节的结果再往 vz 方向延伸。在往 k 延伸时,i,j 也要随之缩小。因此,i 的范围为 n-1-j-k。 而 j 的范围为 n-1-k。同时为了在点列上套上个圆球,先用 flatten 将三层序列 PXYZs 扁平化为 fPXYZs,接着再对  fPXYZs 作球序列 SfPXYZs。

PXYZs=Sequence(Sequence(Sequence(O+i vx+j vy+k vz,i,0,n-1-j-k),j,0,n-1-k),k,0,n-1)

fPXYZs = flatten(PXYZs)

SfPXYZs = Sequence(Sphere(fPXYZs(k),0.5),k,0.5,length(fPXYZs))

三层的点列 PXYZs


任务三 取得三角垛的截面

三角垛的横截面拆解


为了方便显示三角垛的截面,我们可对三层序列取得其中第 t 层序列 Pt,来作横截面,接着再对这截面作圆球序列即可得到截面上的圆球。

t = Slider(0,n,1,1,100)

Pt = Flatten(PXYZs(t))

SPt = Sequence(Sphere(Pt(k),0.5),k,1,length(Pt ))


三角垛的斜截面拆解

除了横截面外,还可沿斜切的方向来作分解。这时需要先重新定义三角垛的点列 QXYZs ,接着取得其斜截面而得到这结果。

s = Slider(0,n,1,1,100)

QXYZs=Sequence(Sequence(Sequence(O+vz k+vx i+(vy-vz) j,i,0,n-k-1),j,0,k),k,0,n-1)

Qs = Flatten(QXYZs(s))

SQs = Sequence(Sphere(Qs(k),0.5),k,1,length(Qs))


小结与讨论

这节主要练习三维序列的使用,在使用三维序列的关键在于练习每层范围的设定。此外,在安排三维中的三角锥中点的位置,利用向量来达成也体现向量工具的方便有用。


相关链接

【GGB】https://www.geogebra.org/m/aehckvcz 

【Bili】https://www.bilibili.com/video/BV1YK4y1f7FL 

【公众号文】https://mp.weixin.qq.com/s/3SmZig-DF2w8LwdQSz-HSA 

【youtube】https://www.youtube.com/playlist?list=PLXH05kw-i_5L9xMysZaKjju5ulOzEbSnv 


S7G6 序列与三角垛的评论 (共 条)

分享到微博请遵守国家法律