我有这样的源数据:
35 40
-15 15.0 15.1
-10 17.2 17.4
-5 19.7 19.8
我需要在 (-16, 37) 中找到值。我已经尝试过线性插值,但我只能用 (x,y) 几个值来解决。你可以帮帮我吗?
非常感谢,安德里亚
我有这样的源数据:
35 40
-15 15.0 15.1
-10 17.2 17.4
-5 19.7 19.8
我需要在 (-16, 37) 中找到值。我已经尝试过线性插值,但我只能用 (x,y) 几个值来解决。你可以帮帮我吗?
非常感谢,安德里亚
您可以尝试为您的数据安装飞机:
z=A*x+B*y+C
然后使用最小二乘法和 6 个点 (-15,35,15.0) 求解 A、B、C,... Excel 可能会为您找到最佳值。
编辑
在这里,我插入了您的数据(绿色单元格),并使用求解器工具构建了最优线性模型 z=A x+B y+C。(x 是 35,40,y 是 -15,-10,-5)。A,B,C 是左侧的蓝色单元格。那么粉红色的单元格是 A x+B y+C,红色的单元格是 (date-model)^2。误差是所有这 6 个红细胞的总和。
然后使用 Solver 工具(需要从 Excel 选项中激活)。将错误单元格定义为目标(最小化),将 A、B、C 定义为可变单元格。它将找到最佳的 A、B、C 值。
然后将这些值应用于您的请求(x=37 和 y=-16),结果为 14.5。
安德里亚,看起来试图帮助的人(包括我)仍然对你的数据有困难。
要在 excel 中对矩阵执行任何操作,您需要使用数组公式。输入完公式后,不要按 Enter。按 Ctrl + Shift + Enter 代替。如果您操作正确,您将在公式栏中看到您输入的公式被 {} 包围。
如果您认为您的数据是线性的,并且您想尝试@tom10 确定的方法,请尝试
=TREND(<known y's>,<known x's>,<new x's>)
它将为每个提供的新 x 返回一个新的 y 数组。
您也可以尝试矩阵公式。如果您可以将问题表达为线性方程组,则 excel 有一些矩阵公式。这里有一个很好的演练。如果您的矩阵是方形的,这些只会对您有所帮助。
线性插值将在给定范围内找到条目。即-5 >= x >= -15。要找到 -16 的值,您需要进行推断。
一种方法是将曲面拟合到点,例如求解 Ax = b) 或说它与 (-15, 37) 相同 - 因此取决于您的需求并选择正确的方法,这并不是本网站的真正意义。
如果您知道方法,我们可以告诉您如何计算它,但您应该通过显示代码来展示您尝试过的方法。
您可以通过处理这是三个独立的线性问题来做出合理的估计:
这是一个近似值,而不是最佳解决方案,但我怀疑 Excel 是否进行了正确解决问题所需的多元分析——您可以在这些点上拟合曲面。虽然我不太了解Excel,并且可能出于无知而怀疑它。
Andrea,如果你想在 Excel 中使用 2D 分段双线性插值,我可以在这里推荐 VBA 函数吗?过去这对我来说效果很好。
xongrid的Interp2dTab函数可用于双线性插值
感谢大家,您的建议对我更好地理解问题非常有帮助。
一开始我以错误的方式提出了这个问题,因为我从数据的图形表示中得到了启发,一个矩阵。但是,经过一番“咕哝”之后:)我明白表示问题的正确方法是:
f(x1,x2) = y
35 40
-15 15.0 15.1
-10 17.2 17.4
-5 19.7 19.8
所以,即 f(35, -15) = 15.0
要获得 x1 = 37 和 x2 = -13 的值,我可以使用双线性插值。问题的图形表示
http://en.wikipedia.org/wiki/File:Bilinear_interpolation.png
是我的灵感之光。
谢谢大家!
安德烈亚