为什么matlab使用以下插值函数?

时间:2015-07-31 17:58:50

标签: matlab math floating-point linear-interpolation

如果你尝试在matlab中执行线性插值,它显然会使用“网格”插值。

通常,我希望线性插值函数看起来像这样:

方法A:

linear interpolation

我们希望在u。

知道y(u)的值

然而,matlab似乎使用以下公式:

方法B:

  1. EQ1

    enter image description here

  2. EQ2

    enter image description here

  3. 因此,如果您使用方法A 并将答案与方法B 进行比较,结果实际上会有所不同。 在某些输入的双精度浮点运算中,我发现结果的差异大约是2 ^ -18。

    我的问题:

    为什么MATLAB选择使用方法B?似乎方法A涉及较少的计算。另外,公式“更”是否正确?

    执行方法A应包括以下内容:

    temp =(y(k + 1)-y(k))/(x(k + 1)-x(k))

    y(u)= y1 + temp *(u-x(k))

1 个答案:

答案 0 :(得分:0)

两个公式实际上是相同的。你可以自己检查一下。重点是它们不是两种不同的方法(A和B)。唯一的区别是顺序或计算。看看我的手写作:)

enter image description here