Что такое интерполирующая функция Python, которая совпадает со spapi в Matlab? - PullRequest
0 голосов
/ 02 сентября 2018

В Matlab я могу использовать функцию сплайн-интерполяции 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) не может работать, поскольку x должно быть монотонно возрастающим.

Итак, как я могу получить кривую с заданными значениями и производными значениями? Есть ли Python Moldue или функция?

Большое спасибо!

1 Ответ

0 голосов
/ 02 сентября 2018

scipy.interpolate.BPoly.from_derivatives создает сплайн Эрмита, где вы можете выбрать значения производных:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BPoly.from_derivatives.html

В вашем примере у вас будет два интервала: 0..1 и 1..2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...