摘 要: 本文簡要介紹了MATLAB軟件的特點,分析了MATLAB的數值計算在處理物理問題中的應用,并給出了該軟件在物理問題計算與模擬應用中的編程示例和運算結果。
關鍵詞: MATLAB 大學物理教學 數值計算
計算機在大學物理教學中的應用已有二十多年的歷史了,其中大學物理試題庫為物理教學的客觀評價作出了貢獻。后來計算機設備越來越普及,多媒體電子教案被廣泛應用于課堂教學,使課堂教學變得更生動有效。
近幾十年來,計算機技術的廣泛應用已深入地影響到社會的各個方面,大大加快了社會的變革進程。使用MATLAB編程運算與手工計算的思路和表達方式完全一致,不像學習其它高級語言(如BASIC、FORTRAN和C等)那樣難以掌握。經過二十來年的完善和擴充,MATLAB的功能已大大增強,可用來求解各類學科的問題,包括物理、數學、信號與圖像處理、系統辨識、神經網絡等。隨著MATLAB版本的不斷升級,其所含工具箱的功能越來越豐富,應用范圍也越來越廣。
它的語法規則比BASIC、FORTRAN及C語言更簡單,編程特點更貼近解題人的思維方式和書寫習慣,即使低年級的大學生也很容易學會,這就在技術上為計算機數值解的廣泛應用掃清了障礙。
由于MATLAB是一種數據類型,一種標準的輸入輸出語句,不用指針,不需編譯,只需數個小時便可入門,容易學習和掌握。同時MATLAB具有強大的函數庫,具有調用方便、輸入簡潔、運算高效、內容豐富,并且很容易由用戶自行擴展的特點。用MATLAB編寫程序猶如在便條上列公式和求解。教學中使用MATLAB模擬物理現象無疑為我們解決上述問題提供了一種新的解決方法。
大多數傳統的大學物理習題常常是給定了已知條件求某個時間點或空間點的某個物理量,無法知道這個物理過程在時空中的變化情況,因而難以作深入的了解和研究。利用計算機的數值計算和作圖功能,可以很方便地模擬一些物理過程,為研究者提供豐富的信息。這里我要強調一下,利用MATLAB的作圖功能能夠模擬再現物理過程,但是MATLAB的圖形圖像處理依然是靠其自身強大的計算能力做出來的。有人認為MATLAB可以制作動畫,我覺得這不可取,MATLAB的特點是計算,其圖形表達也是以矩陣的形式儲存和計算的,所以MATLAB對于物理問題的求解和過程模擬是靠計算來實現的。
下面是一道拋體運動分析的問題。
在我方前沿陣地1000m遠處有一座高50m的山丘,山丘上建有一碉堡。求我方大炮在什么角度下以最小的速度發射炮彈就能摧毀目標?
對于這個問題我們可以利用運動學的知識進行求解,得到角度的最小值,如果我們利用MATLAB編寫如下程序:
clear
L=1000;g=9.8;h=50;
sita=[h/L:0.01:1.22];
asita=180*sita/pi
v0=L*sqrt(g/2)./((cos(sita)).*sqrt(L*tan(sita)-h));
plot(asita,v0)
axis([20 70 100 140])
xlabel(′發射角度′);ylabel(′發射速度/m/s′);
[V0,n]=min(v0)
angle=((n-1)*0.01+h/L)*180/pi
運行結果為:V0=101.5000;n=77,即在程序中n=7的V0為題目所求最小值,其結果是101.5000。同時也可以畫出角度與速度的關系圖,如圖1所示。
我們可以從圖上看出角度與速度的關系,在什么樣的角度下其命中目標所需要的初速度V0,為了進一步了解速度和角度的關系我們還可已在MATLAB程序運行后的數據庫(workspace)中查找角度和速度的一一對應的具體數值(圖2所示),這樣我們不僅可以計算出題目所需要的答案,而且能細致地了解不同角度是所需要的速度。
比如在靜電場場強計算中,圓環的電場強度和電勢分布的求解是非常重要的一個內容,我們可以利用MATLAB編寫如下程序來求解(圓環半徑設置為0.1,帶電量為1)。
R=0.1;
x=(-8:0.001:8)*R;
E=x./(R^2+x.^2).^(3/2);
V=1./sqrt(R^2+x.^2);
subplot(2,1,1)
plot(x,E,[-0.8 0.8],[0 0],′k′,[0 0],[-40 40],′k′)
xlabel(′x/m′);ylabel(′E/V/m′);
[Em,n]=max(E)
xm=R*((n-1)*0.001-8)
subplot(2,1,2)
plot(x,V,[0 0],[0 10])
xlabel(′x/m′);ylabel(′V/V′);
運行結果:
Em=38.4900 n=8708 xm=0.0707
其中Em為電場強度的最大值,最大值為Em=28.48000。n為圓環軸線上場強和電勢計算所選取點的個數,xm=0.0707是場強最大時的位置坐標。程序運行后還可以得到場強、電勢與坐標的關系圖,如圖3所示。這樣可以通過圖形直觀顯示出帶電圓環的場強與電勢的分布,我們可以通過修改圓環半徑和帶電量來計算其它帶點圓環的場強與電勢。同樣在MATLAB程序運行后,可以在workspace中查找n取之不同時所對應的坐標值,以及在對應坐標點的電場強度和電勢的值,如圖4所示,對于學生了解帶點圓環的電場強度和電勢的計算與分布有很好的輔助作用。
不是什么問題都去設計一個程序讓計算機解,但對那些通常的數學方法求解相當麻煩,計算量比較大的問題,采用計算機編程解法可讓學生從煩瑣的演算中解放出來,從而把精力放在物理問題的思考和研究上,這對物理教學是有好處的。
計算機數值模擬的研究方法已成為繼實驗研究和理論分析之外的第三種研究手段。在教材中適當引入計算機數值方法,實際上是把不同的科學研究方法融入教材,有助于將一些高深的物理概念深入淺出、形象生動地講清楚。
由于計算機技術的發展,已經有了一批像MATLAB這樣具有強大運算功能和作圖功能而又十分易學易懂的應用軟件,這就為物理教學引入計算機數值方法提供了技術保證。學校在與大學物理有關的許多課程(如高等數學、理論力學、電磁場等)在把MATLAB結合進教材方面都做了開創性的工作。特別是MATLAB早已成為科技人員從事科學研究和工程計算的重要工具。因此,作為培養未來工程技術人員的重要基礎課的大學物理課程有必要結合課程內容向學生介紹這一工具,并為今后解決更為復雜的實際問題打下基礎。另外,隨著計算機技術的發展與普及,許多學生在進入大學之后,很想盡快掌握計算機技術卻又不知從何下手,一部分學生往往把上機的時間消耗在打游戲或上網聊天上。教師給他們以正確的引導,讓他們把“玩”計算機的興趣與物理學習結合起來,可使他們在較短時間內學會一些MATLAB編程的基本方法,并產生較好的學習效果,這對理工科學生來說是非常有益的。
參考文獻:
[1]小波分析理論與Matlab7實現.電子工業出版社,2005.
[2]陳懷琛編著.MATLAB及其在理工科程中的應用指南.西安電子科技大學出版社,2000.
[3]Matlab在大學物理教學中的應用.山東建筑大學學報,2009,VOL24,(3).