gpt4 book ai didi

python - 创建一个以特定斜率改变方程的函数,可用于 curve_fit

转载 作者:行者123 更新时间:2023-11-28 17:12:55 26 4
gpt4 key购买 nike

我目前正在研究将下降曲线拟合到真实世界的生产数据。我很幸运地创建了双曲线并使用了 scipy.optimize 中的 curve_fit。我目前使用的功能:

def hyp_func(x,qi,b,di):
return qi*(1.0-b*di*x)**(-1.0/b)

我现在想做的是,以一定的下降率,过渡到指数函数。我将如何解决这个问题并且仍然能够在 curve_fit 中使用(我认为下面的作品)?我正在尝试下面的代码,这是这样做的方法吗?或者有更好的方法吗?

def hyp_func2(x,qi,b,di):
dlim = -0.003
hy = qi*(1.0-b*di*x)**(-1.0/b)
hdy = di/(1.0-b*di*x)
ex = x[hdy>dlim]
qlim = qi*(dlim/di)**(1/b)
xlim = ((qi/qlim)**b-1)/(b*-di)
ey = qlim*np.exp(dlim*(ex-xlim))
y = np.concatenate((hy[hdy<dlim],ey))
return y

hy 是双曲方程
hdy 是 hy 导数
ex是x的导数命中dlim后的部分
ey 是指数方程

我仍在计算方程式,我没有得到连续函数。

编辑:数据here , 和更新的方程式

最佳答案

很抱歉成为坏消息的传递者,但如果我理解你正在尝试做的事情,我认为使用 scipy.optimize.curve_fit 或任何其他方法是非常困难的从 scipy.optimize 做你希望做的事。

大多数拟合算法都设计用于处理连续变量,并且通常(curve_fit 当然)从对参数值进行非常小的更改开始,以找到正确的改进结果的方向和步长。

但您正在寻找的是一个离散变量,作为一种函数形式(大致为“幂律”)与另一种函数形式(“指数”)之间的断点该算法通常不会在 di 参数中进行足够大的更改,以区分使用哪个值作为该断点,并可能决定 di 不会影响拟合(您的模型使用 di 也会以其他方式出现,因此您可能会很幸运,di 可能会对合身性产生影响。

关于python - 创建一个以特定斜率改变方程的函数,可用于 curve_fit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com