在python中非线性搜索参数值

时间:2014-10-19 00:56:38

标签: python scipy curve-fitting data-fitting model-fitting

我有这个功能,

dn = fp(xn)+ an = Asin(2πkxn +φ)+ an

是高斯分布随机噪声,σ2= 1 p 表示自由参数值的特定选择, p = [A,k,φ]

我需要写两个函数:

(1) peval - 提供一组参数值,p和自变量的值x 并返回fp(x)和

(2) residuals - 提供参数值,数据集和自变量值数组xn并返回残差

这就是我现在所拥有的,但我不知道如何输入“an”,即高斯分布式随机噪声。这是我的猜测..

an = np.random.normal(0,1,100)

def peval(x, p):

  #Evaluate the model at the points in x for model parameter values in p.   
  # return a numpy array containing the set  of points y(x)

    return p[1]*np.sin(2*(np.pi)*p[2]*x+p[3])+an


def residuals(p, y, x):

 #  Evaluate the function at for the particular parameter set p,
 #  find the and return residuals.  
 #  p is the set of parameters
 #  y is the measured data set
 #  x is the independent variable.

    return (y-peval(x,p))     

我的数据看起来像这样:

0.0003 6.09073051353

0.0006 5.51270817927

0.0009 6.89123564432

0.0012 4.99645189114

0.0015 6.7032515641

0.0018 8.9916107534

提前感谢您的帮助。

0 个答案:

没有答案