插值Skill interpolation

该技能提供数值方法中插值问题的解决策略,包括数据评估、方法选择、SciPy工具实现和结果验证。适用于数据分析、科学计算和工程建模,常用于估计未知数据点。关键词:插值、数值方法、数据拟合、多项式插值、样条插值、SciPy、数据分析、预测建模。

数据分析 0 次安装 0 次浏览 更新于 3/14/2026

名称: 插值 描述: “数值方法中插值问题的解决策略” 允许工具: [Bash, Read]

插值

何时使用

在数值方法中处理插值问题时使用此技能。

决策树

  1. 评估数据特征

    • 有多少数据点?间距均匀还是非均匀?
    • 数据是平滑的还是嘈杂的?
    • 需要端点导数吗?
  2. 选择插值方法

    • 少量点(<10):多项式插值(拉格朗日,牛顿)
    • 大量点,平滑数据:三次样条
    • 嘈杂数据:平滑样条或最小二乘法
    • 高维度:使用基于单纯形的方法(n+1邻居 vs 2^n)
  3. 使用SciPy实现

    • scipy.interpolate.CubicSpline(x, y) - 自然三次样条
    • scipy.interpolate.make_interp_spline(x, y, k=3) - B样条
    • scipy.interpolate.interp1d(x, y, kind='cubic') - 一维插值
  4. 验证结果

    • 检查边界处的龙格现象(高次多项式)
    • 交叉验证:留一法误差估计
    • 可视化检查插值曲线
    • sympy_compute.py limit "interp_error" --at boundaries
  5. 高维考虑

    • Coxeter-Freudenthal-Kuhn三角剖分用于O(n log n)点定位
    • 重心细分以获得平衡性能

工具命令

Scipy_Cubic_Spline

uv run python -c "from scipy.interpolate import CubicSpline; import numpy as np; x = np.array([0,1,2,3]); y = np.array([0,1,4,9]); cs = CubicSpline(x, y); print(cs(1.5))"

Scipy_Bspline

uv run python -c "from scipy.interpolate import make_interp_spline; import numpy as np; x = np.array([0,1,2,3]); y = np.array([0,1,4,9]); bspl = make_interp_spline(x, y, k=3); print(bspl(1.5))"

Sympy_Lagrange

uv run python -m runtime.harness scripts/sympy_compute.py interpolate "[(0,0),(1,1),(2,4)]" --var x

关键技术

来自索引教科书:

  • [数值分析导论… (Z-Library)] 文献讨论 如引言所述,插值理论是数值积分和微分、近似理论以及微分方程数值解法发展的基础。这些主题在后续章节中发展,并在该点讨论相关文献。插值理论的额外结果见de Boor (1978), Davis (1963), Henrici (1982, 章节。
  • [数值分析 (Burden R.L., Fair… (Z-Library)] 最常用的插值形式是分段多项式插值。如果函数和导数值可用,推荐使用分段三次埃尔米特插值。这是插值微分方程解函数值的首选方法。
  • [数值分析 (Burden R.L., Fair… (Z-Library)] 版权 2010 Cengage Learning。未经允许,不得复制、扫描或复制,部分或全部。由于电子权利,部分第三方内容可能从电子书和/或eChapter(s)中删除。
  • [数值分析 (Burden R.L., Fair… (Z-Library)] Galerkin和Rayleigh-Ritz方法均由方程确定。然而,对于任意边界值问题并非如此。两种方法的相似性和差异处理以及Galerkin方法的广泛应用讨论见[Schul]和[SF]。
  • [数值分析导论… (Z-Library)] 多项式插值理论有许多重要用途。在本文中,其主要用途是提供一些数学工具,用于发展近似理论、数值积分和微分方程数值解法领域的方法。第二个用途是开发处理以表格形式存储的函数的手段。

认知工具参考

参见 .claude/skills/math-mode/SKILL.md 获取完整工具文档。