2013-02-27 69 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