Как вычислить первую производную на дискретном наборе точек в реализации кубического сплайна? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь реализовать кубическую сплайн-интерполяцию.Кубические сплайны не так сложно понять математически, но у меня есть проблема с пониманием термина «Di», как показано в четвертом уравнении в математическом мире.

Относится ли Di к конечной разнице, вычисленной путем взятия текущей и следующей точек (y_i и y_i + 1 соответственно) из дискретного набора точек?

1 Ответ

1 голос
/ 09 апреля 2019

Di - это просто первый производный вектор кубического сплайна в точке y_i. Это может быть рассчитано различными способами, включая конечную разницу. Сплайн Catmull-Rom является широко используемым сплайном, который выводит первую производную y_i из y_ (i-1) и y_ (i + 1).

Первая часть этого документа MathWorld (до уравнения 9) просто показывает, что если у вас есть n точек и n первых производных, кубический сплайн, проходящий через все n точек, будет полностью определен. Обратите внимание, что этот кубический сплайн состоит из (n-1) кубического полинома и, как правило, только C1 непрерывный.

Вторая часть этого документа после ур. 9 показывает, что вы можете устранить необходимость в первых производных, сделав 2-е производные между кубическими полиномами одинаковыми во всех внутренних точках (т.е. уравнение 13). Однако это приведет к (4n-2) уравнениям с 4n неизвестными. Поэтому нам нужно добавить еще два условия. Нулевые 2-ые производные в первой и последней точке (уравнение 16, 17) обычно используются для этих двух условий, и это также приведет к так называемому естественному кубическому сплайну.

...