日期:2020/8/10
本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案。
原理
縱波 (longitudinal wave) 又稱為疏密波,波的前進方向與介質振動方向平行,介質於平衡點附近來回振動,不會隨著波一起前進。通常我們會用很多的橫線表示介質所在的位置,藉此表現出介質疏密程度的變化。Wikipedia 的縱波示意圖動畫,圖片來源為 https://upload.wikimedia.org/wikipedia/commons/6/62/Onde_compression_impulsion_1d_30_petit.gif
縱波示意圖動畫 (沒有畫出平衡點)
縱波示意圖動畫 (畫出平衡點)
繪圖步驟
- 於指令列中依序輸入以下指令定義數值
- 振幅 A = 1
- 週期 T = 2
- 波長 λ = 4
- 波的數量 N = 10
- 每個波長裡面畫的線條數量 num = 16
- 角波數 k = 2 * π / λ
- 角頻率 ω = 2 * π / T
- 於指令列中輸入以下指令新增數值拉桿定義時間 t。
t = Slider(0, T, 0.02*T)
- 於指令列中輸入以下指令新增代表位移的函數圖。
displace = If(0 <= x <= N*λ, A*sin(k*x - ω*t))
- 於指令列中輸入以下指令新增代表密度的函數圖。
density = If(0 <= x <= N*λ, A*sin(k*x - ω*t - π/2) - 3*A)
- 於指令列中依序輸入以下指令繪製代表縱波的線段。
subs = Sequence(Point({λ/num*i + 0.4*A*sin(k*λ/num*i - ω*t), 2*A}), i, 0, N*num) uppers = Sequence(Point({x(subs(i)), 4*A}), i, 1, N*num + 1) wave = Sequence(Segment(subs(i), uppers(i)), i, 1, N*num + 1)
- 於指令列中依序輸入以下指令繪製代表介質平衡位置的線段。
subs_2 = Sequence(Point({λ/num*i, 2*A}), i, 0, N*num) uppers_2 = Sequence(Point({λ/num*i, 4*A}), i, 0, N*num) equilibrium = Sequence(Segment(subs_2(i), uppers_2(i)), i, 1, num*N + 1)
- 新增勾選框,用來控制是否顯示平衡位置。
- 用文字工具加上說明。
新增勾選框
縱波示意圖動畫 (畫出平衡點)
相關指令的官方說明書
- 數值滑桿 https://wiki.geogebra.org/en/Slider_Command
- 條件 https://wiki.geogebra.org/en/If
- 序列 https://wiki.geogebra.org/en/Sequence_Command
- 點 https://wiki.geogebra.org/en/Point_Command
- 線段 https://wiki.geogebra.org/en/Segment
HackMD 版本連結:https://hackmd.io/@yizhewang/ByQ0YM0bD
沒有留言:
張貼留言