S5R1 圓內(nèi)的迭代反射
從圓內(nèi)發(fā)射一個入射角為 10 度的光線,經(jīng)過幾次后會反射為原出發(fā)點呢?如何用GGB來實踐問題呢?在這個案例要帶大家體驗的就是問題拆解的方法。

若是第三季就加入學(xué)用數(shù)學(xué)的老用戶,就知道這是第三季的初始任務(wù)。而這也是第五季的第三系列復(fù)習(xí)課程編號將從 S5R1-S5R4。有興趣想回顧前三季課程的可以從以下鏈接來回顧。
第一季:https://shimo.im/docs/Gdtg13sn1vQmEsAQ
第二季基礎(chǔ)課:https://shimo.im/docs/g3xwJMFi8ZABFglM
第二季專題課:https://shimo.im/docs/nj6m3jQgJ6MJSibp
第三季:https://docs.qq.com/doc/DSWl6UlFzc2h6SXhM
你將學(xué)會
本節(jié)最主要的是問題拆解方法,關(guān)于用到的核心指令如下:
迭代列表 IterationList
序列 Sequence
對稱?Reflect??
先備課程
若你對 Sequence 不熟悉,推薦可看以下視頻

若你對 IterationList??還不熟悉,推薦可看以下視頻

問題拆解
2 入射角與點位置的關(guān)系

問:這個圖形的變數(shù)是什么?常數(shù)是什么?
答:變數(shù)為入射角的角度 inDeg。固定的為起始點 P0。?
# 建立初始圓?
O = (0,0)
Circle(O,1)
P0 = (1,0)
# 建立滑動條
inDeg?=?Slider(0,30,1)

問:入射角為 15 度時,第一個點 P1 的位置在哪?
答:利用圓心角與圓周角的關(guān)系,可得到 P1 的極坐標角度為 180-15x2 。
#?表示入射角與點
inAngle = inDeg/180*pi
P1?=?(1;pi?-?2*inAngle)
#?表示向量、邊與角
v1?=?Vector(P0,P1)
Segment(O,P1)
Angle(O,P1,P0)?
3 利用反射產(chǎn)生點

問:如何描述反射后點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 反復(fù)操作。迭代的方式為 P_2 = Reflect( P_0, line(O,P_1))?。在下式的迭代列表指令中,表示? a=P0, P2=P1,迭代的結(jié)果為 Reflect(a,line(O,b)) , 共迭代 n 次。
問:IterationList 的結(jié)構(gòu)為何?
答:IterationList(迭代指令, 迭代變數(shù),{變數(shù)初始值},迭代次數(shù))?
n?=?Slider(1,30,1)
Ps?=?IterationList(Reflect(a,line(O,b)),a,b,{P0,P1},n)
5 用序列產(chǎn)生邊列

問:如何建立多邊連線?Vector(Ps(0),Ps(1)),?Vector(Ps(1),Ps(2))??
答:用序列 Sequence 達成連線、將點列Ps的參數(shù)設(shè)定為 k ,k+1 ,并將 k 設(shè)定范圍從 1 到 k。
Vs?=?Sequence(Vector(Ps(k),Ps(k+1)),k,1,n)
6?數(shù)學(xué)分析

問:如何分析入射角為 10 度的反彈次數(shù)?
答:先觀察 P0, P1 在圓周上的位置。可看到其圓心角度為 160 度。而 P1, P2 的夾角也是如此。經(jīng)過 n 次反射后,相當(dāng)于角度轉(zhuǎn)了 160*k 次。而當(dāng)回到原點時,表示 160*n = 360k。因此,可得到 n 為 9。其計算方式就是 360 除以 160 與 360 的最大公因數(shù)。?
問:??每次點的角度偏移 180-2*inDeg 。是否 Ps 可用 Sequence 來達成呢?
答:對于 Ps 可用 Sequence( (1; k*(180-2*inDeg)),k,1,n) 來達成。
總結(jié)回顧
這節(jié)最想與大家分享的是我在做這題的思路分析。我當(dāng)初看到這題時,我是如何將他轉(zhuǎn)為 GGB 交互課件的。通過分析反射行為后,其實發(fā)覺關(guān)鍵就是一句迭代就可講清楚。通過這次操作我也是體會到數(shù)學(xué)迭代在使用上的方便之處。
對于初學(xué)者而言,我希望可以體會到這題用到 Sequence 與 IterationList 的差異。這其實對應(yīng)到數(shù)學(xué)的通項公式與遞回關(guān)系式。同時鼓勵去參考畢氏螺線的這個課件。這課件也是體現(xiàn) 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