日期:2019/11/9
前言
有時候選擇題會以五張不同的函數圖形作為選項,之前我是用 LibreOffice Draw 的繪圖工具畫好圖形之後再加上選項標籤,最後將五張函數圖形以及選項標籤匯出成一張圖片。下圖是我用 LibreOffice Draw 繪製的選項,題目是要選出自由落下的小球觸地時發生彈性碰撞的v-t圖,但是選項中的曲線畢竟是手動繪製的,只能算是示意圖。如果對於圖形的精準度要求不高,這樣的作法應該可以符合需求,但如果需要畫出精準的函數圖形,LibreOffice Draw 就不太適合了。
使用 LibreOffice Draw 繪製的函數圖形選項
於是我試著改用 NumPy 計算函數值,再用 Matplotlib 中的 subplots 將圖形及標籤一口氣畫好,以下是實際出題的例子。
使用 NumPy + Matplotlib 繪製都卜勒效應題目的選項
試題
假設聲源發出的聲波頻率為 1000 Hz,空氣中的聲速為 340 m/s,下表中是兩種不同狀況下觀察者觀測到的聲波頻率,單位為 Hz。狀況 I:聲源移動速度為 v 接近靜止的觀察者;狀況 II:觀察者移動速度為 v 接近靜止的聲源。下列的 5 張圖形中,請問何者最符合表格中數據?
v (m/s) | 0 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 |
狀況 I 測到的聲波頻率 (Hz) | 1000.0 | 1014.9 | 1030.3 | 1046.2 | 1062.5 | 1079.4 | 1096.8 | 1114.8 | 1133.3 |
狀況 II 測到的聲波頻率 (Hz) | 1000.0 | 1014.7 | 1029.4 | 1044.1 | 1058.8 | 1073.5 | 1088.2 | 1102.9 | 1117.6 |