2017-02-22 63 views
-3

我需要用php插值点,你知道任何库吗?传统的搜索不能让我找到任何好的结果。线性插值库与PHP

我有一个表格,列x和y的值。

X   Y 
10  676 
20  894 
30  1100 
40  1200 
50  1000 

我想知道是否有一个函数可以帮助线性插值。例如,我想要对应于X = 35的Y的插值。

感谢

+0

*问题,要求我们建议还是找一本书,工具,软件库,教程或其他异地资源是题外话* –

+0

你很可能不得不自己实现这个或者切换到一个有这样的库的语言。 – apokryfos

回答

3

这就是简单的数学 - 无需使用任何图书馆都没有。

如果你想的XY值,你必须要找到最大的价值小于Xx0)和最低值大于Xx0)。 如果这两个值相等,则不必执行任何操作,只需返回表中的Y值即可。

否则,取两个对应的Y值(y0y1)并对它们进行插值。

d = (x - x0)/(x1 - x0) // value in the range of [0; 1] 
y = y0 * (1 - d) + y1 * d // your interpolated value 

在你的x = 35 =>x0 = 30情况下,x1 = 40

d = (35 - 30)/(40 - 30) // 0.5 
y = 1100 * (1 - 0.5) + 1200 * 0.5 // 1150