置頂

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

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

熱門文章

2019年5月7日 星期二

於 Blogger 中插入 SVG 檔

作者:王一哲
日期:2019/5/7

SVG 的全名是 Scalable Vector Graphics,中文翻譯為可縮放向量圖形。如果用文字編輯器打開 SVG 檔,會發現它其實是一個純文字檔,所以 SVG 的圖片在縮放時不會模糊、失真,目前主流的瀏覽器皆支援 SVG 檔,但是要在 Blogger 的文章中插入 SVG 檔會有點麻煩。以下的方法主要是參考這篇文章 "Add/Embed SVG to Blogger website"。

將 SVG 檔上傳至存放圖片的網站


文章中使用的網站是 https://svgur.com/,但是我上傳的圖片無法顯示,於是我再找了另一個網站 https://sendeyo.com/en/。


https://sendeyo.com/en/



上傳檔案區塊

2019年4月21日 星期日

三角函數微分推導

作者:王一哲
日期:2019/4/12

由於高中物理課程中會用到三角函數微分,但是現行的數學教材中已經將這部分刪除,所以我將 $\sin x$ 及 $\cos x$ 對 $x$ 的微分推導過程整理在這篇文章中,希望對比較好學的同學能有一些幫助。

方法1:利用代數及極限運算


前置作業


由於三角函數微分的推導會用到以下兩個函數的極限值,需要先推導出來才行。
$$\lim_{x \rightarrow 0} \frac{\sin x}{x} = 1$$
$$\lim_{x \rightarrow 0} \frac{1 - \cos x}{x} = 0$$


請參考下圖,圖中的圓形半徑為 1,圓心角為 $x$,由於 $x$ 在第一象限中,所有的三角函數值皆為正值或零。



2019年4月11日 星期四

電磁波示意圖

作者:王一哲
日期:2019/4/11

本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案。
1. 電磁波示意圖 https://ggbm.at/aetrezwe
2. 電磁波示意圖(使用參數式) https://ggbm.at/j3zrheab




電磁波示意圖動畫




繪圖步驟


  1. 由於電場、磁場、電磁波前進方向三者互相垂直,必須開啟3D繪圖區才能顯示圖形,我們先由檢視 ⇒ 3D繪圖區或是快速鍵Ctrl+Shift+3開啟3D繪圖區。
  2. 先定義下列的變數:振幅 A = 2、波長 λ = 4、週期 T = 1、角波數 $k = \frac{2 \pi}{\lambda}$、角頻率 $\omega = \frac{2 \pi}{T}$。
  3. 新增代表時間 t 的數值滑桿,最小值為0,最大值為T,增量為0.01T,動畫效果預設為遞增。
  4. t = Slider(0, T, 0.01*T)
    
  5. 由於我希望電磁波沿著 +x 軸方向前進,若電場沿著 z 軸方向振動,則磁場必須沿著 y 軸方向振動,先用以下指令畫出磁場的波形。
  6. B(x) = If(0 <= x <= 3*λ, A sin(k*x - ω*t + 180°))
    
  7. 為了畫出磁場的振動位移,我先在 x 軸上每隔一段距離取一個點,將一個波長平均分為8等份,再於 B(x) 上畫出對應的點,最後用向量畫出箭頭。
  8. num = 4 * 2 * 3
    points = Sequence(Point({3*λ / num*i, 0, 0}), i, 1, num)
    points_B = Sequence(Point({3*λ / num*i, B(3*λ / num*i), 0}), i, 1, num)
    arrows_B = Sequence(Vector(points(i), points_B(i)), i, 1, num)
    

2019年4月7日 星期日

向量積

作者:王一哲
日期:2019/4/7

向量積 (vector product) 也稱為叉積 (cross product),在高中數學課本中被稱為外積,但是在數學上有另一個外積 (outer product),兩者是不同的。假設向量$\mathbf{a}$、$\mathbf{b}$分別定義為

