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