【问题标题】:Constrained curve fitting python约束曲线拟合python
【发布时间】:2023-12-13 09:46:01
【问题描述】:

我有一组点 x,y 我正试图拟合二次关系,所以,

y = ax^2 + bx + c

例如,我对a,b,c, 也有一些等式约束,

b=-a*K ( where K is a constant)

解决这个问题最简单的方法是什么?

好的,这就是我的努力:我可以定义一个误差函数并将约束定义为惩罚项,并使用二次优化器,我很好奇是否有人有更简单的方法。也许使用内置的东西,据我所知,没有标准的内置方法可以做到这一点。

【问题讨论】:

标签: python constraints curve-fitting


【解决方案1】:

如果您明确知道一个参数相对于其他参数的约束(如您的示例中的b=-a*K),则应在进行拟合之前从模型中删除此参数(您的示例中为b)。在您的示例中,我会将模型编写为

y = a (x^2 - K x) +c,

并拟合参数ac。这仍然是一个线性拟合,应该可以通过与 y = a x^2 + b x + c 模型相同的拟合例程轻松解决。

您可能对实际问题的示例过于简化了。如果是这种情况,并且很难根据其他参数解决一个参数的约束,则可以引入拉格朗日乘数。一个关键短语“约束优化”可能会对您有所帮助。

【讨论】:

    相关资源