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


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


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

用法:

scipy.integrate.newton_cotes(rn, equal=0)#

Newton-Cotes 積分的返回權重和誤差係數。

假設我們在 x_0, x_1, ..., x_N 位置有 (N+1) 個 f 樣本。那麽 x_0 和 x_N 之間積分的 N-point Newton-Cotes 公式為:

\(\int_{x_0}^{x_N} f(x)dx = \Delta x \sum_{i=0}^{N} a_i f(x_i) + B_N (\Delta x)^{N+2} f^{N+1} (\xi)\)

其中 是平均樣本間距。

如果樣本等距且 N 為偶數,則誤差項為

參數

rn int

等距數據的整數順序或樣本的相對位置,第一個樣本位於 0,最後一個樣本位於 N,其中 N+1 是 rn 的長度。 N 是Newton-Cotes 積分的階數。

equal 整數,可選

設置為 1 以強製使用等距數據。

返回

an ndarray

一維權重數組,用於在提供的樣本位置應用到函數。

B 浮點數

誤差係數。

注意

通常,Newton-Cotes 規則用於較小的積分區域,複合規則用於返回總積分。

例子

計算 [0, ] 中 sin(x) 的積分:

>>> from scipy.integrate import newton_cotes
>>> import numpy as np
>>> def f(x):
...     return np.sin(x)
>>> a = 0
>>> b = np.pi
>>> exact = 2
>>> for N in [2, 4, 6, 8, 10]:
...     x = np.linspace(a, b, N + 1)
...     an, B = newton_cotes(N, 1)
...     dx = (b - a) / N
...     quad = dx * np.sum(an * f(x))
...     error = abs(quad - exact)
...     print('{:2d}  {:10.9f}  {:.5e}'.format(N, quad, error))
...
 2   2.094395102   9.43951e-02
 4   1.998570732   1.42927e-03
 6   2.000017814   1.78136e-05
 8   1.999999835   1.64725e-07
10   2.000000001   1.14677e-09

相關用法


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