2026a

# dblquad


(不推荐)矩形区域上的二重积分的数值计算

函数库: TyMath

提示

不建议使用 dblquad。请改用 ty_integral2。

# 语法

q = dblquad(fun,xmin,xmax,ymin,ymax)
q = dblquad(fun,xmin,xmax,ymin,ymax,tol)
q = dblquad(fun,xmin,xmax,ymin,ymax,tol,quadf1)

# 说明

q = dblquad(fun,xmin,xmax,ymin,ymax) 调用 ty_quad 函数来计算 xmin <= x <= xmax,ymin <= y <= ymax 矩形区域上的二重积分 fun(x,y),即

输入参数 fun 是一个函数句柄,它接受标量 x,标量 y,并返回被积函数值。示例


q = dblquad(fun,xmin,xmax,ymin,ymax,tol) 使用容差 tol 代替默认值 1.0e-6。


q = dblquad(fun,xmin,xmax,ymin,ymax,tol,quadf1) dblquad 使用指定的求积法函数代替默认值 ty_quad。quadf1 的有效值为 quadl 或用户指定的求积法的函数句柄。

# 示例

计算二重积分

定义函数句柄 integrnd:

using TyMath
integrnd = (x,y) -> y*sin(x)+x*cos(y)

将函数句柄 integrnd 传递给 dblquad:

Q = dblquad(integrnd,pi,2*pi,0,pi)
Q = -9.869604377254573

integrnd 函数可以对正方形 计算 的积分。

非正方形区域可以通过将被积函数设置为位于区域外部的零进行处理。例如,半球的体积为:

V1 = dblquad((x,y)->sqrt(max(1-(x^2+y^2),0)), -1, 1, -1, 1)
V1 = 2.0944109451092316

V2 = dblquad((x,y)->real(sqrt(1-complex(x^2+y^2))*(x^2+y^2<=1)), -1, 1, -1, 1)
V2 = 2.0944109451092316

而半球的理论体积为

2/3*pi
ans = 2.0943951023931953

# 输入参数

fun - 被积函数
函数句柄

被积函数,指定为函数句柄,用于定义求二重积分的函数。

函数 z = fun(x,y) 必须接受标量参数 x 及标量参数 y 并返回标量结果 z,其中 z 是被积函数在 (x,y) 处的计算结果。

xmin,xmax - x 积分范围(以两个参数指定)
标量

x 积分范围,指定为单独的标量参数。范围 xmin 和 xmax 必须是有限的。

ymin,ymax - y 积分范围(以两个参数指定)
标量

y 积分范围,指定为单独的标量参数。范围 ymin 和 ymax 必须是有限的。

tol - 绝对误差容限
1e-6(默认) | 标量

绝对误差容限,指定为标量。dblquad 对积分中每个子区间使用绝对误差容限。随着 tol 量级的增大,dblquad 执行的函数计算越来越少,完成计算的速度越来越快,但产生的结果越来越不精确。

quadf1 - 求积法函数
ty_quad(默认) | 函数句柄

求积法函数,指定为函数句柄。dblquad 使用指定的求积法函数代替默认值 ty_quad,该函数必须接受标量值函数 fun,积分区间 a,b,绝对容差限 tol,并返回函数 fun 在区间 a,b 中的积分。

# 输出参数

q - 积分的值
标量

积分的值,以标量形式返回。

# 另请参阅

quad2d | quad | quadgk | quadl | integral3 | integral | triplequad | integral2