【发布时间】: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