SciPy - integrate.tplquad() 方法



SciPy 的 integrate.tplquad() 方法用於計算三重數值積分。這意味著該方法可以接受三個變數(例如 x、y、z)進行運算。這種型別的積分應用於物理學、工程學和環境科學等各個領域。

語法

以下是 SciPy integrate.tplquad() 方法的語法:

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

引數

此函式接受以下引數:

  • func:此引數用於處理被積函式。
  • a:此引數接受整數作為 x 的積分下限。
  • b:此引數接受整數作為 x 的積分上限。
  • gfun:此引數表示 y 的下界曲線。
  • hfun:此引數表示 y 的上界曲線。
  • qfun:此引數表示 z 的下界曲面,必須是一個函式,並按順序接受兩個引數 (x, y)。
  • rfun:此引數表示 z 的上界曲面。

返回值

此方法返回一個浮點數值作為結果。

示例 1

以下是使用 SciPy integrate.tplquad() 方法計算拋物面 z = 4-x2 - y2 和 xy 平面圍成的體積的基本表示。

from scipy import integrate

# define the customize function
def integrand(z, y, x):
    return 1

# limits for x and 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

# operation on integration
res, err = integrate.tplquad(integrand, a, b, gfun, hfun, qfun, rfun)

# print the result
print(f"Volume: {res}, Error: {err}")

輸出

上述程式碼產生以下輸出:

Volume: 21.333333333333336, Error: 2.7943958177832873e-13

示例 2

為了獲得密度函式的質量,它使用三個單位表示密度,例如 [p(x,y,z) = x2 + y2 + z2],在單位立方體 [0,1]*[0,1]*[0,1] 上。因此,這將以浮點數值的形式返回結果。

from scipy.integrate import tplquad

# define the customize function
def density(z, y, x):
    return x**2 + y**2 + z**2

# limits for 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

# operation on integration
res, err = tplquad(density, a, b, gfun, hfun, qfun, rfun)

# print the result
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

# define the customize function
def integrand(z, y, x):
    return x + y + z

# limits for 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)

# operation on integration
res, err = tplquad(integrand, a, b, gfun, hfun, qfun, rfun)

# print the result
print(f"Integral: {res}, Error: {err}")

輸出

上述程式碼產生以下輸出:

Integral: 0.0, Error: 7.692504411238588e-10
scipy_reference.htm
廣告
© . All rights reserved.