Pythonで積分計算

区分求積法より

\sum_{k=0}^{n-1}\Delta xf(\frac{k}{n}) = \frac{1}{n}\sum_{k=0}^{n-1} f(\frac{k}{n})


\sum_{k=0}^{n}\Delta xf(\frac{k}{n}) = \frac{1}{n}\sum_{k=0}^{n-1} f(\frac{k}{n})
をはさんだものが積分の値となるので分割数nを大きくすればその値に近似できる.
今回は y = (1-x)^{2}xについて計算する.
まずは区分求積法をnumpyで実装.

import numpy as np
import matplotlib.pyplot as plt
n = 1000
x = np.linspace(0,1,n)
y = x*(1-x)**2
ans = np.sum(y)/n
print(ans)#0.0832499165832

科学計算用のライブラリが用意されている.

import nunmpy as np
import scipy import integrate

def compute(x):
    return x*(1-x)**2

ans = integrate.quad(compute,0,1)# ans = integrate.quad(lambda x:x*(1-x)**2,0,1)
print(ans)#(0.08333333333333334, 9.251858538542972e-16)

こちらは誤差まで議論されている.