2013-02-27 71 views
-1

也許標題看起來有點混亂。例如,有三個函數,如sin(x),3 sine(x)和sin(x)+1。 X會從1到100.我如何繪製這三個函數值的標準偏差(+和 - )的平均線。我認爲也許我應該計算每個x的三個函數值(sin(x),3 sin(x)和sin(x)+1)的均值和標準差。但是,我不知道我如何用python來完成它。我知道在Scipy中有一些標準偏差和平均值的函數。這適用於這種情況嗎? 也許這是個愚蠢的問題。不過,我是新手。我非常感謝任何幫助。由Python。製作標準偏差和不同圖形的平均線

最好的問候,

艾薩克

+0

你的意思是你如何計算置信區間?我假設你沒有試圖在屏幕上「繪製」圖表? – 2013-02-27 08:02:23

+0

我的意思是,給定一個常量參數的任何函數的分佈是一個方差(因此標準差)爲0的退化分佈。所以這不是你想要的。 – 2013-02-27 08:05:25

+1

@Joel,我想他想要的時刻,整合或總結的時間間隔。例如,對於stddev,'\ int_1^100(x * sin(x))'或'\ sum_1^100(x * sin(x))/ n'。艾薩克,這看起來像你想要的? – Evert 2013-02-27 09:34:39

回答

1

我不太明白你的意思,但也許下面是一個有用的例子:

>>> import numpy as np 
>>> x = np.arange(1,100) 
>>> m = (sin(x)+1).mean() 
>>> s = (sin(x)+1).std() 
>>> print m, s 
1.00383024876 0.710743876537 

[經過一些進一步澄清編輯]

如果,但是,你想要的平均每個X點的各種功能,像這樣的事情會工作:

​​

這會給y ou 100手段和100 stddevs。

如果你想組合功能的平均值,你基本上回到第一個例子:

>>> m = (sin(x) + 3*sin(x) + sin(x)+1).mean() 
>>> s = (sin(x) + 3*sin(x) + sin(x)+1).std() 
>>> print m, s 
1.01915124381 3.55371938269 

哪個選項適用於您取決於你的問題的情況下的一個;我對此毫無頭緒。

0
import numpy as np 

def function_1(X): 
    return np.sin(X) 

def function_2(X): 
    return 3. * np.sin(X) 

def function_3(X): 
    return np.sin(X + 1.) 

X = np.arange(100) 

# mean 
print function_1(X).mean() 

# std dev 
print function_1(X).std() 

# to plot 
from matplotlib import pyplot as mp 
mp.plot(X, function_1(X)) 
mp.hlines(function_1(X).mean(), 0, 100) 
mp.show() 

等等...但你真的需要繪製「平均」正弦函數的?想想看......

+0

謝謝你danodonovan。如果我理解正確,您的代碼似乎只繪製了function_1(x)的標準偏差和均值。我對嗎?我想要做的就是將這三個函數組合成一個具有標準偏差和均值的圖。實際上,我真正想要做的是將超過一百個光譜與一個具有均值和標準偏差的圖形組合在一起。我只是想知道。再次感謝你。 – Isaac 2013-02-27 19:44:35

+0

你是如何結合功能?你可以乘以,加上「convolve」 - 你可以用'function_ *'做所有這些,例如'mean = function_1(x)+ function_2(x)+ function_3(x)'等等。 – danodonovan 2013-02-27 19:47:05

+0

謝謝danodonovan,我應該多想想。艾薩克 – Isaac 2013-02-27 19:57:42

相關問題