11
$\begingroup$

I need a function similar to Log but it should produce numbers between 0 and 1 Something like:

f(0)=0
f(1)=0.1
f(2)=0.15
f(3)=0.17
f(100)=0.8
f(1000)=0.95
f(1000000000)=0.99999999

I need this in my program that I am programming and I can use only standard functions like log, exp, etc... Any help would be appreciated.

  • 0
    I've got a question: f(1000000001)=1 is ok or do you need something like $f(n)_{n \rightarrow \infty}<1$ ?2011-08-14
  • 3
    $f(x) = 1-\mathrm{e}^{-x}$ ?2011-08-14
  • 0
    Or take the partial sums $a_1=\frac {1}{2^n}$ or some other geometric series, maybe with a weighing factor.2011-08-14
  • 0
    "I need this in my program that I am programming" - what exactly are you trying to do that makes you need such a function?2011-08-14
  • 0
    @J.M. I need to analyze and rate some data but rating should depend on number of previous analysis. So more analysis done => rating more valuable.2011-08-14
  • 1
    There's a lot of *sigmoidal* functions to choose from: arctangent, hyperbolic tangent, the logistic function...2011-08-14
  • 0
    Similar to log in what way?2011-08-14

3 Answers 3

13

Sasha's suggestion of $f(x) = 1-\exp(-x)$ is good, but doesn't fit your example values too well, even if you scale $x$ appropriately. However, some other similar function, such as $f(x) = 1-1/(1+x)$, might work even better.

  • 13
    In case you're using this, you can generalize the example to $f(x) = x/(a+x)$; this way, you can adjust $a$ to have a slower or faster growing curve.2011-08-14
5

I like the hyperbolic tan (and it likes me) $$f(x) = \tanh(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}} = \frac{e^{2x}-1}{e^{2x}+1} = 1 - \frac{2}{e^{2x}+1}$$

$f$ is strictly increasing and satisfies $f'(0) = 1$, $f(0) = 0$, $f(\infty) = 1$.

If you want to map $(-\infty, \infty)$ into $[0, 1)$ (instead of $[0, \infty)$), use $$f(x) = \frac{\tanh(x)+1}{2} = 1 - \frac{1}{e^{2x}+1}.$$

I have seen this called the "logistic" curve, or "s-shaped" curve.

3

If you want it to involve log, try $f(x) = 1 - \log(a)/\log(a+bx)$ for suitable positive numbers $a$ and $b$.

  • 0
    The beauty of this answer is that you can interpret $\log$ here as either the common or natural one... :D2011-08-14