Оценка UnivariateSpline Python на сложных данных
Я использовал scipy
интерполировать некоторые реальные данные. Я хотел оценить сплайн на некоторых сложных данных, есть ли уловка, чтобы заставить scipy
сделать это? Если нет, есть ли пакеты Python, которые предоставляют эту функциональность?
import scipy.interpolate as inter
spl = inter.InterpolatedUnivariateSpline( x, y )
При попытке оценить это по сложному 1.0j
ошибка приведения в _fitpack._spl_
загорается
2 ответа
Сплайн - это кусочная функция, определяемая отдельно на определенных интервалах реальной линии. Вставка сложных значений в сплайн не имеет математического смысла. Это не ограничение SciPy; значение сплайна для нереальных аргументов не определено.
Если вы хотите подогнать функцию, а затем вставить в нее сложное значение, сплайн - неподходящий инструмент для работы. Вы можете подобрать полином или любую не кусочную модель, которая определена для сложных аргументов.
У меня была та же проблема, я хотел сделать это со сложным числом. Мое решение состояло в том, чтобы разделить действительную и мнимую части независимо друг от друга:
spline_real = InterpolatedUnivariateSpline(t_in, in_.real)
spline_imag = InterpolatedUnivariateSpline(t_in, in_.imag)
out_real = spline_real(t_out)
out_imag = spline_imag(t_out)
Затем снова объедините в комплексные числа.