當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy integrate.dblquad用法及代碼示例


本文簡要介紹 python 語言中 scipy.integrate.dblquad 的用法。

用法:

scipy.integrate.dblquad(func, a, b, gfun, hfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08)#

計算二重積分。

x = a..by = 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)

計算\(\int^{x=\pi/4}_{x=0} \int^{y=\cos(x)}_{y=\sin(x)} 1 \,dy \,dx\) .

>>> 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)

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.integrate.dblquad。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。