如何解决反向样条插值 SciPy
我有一个 X 和 Y 数据数组,我还有一个基于 X 值输出 Y 值的样条。
我需要得到一个将执行反向操作的样条,即输出超过 Y 值的 X 值。
(interpolate.splrep(y,x,s=0)
不建议)
def f(x):
return math.sin(x)
def compare_func(func,a,b,eps):
x_for_plot = list(np.arange(a,eps / 10))
x = list(np.arange(a,eps))
y_for_plot = [func(i) for i in x_for_plot]
y = [func(i) for i in x]
plt.plot(x_for_plot,y_for_plot,label='Orig')
plt.scatter(x,y,label='Points',color='blue')
spline = interpolate.splrep(x,s=0)
y_interpolated = interpolate.splev(x_for_plot,spline,der=0)
spline_inv = ???
x_calc = interpolate.splev(y_interpolated,spline_inv,der=0)
print(x_calc)
#x_calc and x_for_plot must be equal
plt.plot(x_for_plot,y_interpolated,label='Interpolated')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.show()
compare_func(f,-3,3,0.5)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。