Кубическая сплайн-функция MbCubicSplineFunction
Класс MbCubicSplineFunction объявлен в файле cur_cubic_spline_function.h.
Кубическая сплайн-функция MbCubicSplineFunction описывается множеством контрольных точек valueList, множеством вторых производных функции в контрольных точках secondList, множеством значений параметра функции в контрольных точках tList и признаком периодичности функции closed. У функции есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов функции.
Кубическая сплайн-функция при значении параметра tList[i], i = 0, 1, …, splinesCount, где splinesCount = tList.MaxIndex(), проходит через контрольную точку valueList[i] и имеет в ней вторую производную secondList[i].
При вычислении функции сначала по значению параметра t кривой определяется номер i рабочего участка из условия tList[i] ≤ t ≤ tList[i + 1]. Функция вычисляется для найденного рабочего участка по его локальному параметру w, который определяется по tList[i] и tList[i + 1].
В методе double Value( double & t ) работает функция
где
— локальный параметр рабочего участка tList[i] ≤ t ≤ tList[i + 1].
Кубическая сплайн-функция приведена на рис. 1:
Рис. 1
Область определения параметра функции располагается в пределах tmin ≤ t ≤ tmax, где tmin = tList[0], tmax = tList[splinesCount]. Функция может быть периодической.
Форма функции зависит от расположения контрольных точек и от множества tList значений параметра в контрольных точках. При построении функции по контрольным точкам производные secondList[i] вычисляются из условия линейного изменения вторых производных между контрольными точками.