置頂

我的 VPython 教學文件 (HackMD 版本)

VPython 教學文件目錄 安裝及測試 基本語法 等速度直線運動 自由落下 終端速度 水平抛射 使用For迴圈計算水平抛射資料 斜向抛射 圓周運動 簡諧運動 單擺 木塊彈簧系統分離 重力及簡諧 行星運動 相疊木塊 雙重簡諧運動 一維彈性碰撞 ...

熱門文章

2018年2月6日 星期二

反射定律

反射定律
 日期:2018/2/6
由於 GeoGebra 中有畫垂直線和線對稱的工具,理論上用 GeoGebra 畫光的反射應該會是一件很簡單的事情,只是沒想到還是需要多花點時間調整圖才會好看,以下是2個例子。

反射定律示意圖繪圖步驟

1. 選取新點工具,用滑鼠在繪圖區上畫出點A、B。在這裡不要用指令畫點,因為輸入指令時會指定點的位置,之後沒辦法用滑鼠拖曳改變點的位置。
2. 選取線段工具,用滑鼠左鍵在點A、B上各按一下。或是用指令
f = Segment(A, B)
將線段調粗、改為藍色當作平面鏡。
線段工具選單

2018年2月5日 星期一

惠更斯原理示意圖

惠更斯原理示意圖
 日期:2018/2/5
惠更斯原理(Huygens principle)在基礎物理1及選修物理上各會出現一次,雖然都只有定性敘述,但是為了解釋這個原理,我必須把圖畫得非常精準才行,下圖是我以前用  LibreOffice Draw 繪製的惠更斯原理示意。但是這個圖上每個元件的位置都要手動去調整,如果想要增加點波源的數量或是改變波長,等於整張圖都要重畫,因此我又想到用 GeoGebra 來畫類似的圖。
使用 LibreOffice Draw 繪製的惠更斯原理示意圖

2018年2月2日 星期五

水波節線、腹線

水波節線、腹線
 日期:2018/2/2
這是一個很常見的指考題:「假設在水波槽中有兩個同相的點波源,點波源間的距離為L,水波波長為λ,請計算水波槽上節線與腹線的數量分別為多少?」解答如下:「由於兩個波源同相,兩個水波在正中央的波程差為0,中央一定是腹線,由中央腹線向左右兩側移動λ/4會遇到節線,再移動λ/4會遇到腹線,按照這個規律就可以找到所有的節線及腹線。」但是否能用 GeoGebra 畫出答案呢?下圖就是最後的成果。我也有將檔案傳到 GeoGebra 的網站,可以直接在網頁上玩玩看https://ggbm.at/uSjh5KWT
L = 12、λ = 2 ~ 12 的節線、腹線位置

2018年2月1日 星期四

圓周上的駐波

圓周上的駐波
 日期:2018/2/1
我以前寫過一篇文章〈用gnuplot繪製圓形駐波〉,這裡面畫的圖是用在選修物理的內容:「用電子物質波形成駐波解釋電子的穩定態」,但是用 gnuplot 實在太像在寫程式,現在用 GeoGebra 反而簡單多了。
圓周上的駐波 n = 5

駐波

駐波
 日期:2018/2/1
我們在選修物理當中會學到繩子上的駐波,分為兩端皆為固定端或自由端一端固定一端自由兩種類型,利用行進波以及波的疊加兩篇文章中學到的內容,可以很簡單地就做出這兩種類型駐波的動畫。

兩端皆為固定端或自由端

  1. 插入控制整數 n 的數值拉桿,最小值1,最大值10,增加1。
  2. 設定以下的變數值:振幅 A = 2、繩子長度 L = 10、週期 T = 2*π、角頻率 ω = 2*π / T、波長 λ = 2*L / n,角波數 k = 2*π / λ。
  3. 插入控制相位差 δ 的數值拉桿,最小值0,最大值 2*π,增加 π/2。
  4. 插入控制時間 t 的數值拉桿,最小值0,最大值T,增加0.05,動畫速度2,重複設為遞增。
  5. 用以下指令設定函數
    f(x) = If(0 <= x <= L, A*sin(k*x - ω*t))
    g(x) = If(0 <= x <= L, A*sin(k*x + ω*t + δ))
    h(x) = f(x) + g(x)
  6. 當 δ = 0 時,兩端皆為固定端;當 δ = π/2 時,兩端皆為自由端。
  7. 開始動畫。
  8. 兩端皆為固定端、n = 1 的駐波

