python中参数值的非线性搜索
我有这个功能, dn=fpxn+an=Asin2πkxn+φ+an a为σ2=1的高斯分布随机噪声,且 p表示自由参数值的特定选择,p=[A,k,φ] 我需要编写两个函数: 1peval-提供一组参数值p和自变量值x 并返回fpx和 2residuals-提供参数值、数据集和自变量值数组xn,并返回残差 这就是我目前所拥有的,但是我不确定如何输入高斯分布的随机噪声。这是我的猜测 an=np.随机.正态0,1100python中参数值的非线性搜索,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
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个数组元素。谢谢你的帮助。