2015-05-12 38 views
1

我正在寻找曲线下的区域。曲线不能转化为令人满意的方程。编码非常简单。使用scipy整合数组

from scipy.integrate import simps 
import numpy as np 
y =  np.array([1489.263705,1226.774401,5576.973322,1394.189836,1151.001948,867.5819289,773.5496598,1076.135273,1067.513122,3072.972271,2826.697242,1200.779848]) 
x =  np.array([40126,40154,40193,40226,40295,40325,40352,40379,40406,40448,40476,40490]) 
print simps(y,x) 

由于我的数据集不是真的那么大,我在Excel中尝试了更多的手动操作。一旦使用= FORECAST函数并且一次用不同测量点之间的线性方程式手动分割它。 三种不同的方式产生不同的结果。 =预测值(值= 686.6569835)和手动分割(678.9578851)很明显 - 手动更好,它使用更多点。 python方式产生662.425396。

问题1 - 离散一体化背后的数学是什么 - 当然它是线性的,但是它怎么会没有得到相同的结果呢?

问题2 - 哪个结果是最正确的,为什么?我可以使用scipy以几种方式进行整合,如何在不知道结果的情况下量化哪一个更好?

希望这个问题不要太离谱。

最好的问候, 马蒂亚斯

回答

0

问题1:很好的介绍是这里http://en.wikipedia.org/wiki/Numerical_integration

问题2:如果你不知道该曲线(方程),它是很难说整合的结果是什么是最好的。

+0

谢谢。我知道集成是如何工作的。我只是想知道如何在这种确切的情况下实现整合 - 例如。插值是如何完成的。预计线性,但手动恢复是不同的。 – Mathias

+0

是的 - 我知道问题2很难,但我想也许有人知道一些贝叶斯统计技巧。我想尽可能多地执行不同的整合,并使用中间值,但只有残差是正态分布的,并且知道我需要为问题1找到一个可靠的答案才有意义。 – Mathias