gpt4 book ai didi

python - 样条插值

转载 作者:行者123 更新时间:2023-12-04 00:57:07 25 4
gpt4 key购买 nike

我在以下集合上执行样条插值时遇到困难:

import numpy
SOURCE = numpy.array([[1,2,3],[3,4,5], [9,10,11]])
from scipy.interpolate import griddata
from scipy.interpolate import interp1d
input = [0.5,2,3,6,9,15]

线性插值工作正常,但是当我用三次替换线性时,我有一个错误:

f = interp1d(SOURCE[:,0], SOURCE[:,1:], kind="linear", axis=0, bounds_error=False)
f(input)

f = interp1d(SOURCE[:,0], SOURCE[:,1:], kind="cubic", axis=0, bounds_error=False)
ValueError: The number of derivatives at boundaries does not match: expected 1, got 0+0

如何执行三次插值?

最佳答案

您的 SOURCE 数据太短。三次样条曲线至少需要四个点来进行插值,但您只提供三个点。如果您向 SOURCE 添加一个值,它应该或多或少地按预期工作:

>>> SOURCE = numpy.array([[1,2,3],[3,4,5], [9,10,11], [12,13,14]])  # added an extra value
>>> f = interp1d(SOURCE[:,0], SOURCE[:,1:], kind="cubic", axis=0, bounds_error=False)
>>> f(input)
array([[nan, nan],
[ 3., 4.],
[ 4., 5.],
[ 7., 8.],
[10., 11.],
[nan, nan]])

关于python - 样条插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61579659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com