Добрый день!
Я в математической статистике не силен, но надо реализовать одну штуку.
Есть входные данные (оранжевый цвет). Я делаю Curve fitting используя numpy.polyfit с порядком полинома 30 степени (зеленый цвет).
Как видно из Рисунка 1 имеются осциляции в начале графика. Мне надо их избежать. Уменьшая порядок полинома появляется плохое совпадение с входными данными.
Я придумал, что хорошо бы разбить входные данные на участки и для каждого участка подобрать свои коэффициенты используя полином 2-й степени (или большей степени при этом исключив из полинома нечетные степени). Получается следующее (здесь использовался полином с нечетными степенями, просто в качестве примера):
Как видно между функциями имеется разрыв. Этот разрыв можно устранить добавив граничное условие по равенствe значений граничащих функций и их 1-й и 2-й производных (для гладкости и монотонности).
Вопрос: Как такой алгоритм можно реализовать используя numpy и scipy?