本文簡要介紹 python 語言中 scipy.integrate.dblquad
的用法。
用法:
scipy.integrate.dblquad(func, a, b, gfun, hfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08)#
計算二重積分。
從
x = a..b
和y = gfun(x)..hfun(x)
返回func(y, x)
的雙(定)積分。- func: 可調用的
至少包含兩個變量的 Python 函數或方法:y 必須是第一個參數,x 必須是第二個參數。
- a, b: 浮點數
x 中積分的極限:a < b
- gfun: 可調用或浮點數
y 中的下邊界曲線,它是一個函數,采用單個浮點參數 (x) 並返回浮點結果或表示恒定邊界曲線的浮點數。
- hfun: 可調用或浮點數
y 中的上邊界曲線(與 gfun 的要求相同)。
- args: 順序,可選
傳遞給 func 的額外參數。
- epsabs: 浮點數,可選
絕對容差直接傳遞至內部一維正交積分。默認值為 1.49e-8。
dblquad
試圖獲得準確度abs(i-result) <= max(epsabs, epsrel*abs(i))
其中i
= 的內積分func(y, x)
從gfun(x)
到hfun(x)
, 和result
是數值近似。看埃普雷爾以下。- epsrel: 浮點數,可選
內部一維積分的相對容差。默認值為 1.49e-8。如果
epsabs <= 0
,埃普雷爾必須大於 5e-29 和50 * (machine epsilon)
.看易勝寶更多。
- 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**2
在範圍從 0 到 2 的框x
和範圍從 0 到 1 的框y
上的二重積分。即 。>>> import numpy as np >>> from scipy import integrate >>> f = lambda y, x: x*y**2 >>> integrate.dblquad(f, 0, 2, 0, 1) (0.6666666666666667, 7.401486830834377e-15)
計算
.>>> f = lambda y, x: 1 >>> integrate.dblquad(f, 0, np.pi/4, np.sin, np.cos) (0.41421356237309503, 1.1083280054755938e-14)
計算 為 。
>>> f = lambda y, x, a: a*x*y >>> integrate.dblquad(f, 0, 1, lambda x: x, lambda x: 2-x, args=(1,)) (0.33333333333333337, 5.551115123125783e-15) >>> integrate.dblquad(f, 0, 1, lambda x: x, lambda x: 2-x, args=(3,)) (0.9999999999999999, 1.6653345369377348e-14)
計算二維高斯積分,它是高斯函數 在 上的積分。也就是說,計算積分 。
>>> f = lambda x, y: np.exp(-(x ** 2 + y ** 2)) >>> integrate.dblquad(f, -np.inf, np.inf, -np.inf, np.inf) (3.141592653589777, 2.5173086737433208e-08)
相關用法
- Python SciPy integrate.quad_vec用法及代碼示例
- Python SciPy integrate.cumulative_trapezoid用法及代碼示例
- Python SciPy integrate.romberg用法及代碼示例
- Python SciPy integrate.qmc_quad用法及代碼示例
- 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.tplquad用法及代碼示例
- Python SciPy integrate.nquad用法及代碼示例
- Python SciPy integrate.trapezoid用法及代碼示例
- 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.dblquad。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。