【发布时间】:2021-04-30 20:18:19
【问题描述】:
我正在尝试使用curve_fit 使用带有两个变量参数和一个常量的方程来拟合数据点。由于我想测试常量的不同值,所以我想避免将它写入函数。
以Scipy 的例子,我尝试做:
def func(x, a, b, c):
return a * np.exp(-b * x) + c
a_test = 3
popt, pcov = curve_fit(func, xdata, ydata, bounds=([a_test, 0, 0], [a_test, 1., 0.5]))
但我得到一个值错误,因为第一个参数的下限和上限相等。
有没有办法在不使用其他库(例如 lmfit)的情况下做到这一点?
【问题讨论】:
-
如果是常量,为什么要写成
func中的参数? -
好点,我已经修改了我的问题以解释我希望能够测试常量的不同值。
-
请注意,当前接受的答案看起来是正确的,但实际上是不正确的,并且可能会导致(未被注意到的)不正确的结果。
-
对于“如何在库 X 中做一些简单易行的事情,但不使用库 X”的问题,是否有类别或 SO 标志?就像,问题中的答案(“使用 lmfit”)不是吗?您将如何回答“如何在不使用任何 json 库的情况下稳健地读取和解释 JSON 文件?”之类的问题?
标签: python scipy curve-fitting