В Matlab я могу использовать функцию spapi
интерполяции spapi
для генерации сплайновой кривой, так что заданные значения кривых и первых двух производных можно сопоставить. Например:
spapi([0 0 0 0 1 2 2 2 2],[0 1 1 1 2],[2 0 1 2 -1])
это дает уникальный кубический сплайн f на интервале [0..2] с ровно одним внутренним узлом в 1, который удовлетворяет пяти условиям
f (0) = 2, f (1) = 0, f '(1) = 1, f' '(1) = 2, f (2) = - 1
Они включают 3-кратное совпадение на 1, т.е. Сопоставление с заданными значениями функции и ее первых двух производных.
Однако в Python функция scipy.interpolate.splrep(x,y)
интерполяции scipy.interpolate.splrep(x,y)
не может работать, так как x
должно быть монотонным увеличением.
Итак, как я могу получить кривую с заданными значениями и производными значениями? Есть ли какой-либо Python-мольдук или функция?
Большое спасибо!
scipy.interpolate.BPoly.from_derivatives
создает сплайн Эрмита, где вы можете выбрать значения производных:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BPoly.from_derivatives.html
В вашем примере у вас будет два интервала: 0..1 и 1..2.