【摘 要】重積分計算是高等數(shù)學教學中的重要內(nèi)容,如何計算重積分顯得尤其重要。重積分計算主要思想是如何把重積分化為累次積分,如何決定積分次序。由于有些積分的被積函數(shù)和積分區(qū)域比較復雜,計算起來比較困難,甚至有些重積分無法計算。然而MATLAB軟件在高等數(shù)學重積分計算中有很大的優(yōu)勢,通過MATLAB軟件求解重積分不僅可以提高學生學習的積極性,而且可以提高學生學習的興趣和效率。本文研究的主要內(nèi)容是如何運用MATLAB內(nèi)部函數(shù)計算二重積分。
【關鍵詞】MATLAB 二重積分 高等數(shù)學
【中圖分類號】O13 【文獻標識碼】A 【文章編號】1674-4810(2015)27-0057-02
隨著科學技術及計算機的飛速發(fā)展,各類數(shù)學軟件的不斷涌現(xiàn),這使在解決一些復雜的問題變得非常簡單。MATLAB已成為許多課程的基本教學工具,是大學生、碩士生和博士生必須掌握的基本技能;在設計研究單位和工業(yè)部門,MATLAB已成為必備的標準軟件。MATLAB軟件“面向?qū)ο蟆钡奶攸c愈加突出,數(shù)據(jù)類型愈加豐富,操作界面愈加完善,運算速度越來越快,功能越來越強大。MATLAB在高等數(shù)學教學中起著非常重要的作用。MATLAB具有簡單易學、代碼短小高效、計算功能強大以及可擴展性等優(yōu)點。基于MATLAB的高等數(shù)學教學可以提高學生課堂的參與性,激發(fā)學生學習的興趣,有利于教學質(zhì)量的提高。MATLAB已經(jīng)成為國際控制界公認的標準計算軟件,國內(nèi)已經(jīng)有很多工科院校把MATLAB引入課堂,作為數(shù)學公共課教學改革的核心內(nèi)容。本文主要研究如何利用int函數(shù)、dblquad函數(shù)和quad2d函數(shù)求高等數(shù)學中的二重積分。
一 符號表達式和函數(shù)表達式
MATLAB有強大的符號運算和數(shù)值計算功能,兩者的根本區(qū)別是:符號計算需要定義符號表達式,而數(shù)值計算需要定義函數(shù)表達式。對于一般的程序設計軟件實現(xiàn)數(shù)值計算還可以,但是實現(xiàn)符號計算并不是一件容易的事。MATLAB的數(shù)學工具箱可以完成幾乎所有的符號運算和數(shù)值計算功能,MATLAB可以用syms函數(shù)和單引號產(chǎn)生符號表達式,同時也可以利用M-函數(shù)文件、內(nèi)聯(lián)函數(shù)和匿名函數(shù)得到函數(shù)表達式。
例1:定義多變量符號表達式f=x2siny
syms函數(shù)調(diào)用格式:syms xy;f=x^2*sin(y)
單引號調(diào)用格式:f='x^2*sin(y)'
例2,定義多變量函數(shù)表達式fun=x2*sin(y)
方法一:M函數(shù)文件方法
編寫M文件:function fun=f(x,y)
fun=x^2*sin(y)
方法二:inline函數(shù)方法
fun=inline(' x.^2.*sin(y)')
方法三:匿名函數(shù)方法
fun=@(x,y)x.^2.*sin(y)
二 二重積分的計算方法
MATLAB提供了兩種方法計算二重積分即符號計算和數(shù)值計算。符號計算是求矩形區(qū)域上的二重積分,利用MATLAB內(nèi)部命令int計算兩次一重積分,調(diào)用格式為int(int(f,A,B),C,D),其中f是符號表達式,變量的取值范圍是A≤x≤B,C≤y≤D。符號計算的結果往往是符號,如果要求其值,需調(diào)用函數(shù)vpa(I,n),得到具有n位有效數(shù)字I的近似值。數(shù)值計算可以調(diào)用MATLAB內(nèi)部函數(shù)dblquad函數(shù)和quad2d函數(shù)。dblquad函數(shù)是求矩形區(qū)域上二重積分的數(shù)值估計,調(diào)用格式為dblquad(fun,A,B,C,D),其中fun是函數(shù)表達式,變量的取值范圍是A≤x≤B,C≤y≤D。quad2d函數(shù)求平面區(qū)域上二重積分的數(shù)值估計,調(diào)用格式為quad2d(fun,A,B,C,D),其中fun是函數(shù)表達式,變量的取值范圍是A≤x≤B,C(x)≤y≤D(x)。
例1,求二重積分 ,其中區(qū)域Ω
是有直線x=0,x=1,y=1,y=2圍成的區(qū)域。
根據(jù)區(qū)域Ω的特點即可以看成X型區(qū)域也可以看成Y型區(qū)域,采用X型區(qū)域把二重積分化為二次積分得:
運用MATLAB軟件求解二次積分方法如下:
方法一:調(diào)用MATLAB符號計算命令int
>>syms x y;>> f=x^2*sin(y);>> I=int(int(f,0,1),1,2);
>> I=cos(1)/3-cos(2)/3;>>I=vpa(I,4);>> I=0.3188;
方法二:調(diào)用MATLAB數(shù)值計算命令dblquad
>> fun=@(x,y)x.^2.*sin(y); >> I=dblquad(fun,0,1,1,2);>> I=0.3188;
方法三:調(diào)用MATLAB數(shù)值計算命令quad2d
>> fun=@(x,y)x.^2.*sin(y);>> I=quad2d(fun,0,1,1,2);>> I=0.3188;
例2,求二重積分 ,其中區(qū)域Ω是
有拋物線y=x2和x=y2圍成的區(qū)域。
根據(jù)區(qū)域Ω的特點把二重積分化為二次積分得:I=
,此積分區(qū)域為平面區(qū)域調(diào)用quad2d
函數(shù)如下:
>> fun=@(x,y)x.^2.*sin(y);>>C=@(x)x.^2;D=@(x)sqrt(x);
>> I=quad2d(fun,0,1,C,D);>> I=0.0492;
由于區(qū)域Ω是平面區(qū)域,對y的積分是變限積分,因此不能直接調(diào)用dblquad函數(shù)。但是可以通過變量替換轉(zhuǎn)化為矩形區(qū)域上的積分。
令z=(y-C(x))/(D(x)-C(x)),則y=(D
(x)-C(x))z+C(x),二重積分可以轉(zhuǎn)化為I=
。通過此變換把
平面上的二重積分化為矩形區(qū)域上的二重積分,因此可以調(diào)用int命令和dblquad命令。然而對于符號計算命令int求解積分時,要求被積函數(shù)具有顯式的原函數(shù),但是此時的被積分函數(shù)沒有顯式的原函數(shù),因此只能調(diào)用MATLAB數(shù)值計算命令dblquad:
>> fun=@(x,z)x.^2.*sin((sqrt(x)-x.^2).*z+x.^2).*(sqrt(x)-x.^2);
>> I=dblquad(fun,0,1,0,1);>> I=0.0492;
例3,求二重積分 ,其中區(qū)域Ω是有
拋物線y=x2和x=y2圍成的區(qū)域。
根據(jù)區(qū)域Ω的特點把二重積分化為二次積分得:
,調(diào)用平面區(qū)域求積分命令quad2d得:
>> fun=@(x,y)x.^2.*y;>>C=@(x)x.^2;D=@(x)sqrt(x);
>> I=quad2d(fun,0,1,C,D);>> I=0.0536;
根據(jù)例2中的變換方法把對y的變限積分也化為定積分,則積分可化為: 。這時二次積分的積分區(qū)域是矩形區(qū)域,并且此時的被積函數(shù)具有顯示的原函數(shù),因此可以調(diào)用int命令和dblquad命令。
方法一:調(diào)用MATLAB符號計算命令int
>> syms x y >> f=x^2*sin((sqrt(x)-x^2)*z+x^2)*(sqrt(x)-x^2);>> I=int(int(f,0,1),1,2);
>> I=3/56;>> vpa(I,3);>> I=0.0536;
方法二:調(diào)用MATLAB數(shù)值計算命令dblquad
>> fun=@(x,z)x.^2.*((sqrt(x)-x.^2).*z+x.^2).*(sqrt(x)-x.^2);>> I=dblquad(fun,0,1,0,1);
>> I=0.0536。
MATLAB在計算二重積分的時候可以運用符號運算和數(shù)值計算兩種思路。這兩種思路都可以解決二重積分問題但又各有優(yōu)劣,符號計算因其需要被積函數(shù)的原函數(shù),所以可以得到積分的精確值,然而這也是符號計算的劣勢,因為很多的被積函數(shù)不存在顯式的原函數(shù);而數(shù)值計算不論被積函數(shù)有沒有顯式的原函數(shù)都可以計算積分,但是得到的是近似值而不是精確值。多重積分的數(shù)值計算在很多工程問題中都有很重要的應用,可以通過運用MATLAB內(nèi)部命令解決工程中的實際問題,提高學生的動手能力和解決實際問題的能力,為學生以后的工作積累實踐經(jīng)驗。
三 結束語
高等數(shù)學把基于MATLAB的數(shù)學實驗課引入課堂,提高了學生學習的積極性和學習興趣,改變了傳統(tǒng)的教學方法,增強了應用數(shù)學知識解決實際問題的能力,提高了學習效率,有利于提高教學質(zhì)量。結合高等數(shù)學教學過程遇到的二重積分計算,通過幾個例子給出二重積分的計算方法。本文著重分析了MATLAB求二重積分的符號計算和數(shù)值計算兩種思路的相似和不同之處,以及如何運用MATLAB內(nèi)部函數(shù)實現(xiàn)復雜的積分計算。
參考文獻
[1]同濟大學數(shù)學系.高等數(shù)學(下冊)[M].北京:高等教育出版社,2007
[2]王正林、劉明.精通MATLAB 7[M].北京:電子工業(yè)出版社,2006
[3]王沫然.MATLAB與科學計算(第2版)[M].北京:電子工業(yè)出版社,2003
[4]薛定宇、陳陽泉.高等數(shù)學應用問題的MATLAB求解[M].北京:清華大學出版社,2004
[5]柯善軍.高等數(shù)學與應用實驗[M].北京:北京航空航天大學出版社,2007
〔責任編輯:林勁〕