Python 如何让拟合函数定义拟合范围?

Python 如何让拟合函数定义拟合范围?,python,curve-fitting,lmfit,Python,Curve Fitting,Lmfit,我希望使用lmfit(这不是必须的!)将我的部分数据与python相匹配。我想要拟合数据的动态范围,这意味着有两个拟合参数来定义要拟合的数据部分(我们称之为下限和上限)。 原因是我有很多数据集。在每种情况下,拟合范围各不相同,我无法定义一个模型来拟合整个数据范围。另一方面,我无法遍历每个数据集并定义拟合范围。 有可能吗?我想将脉冲函数乘以我的模型,这也会影响原始数据。虽然据我所知,我无法告诉lmfit将其乘以数据。所以我不知道 模型函数或要最小化的函数返回的观测值数量(数据点或剩余数组长度)在整

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


模型函数或要最小化的函数返回的观测值数量(数据点或剩余数组长度)在整个拟合过程中必须相同。当然,这可能会在连续拟合之间发生变化。因此,您可以尝试对具有不同范围的每个数据集进行多次拟合,可能是基于以前的拟合设置的

我认为你用“哪里不适合”来决定哪里不适合的想法有些可疑,你应该确保避免导致荒谬的结果。例如,如果范围自动缩小到nDa=Nvariables+1,则与nDa=100*Nvariables相比,可能会得到非常低的卡方误差


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

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

我认为你用“哪里不适合”来决定哪里不适合的想法有些可疑,你应该确保避免导致荒谬的结果。例如,如果范围自动缩小到nDa=Nvariables+1,则与nDa=100*Nvariables相比,可能会得到非常低的卡方误差


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

为了以某种方式自动化数据范围选择,必须有某种筛选数据的标准。你有这样的标准吗?没有。我的想法是使用fit。我可以说从哪里开始,它应该在峰值附近,但是,它能走多远应该取决于拟合出来的卡方值。为了以某种方式自动化数据范围选择,必须有某种筛选数据的标准。你有这样的标准吗?没有。我的想法是使用fit。我可以说从哪里开始,它应该在峰值附近,但是,它能走多远应该取决于拟合出来的卡方值。