【发布时间】:2013-12-21 04:56:05
【问题描述】:
我正在尝试使用 scipy.integrate.simps 函数执行简单的集成,但我无法弄清楚它显示的结果。
这是一个 MWE:
import numpy as np
from scipy.integrate import simps
# Same normal function used by np.random.normal
def norm_func(x, mu, sigma):
y = 1/(sigma*np.sqrt(2*np.pi))*np.exp(-(x-mu)**2/(2*sigma**2))
return y
# Generate some random points from the normal distribution.
a = np.random.normal(1., 0.1, 1000)
# Integrate the evaluated values of these points.
print simps(norm_func(a, 1., 0.1), a)
我希望由于我从normal distribution 中抽取随机数,然后将它们的评估整合到等效的正态分布中,我应该得到整合所述正态分布which is 1 的结果(或非常接近它) .
我发现结果似乎随着a 的样本大小而变化。更糟糕的是,如果我在 a = np.random.normal(1., 0.1, 10000) 中设置 10000 的值,则集成返回一个 负 值。
我在这里做错了什么?
【问题讨论】:
标签: python numpy integration