SciPy - integration.tplquad() 方法

SciPy integrate.tplquad() 方法用于计算三重数值积分。这意味着该方法可以接受三个变量 say(x, y, z) 进行操作。这种类型的积分用于物理、工程和环境科学等各个领域。

语法

以下是 SciPy integrate.tplquad() 方法的语法 −

tplquad(func, a, b, gfun, hfun, qfun, rfun)

参数

此函数接受以下参数 −

  • func:此参数用于处理积分。
  • a:将整数值传递给此参数(x 中的积分极限)。
  • b:将整数值传递给此参数(x 中的积分极限) x)。
  • gfun:此参数表示 y 的下边界曲线。
  • hfun:此参数表示 y 的上边界曲线。
  • qfun:该参数表示 z 的下边界曲面,必须为函数,并按顺序接受两个顺序(x, y)。
  • rfun:此参数表示 z 的上边界曲面。

返回值

此方法返回浮点值作为结果。

示例 1

以下是使用 Scipy 表示抛物面体积 z = 4-x2 - y2 的基本表示,xy 是平面integrate.tplquad() 方法。

from scipy import integration

# 定义自定义函数
def integrand(z, y, x):
    return 1

# x 和 y 的限制
a, b = -2, 2
gfun = lambda x: -2
hfun = lambda x: 2
qfun = lambda x, y: 0
rfun = lambda x, y: 4 - x**2 - y**2

# 积分运算
res, err = integration.tplquad(integrand, a, b, gfun, hfun, qfun, rfun)

# 打印结果
print(f"Volume: {res}, Error: {err}")

输出

上述代码产生以下输出 −

Volume: 21.333333333333336, Error: 2.7943958177832873e-13

示例 2

为了获得密度函数的质量,它使用三个密度单位,即[p(x,y,z) = x2 + y2 + z2] over单位立方体 [0,1]*[0,1]*[0,1]。因此,这将以浮点值的形式返回结果。

from scipy.integrate import tplquad

# 定义自定义函数
def density(z, y, x):
    return x**2 + y**2 + z**2

# x、y、z 的限制
a, b = 0, 1
gfun = lambda x: 0
hfun = lambda x: 1
qfun = lambda x, y: 0
rfun = lambda x, y: 1

# 积分运算
res, err = tplquad(density, a, b, gfun, hfun, qfun, rfun)

# 打印结果
print(f"Mass: {res}, Error: {err}")

输出

上述代码产生以下输出 −

Mass: 1.0, Error: 2.5808878251226036e-14

示例 3

程序计算 f(x,y,z) = x+y+z 在以原点为中心的半径为 1 的球形区域上的积分。

from scipy.integrate import tplquad
import numpy as np

# 定义自定义函数
def integrand(z, y, x):
return x + y + z

# x、y、z 的限制
a、b = -1、1
gfun = lambda x: -np.sqrt(1 - x**2)
hfun = lambda x: np.sqrt(1 - x**2)
qfun = lambda x, y: -np.sqrt(1 - x**2 - y**2)
rfun = lambda x, y: np.sqrt(1 - x**2 - y**2)

# 积分运算
res, err = tplquad(integrand, a, b, gfun, hfun, qfun, rfun)

# 打印结果
print(f"Integral: {res}, Error: {err}")

输出

上述代码产生以下输出 −

Integral: 0.0, Error: 7.692504411238588e-10

scipy_reference.html