Ваша последняя картинка показывает только три точки, которых достаточно только для определения квадратичного полинома, а не кубического. Для кубической интерполяции вам понадобятся четыре точки. Кубический многочлен можно подогнать разными способами; вот два.
Самый простой способ - просто пропустить (уникальный) полином через все четыре точки.
Другой способ - использовать касательные. Опять же, нам нужно четыре очка. Пусть две левые точки определяют наклон. Пусть полином проходит через точку second (обычно она не проходит через первую точку) и соответствует вычисленному уклону в этой точке. И то же самое с правой стороны для четвертого и третьего пункта.
Кстати, любой многочлен более высокого порядка, вероятно, является плохой идеей, потому что он имеет тенденцию становиться очень нестабильным даже при небольшом входном шуме.
Если вы дадите более подробную информацию о вашей проблемной области, я мог бы дать более конкретный ответ. Например, откуда берутся ваши данные, какую кривую вы обычно ожидаете, и можете ли вы вернуться и сэмплировать больше, если потребуется? При необходимости я могу предоставить уравнения и псевдокод.
Обновление : глупо, я оставил предложение, ссылаясь на два способа, не печатая их. Напечатал их сейчас.