$$\mathbf{a} = (x_1, y_1, z_1)$$
$$\mathbf{b} = (x_2, y_2, z_2)$$

則兩者的向量積為

$$\mathbf{c} = \mathbf{a} \times \mathbf{b} =
\begin{vmatrix}
\hat i & \hat j & \hat k \\
x_1 & y_1 & z_1 \\
x_2 & y_2 & z_2
\end{vmatrix}
= (y_1 z_2 - z_1 y_2, z_1 x_2 - x_1 z_2, x_1 y_2 - y_1 x_2)$$

相當於是向量$\mathbf{a}$、$\mathbf{b}$在空間中形成的平行四邊形的法向量。

本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案,網址為 https://ggbm.at/upfavbyq


向量積



2019年3月29日 星期五

帶電粒子在電場及磁場中的運動

作者:王一哲
日期:2019/3/29

題目


如下圖所示,在平行於$+y$方向上施加一強度為$E$的均勻電場,另在垂直射出紙面的方向上施加一強度為$B$的均勻磁場。起始時,有一質量為$m$、帶有正電荷$q$的質點,靜止放置在原點處。只受此電磁場的作用下(重力可不計),則在質點的運動過程中,下列敘述何者正確?【96指考單選6】
(A) 任何時刻質點的加速度朝向$+y$方向
(B) 任何時刻磁場對質點不作功
(C) 任何時刻電場對質點不作功
(D) 任何時刻磁場對質點的作用力為零
(E) 質點在此電磁場中的運動軌跡為圓形





解答


質點會同時受到靜電力及磁力的作用,兩者分別為

$$\mathbf{F_E} = q \mathbf{E} = (0, qE, 0)$$

$$\mathbf{F_B} = q (\mathbf{v} \times \mathbf{B}) \perp \mathbf{v}$$

  1. 質點的加速度方向會隨著速度而改變,當速度為0時磁力為0,只有$+y$方向的靜電力,因此加速度為$+y$方向;當質點有$+y$方向的速度時,就會受到$+x$方向的磁力作用而偏轉,(A)選項錯誤。
  2. 由於$\mathbf{F_B} \perp \mathbf{v}$,磁力不會對質點作功,(B)選項正確。
  3. 由於$\mathbf{F_E} = q \mathbf{E} = (0, qE, 0)$,除了質點速度正好與$+y$方向垂直時,靜電力會對質點作功,(C)選項錯誤。
  4. 由於$\mathbf{F_B} = q (\mathbf{v} \times \mathbf{B})$,(D)選項錯誤。
  5. 質點在此電磁場中的運動軌跡不會是圓形,(E)選項錯誤。



使用 VPython 模擬的結果


2019年3月21日 星期四

立方體電阻

作者:王一哲
日期:2019/3/21

題目


如下圖所示,每個電阻器的電阻值皆為$r$,若電流由A流入、由G流出,請問A之間的等效電阻值為何?





解答


由於電流$I$由A點流入之後,往B、D、E的電流皆為$I/3$,可以推測這三個位置等電位,同理可推C、F、H等電位,因此可以將電路圖化簡為下圖,AG之間的等效電阻值為
$$R_{AG} = \frac{r}{3} + \frac{r}{6} + \frac{r}{3} = \frac{5}{6} r$$




2019年2月11日 星期一

堅果雲Markdown

作者:王一哲
日期:2019/2/11

前言


Markdown 是一種語法相當簡單的標記語言,可以使用 LaTeX 編碼產生數學式子,也可以根據程式語言將程式碼自動上色,對於我這種經常寫數學式子和程式碼的人相當方便。當我可以用電腦上網時,我通常是用線上版的 HackMD,如果不能上網時則改用 Typora,至於在手機上則會用堅果雲Markdown。這是一款 Android 系統上的 Markdown 編輯器,不過這是由對岸的公司製作的軟體,這家公司主要的產品是雲端硬碟,網址為 https://www.jianguoyun.com/ ,如果能接受對岸的產品可以試用看看。



軟體介紹


