2017-06-12 235 views

回答

2

其实,它只是没有在自述中解释(好的措施,这里是一个稳定的链接README.md)。

目前还不清楚你的初始条件是什么意思。如果你的意思是初始参数,这是非常有可能的。

using LsqFit 

# a two-parameter exponential model 
# x: array of independent variables 
# p: array of model parameters 
model(x, p) = p[1]*exp.(-x.*p[2]) 

# some example data 
# xdata: independent variables 
# ydata: dependent variable 
xdata = linspace(0,10,20) 
ydata = model(xdata, [1.0 2.0]) + 0.01*randn(length(xdata)) 
p0 = [0.5, 0.5] 

fit = curve_fit(model, xdata, ydata, p0) 

(摘自手册)。这里p0是初始参数向量。

这会给你一些非常接近[1.0, 2.0]。但是如果我们想限制参数在[0,1]x[0,1]?然后我们只需设置关键字参数lowerupper到为下限向量和上界

fit = curve_fit(model, xdata, ydata, p0; lower = zeros(2), upper = ones(2)) 

这应该取决于你的确切数据给出类似[1.0, 1.0]

0

也许这不是一个正确的答案,但我在过去 已经取得了一些成功添加惩罚项的边界以外的成本函数,就像一个强有力的指数与步骤行为。缺点是手动定义你的成本函数,当然。