Советы по падению функции - PullRequest
0 голосов
/ 27 марта 2012

это может быть довольно глупо .. Или я просто исчерпал или что-то, но я просто не могу решить это ..

Проблема: две переменные X и Y, значение Y зависит от значенияX. X может иметь значения в диапазоне от некоторого значения до некоторого значения (скажем, от 0 до 250), а y может иметь разные значения (скажем, от 0,1 до 1,0 или что-то в этом роде) - но это обратная связь (что я имею в виду)является: если значение X, например, 250, то значение Y будет 0,1, а когда X уменьшается до 0, значение Y возрастает до 1,0 ..

Так как мне это сделать? скажем, яесть функция: - double computeValue (double X) {/ вычисление / return Y;}

Кроме того, есть ли какой-нибудь простой способ сделать масштабирование функции не столь линейным?- Например, когда X повышается, Y сначала уменьшается медленнее, но потом быстрее ... (я не знаю, как это сказать, но я надеюсь, что вы, ребята, поняли)

Заранее спасибо за этот глупый вопрос: /

Редактировать - изменить заголовок.

Редактировать - Спасибо, ребята, я ценю ваши быстрые ответы.Всем хорошего дня.

Ответы [ 3 ]

2 голосов
/ 27 марта 2012

Это не обратное отношение. Это просто падающая функция. Может быть, вы ищете что-то вроде:

f (x) = Sqrt (1-x / 250) * 0,9 + 0,1

Plot of function

1 голос
/ 27 марта 2012

X '= (X - X_min) / (X_max - X_min)

сейчас 0 <= X '<= 1 </p>

Чтобы сделать все наоборот, позвольте

X '' = 1 - X '

Чтобы получить линейное масштабирование:

Y = X '' * (Y_max - Y_min) + Y_min

Чтобы получить другое масштабирование:

Y = scalling_function (X '') * (Y_max - Y_min) + Y_min

И функция scalling_function может быть:

scalling_function (a) = a * a

scalling_function (a) = sqrt (a)

1 голос
/ 27 марта 2012

Вы можете использовать функцию Y = C ^ (- X). где C> 1, в зависимости от «падения», которое вам нравится.

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