Как рассчитать логическую кривую по набору значений?
Я пытаюсь взять значение с плавающей запятой, с произвольным минимальным и максимально возможным значением, и преобразовать его в линейный масштаб, для представления на индикаторе в форме столбца. Проблема в том, что я не могу просто перевести его между минимальным и максимальным, потому что максимальное значение всегда будет значительно выше минимального значения. У меня есть массив произвольных значений, которые я хочу выступать в качестве промежуточных точек между минимумом и максимумом. Теперь мне просто нужно вычислить логическую кривую наилучшего соответствия по точкам. Каждое значение всегда больше, чем последнее, и скорость увеличения значения ускоряется по мере продвижения вверх, но простой формулы для расчета этой скорости ускорения не существует.
Вот пример значений, которые можно использовать:
6,0, 13,5, 30, 0, 75, 0, 375, 0
где 6 - минимум, а 375 - максимум. Если x является точно одним из этих значений, я хотел бы получить простое значение в зависимости от общего количества значений, т.е. 0, 0,25, 0,5, 0,75, 1. Проблема заключается в вычислении промежуточных значений.
Как бы я пошел для достижения этого? Я прошу прощения, если такой вопрос уже задавался, так как это похоже на общую проблему, хотя я не знал, что искать. Если на этот вопрос уже был дан ответ, просто укажите мне правильное направление.
1 ответ
Повторное размещение моего комментария в качестве ответа, в соответствии с просьбой.
Если кривая может быть y(x) = k^(ax+b), возьмите журналы с обеих сторон, и вы получите линейное соотношение. Как уже говорилось, это математика, а не программирование.
Я бы выбрал k = 2, e или 10 для более легкой реализации; а & б вы работаете на основе данных.