нелинейная карта от одного диапазона к другому - PullRequest
2 голосов
/ 28 января 2012

У меня математическая задача, на которой я несколько озадачен.Мне нужно отобразить числа из одного диапазона в другой нелинейным образом.Я вручную взял некоторые образцы данных из того, что я пытаюсь достичь.Это выглядит так:

источник - желаемый результат

0 - 1

78 - 0,885

363 - 0,625

1429 -0,3

3404 - 0,155

7524 - 0,075

11604 - 0,05

Номер источника колеблется от 0 до, в идеале - бесконечное число, но будет радэто останавливается где-то в десятках тысяч.Результирующее число от 1 до 0. Оно должно быстро сбрасываться, а затем выравниваться.В идеале никогда не достигать нуля.

Мне известно стандартное уравнение для отображения из одного диапазона в другой.

y = ((x * origRange) / newRange) + newRangeOffset

К сожалению, это не дает мне желаемых результатов.Есть ли изящное нелинейное уравнение, которое дало бы мне результаты, которые мне нужны?

Ответы [ 2 ]

3 голосов
/ 28 января 2012

f(x) = 620 / (620 + x) дает точный ответ с точностью до 2% от всех ваших значений

1 голос
/ 29 января 2014

Как предлагается здесь , вы можете использовать полиномиальную интерполяцию (присутствует в нескольких пакетах программного обеспечения).

Если вы хотите попробовать это, я предлагаю вам перейти к Wolfram Alpha и выбрать Полиномиальная интерполяция .

This - это один из примеров использования некоторых ваших очков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...