【问题标题】:Interpolation of function with accurate values for given points使用给定点的准确值对函数进行插值
【发布时间】:2014-05-22 14:29:46
【问题描述】:

我有一系列代表函数值的点,下面是一个例子:

X 和 Y 的值可以是实数(非整数)。该函数是单调的,不递减的。

我希望能够对任何 X(例如 1.5)的函数值进行插值/评估,以便连续函数线如下所示:

这是一个标准的插值问题,所以到目前为止我使用的是拉格朗日插值。它非常简单,并且提供了足够好的结果。

插值的问题在于它还会对作为输入给出的值进行插值,因此输入数据的最终结果将不同(例如 x=1,x=2)

是否有一种算法可以保证所有输入值在插值后都具有相同的值?线性插值是一种解决方案,但它是线性的,X 之间的距离不必是偶数(那么图很难看)。

请原谅我的英语/数学语言,我不是母语人士。

【问题讨论】:

  • Err... 只是一个注释。我认为您将插值与拟合混淆了。插值始终保持数据点的准确性。它估计数据点之间的值。拟合试图找出一个最能描述数据集的函数。我认为没有一种方法可以产生平滑的函数并通过每个给定点。好吧,从技术上讲,我认为高阶多项式会,但看起来会更丑。但我不确定,最好在数学堆栈或统计数据中询问。
  • @luk32 我不知道该怎么称呼它。让我放宽要求:我需要第一个和最后一个点相同(在 x=1 和 x=10 的示例中),所有中间值都可以是近似值,但函数必须保持单调。事实上,这就是我画的。我想我无法形容它好。这可能吗?
  • 我不相信有一个拟合可以保证所有值都与输入相同,你能做的最好的就是使用一个度量来查看像 MSE 这样的拟合有多好。如果您正在编写程序,那么您的解决方案可能不在数学中,而是在实现中。将输入用作您需要插值的值....
  • @NiRR 请阅读我之前的评论:如果我希望唯一的第一个点和最后一个点相同,是否有可能?
  • 1.你的图片不是插值!!! 2.您可以使用像这里stackoverflow.com/a/23627081/2521214 这样的 4 点立方体贴片,只需将其转换为 2D 并为两个轴使用一些参数 t(类似于样条线或 BEZIER 三次贴片)。如果您需要比 C1 更好的连续性,那么只需增加控制点的数量。高阶多项式倾向于振荡,结果会很丑

标签: algorithm charts language-agnostic interpolation


【解决方案1】:

拉格朗日插值多项式实际上通过了所有 n 个点,http://mathworld.wolfram.com/LagrangeInterpolatingPolynomial.html。虽然对于一维问题,三次样条是首选的插值器。

如果您希望将模型(例如,线性、二次或三次多项式或其他函数)拟合到您的数据,而不是我认为您仍然可以对系数施加约束以确保逼近函数通过一些选定的点。首先选择模型,然后解决最小二乘拟合问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2012-03-27
    相关资源
    最近更新 更多