摘要:在多元微積分的教學中,正確繪制二元函數(shù)圖形對于理解空間曲面、空間曲線和重積分概念和提高計算技巧具有重要意義。利用MTALAB的給出一些典型的二元函數(shù)圖形和動畫例子,這些例子可以加深學生對概念的理解,提高學習興趣和教學效果。
關(guān)鍵詞:空間曲面;高等數(shù)學;教學改革
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2013)32-0175-03
眾所周知,在《高等數(shù)學》多元微積分的教學過程中,學生對空間曲面、曲線和區(qū)域的理解歷來是他們的學習難點,而“一幅好圖勝過千言萬語”。在教學過程中,我們發(fā)現(xiàn)如果教師能精心設(shè)計的一幅好的三維圖形或動畫,可使學生對空間曲面、曲線、梯度和重積分的概念理解達到豁然開朗、茅塞頓開的教學效果。
MATLAB作為最流行的通用科學計算軟件,具有強大的圖形可視化功能,可以做出非常精致的圖形。在多元微積分的教學中,通過繪制空間曲面和曲線的圖形,可使數(shù)學知識變得直觀生動,增強學生對數(shù)學的學習興趣,并為學生日后從事數(shù)學建模、科學與工程計算打下基礎(chǔ)。本文通過幾個例子和源代碼指出利用MATLAB繪制三維圖形、動畫以及一些需要注意的問題。
一、空間曲面的繪制
函數(shù)的空間圖形對于理解多元函數(shù)的許多相關(guān)概念極為重要,下面給出如何在MATLAB環(huán)境下繪制二元函數(shù)圖形的方法。二元函數(shù)一般可用surf和mesh命令繪出,有些需要參數(shù)化后再用這兩個命令,見下面例子。
例1:莫比烏斯帶。
莫比烏斯帶(M?搖bius strip或者M?搖bius band)是由德國數(shù)學家、天文學家莫比烏斯(August Ferdinand M?搖bius)和約翰·李斯?。↗ohhan Benedict Listing)在1858年獨立發(fā)現(xiàn)的,它只有一個面(表面)和一個邊界,可以用一個紙帶旋轉(zhuǎn)半圈再把兩端粘上之后輕而易舉地制作出來。事實上有兩種不同的莫比烏斯帶鏡像,他們相互對稱。如果把紙帶順時針旋轉(zhuǎn)再粘貼,就會形成一個右手性的莫比烏斯帶,反之亦類似。莫比烏斯帶可以按如下參數(shù)方程為:
x=(1+■cos■)cosu,x=(1+■cos■)sinu,0≤u<2π,-1≤v<1z=■sin■
這個方程組可以產(chǎn)生一個邊長為1半徑為1的莫比烏斯帶,所處位置為xOy面,中心為(0,0,0)。參數(shù)u在v從一個邊移動到另一邊的時候環(huán)繞整個帶子。
MATLAB源代碼:
clc,clear,close all
u=[0∶0.1∶2*pi];
v=[-1:0.1:1];%參數(shù)變量
n1=length(u);n2=length(v);
x=zeros(n1,n2);y=x;z=x;
hold on
for i=1:n1
for j=1:n2
?搖x(i,j)=(1+v(j)/2*cos(u(i)/2))*cos(u(i));
?搖y(i,j)=(1+v(j)/2*cos(u(i)/2))*sin(u(i));
?搖z(i,j)=v(j)/2*sin(u(i)/2);
?搖end
end
%由于旋轉(zhuǎn)2*pi,最后一行與第一行旋轉(zhuǎn)后對應(yīng)
x=[x;x(1,n2:-1:1)];y=[y;y(1,n2:-1:1)];
z=[z;z(1,n2:-1:1)];surf(x,y,z);view(120,30),shading interp
%繪制帶箭頭的坐標軸
arrow3([0 0 0;0 0 0;0 0 0],[2 0 0;0 2 0;0 0 2],'
-x2.5',0.12)
text('units','inch','position',[1.35,1.4],'fontsize',16,'interpreter','latex','string','$$O$$')
……
axis off,axis equal,lighting phong,material dull,set(gcf,'color','w')
例2:環(huán)面。
在幾何上,一個環(huán)面是一個面包圈形狀的旋轉(zhuǎn)曲面,由一個圓繞一個和該圓共面的一個軸回轉(zhuǎn)所生成。球面可以視為環(huán)面的特殊情況,也就是旋轉(zhuǎn)軸是該圓的直徑時。若轉(zhuǎn)軸和圓不相交,圓面中間有一個洞,就像一個圈形面包圈或一個充了氣的輪胎。
圓面可以參數(shù)式的定義為:
x=(R+rcosv)cosu,y=(R+rcosv)sinu,z=rsinv 0≤u<2π,0≤v<2π
R=3是管子的中心到畫面的中心的距離,r=1是圓管的半徑。
模仿上面的源代碼,可得如下圖形。
二、動畫的生成
MATLAB提供了movie命令用來演示動畫,movie2avi和imwrite用來生成動畫文件。下面給出一個示例。
MATLAB自帶的peaks函數(shù),可產(chǎn)生一個包含三個局部極大點及三個局部極小點的凹凸有致的曲面(見圖3)。在這里,不但可以使用movie命令讓演示上下波動的效果,還可以生成gif和avi格式的動畫文件,用于制作網(wǎng)頁和ppt。
Z=peaks;surf(Z),shading interp,axis tight
set(gca,'nextplot','replacechildren','visible','off')
f=getframe;
[im,map]=rgb2ind(f.cdata,256,'nodither');
im(1,1,1,20)=0;
for k=1:20
surf(cos(2*pi*k/20)*Z,Z);shading interp
?搖f=getframe;F(k)=f;
?搖im(:,:,1,k)=rgb2ind(f.cdata,map,'nodither');
end
movie(F,10)%演示動畫10次
imwrite(im,map,'DancingPeaks.gif','DelayTime',0,'LoopCount',inf)%生成gif動畫文件
movie2avi(F,'DancingPeaks.avi')%生成avi動畫文件
三、結(jié)束語
利用MATLAB圖形窗口,還可用鼠標選中三維圖形變換各個角度進行觀察,便于理解空間曲面的概念。同時,利用MATLAB命令還可以對圖形加以渲染、透視和鏤空等,并輸出高質(zhì)量的圖形和動畫。本文給出一些典型的例子,并包含了MATLAB源代碼和注釋,便于根據(jù)這些例子繪出更多更好的圖形。
參考文獻:
[1]蔡云鷺.基于Java Web和Matlab Builder JA的遠程數(shù)學實驗教學系統(tǒng)設(shè)計[J].實驗技術(shù)與管理,2012,29(1):83-85.
[2]鄭邦貴.MATLAB作圖功能在高數(shù)數(shù)學教學中的應(yīng)用分析[J].西昌學院學報自然科學版,2011,25(2):86-89.
[3]薛定宇,陳陽泉.高等應(yīng)用數(shù)學問題的Matlab求解[M].北京:清華大學出版社,2004.
[4]同濟大學數(shù)學教研室.高等數(shù)學下冊(第六版)[M].北京:高等教育出版社,2004.
基金項目:防災科技學院2012年度精品建設(shè)課項目
作者簡介:霍振香(1985-),女,河北邯鄲人,助教,碩士,畢業(yè)于福州大學應(yīng)用數(shù)學專業(yè),目前在中國地震局防災科技學院任教,從事應(yīng)用數(shù)學方面的教學和研究工作。