Я могу сделать это в 2D. используя BPoly из scipy.
Код: Выделить всё
import numpy as np
from scipy.interpolate import BPoly
x_pts = np.linspace(-1,1,5)
y_pts = x_points**2
derivative_pts = [1,-1,0,1,2]
yi = [[y_points[i],derivative_pts[i]] for i in range(len(derivative_pts))]
bpoly = BPoly.from_derivatives(x_pts, yi)
x_curve = np.linspace(-1,1,100)
y_curve = bpoly(x_curve)
введите сюда описание изображения.
Хотя это и не очень хорошо, но, по крайней мере, это показывает мне, что есть должен быть перегибом между -1 и -0,5. Меня это устраивает, поскольку я пытаюсь визуализировать это только для того, чтобы получить представление о том, как должна выглядеть кривая.
Я использую Python. Мои наборы данных не очень велики — они составляют порядка 20 точек данных — 3D-точки в пространстве, каждая из которых имеет 2D-якобиан. Но поскольку мы можем измерить якобиан в каждой точке данных, функциональная форма является интуитивно понятной. Но мне хотелось как-то это визуализировать.
Я погуглил схемы 3D-интерполяции и знаю, что в scipy есть куча многомерных интерполяций - но не знаю, какая из них подойдет лучше всего для меня.
Подробнее здесь: https://stackoverflow.com/questions/793 ... tion-in-3d
Мобильная версия