作者hitr (Wasserstoff Atom)
看板NTUEE111HW
標題電磁學習題課--Matlab
時間Mon Apr 20 22:19:20 2009
[廣告]
從這個禮拜三的習題課(4:30-5:20pm BL-113)開始
連續大約兩到三週 會有一系列談"用Matlab寫程式解決問題"的lectures
它的主題是"寫程式來解決問題"
方式是 用一個具體的問題
--林怡成老師班Ch2作業的Bonus Problem:
計算要讓載流線圈浮在超導體上所需的電流大小
來看 如果你有Matlab當作程式語言 你要怎麼樣用Matlab來解決這個問題
所以 重點是希望可以和你分享
當你有了電腦這麼好的工具 它怎麼樣能幫助你去想一個問題
如果你有興趣 不管你是哪一個班 都歡迎你來聽
我不一定可以教得很好 但我會試著盡量把東西講清楚
--------
[閒聊]
林怡成老師建議我可以在習題課上講一下Bonus Problem
我想 這是一個好機會 就藉這個具體的問題來講 "怎麼樣寫程式來解決問題"
因為我覺得 大部分的學生在大一修完一學期的計算機程式之後
就不會再去寫程式了
有寫程式也多半是上CS相關的課程 像是資料結構 網路多媒體實驗...等等
這很可惜 因為寫程式就變成了是一種與生活無關的東西
學過之後就束之高閣 我們也不知道要寫程式來幹嘛
我覺得有部分的原因是 我們學的是C++
雖然它在資訊工程的領域裡面是一種高階的語言
但是就學習工程或者科學的學生來講
它仍然帶來了像是資料形態 資料結構 記憶體配置...等等這些"障礙"
把它們叫做"障礙" 是因為它們和你要解決的問題 本質上是無關的
--你想要算兩個線圈之間的磁力 你要算的是畢歐沙乏定律
要想辦法算磁場分布 算磁力 解平衡時候的條件...等等
或者是怎麼樣計算磁場的向量位 取curl 得到磁場得分布...
如果你要用C++來寫 這當然是困難的
要會很多東西 寫很多東西之後 才能解決這個問題
你要一一指揮電腦做很多細節的工作
但是 如果你可以用Matlab 或是Mathematica等等"更高階"的程式語言來寫
你寫程式的過程就會變成像是:
第一個程式: 計算一個線圈在空間中產生的磁場
第一行: 寫出線圈的電流分布
第二行: 寫出電流到空間中某一點的距離
第三行: 積分, 算出電流在那一點產生的磁場
第二個程式: 給定磁場, 計算一個線圈在這個磁場裡所受的磁力
第一行: ...
你的程式(和用C++寫比起來)會變得很單純
你所寫的大部分內容 所花的時間 所想的
都專注在這個問題的本質上面
它可以幫你把用在"程式設計"上的勞動工作降到最低
你可以把力氣用在"怎麼樣去想這個問題"和"用什麼方法解決這個問題"上面
這樣一來 電腦就變成你的得力助手
只要你有想法 你就有信心可以用電腦幫你實現
這不是一件很快樂的事情嗎?
那時候你會覺得 學寫程式是很有價值的事情
C++當然重要 當然也是好語言
但是那比較像是為了"軟體開發"而準備的
我覺得那就好像是我們大一學微積分的時候
一開始都要教集合 極限 epsilon 大於小於絕對值等等這些東西
這樣看起來很嚴謹 很有架構
但是對於工程和科學的學生來講 那是pointless
因為微積分對科學和工程來講 最重要的貢獻是怎麼樣列式 怎麼找出答案
那裡面有很多漂亮的想法 而不只是純數學的那種漂亮
所以理應 對於不同科系的學生 我們應該有不同的教法
(當我看到管理學院或社會學院的學生在教室裡
聽教授在黑板上叩叩叩的寫著epsilon delta的時候
都覺得很不忍心...他們不用受那樣的苦!)
同樣的道理 學寫程式也是一樣
以前我也曾經教過寫程式 像是之前擔任控制系統助教的時候
因為我自己最熟悉的語言是Mathematica
所以以前我都是教Mathematica
我也覺得它的確是比較flexible 接近白話文的程式語言
--整個程式寫下來 可以像是一篇文章一樣 很容易讀懂
但是可能是因為很少人有這個軟體
整個學校裡面也沒有公用電腦提供這個軟體
在電機系 大家都流行用Matlab
所以學過之後也沒有什麼機會刺激你繼續使用
因此這次我想 沒關係 就用Matlab來教
這樣也許比較容易接受 你以後也比較有機會可以用到
當然我就必須重新學(我很少用Matlab)
所以很抱歉 我寫Matlab的年資很淺 不像Mathematica那麼熟練
可能同樣的問題 你可以寫得更好
但是我想沒關係 因為我的重點不在於Mathematica
用Matlab也可以呈現出我的想法
只要能讓你聽了以後覺得"原來程式可以這樣寫"
以後遇到問題的時候 你也許可以因此有不同的想法 而且有能力去實現它
那這個系列課程的目的就達到了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.19.155
※ 編輯: hitr 來自: 140.112.19.155 (04/20 22:25)
1F:推 gcmichael804:用心推 04/20 22:34
2F:推 drumstick:推~ 04/20 22:38
3F:推 yunmeow:推 04/21 00:28
4F:推 stonekuo:推!! 04/21 00:35
5F:推 chimat0814:推 04/21 00:50
6F:推 Geiwoyujie:推! 04/21 01:26
7F:推 whing1332:助教真用心 推!! 04/21 13:34
8F:推 sexysam:推!! 04/21 15:17
9F:→ kevin60105:也可以講一下這次的bonus 的 problem嗎 ~~ > < 04/22 00:07
10F:推 lee7938:推! 可是星期四還要考兩科... 04/22 13:50