本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。