1. Если ваши точки являются точками функции, вам понадобится кубический сплайн Эрмита. интерполяция:
В численном анализе кубический сплайн Эрмита или кубический интерполятор Эрмита - это сплайн, где каждая часть представляет собой полином третьей степени, заданный в форме Эрмита, то есть своими значениями и первыми производными в конечных точках соответствующего интервала области.
Кубические сплайны Эрмита обычно используются для интерполяции числовых данных, указанных при заданных значениях аргумента x (1), x (2), ..., x (n), чтобы получить гладкую непрерывную функцию. Данные должны состоять из желаемого значения функции и производной для каждого x (k). (Если указаны только значения, производные должны оцениваться по ним.) Формула Эрмита применяется к каждому интервалу (x (k), x (k + 1)) отдельно. Результирующий сплайн будет непрерывным и будет иметь непрерывную первую производную.
Кубические полиномиальные сплайны могут быть заданы другими способами, форма Безье является наиболее распространенной. Однако эти два метода обеспечивают одинаковый набор сплайнов, и данные можно легко преобразовать между формами Безье и Эрмита; поэтому имена часто используются как синонимы.
Указание нормалей в каждой точке аналогично указанию касательных (наклонов, 1-й производной), потому что последние перпендикулярны первому.
В Matlab функция для вычисления кусочно-кубического интерполяционного полинома Эрмита - это _1 _. Единственная проблема в том, что pchip
слишком умен:
Внимательный читатель заметит, что pchip принимает в качестве входных данных значения функций, но не производные значения. Это связано с тем, что pchip использует значения функции f (x) для оценки производных значений. [...] Чтобы сделать хорошее приближение производной, функция должна использовать приближение с использованием 4 или более точек [...] К счастью, с помощью Matlab мы можем написать наши собственные функции для интерполяции с использованием реальных кубических сплайнов Эрмита.
... автор показывает, как это сделать, используя функцию _3 _.
2. Если ваши точки не обязательно являются точками функции, то каждый интервал следует интерполировать с помощью квадратичная кривая Безье:
![введите описание изображения здесь](https://i.stack.imgur.com/FiKvd.gif)
В этом примере даны 3 точки: конечные точки P (0) и P (2), а также P (1), которая является пересечением касательных в конечных точках. Положение P (1) может быть легко вычислено по координатам P (0) и P (2) и нормалей в этих точках.
В Matlab вы можете использовать spmak
, см. Примеры здесь и здесь.
person
kol
schedule
01.04.2014