关于python:如何让fit函数定义拟合范围?

how to let the fit function to define the fitting range?

我想用 python 拟合我的部分数据,使用 lmfit(这不是必须的!)。我想要拟合数据的动态范围,这意味着有两个拟合参数来定义我要拟合的数据部分(我们称之为下边界和上边界)。
原因是我有很多数据集。在每个拟合范围内各不相同,我无法定义一个模型来拟合整个数据范围。另一方面,我无法遍历每个数据集并定义拟合范围。
有可能吗?我想将脉冲函数与我的模型相乘,这也会影响原始数据。尽管据我所知,我无法告诉 lmfit 将其与数据相乘。所以我想不通!

orange line is the fit, blue dots are the fitted data, and the light green dots are the excluded data


模型函数或要最小化的函数返回的观测值数量(数据点或残差数组的长度)在整个单独拟合中必须相同。当然,这可以在连续拟合之间改变。因此,您可以尝试对具有不同范围的每个数据集进行多次拟合,也许是根据之前的拟合进行设置。

我认为您使用"不适合的地方"来确定不适合的地方的想法有些可疑,您希望确保避免导致荒谬的结果。例如,如果范围自动缩小到 Ndata = Nvariables 1,那么与 Ndata = 100*Nvariables 相比,您可能会得到一个非常低的卡方。

在不知道细节的情况下,我认为您最好提出选择仅依赖于数据而不适合它的数据范围的标准。