如何在指定x值处获取插值样条曲线对应的y值?
从样条曲线提取指定x值对应的y值
要获取样条曲线上指定x值对应的y值,直接使用scipy.interpolate模块中的splev函数即可实现,以下是针对你需求的完整示例:
import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import splev, splrep # 原始数据点 x = np.linspace(0, 10, 10) y = np.sin(x) # 生成样条拟合模型 spl = splrep(x, y) # 提取x=0.25对应的y值 target_x = 0.25 target_y = splev(target_x, spl) print(f"x=0.25 对应的 y 值:{target_y}") # 可视化验证(可选) x_curve = np.linspace(0, 10, 50) # 用更密集的点绘制样条曲线 y_curve = splev(x_curve, spl) plt.plot(x, y, 'o', label='原始数据点') plt.plot(x_curve, y_curve, label='样条曲线') plt.scatter(target_x, target_y, color='red', s=80, label='x=0.25 对应点') plt.legend() plt.show()
核心逻辑说明
splrep(x, y):根据原始x、y数据集生成样条插值的核心参数(节点、系数、阶数),返回的spl是后续插值计算的关键模型。splev(target_x, spl):传入目标x值(支持单个值或数组形式的多个值)和样条模型,直接输出对应的插值结果y值。
内容的提问来源于stack exchange,提问作者shoggananna
相关产品推荐
相关产品推荐

