MATLAB计算二重数值积分(dblquad)
当被积分函数为二元函数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是返回计算的二重数值积分结果。
操作方法
- 01
第一,使用MATLAB计算下图中的二重积分。
- 02
第二,启动MATLAB,新建脚本(Ctrl+N),输入如下代码: close all; clear all; clc figure('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的图像。
- 03
第三,保存和运行上述脚本,在命令行窗口(Command Window)得到如下结果: Q1 = -118.4351 也就是说,该二重数值积分的结果为-118.4351.
- 04
第四,同时得到被积分函数x.*sin(y)-cos(x)+y-3的图像。
- 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方法计算二重数值积分。
- 06
第六,保存和运行上述脚本,在命令行窗口(Command Window)得到采用quad方法(默认)和quadl方法计算的二重数值积分结果。 Q1 = -118.4351 Q2 = -118.4355 也就是说,采用采用quad方法(默认)计算的二重数值积分结果为-118.4351,而采用quadl方法计算的二重数值积分结果为-118.4355,两者在小数点第四位略有差别。