【问题标题】:Interpolated curves between existing curves do not look correct现有曲线之间的插值曲线看起来不正确
【发布时间】:2017-10-03 00:14:07
【问题描述】:

我有一个图表,上面有几条现有曲线,我试图在它们之间插入新曲线。我使用了 y = ((x - x1)(y2 - y1) / (x2 - x1)) + y1 形式的线性插值,但是新曲线看起来不合适。

您可以在图片中看到每隔一行(从底部开始)是插值线。虽然第二行数据点恰好位于 y 轴上的第一个和第三个数据点之间,但第三行数据点不在第二个和第四个 y 数据点之间居中,从而使图形看起来偏斜。

所以我认为线性插值可能不是我想要的。有人可以推荐另一种在现有曲线之间创建曲线但复制相同形式的方法吗?

【问题讨论】:

    标签: excel interpolation curve-fitting


    【解决方案1】:

    渐变的突然变化很难插值。当您处于希望插值线突然改变梯度的点时,没有来自附近点的信息可以提供关于梯度突然变化应该发生在哪里的信息。

    要复制图案,您实际上需要复制下方线条的渐变,然后平滑过渡到上方线条的渐变。从视觉上我们可以看到,它应该发生在两侧上方和下方线条的梯度变化之间,但检测这些变化的位置并非易事。

    梯度突然变化的点被 x 轴的大变化和 y 轴的小变化分开。在计算梯度变化之间的 x 值的 y 值时,您会得到像差。我建议尝试根据 y 值插入 x 值。对于每条曲线,对于 y 轴上的每个小的任意步长,从曲线的任一侧查找/计算最接近的 x 值,然后取平均值来绘制插值。

    【讨论】:

    • 我已经尝试从 y 值中插值 x 值,但是我得到了类似的结果。我有一个双线性插值的过程,但它相当复杂,如果它产生相同的结果,我不想浪费工作时间。你知道双线性是否相似?
    • 我不是插值方面的专家,我不知道离它有多近会很抱歉。我只知道这些不是表现良好的曲线......它们是带有扭结的直线,具有我们可以很容易地在视觉上识别的图案,但在扭结之间,直接周围的点并不表示扭结应该发生在哪里。你想要的插值需要结合周围扭结的位置和形状,我不知道如何将这些信息结合到建模中。
    【解决方案2】:

    一种非常规的方法可能是一种零碎的插值方式。或许可以分别对不同梯度的 3 个区域进行建模。

    首先确定将通过 2 组扭结绘制的 2 条线,从而创建 3 个空间区域。垂直线将停在图表右下角附近的水平线处。

    对于每个区域(并且可能对于每个区域中的每个 x 值)确定线的梯度。当您对新线进行插值时,对于每个起点 (x1, y1),查看它所在的区域。在确定下一个点时,使用该区域的梯度作为重要因素。继续这样做,直到到达区域边界。当插值点穿越到不同区域时,再以该区域的梯度作为重要因素,插值下一个点。

    如果您严格执行此操作将非常有针对性,因此请在图表上进行一些平滑处理(或在区域之间转换时使用梯度的加权平均值加入平滑因子,但这可能需要大量的努力,但不一定会得到更接近的结果!)

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2017-04-09
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多