Katyshin
@Katyshin
ИТ

Как написать функцию пересчета значений одной шкалы в другую?

Есть диапазон значений от 0.0 до 1.0, условно базовая шкала значений (предметно это обороты двигателя).

Необходимо значения из этого диапазона преобразовывать к значениям другой шкалы, у которой известны 2 значения, соответствующие значениям базовой шкалы 0.0, 0.2 и 1.0. Нужна функция которая позволит рассчитать все промежуточные значения новой шкалы, от известных значений базовой шкалы. И значения 0 базовой шкалы это всегда 0 итоговой шкалы.
Подойдет линейная функция, и я предполагаю что их тут будет 2, под участки 0-0.2 и 0.2-1.0.

Надеюсь объяснил понятно, пример:
есть значения итоговой шкалы 0.0=0 (нули всегда равны у шкал), 0.2 = 1000 и 1.0 = 6000. Жирным отметил входные значения.
  • Вопрос задан
  • 1707 просмотров
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
На первом интервале
y=x*1000;

На втором
y=1000+(x-0.2)*(6000-1000)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
LaRN
@LaRN
Senior Developer
Через 3 точки можно провести параболу, тогда не придется работать с диапазонами.
Посмотрите например интерполяцию Лагранжа.
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D...

Для вашего кейса Y =1250*X*(X+3.8)

X - Это исходная шкала
Y - Это новая шкала

Y(0) = 0
Y(0.2) = 1000
Y(1) = 6000
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Это в школе называется - построить уравнение прямой по двум точкам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы