sswwssww
@sswwssww

Есть ли функция которая сильно меняет большие значения и чуть чуть маленькие?

День добрый. Нужна функция (или любой другой мат. объект), которая сильно меняет большие значения и чуть чуть маленькие.
Т.е. чем больше значение тем сильнее оно подвержено изменению.
Пример:
a = 75
b = 0.335

При прогоне через функцию должно получится:
f(a) = 30
f(b) = 0.334
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Главное требование: f’(0)=1. Но из вашего описания непонятно, как функция должна вести себя на ∞-и, и вот несколько вариантов.

Самое простое — это линейная функция kx, k<1 (например, 0,9x). Она везде (и на ∞-и) линейна.
Можно посложнее: x/(kx²+1). Этот зверь будет переть к нулю.
Можно что-то среднее: k·ln(x/k + 1). Стремится к ∞-и, но не так, как x.
Ещё вариант: 2k sqrt(x/k + 1). Тоже стремится к ∞-и, но побыстрее.
Если нужно к константе a — то [2a/pi] arctg(x/a). Единственное что — для управления скоростью сходимости придётся в арктангенс вместо x подставить примерно такую же функцию (f'(0)=1).
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@Taus
Возьмите, например, комбинацию линейной функции и степенной f(x)=x*(1+x^n). От -1 до 1 значения остаются меняются слабо при небольших n, а значения |x|>1 меняются сильно.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Формула в "лоб": f(x)=(kx+b)^n
(x - входное значение).

Простые правила (эвристика) поиска (импликативных) зависимостей (сложные - это поиск всех перестановок при мат.операциях со всеми возможными их типами, дающих нужное количество решений):
1 значение - уравнение.
2 (4,6,...) значения - сначала пропорция, потом система.
3 (5,7,...) значения - система из уравнений.
Goto 2.

ax1=y1
bx2=y2
y1/y2=(K1(x1/x2)+K2)^K3+K4(x1/x2)+K5
и для получения более точного результата - повторяем процесс рекурсивно.
Ответ написан
firedragon
@firedragon
Senior .NET developer
Поиграйтесь делителем
function def(a){return a - a /10 }
Ответ написан
Возьмите известные вам опорные точки, постройте их на Х-У графике в каком-нибудь Excel/calc и постройте линию тренда. Степенная функция подойдёт, может вам логарифмическая больше понравится. Но нужно больше точек. По вашим двум точкам можно и линейную функцию использовать.
Ответ написан
Ваш ответ на вопрос

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

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