约束曲线拟合python

时间:2014-12-19 16:24:01

标签: python constraints curve-fitting

我有一组点x,y,我试图使其符合二次关系,

y = ax^2 + bx + c

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

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您明确知道其他参数对其他参数的约束(如示例b=-a*K中所示),则应在执行之前从模型中删除此参数(示例中为b)配件。在您的示例中,我将模型编写为

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

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

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