用MATLAB计算积分区域不为常数的二重积分

       积分区域为常数的矩形区域,使用dblquad函数计算二重积分,当积分区域不为常数时,经过对dblquad函数进行改造,能够计算任意积分区域的二重积分。详细内容请参考“王若鹏, 夏赞勋, 谢鹏燕, 张鹏, "基于MATLAB的二重积分计算方法," 高等数学研究, 61-63 (2012).”

好比计算以下二重积分

1.mydblquad.m文件
 
  1. function y=mydblquad(a,b)
  2. y=dblquad(@f_tran,a,b,0,1);
不论计算什么样的二重积分,该文件内容不须要作任何修改。

2.f_tran.m文件
 
  1. function z=f_tran(x,u)
  2. d=sqrt(x);
  3. c=x;
  4. z=(d-c).*f_init(x,(d-c).*u+c);
计算积分时,只须要把c和d改为内积分的上下限便可。

3.f_init.m文件
 
  1. function w=f_init(x,y)
  2. w=sin(y)./y;
计算积分时,只须要把内积分的积分函数表示出来便可,注意,须要使用点乘、点除等运算。

4.调用mydblquad(0,1),便可计算出上述二重积分。
    mydblquad.rar     f_init.rar     f_tran.rar