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


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


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

用法:

scipy.integrate.simpson(y, *, x=None, dx=1.0, axis=-1, even=<object object>)#

使用沿給定軸的樣本和複合辛普森規則對 y(x) 進行積分。如果 x 為 None,則假定為 dx 的間距。

如果樣本數為偶數 N,則區間數為奇數 (N-1),但辛普森規則要求區間數為偶數。參數‘even’ 控製如何處理。

參數

y array_like

要集成的陣列。

x 數組,可選

如果給定,則采樣 y 的點。

dx 浮點數,可選

沿 x 軸的積分點間距。僅在 x 為無時使用。默認值為 1。

axis 整數,可選

要整合的軸。默認是最後一個軸。

even {無,‘simpson’, ‘avg’, ‘first’, ‘last’},可選
‘avg’ 平均兩個結果:
  1. 使用前 N-2 個間隔,並在最後一個間隔上使用梯形規則

  2. 將最後 N-2 個間隔與第一個間隔上的梯形規則一起使用。

‘first’ 對前 N-2 個區間使用 Simpson 規則

最後一個區間的梯形規則。

‘last’ 對最後 N-2 個區間使用 Simpson 規則

第一個區間的梯形規則。

無:相當於‘simpson’(默認)

‘simpson’ 對前 N-2 個間隔使用辛普森規則

使用 Cartwright [1] 概述的方程為最後一個間隔添加 3 點拋物線段。如果要積分的軸隻有兩個點,則積分會退回到梯形積分。

返回

浮點數

使用複合辛普森規則計算的估計積分。

注意

對於等間距的奇數個樣本,如果函數是 3 階或更小的多項式,則結果是精確的。如果樣本不是等間距的,那麽隻有當函數是 2 階或更小的多項式時,結果才是準確的。

參考

[1]

Cartwright、Kenneth V. Simpson 與 MS Excel 和 Irregularly-spaced 數據的規則累積集成。數學科學與數學教育雜誌。 12(2):1-9

例子

>>> from scipy import integrate
>>> import numpy as np
>>> x = np.arange(0, 10)
>>> y = np.arange(0, 10)
>>> integrate.simpson(y, x)
40.5
>>> y = np.power(x, 3)
>>> integrate.simpson(y, x)
1640.5
>>> integrate.quad(lambda x: x**3, 0, 9)[0]
1640.25
>>> integrate.simpson(y, x, even='first')
1644.5

相關用法


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