那么我们有一个矩阵,如下所示:
12,32
24,12
...
长度为2xN,另一个
44,32
44,19
...
给定长度为2xN的两个矩阵,其中有一个函数f(x, y)返回z[1]和z[2]。我们所给出的这两个矩阵代表了已知的x、y和z[1]、z[2]值对。在这种情况下,需要使用插值公式来帮助解决问题。
那么我们有一个矩阵,如下所示:
12,32
24,12
...
长度为2xN,另一个
44,32
44,19
...
给定长度为2xN的两个矩阵,其中有一个函数f(x, y)返回z[1]和z[2]。我们所给出的这两个矩阵代表了已知的x、y和z[1]、z[2]值对。在这种情况下,需要使用插值公式来帮助解决问题。
f_1(x,y)
和f_2(x,y)
,并将它们组合成函数f(x, y) = [f_1(x,y), f_2(x,y)]
。只需选择适合您问题的任何方法来解决插值函数即可。编辑:更多信息和一些链接。
可以使用双线性插值(维基百科)进行分段解决方案。
对于多项式插值,如果您的数据在网格上,可以使用以下算法(我找不到参考资料,这是我记忆中的)。
如果数据点在k
乘l
网格上,请将多项式重写如下:
f(x,y) = cx_1(x)*y^(k-1) + cx_2(x)*y^(k-2) + ... + cx_k(x)
cx_i(x)
也是一个次数为l
的多项式。第一步是通过插值网格的每一行或每一列来找到k
个次数为l
的多项式。完成后,您将有l
个系数集(或者说l
个多项式)作为cx_i(x)
多项式的插值点,如cx_i(x0)
,cx_i(x1)
,...,cx_i(xl)
(总共给出了l*k个点)。现在,您可以使用上述常数作为插值点来确定这些多项式,这将给出您的结果f(x,y)
。0,0 => 1
0,1 => 2
1,0 => 3
1,1 => 4
f_0(x) = x + 1
f_1(x) = x + 3
cy_1(y) = 1
cy_2(y) = 2*y + 1
如果将它们组合成f(x,y)
,我们得到:
f(x,y) = cy_1(y)*x + cy_2(y)
= 1*x + (2*y + 1)*1
= x + 2*y + 1