2015-05-12 40 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