Как рассчитать погрешность вычисляемого интеграла в питоне? - PullRequest
0 голосов
/ 28 июня 2018

Я вычисляю интеграл с помощью метода Монте-Карло (для 3 различных N, 10, 100, 1000), но я хочу вычислить погрешность до реального точного значения интеграла (рассчитанного аналитически). Как это сделать? Как рассчитать реальное значение интеграла, построить и распечатать значение ошибки?

Вот код, который я сейчас использую для вычисления интеграла с помощью метода Монте-Карло:

a = 0
b = 2
N = np.array([10, 100, 1000])

def func(x):
    return np.power(sin(1/(x*(2-x))),2)

areas = []

j = 0
while j < len(N):

    for i in range(N[j]):

        xrandom = np.random.uniform(a,b,N[j])

        integral = 0.0

        for i in range(N[j]):
            integral += func(xrandom[i])

        result = (b-a)/float(N[j]) * integral
        areas.append(result)

    plt.subplot(1,3,j+1)
    plt.hist(areas, bins=30, ec='black')
    j += 1

fig = plt.gcf()   
fig.set_size_inches(12.5, 5.5)
plt.show()

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать scipy.integrate, который предлагает различные методы вычисления интеграла. e.g.:

scipy.integrate.quad(lambda x: func(x), a, b)
...