使用界面


開啟軟體後,在畫面下方有五個選項:
  1. 最近:顯示最近使用的檔案
  2. 坚果云:開啟位於雲端硬碟的檔案
  3. +:新增檔案
  4. 本地:顯示手機上的檔案
  5. 设置:軟體選項




軟體畫面截圖


2019年2月4日 星期一

Matplotlib 繪圖技巧:三張小圖並列

作者:王一哲
日期:2019/2/4

以下是將在三張小圖並列在同一張圖中的作法,部分內容與〈Matplotlib 繪圖技巧:在同一張圖上繪製兩個函數、兩張圖並列〉相似,但使用兩種不同的作法。這次要畫的圖形是在人工神經網路中常用的激勵函數 (activation function):
$$sigmoid:~~~~~f(x) = \frac{1}{1 + e^{-x}}$$
$$ReLU:~~~~~f(x) = \left\{\begin{matrix}
0 & \mathrm{for}~x < 0\\ x & \mathrm{for}~x \ge 0 \end{matrix}\right.$$ $$tanh:~~~~~f(x) = tanh(x)$$
三種激勵函數圖形


2019年1月31日 星期四

108學測自然科物理試題解析

作者:王一哲
日期:2019/1/27

試題與詳解


  1. 恆星的表面溫度與呈現的星光顏色有關,當我們觀賞夜空中閃爍的恆星,可看出恆星的顏色有白、藍、黃、紅等。下列選項中,顏色產生的原理何者相同?
    (A) 恆星與煙花的火光
    (B) 紅色恆星與紅色的火星
    (C) 藍色恆星與藍色的花
    (D) 紅色恆星與火山熔岩發出的紅光
    (E) 藍色恆星與瓦斯燃燒發出的藍光

答案:D
層次:理解
難度:易
觀念:近代物理—黑體輻射
詳解:恆星表面發出的光可以視為標準的黑體輻射,火山熔岩是因為表面溫度很高而發出紅光,因此與恆星發出紅光的原理相同。


  1. 水深越深,波浪的行進速度越快,然而受海底地形起伏影響,當波浪向海岸傳播時,往往會因速度變慢而產生偏折的現象。圖中虛線為等深線,越靠近海岸水深越淺。灰色實線為海浪的波前,箭頭代表波浪的行進方向,假設海底地形變化皆相同,則下列選項何者為最可能的波浪傳播路徑?



答案:B
層次:應用
難度:易
觀念:波—折射
詳解:水波在較深處波速較快,因此當水波由較深處往較淺處前進時,是由波速較快處傳向波速較慢處,前進方向會偏向法線。


2019年1月14日 星期一

NumPy 筆記:平移陣列元素

前言


今天學生問了一個好玩的問題:如果使用已經建立了一個二維陣列,要怎麼做才能將所有的元素向某個方向平移?以下是我找到的作法,請注意,以下的程式碼都省略了 import numpy as np。

方法1:使用索引取出元素


產生陣列


首先我們產生一個 $9 \times 8$ 的陣列,為了一眼就看出每個元素原來的位置,我將第0列皆設定為個位數,第1列皆為1開頭,其餘依此類推。

m, n = 9, 8
a = np.zeros(m * n).reshape(m, n)

for i in range(m):
    for j in range(n):
        a[i][j] = i * 10 + j

print(a)

輸出為

[[ 0.  1.  2.  3.  4.  5.  6.  7.]
 [10. 11. 12. 13. 14. 15. 16. 17.]
 [20. 21. 22. 23. 24. 25. 26. 27.]
 [30. 31. 32. 33. 34. 35. 36. 37.]
 [40. 41. 42. 43. 44. 45. 46. 47.]
 [50. 51. 52. 53. 54. 55. 56. 57.]
 [60. 61. 62. 63. 64. 65. 66. 67.]
 [70. 71. 72. 73. 74. 75. 76. 77.]
 [80. 81. 82. 83. 84. 85. 86. 87.]]