Функции сплайн-интерполяции

В SMath есть три функции для сплайн-интерполяции:

  • linterp('X-вектор','Y-вектор','x') возвращает линейно интерполированное значение в точке x для векторов данных X-вектор и Y-вектор одинакового размера.
  • cinterp('X-вектор','Y-вектор','x') возвращает значение, интерполированное кубическим сплайном, в точке x для векторов данных X-вектор и Y-вектор одинакового размера.
  • ainterp('X-вектор','Y-вектор','x') возвращает значение, интерполированное сплайном Акимы, в точке x для векторов данных X-вектор и Y-вектор одинакового размера.

Вот пример, показывающий эти функции:

пример сплайн-интерполяции

Обратите внимание, насколько ненадёжны все эти функции за пределами диапазона исходных точек данных — то есть ниже x=1 и выше x=5. Используйте их только для интерполяции, а не для экстраполяции.

X-вектор можно отсортировать по возрастанию:

X-вектор отсортирован по возрастанию

X-вектор также можно оставить неотсортированным. Поскольку основное назначение интерполяции — оценить y-значение для x-значения, отсутствующего в таблице, так делать не рекомендуется:

X-вектор оставлен неотсортированным

Эта страница основана на статье из старой вики, автор — Greg Locock.