Мы легко можем построить это на графике без Python:
Это показывает нам, что ответ должен быть (13).
Но как мы это вычислим? Во-первых, мы находим градиент с этим:
Цифры подставляются в уравнения дают это:
Итак, мы знаем 0,625 увеличиваем значение Y на, мы увеличиваем значение Х на 1.
Нам дано, что Y равно 100. Мы знаем, что 102.5 относится к 17. 100 - 102.5 = -2.5
. -2.5/0.625 = -4
, а затем 17 + -4 = 13
.
Это также работает с остальными цифрами: 100 - 95 = 5
, 5/0.625 = 8
, 5 + 8 = 13
.
Мы также можем вернуться назад, используя обратный градиент (1/m
).
Нам дано, что X равно 13. Мы знаем, что 102.5 относится к 17. 13 - 17 = -4
. -4/0.625 = -2.5
, а затем 102.5 + -2.5 = 100
.
Как это сделать в python?
def findXPoint(xa,xb,ya,yb,yc):
m = (xa - xb)/(ya - yb)
xc = (yc - yb) * m + xb
return
А найти точку Y заданную точку X:
def findYPoint(xa,xb,ya,yb,xc):
m = (ya - yb)/(xa - xb)
yc = (xc - xb) * m + yb
return yc
Эта функция также экстраполировать из точек данных.
Вне темы: Обратите внимание, что вы буквально просите линейную интерполяцию. При сборе данных в реальном времени распределение данных не обязательно будет линейным. – Aguy