2018年1月30日 星期二

波的疊加

波的疊加
 日期:2018/1/30
雖然我已經教過3次選修物理,但是我依然很討厭畫波的圖形,尤其是波的疊加,要在黑板上把圖畫準實在太花時間了,所以我在2013年就寫了一篇文章介紹如何用 Scilab 製作波的疊加動畫。但是使用 Scilab 很像在寫 C 語言的程式碼,不是一般人能接受的,還好現在用 GeoGebra 就能輕鬆做到相同的效果。
用 Scilab 製作的波的疊加動畫

行進波

行進波
 日期:2018/1/30
當我每次教到選修物理波動這章時,總是要花費很多時間向學生解釋什麼是行進波,什麼是固定相位差。從上個學期開始,我乾脆直接用電腦畫給學生看,似乎學生的接受度有高一點。下圖為最終成果。
行進波範例

數值積分

數值積分
 日期:2018/1/30
我之前在寫利用 Excel 計算數值積分的文章時,為了畫出長方形法、梯形法的示意圖努力了很久,後來是用 Gnuplot 寫指令畫出來的,沒想到 GeoGebra 有內建指令可以畫出數值積分的圖,只要一行就解決了。以下的圖都是以 $f(x) = x^2 + \sin(2 \pi x)$ 為例,積分上、下限分別為2、-2,分割數量為20。

長方形法

指令1:RectangleSum(函數名稱, 積分下限, 積分上限, 長方形數量, 長方形對齊點)
其中長方形對齊點的數值為 0 ~ 1,0代表對齊函數左側,1代表對齊函數右側,0.5代表對齊函數中點。執行指令之後會畫出圖形並顯示計算結果。
RectangleSum(f, -2, 2, 20, 0.5)

2018年1月29日 星期一

函數繪圖

函數繪圖
 日期:2018/1/29
對於物理科而言經常要繪製函數圖形,在我就讀大學期間,我聽過能夠處理函數繪圖的軟體只有 Gnuplot、Mathematica、MATLAB。其中 Gnuplot 是自由軟體,但是要做任何事都要靠指令,另外兩套則是很貴的專業軟體,只拿來畫函數實在是大材小用。應該還有其它軟體,但我當然並沒有接觸到。直到我遇到 GeoGebra 之後,才發現原來有這麼方便的工具。

函數繪圖(不限制函數區間)

開啟 GeoGebra 之後在最下方的欄位中輸入函數的式子即可,例如
f(x) = sin(x)
按下 Enter 後就會出現以下的圖形。輸入指令時如果沒有加上 f(x) = ,GeoGebra 會自動給予名稱。
f(x) = sin (x)

安裝GeoGebra並繪製三角形重心

安裝GeoGebra並繪製三角形重心
 日期:2018/1/29

下載並安裝GeoGebra

GeoGebra 是一套基於 GPL 發行的數學動態繪圖軟體,主要是以 JAVA 和 HTML5 寫成的,我覺得目前的功能已經足以應付高中課堂的需求。以下是 GeoGebra 的首頁 ( https://www.geogebra.org/?lang=zh_TW ),上面3個項目 GeoGebra 繪圖計算機GeoGebra GeometryGeoGebra 立體繪圖是 GeoGebra 其中3種功能的線上版,可以不需要安裝軟體,直接在瀏覽器上面執行。但是我們想在電腦上安裝 GeoGebra ,請按右下角的 Downloads。在下載頁面當中有6種不同的軟體,我選擇的是最傳統的 GeoGebra Classic 5。
GeoGebra首頁