python中参数值的非线性搜索

python中参数值的非线性搜索,python,scipy,curve-fitting,data-fitting,model-fitting,Python,Scipy,Curve Fitting,Data Fitting,Model Fitting,我有这个功能, dn=fpxn+an=Asin2πkxn+φ+an a为σ2=1的高斯分布随机噪声,且 p表示自由参数值的特定选择,p=[A,k,φ] 我需要编写两个函数: 1peval-提供一组参数值p和自变量值x 并返回fpx和 2residuals-提供参数值、数据集和自变量值数组xn,并返回残差 这就是我目前所拥有的,但是我不确定如何输入高斯分布的随机噪声。这是我的猜测 an=np.随机.正态0,1100 def peval(x, p): #Evaluate the model a

我有这个功能,

dn=fpxn+an=Asin2πkxn+φ+an

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

我需要编写两个函数:

1peval-提供一组参数值p和自变量值x 并返回fpx和

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

这就是我目前所拥有的,但是我不确定如何输入高斯分布的随机噪声。这是我的猜测

an=np.随机.正态0,1100

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.9916107534


提前感谢你的帮助

您正在尝试确定参数的值?那么,您的数据y值中是否已经存在噪声?@mdurant当OP写入p[1]*np.sin2*np.pi*p[2]*x+p[3]+np.random.normal0,1100时,这是试图声明模型,有了这样的想法,精密机械将了解哪些东西是常数、参数和噪声,并使用适当的程序来推断参数值。例如,R或SAS可能理解用类似于此的符号编写的模型。不幸的是,numpy远没有达到这一点,因此OP只是给他们的数据添加了更多的噪声。lol。在pystatsmodels中使用字符串声明可以做这样的事情。我想你关于噪声冗余的看法是正确的。我还意识到我应该使用0-2而不是1-3个数组元素。谢谢你的帮助。