【发布时间】:2021-01-28 09:38:04
【问题描述】:
我已经能够成功地将值从x 的线性值插入到y 的类正弦值。
但是 - 我正在努力以另一种方式进行插值 - 从 y 的非线性值到 x 的线性值。
下面是一个玩具示例
import matplotlib.pylab as plt
from scipy import interpolate
#create 100 x values
x = np.linspace(-np.pi, np.pi, 100)
#create 100 values of y where y= sin(x)
y=np.sin(x)
#learn function to map y from x
f = interpolate.interp1d(x, y)
使用新的线性值x
xnew = np.array([-1,1])
我得到正确的非线性插值y
ynew = f(xnew)
print(ynew)
array([-0.84114583, 0.84114583])
当我尝试从y 插入x 的值时,问题就出现了。
我创建了一个新函数,与 f 相反:
f2 = interpolate.interp1d(y,x,kind='cubic')
我输入了之前成功插值的 y 值
ynew=np.array([-0.84114583, 0.84114583])
我希望得到x [-1, 1] 的原始值
但我明白了:
array([-1.57328791, 1.57328791])
我尝试为“kind”参数输入其他值,但没有成功,我不确定我是否在这里找到了错误的方法。感谢您的帮助
【问题讨论】:
标签: python scipy interpolation