楊光杰
摘 要:電磁場是一門教師難教、學生難學的課程,其內容中涉及較多的數學知識,例如矢量分析、微積分等。利用Matlab強大的數學功能,可以將學生從復雜的數學問題中解放出來,讓學生把精力放在對物理概念的認識理解上,從而使學生能夠抓住學習重點,起到良好的教學效果。
關鍵詞:電磁場;教學;Matlab
電磁場課程是電子、通信等專業學生的一門重要的基礎課,也是一些其他課程的基礎,例如微波與天線技術、衛星通信、光通信等。電磁場課程比較抽象,理論性強,并且用到了較多數學知識,例如矢量分析、微積分等,是一門教師難教、學生難學的課程。Matlab是一個優秀的數學軟件,為很多領域提供了工具函數包,功能強大,且使用非常方便。利用Matlab,可以使學生從復雜的數學問題中解放出來,把精力放在對物理概念的認識理解上,從而使他們能夠抓住學習重點,起到良好的學習效果。下面,簡述幾點Matlab在電磁場教學中的應用。
一、矢量場分析
利用Matlab的矢量分析函數,學生可以很方便地對矢量進行運算。在運算過程中,主要用到下面幾個函數:
點積:dot(A,B);
叉積:cross(A,B);
求模:norm(A);
其中,A、B是任意矢量。
例如,有矢量A=(1,2,3),B=(4,5,6),C(1,1,1),求 (1)矢量A的長度, (2)A·(B×C), (3)A×B×C。代碼如下:
A=[1 2 3];
B=[4 5 6];
C=[1 1 1];
norm(A)
dot(A,cross(B,C))
cross(cross(A,B),C)
二、場的梯度、散度、旋度的計算
利用Matlab的符號運算功能,學生還可以進行符號微分和積分。因為梯度、散度、旋度都是微分算子,所以,可以考慮用符號微分進行計算。例如一矢量場F=(3y2-2x)x+x2y+2zz,求F的散度與旋度,代碼如下:
syms x y z
F=[3*y^2-2*x, x^2, 2*z];%--
divF=diff(F(1),x)+diff(F(2),y)+diff(F(3),z)
rotF=[diff(F(3),y)-diff(F(2),z),diff(F(1),z)-diff(F(3),x),diff(F(2), x)-diff(F(1),y)]
三、圖形功能
學生在學習過程中會發現:場的分布比較抽象,利用Matlab強大的繪圖功能,可以把一些矢量分布圖畫出來,這樣可以幫助我們理解。例如,畫出點電荷的電場分布,代碼如下:
r=1;
i=0;
for theta=(0:20:180)*pi/180
i=i+1;
j=0;
for phai=(0:20:360)*pi/180
j=j+1;
X(i,j)=r*sin(theta)*cos(phai);
Y(i,j)=r*sin(theta)*sin(phai);
Z(i,j)=r*cos(theta);
end
end
surf(X,Y,Z,0*Z);
hold on;
quiver3(X,Y,Z,X,Y,Z);
此外,用Matlab進行電磁場的數值分析也很方便,例如有限差分法等。在學習過程中,如果我們合理地使用數學工具,就可以簡化學習過程,加深對物理現象的認識,這將起到良好的教學效果??傊?,只要學生積極思考、認真探索,充分利用各種方式進行學習,再難的課也能學好。
參考文獻:
[1]謝處方,饒克謹,楊顯清.電磁場與電磁波[M].北京:高等教育出版社,2006.
[2]王沫然.MATLAB與科學計算[M].北京:電子工業出版社,2005.
[3]劉衛國.Matlab程序設計與應用[M].北京:高等教育出版社,2006.
[注:本文獲得桂林理工大學科研啟動基金(002401003291)資助]
(桂林理工大學信息科學與工程學院)