Главная
Новости
Строительство
Ремонт
Дизайн и интерьер




21.10.2021


21.10.2021


21.10.2021


17.10.2021


17.10.2021





Яндекс.Метрика

Сплайн Эрмита

18.04.2021

Кубический эрмитов сплайн — сплайн, построенный из кубических полиномов с использованием эрмитовой интерполяции, в соответствии с которой интерполируемая функция задается не только своими значениями в n точках, но и её первыми производными. Для заданной интерполяционной сетки x k {displaystyle x_{k}} для k = 1 , . . . , n {displaystyle k=1,...,n} , и заданного значения независимой переменной x вычисление функции проводится в соответствующем интервале ( x k , x k + 1 ) {displaystyle (x_{k},x_{k+1})} с известными граничными значениями функции p и её производной m. Для упрощения вычислений делается замена независимой переменной x на независимую переменную t по формуле t = ( x − x k ) / ( x k + 1 − x k ) {displaystyle t=(x-x_{k})/(x_{k+1}-x_{k})} . В результате такой замены левая граница интервала становится равной 0, а правая 1. Кубический полином, служащий для вычисления интерполируемой функции в соответствующем интервале имеет вид:

p ( t ) = ( 2 t 3 − 3 t 2 + 1 ) p k + ( t 3 − 2 t 2 + t ) ( x k + 1 − x k ) m k + ( − 2 t 3 + 3 t 2 ) p k + 1 + ( t 3 − t 2 ) ( x k + 1 − x k ) m k + 1 {displaystyle {oldsymbol {p}}(t)=(2t^{3}-3t^{2}+1){oldsymbol {p}}_{k}+(t^{3}-2t^{2}+t)(x_{k+1}-x_{k}){oldsymbol {m}}_{k}+(-2t^{3}+3t^{2}){oldsymbol {p}}_{k+1}+(t^{3}-t^{2})(x_{k+1}-x_{k}){oldsymbol {m}}_{k+1}}

В вышеприведенной формуле значения производных относятся к независимой переменной t. Для их вычисления необходимо исходные значения производных умножить на длины интервалов x k + 1 − x k {displaystyle x_{k+1}-x_{k}} . Как следует из формулы, значение интерполируемой функции вычислятся с помощью четырёх кубических полиномов h 00 ( t ) , h 10 ( t ) , h 01 ( t ) , h 11 ( t ) {displaystyle h_{00}(t),h_{10}(t),h_{01}(t),h_{11}(t)} . Эти полиномы отнюдь не являются классическими полиномами Эрмита, как об этом сказано в англоязычной версии статьи. На практике обычно известны лишь значения функции в узловых точках, но не значения первой производной. Для вычисления значений первой производной используются различные способы. Простейшим является вычисление среднего арифметического значения разделенных первых разностей на двух соседних интервалах.

m k = p k + 1 − p k 2 ( t k + 1 − t k ) + p k − p k − 1 2 ( t k − t k − 1 ) {displaystyle {oldsymbol {m}}_{k}={frac {{oldsymbol {p}}_{k+1}-{oldsymbol {p}}_{k}}{2(t_{k+1}-t_{k})}}+{frac {{oldsymbol {p}}_{k}-{oldsymbol {p}}_{k-1}}{2(t_{k}-t_{k-1})}}}

В так называемом кардинальном сплайне используется формула

m k = ( 1 − c ) p k + 1 − p k − 1 t k + 1 − t k − 1 {displaystyle {oldsymbol {m}}_{k}=(1-c){frac {{oldsymbol {p}}_{k+1}-{oldsymbol {p}}_{k-1}}{t_{k+1}-t_{k-1}}}}

В этой формуле параметр c изменяется от 0 до 1. В соответствии с этой формулой производная в середине отрезка равняется разделённой первой разности на всем отрезке, умноженной на некий коэффициент. В случае с = 0 формула называется сплайном Катмалла-Рома (базовым сплайном).