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

S5R1 圆内的迭代反射

2022-03-06 19:08 作者:学用数学  | 我要投稿

从圆内发射一个入射角为 10 度的光线,经过几次后会反射为原出发点呢?如何用GGB来实践问题呢?在这个案例要带大家体验的就是问题拆解的方法。

若是第三季就加入学用数学的老用户,就知道这是第三季的初始任务。而这也是第五季的第三系列复习课程编号将从 S5R1-S5R4。有兴趣想回顾前三季课程的可以从以下链接来回顾。

第一季:https://shimo.im/docs/Gdtg13sn1vQmEsAQ

第二季基础课:https://shimo.im/docs/g3xwJMFi8ZABFglM

第二季专题课:https://shimo.im/docs/nj6m3jQgJ6MJSibp

第三季:https://docs.qq.com/doc/DSWl6UlFzc2h6SXhM


你将学会

本节最主要的是问题拆解方法,关于用到的核心指令如下:

  • 迭代列表 IterationList

  • 序列 Sequence

  • 对称 Reflect  

先备课程

若你对 Sequence 不熟悉,推荐可看以下视频


若你对 IterationList  还不熟悉,推荐可看以下视频


问题拆解

2 入射角与点位置的关系


问:这个图形的变数是什么?常数是什么?

答:变数为入射角的角度 inDeg。固定的为起始点 P0。 

# 建立初始圆 

O = (0,0)

Circle(O,1)

P0 = (1,0)

# 建立滑动条

inDeg = Slider(0,30,1)

问:入射角为 15 度时,第一个点 P1 的位置在哪?

答:利用圆心角与圆周角的关系,可得到 P1 的极坐标角度为 180-15x2 。

# 表示入射角与点

inAngle = inDeg/180*pi

P1 = (1;pi - 2*inAngle)

# 表示向量、边与角

v1 = Vector(P0,P1)

Segment(O,P1)

Angle(O,P1,P0) 


3 利用反射产生点

问:如何描述反射后点P2的位置?

答:利用对称,P2 为 P0 对直线 OP1 的对称点。

# 第一个反射点

P2 = Reflect(P0, Line(O,P1))

v2 = Vector(P1,P2)

# 下一个反射点

P3 = Reflect(P1, Line(O,P2)

)v3 = Vector(P2,P3)


4 迭代列表


问:如何快速建立多个反射点?

答:利用 IterationList 反复操作。迭代的方式为 P_2 = Reflect( P_0, line(O,P_1)) 。在下式的迭代列表指令中,表示  a=P0, P2=P1,迭代的结果为 Reflect(a,line(O,b)) , 共迭代 n 次。

问:IterationList 的结构为何?

答:IterationList(迭代指令, 迭代变数,{变数初始值},迭代次数) 

n = Slider(1,30,1)

Ps = IterationList(Reflect(a,line(O,b)),a,b,{P0,P1},n)


5 用序列产生边列


问:如何建立多边连线 Vector(Ps(0),Ps(1)), Vector(Ps(1),Ps(2)) ?

答:用序列 Sequence 达成连线、将点列Ps的参数设定为 k ,k+1 ,并将 k 设定范围从 1 到 k。

Vs = Sequence(Vector(Ps(k),Ps(k+1)),k,1,n)


6 数学分析


问:如何分析入射角为 10 度的反弹次数?

答:先观察 P0, P1 在圆周上的位置。可看到其圆心角度为 160 度。而 P1, P2 的夹角也是如此。经过 n 次反射后,相当于角度转了 160*k 次。而当回到原点时,表示 160*n = 360k。因此,可得到 n 为 9。其计算方式就是 360 除以 160 与 360 的最大公因数。 


问:  每次点的角度偏移 180-2*inDeg 。是否 Ps 可用 Sequence 来达成呢?

答:对于 Ps 可用 Sequence( (1; k*(180-2*inDeg)),k,1,n) 来达成。


总结回顾

这节最想与大家分享的是我在做这题的思路分析。我当初看到这题时,我是如何将他转为 GGB 交互课件的。通过分析反射行为后,其实发觉关键就是一句迭代就可讲清楚。通过这次操作我也是体会到数学迭代在使用上的方便之处。

对于初学者而言,我希望可以体会到这题用到 Sequence 与 IterationList 的差异。这其实对应到数学的通项公式与递回关系式。同时鼓励去参考毕氏螺线的这个课件。这课件也是体现 Sequence 与 IterationList 的差异。 


参考连接

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

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

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



S5R1 圆内的迭代反射的评论 (共 条)

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