MATLAB計算二重數值積分(dblquad)

來源:酷知科普網 3.16W

當被積分函式為二元函式f(x,y),積分變數為dxdy時稱為二重積分。MATLAB提供了dblquad( )函式命令計算二重數值積分。dblquad的呼叫格式為Q=dblquad(function,xmin,xmax,ymin,ymax,tol,’Method’),其中function為被積分的二元函式,xmin,xmax,ymin,ymax分別為積分變數x,y的上下限,tol為絕對計算精度,method是計算一維積分的方法,一般有Simpson法(即quad,預設)和Lobatto法(即quadl),Q是返回計算的二重數值積分結果。

MATLAB計算二重數值積分(dblquad)

操作方法

(01)第一,使用MATLAB計算下圖中的二重積分。

MATLAB計算二重數值積分(dblquad) 第2張

(02)第二,啟動MATLAB,新建指令碼(Ctrl+N),輸入如下程式碼:close all; clear all; clcfigure('Position',[50,50,600,500],'Name','double integration')f=@(x,y) x*sin(y)-cos(x)+y-3;Q1=dblquad(f,0,2*pi,-pi,pi,1.0e-3)x=linspace(0,2*pi);y=linspace(-pi,pi);ff=x.*sin(y)-cos(x)+y-3;plot3(x,y,ff,'r','LineWidth',3)grid on; view(35,35)xlabel('x','FontSize',15); ylabel('y','FontSize',15)其中Q1=dblquad(f,0,2*pi,-pi,pi,1.0e-3)採用預設方法quad計算二重積分,絕對計算精度設為1.0e-3。plot3(x,y,ff,'r','LineWidth',3)是繪製被積分函式ff=x.*sin(y)-cos(x)+y-3的影象。

MATLAB計算二重數值積分(dblquad) 第3張

(03)第三,儲存和執行上述指令碼,在命令列視窗(Command Window)得到如下結果:Q1 =-118.4351也就是說,該二重數值積分的結果為-118.4351.

MATLAB計算二重數值積分(dblquad) 第4張

(04)第四,同時得到被積分函式x.*sin(y)-cos(x)+y-3的影象。

MATLAB計算二重數值積分(dblquad) 第5張

(05)第五,在Q1=dblquad(f,0,2*pi,-pi,pi,1.0e-3)後面再新增一行命令,Q2=dblquad(f,0,2*pi,-pi,pi,1.0e-3,'quadl')。也就是在絕對計算精度都是1.0e-3的情況下,使用quadl方法計算二重數值積分。

MATLAB計算二重數值積分(dblquad) 第6張

(06)第六,儲存和執行上述指令碼,在命令列視窗(Command Window)得到採用quad方法(預設)和quadl方法計算的二重數值積分結果。Q1 =-118.4351Q2 =-118.4355也就是說,採用採用quad方法(預設)計算的二重數值積分結果為-118.4351,而採用quadl方法計算的二重數值積分結果為-118.4355,兩者在小數點第四位略有差別。

MATLAB計算二重數值積分(dblquad) 第7張

特別提示

按照積分變數dxdy的順序,x稱為內積分變數,y稱為外積分變數。

熱門標籤