Мне нужно интерполировать точки с php, вы знаете какую-нибудь библиотеку для этого? Традиционный поиск не позволил мне найти такие хорошие результаты.
У меня есть таблица со значениями в столбцах х и у.
X Y
10 676
20 894
30 1100
40 1200
50 1000
Мне было интересно, если есть функция, которая может помочь с линейной интерполяцией. Например, я хочу получить интерполированное значение Y, соответствующее X = 35.
Спасибо
Это простая математика — нет необходимости использовать какую-либо библиотеку вообще.
Если вы хотите Y
ценность X
, вы должны найти наибольшее значение меньше, чем X
(x0
) и самое низкое значение больше X
(x0
).
Если эти два значения равны, вам не нужно ничего делать и просто вернуть Y
значение в вашей таблице.
В противном случае возьмите два соответствующих Y
ценности (y0
а также y1
) и сделайте с ними интерполяцию.
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
Других решений пока нет …