本文簡要介紹 python 語言中 scipy.integrate.tplquad
的用法。
用法:
scipy.integrate.tplquad(func, a, b, gfun, hfun, qfun, rfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08)#
計算三重(定)積分。
從
x = a..b
、y = gfun(x)..hfun(x)
和z = qfun(x,y)..rfun(x,y)
返回func(z, y, x)
的三重積分。- func: 函數
一個 Python 函數或方法,包含至少三個按順序 (z, y, x) 的變量。
- a, b: 浮點數
x 中積分的極限:a < b
- gfun: 函數或浮點數
y 中的下邊界曲線,它是一個函數,采用單個浮點參數 (x) 並返回浮點結果或表示恒定邊界曲線的浮點數。
- hfun: 函數或浮點數
y 中的上邊界曲線(與 gfun 的要求相同)。
- qfun: 函數或浮點數
z 中的下邊界表麵。它必須是一個函數,它以 (x, y) 的順序接受兩個浮點數,並返回一個浮點數或一個浮點數,指示一個恒定的邊界表麵。
- rfun: 函數或浮點數
z 中的上邊接口。 (與qfun的要求相同。)
- args: 元組,可選
傳遞給 func 的額外參數。
- epsabs: 浮點數,可選
絕對容差直接傳遞到最裏麵的一維正交積分。默認值為 1.49e-8。
- epsrel: 浮點數,可選
最裏麵的一維積分的相對容差。默認值為 1.49e-8。
- y: 浮點數
結果積分。
- abserr: 浮點數
誤差的估計。
參數 ::
返回 ::
注意:
為了獲得有效的結果,積分必須收斂;不保證發散積分的行為。
QUADPACK關卡例程的詳細信息
quad
調用 FORTRAN 庫 QUADPACK 中的例程。本節提供有關調用每個例程的條件的詳細信息以及每個例程的簡短說明。對於每個集成級別,qagse
用於有限限製,或者使用qagie
,如果任一限製(或兩者!)都是無限的。下麵提供了 [1] 中每個例程的簡短說明。是一個基於全局自適應區間細分與外推法相結合的積分器,它將消除幾種類型的被積函數奇異性的影響。
處理無限間隔內的積分。無限範圍映射到有限區間,隨後應用與
QAGS
中相同的策略。
察格色:
卡吉:
參考:
[1]羅伯特·皮森斯; de Doncker-Kapenga,伊莉斯;克裏斯托夫·W·尤伯胡貝爾;大衛·卡哈納 (1983)。 QUADPACK:用於自動集成的子程序包。 Springer-Verlag。 ISBN 978-3-540-12553-2。
例子:
計算
x * y * z
的三重積分,其中x
範圍從 1 到 2,y
範圍從 2 到 3,z
範圍從 0 到 1。即 。>>> import numpy as np >>> from scipy import integrate >>> f = lambda z, y, x: x*y*z >>> integrate.tplquad(f, 1, 2, 2, 3, 0, 1) (1.8749999999999998, 3.3246447942574074e-14)
計算
。筆記:qfun/rfun按 (x, y) 的順序接受參數,即使f
按 (z, y, x) 的順序接受參數。>>> f = lambda z, y, x: x*y*z >>> integrate.tplquad(f, 0, 1, 0, lambda x: 1-2*x, 0, lambda x, y: 1-x-2*y) (0.05416666666666668, 2.1774196738157757e-14)
計算 為 。
>>> f = lambda z, y, x, a: a*x*y*z >>> integrate.tplquad(f, 0, 1, 0, 1, 0, 1, args=(1,)) (0.125, 5.527033708952211e-15) >>> integrate.tplquad(f, 0, 1, 0, 1, 0, 1, args=(3,)) (0.375, 1.6581101126856635e-14)
計算三維高斯積分,它是高斯函數 在 上的積分。也就是說,計算積分 。
>>> f = lambda x, y, z: np.exp(-(x ** 2 + y ** 2 + z ** 2)) >>> integrate.tplquad(f, -np.inf, np.inf, -np.inf, np.inf, -np.inf, np.inf) (5.568327996830833, 4.4619078828029765e-08)
相關用法
- Python SciPy integrate.trapezoid用法及代碼示例
- Python SciPy integrate.quad_vec用法及代碼示例
- Python SciPy integrate.cumulative_trapezoid用法及代碼示例
- Python SciPy integrate.romberg用法及代碼示例
- Python SciPy integrate.qmc_quad用法及代碼示例
- Python SciPy integrate.dblquad用法及代碼示例
- Python SciPy integrate.simpson用法及代碼示例
- Python SciPy integrate.quadrature用法及代碼示例
- Python SciPy integrate.quad用法及代碼示例
- Python SciPy integrate.solve_bvp用法及代碼示例
- Python SciPy integrate.solve_ivp用法及代碼示例
- Python SciPy integrate.newton_cotes用法及代碼示例
- Python SciPy integrate.odeint用法及代碼示例
- Python SciPy integrate.ode用法及代碼示例
- Python SciPy integrate.romb用法及代碼示例
- Python SciPy integrate.fixed_quad用法及代碼示例
- Python SciPy integrate.nquad用法及代碼示例
- Python SciPy integrate.quad_explain用法及代碼示例
- Python SciPy interpolate.make_interp_spline用法及代碼示例
- Python SciPy interpolate.krogh_interpolate用法及代碼示例
- Python SciPy interpolative.reconstruct_matrix_from_id用法及代碼示例
- Python SciPy interpolate.InterpolatedUnivariateSpline用法及代碼示例
- Python SciPy interpolate.BSpline用法及代碼示例
- Python SciPy interpolative.reconstruct_interp_matrix用法及代碼示例
- Python SciPy interpolate.LSQSphereBivariateSpline用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.integrate.tplquad。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。