熱門文章

2020年8月10日 星期一

縱波示意圖

作者:王一哲

日期:2020/8/10

本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案。

原理

縱波 (longitudinal wave) 又稱為疏密波,波的前進方向與介質振動方向平行,介質於平衡點附近來回振動,不會隨著波一起前進。通常我們會用很多的橫線表示介質所在的位置,藉此表現出介質疏密程度的變化。
縱波示意圖動畫 (沒有畫出平衡點)

縱波示意圖動畫 (畫出平衡點)

繪圖步驟

  1. 於指令列中依序輸入以下指令定義數值
    1. 振幅 A = 1
    2. 週期 T = 2
    3. 波長 λ = 4
    4. 波的數量 N = 10
    5. 每個波長裡面畫的線條數量 num = 16
    6. 角波數 k = 2 * π / λ
    7. 角頻率 ω = 2 * π / T
  2. 於指令列中輸入以下指令新增數值拉桿定義時間 t。
    t = Slider(0, T, 0.02*T)
    
  3. 於指令列中輸入以下指令新增代表位移的函數圖。
    displace = If(0 <= x <= N*λ, A*sin(k*x - ω*t))
    
  4. 於指令列中輸入以下指令新增代表密度的函數圖。
    density = If(0 <= x <= N*λ, A*sin(k*x - ω*t - π/2) - 3*A)
    
  5. 於指令列中依序輸入以下指令繪製代表縱波的線段。
    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)
    
  6. 於指令列中依序輸入以下指令繪製代表介質平衡位置的線段。
    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)
    
  7. 新增勾選框,用來控制是否顯示平衡位置。
  8. 新增勾選框

  9. 用文字工具加上說明。
縱波示意圖動畫 (畫出平衡點)

相關指令的官方說明書

  1. 數值滑桿 https://wiki.geogebra.org/en/Slider_Command
  2. 條件 https://wiki.geogebra.org/en/If
  3. 序列 https://wiki.geogebra.org/en/Sequence_Command
  4. https://wiki.geogebra.org/en/Point_Command
  5. 線段 https://wiki.geogebra.org/en/Segment


HackMD 版本連結:https://hackmd.io/@yizhewang/ByQ0YM0bD

沒有留言:

張貼留言