2014-12-19 45 views
-1

我有一组点x,y为此我试图适应二次关系所以,约束曲线拟合蟒蛇

y = ax^2 + bx + c 

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

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

什么可能是解决这一问题的最简单的方法?

好了,所以这里是我的心血就这样的:我可以定义一个误差函数,定义约束惩罚条款,并使用二次优化,我很好奇,如果有人有一个更简单的方法。也许使用内置的东西,据我所知,没有标准的内置方法来做到这一点。

+0

你可以看一下[SciPy的(http://docs.scipy.org/doc/scipy/reference/optimize.html#module-scipy.optimize)库。如果它适合你的需求,你的问题可能是一个[这个问题的可能重复(http://stackoverflow.com/questions/16541171/how-do-i-put-a-constraint-on-scipy-curve-fit ) –

回答

1

如果您明确了解其中一个参数的约束条件(如您的示例b=-a*K),则应在进行拟合之前从模型中删除此参数(在本例中为b)。在你的榜样,我会写的模型

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

,适合的参数ac。这仍然是一个线性拟合,应由同一拟合程序可以轻松解决你使用的y = a x^2 + b x + c模型。

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