2014-12-19 2 views
-1

У меня есть множество точек x,y, для которых я пытаюсь соответствовать квадратное отношения так,Constrained кривой питон фитинга

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,

и установить с использованием параметров a и c. Это по-прежнему линейная подгонка и должна быть легко решена с помощью той же процедуры подгонки, что и для модели y = a x^2 + b x + c.

Возможно, вы слишком упростили пример из своей реальной проблемы. Если это так, и если нелегко решить ограничение для одного параметра в терминах других, вы можете ввести множитель Лагранжа. Ключевая фраза «ограниченная оптимизация» может помочь вам.

Смежные вопросы