我有指数函数(高斯分布)
f(time)=exp(-((time-A)^2)/B)
我有一个实验数据,形成矩阵[时间,价值]。我想要做的是执行一些A和B参数的调整,这将给我最好的结果,这是第一个功能接近实验数据图。 这是我在Julia手动调整所完成的,但我正在寻找一种自动化方式。
问候
麦克
答案 0 :(得分:2)
很难从图片中看出,但您的数据似乎是对强制变量的阶跃变化的响应。实际上,两步变化:一个在温度增加时约为t = 1.4,另一个在温度增加时约为t = 1.6。在每个步骤改变之后,温度模型可能是衰减指数,增加或减少到稳态水平。类似于temp(t) = B + (A - B)*exp(-(t - t_change)/c)
t >= t_change
,其中A
是起始温度,B
是稳态温度,c
是时间刻度。 A
,B
,c
和t_change
可能是免费参数。您可以使用最小二乘法来查找它们。
棘手的部分是从观察到的数据中确定t_change
。 (但是如果您已经知道t_change
,只需将其插入即可。)您可能需要制定某种嵌套优化 - 对于t_change
的许多可能值中的每一个,优化其他参数。然后选择t_change
,它最适合其他参数。
请参阅Seber和Wild,"非线性回归",了解有关此类作品中定义的模型的更多信息。
答案 1 :(得分:1)
试试这个。这是你原来的功能:
y(t) = exp(-(t-A)^2/B)
采取双方的自然日志:
ln(y) = -(t-A)^2/B = -(t^2-2*A*t+A^2)/B
现在你有一个二阶多项式,你可以使用最小二乘拟合来获得A和B的值,以最小化误差平方和。
既然我可以看到你的功能,我会忽略t = 1.4 seconds
跳转前的值。仅适合t >= 1.4 seconds
的值。
答案 2 :(得分:0)
高斯分布由两个参数唯一确定,即分布的平均值(在您的情况下为A
)和方差sigma
(与您的B
相关2*sigma^2=B
)。
因此,您只需计算数据的均值和方差,并将其插入高斯数据中。