熱門文章

2012年4月9日 星期一

用gnuplot繪製圓形駐波

作者:王一哲
日期:2012/4/9




前言


現在出版社都會找各校的老師寫一些專刊,最近看到一篇蠻有趣的文章:

徐世昌與徐國誠(2012)。用Excel操縱電子的駐波。全華TopLine物理專刊5,1-8。

文章中是利用Excel,用描點的方式把圓形駐波畫出來。於是我就想到之前用過的函數繪圖軟體 gnuplot,用它應該也能做到同樣的效果,而且會比描點的方式還方便,今天花了幾個小時終於把它弄出來了。




繪圖方法


首先,我們需要畫出一個圓形,接著在圓周上畫兩個反相的sin波,這兩個函數可寫成

$$
r = R + A \sin(n \theta)
$$



$$
r = R - A \sin(n \theta)
$$

以下是我用來繪製圖形的gnuplot檔:

# 用來繪製圓形駐波
# Author: 王一哲
# Date: April 9, 2012

reset #恢復預設值
set size square #設定圖形為方形
set key off #不顯示圖例
unset border #不顯示邊框
unset xtics #不顯示x軸
unset ytics #不顯示y軸

set style line 1 linecolor rgb "red" linewidth 2
set style line 2 linecolor rgb "green" linewidth 2
set style line 3 linecolor rgb "blue" linewidth 2
#設定線條顏色及寬度,上一行可用縮寫 lc=linecolor lw=linewidth
#rgb可用的顏色至少有red, green, blue, yellow, gold, purple, sea-green
set style increment user #線條格式採用自訂值
set polar #設定為極坐標繪圖,預設的變數為"t"

n=9 #設定主量子數
R=10 #設定圓半徑
A=R*0.1 #設定圓周上起伏的程度

set title "N=".n #"設定標題為"N=n", n為主量子數
f1(t)=R+A*sin(n*t) #設定在圓周上起伏的函數1
f2(t)=R-A*sin(n*t) #設定在圓周上起伏的函數2,與f1(t)反相
f3(t)=R #圓形

set terminal png #設定輸出格式為png
set output "circle-sw.png" #設定輸出檔名
plot f1(t),f2(t),f3(t)

set terminal svg #設定輸出格式為svg
set output "circle-sw.svg" #設定輸出檔名
plot f1(t),f2(t),f3(t)



若將以上的內容另存為circle-sw.gp,接著只要在文字介面中輸入

gnuplot circle-sw.gp

便會自動畫出 circle-sw.pngcircle-sw.svg 兩個檔案。以下是我畫出來的圖片


n = 1






n = 2




n = 3




n = 4




n = 5




n = 6




n = 7




n = 8




n = 9



延伸閱讀


若對gnuplot有興趣的讀者,可以參考以下幾個網頁

  1. gnuplot官方網頁 http://www.gnuplot.info/
  2. gnuplot的範例 http://gnuplot.sourceforge.net/demo/





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

6 則留言:

  1. Mr. Wang

    我是成淵高中的徐國誠,也就是「用Excel操縱電子的駐波」一文的作者之一,很高興看到您的blog,也很高興看到您用不同的方式畫出電子的駐波。其實繪圖的方式很多,有一種更方便的就是直接在繪圖軟體上輸入函數,再輸入繪圖的坐標區間就可以了。文章之所以用Excel是因為大家對Excel很熟悉,若是介紹其他的繪圖軟體,恐怕大家連看都不想看。

    敬祝 教安
    國誠 敬上

    回覆刪除
    回覆
    1. 國誠老師您好:

      沒想到文章的原作者會到這留言,這真是我的榮幸。寫這類的文章不但內容要有趣,還要考量讀者的接受度,實在很不容易,很期待您之後的新作品。

      敬祝 教安
      一哲 敬上

      刪除
  2. 一哲老師

    謝謝您的誇獎!有興趣大家可以研究研究。

    看您blog的其他文章,您應該還算年輕,教書生崖才剛開始沒多久,加油吧!我已經教了二十年,興趣就是寫寫物理文章,或是對物理試題作一些評析,前一篇文章是登在大考中心的「選才電子報」第200期,有興趣可以上去看看,網址是:http://www.ceec.edu.tw/CeecMag/Articles/200/200-05.pdf

    祝 好
    國誠

    回覆刪除
    回覆
    1. 國誠老師您好:

      如果連實習那年也算進去,我教書還不到四年,還有很多東西要學習。前幾年為了考教師甄試,大部分的時間都在做題目,現在大部分的空閒時間在做對岸的高考題,也學到了不少東西。希望我在二十年後還能像老師一樣不斷進步,做出更多有趣的東西。

      老師在這篇文章中所討論的題目,我之前和另一位學長也討論過,不過我們沒有做這麼詳盡的分析,感謝老師的分享。


      敬祝 教安
      一哲 敬上

      刪除
  3. 一哲老師

    其實那一題指考題困擾了我大概有5個月之久,一開始我是想要推翻大考中心的答案,同時也在思考如何計算半圓皿外的波程差,不過最後反而好像在為大考中心背書似的。本來最後一段我有向大考中心建議一些東西,只是大考中心認為不符他們的作業程序,最後刪掉了,所以文章好像就草草結束了。

    您在網誌上處處透露出教學熱忱,這一點非常不簡單,好好保持下去,您會成為一位優秀的老師。以後我會時常抽空逛逛您的blog!

    國誠

    回覆刪除
    回覆
    1. 國誠老師您好:

      感謝您深入研究這個題目,這篇文章使我獲益良多。

      我會努力保持教學的熱忱,希望每天都能有一點進步。至於blog上的文章,有時候我想不到要寫什麼,可能會很久才更新一次,甚至超過一個月沒更新都是常有的事。

      敬祝 教安
      一哲 敬上

      刪除