Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I am looking for a function f(x) with a value range of [0,1].

f(x) should increase from 0 to 1 while its parameter x increases from 0 to +infinity.

f(x) increases very fast when x is small, and then very slow and eventually approach 1 when x is infinity.

Here is a figure. The green curve is what I am looking for:

enter image description here

Thanks.

It would be great if I can adjust the slope of the increase. Although this is not a compulsory requirement.

share|improve this question
2  
Do you want it to actually take on the values 0 and 1? –  Mike Miller Jul 16 at 17:20
    
@MikeMiller value 0 yes. value 1 no. f(x)=0 when x=0, =1 when x=infinity, and = a value between 0 and 1 otherwise. –  Leo Jul 16 at 17:22
3  
Consider $f(x)=1-\frac1{x+1}$ –  abiessu Jul 16 at 17:22
    
@Leo do you want this $f$ to be $\mathcal{C}^0$? or something more strict perhaps? –  DanZimm Jul 16 at 19:20
1  
It is always going to be relative fast when $x$ is small, a simple consequence of the fact that you require it to be bounded and monotone. –  Gina Jul 16 at 19:21

8 Answers 8

up vote 39 down vote accepted

I think this should work well for your purposes: $$ f(x) = \frac{x}{x + a} $$ Where $a$ can be any number bigger than $0$. The smaller $a$ is, the sharper the increase will be.

ADDENDUM: if you want to extend this to an odd (and continuously differentiable) function, simply take $$ f(x) = \frac{x}{|x| + a} $$

share|improve this answer
    
I love this function so much. So simple, elegant, and nice.... –  Leo Jul 16 at 17:30
2  
And in particular, the slope at $x=0$ is $\dfrac{1}{a}$. –  Théophile Jul 16 at 17:35
    
I like this, but it would be great to be able to parameterise the rate of convergence to the asymptote as well as the slope at the origin. –  Keith Jul 17 at 3:15
    
@Keith in what sense do you mean? Would something like $f(x) = \frac{x^n}{x^n + a}$ be sufficient for those purposes? –  Omnomnomnom Jul 17 at 10:56
    
@Omnomnomnom That $f(x)$ does not have the right gradient at $x=0$. $$g(x) = f(x)^{1+bf(x)}$$ would do, but seems a bit ugly. –  Keith Jul 17 at 23:31

Here are two simple functions with slope $k$ at $x=0$, for some $k>0$:

$$f(x) = 1-e^{-kx}$$

and

$$g(x) = \frac{2}{\pi}\arctan(\frac{\pi}{2}kx)$$

The first of these approaches $1$ more quickly than the second.

share|improve this answer
2  
One nice thing about the arctan version: it also approaches -1 as x approaches -infinity. –  Brilliand Jul 16 at 21:00

One I use very often is : $$ \tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1} {e^{2x} + 1} = \frac{1 - e^{-2x}} {1 + e^{-2x}}$$

The increase at the begining around 0 is "only" linear but can do the work. and you can choose the slope at $x \mapsto 0$ Hyperbolic tangent

share|improve this answer
    
Use $f(x) = \tanh mx$ if you want slope $m$ at $x = 0$. –  David K Jul 17 at 20:18

I'm surprised no one has mentioned erf(x) aka the "Error Function", defined roughly as the normalized area under the bell curve as a function of the upper limit of integration. For x > 1, it satisfies your requirement and also has a slope that is easily controlled (and made arbitrarily large at 0) by the width of your Gaussian.

share|improve this answer
1  
Why is this answer downvoted so much? The error function is in fact a sigmoid curve with limit $1$ as $x\to\infty$ and is different from the other suggestions. Perhaps the fact that it isn't an elementary function makes it less appealing, but it certainly meets the criteria in the OP. –  Mario Carneiro Jul 17 at 3:27

$f(x) = 1 - \exp(-x/\epsilon)$ for $\epsilon > 0$ small will do.

share|improve this answer

Some time ago I had an interest in such a function, but with the added requirement that it should map negative values of $x$ onto the range $(-1,0)$, asymptotically approaching $-1$ as $x$ goes to $-\infty$. In fact, I wanted $f(-x) = -f(x)$.

I came up with something like this:

$$ f(x) = \frac{x}{\sqrt{a^2 + x^2}} .$$

This has slope $\frac{1}{|a|\,}$ at $x = 0$.

share|improve this answer

Simple version: $$f(x)=1-\mathrm e^{-a\sqrt{x}}\qquad (a\gt0)$$

Slightly more elaborate version:$$f(x)=1-\mathrm e^{-a\sqrt{x}-bx}\qquad (a\gt0,\ b\geqslant0)$$ Every such function fits every requisite in the question, including the infinite slope at $0$. The parameter $a$ can help to tune the increase near $0$. The parameter $b$ can help to tune the increase near $+\infty$. To get even quicker convergence to $1$ when $x\to+\infty$, one can replace $-bx$ in the exponent by $-bx^n$ for some $b\gt0$ and $n\gt1$.

Once one understands the principle, a host of other solutions springs to mind.

share|improve this answer

Try $f(x) = 1-e^{-x^2}$ , which will be 0 for x = 0 and approach 1 rapidly for big x.

share|improve this answer
1  
But doesn't increase very fast when $x$ is small. –  Henning Makholm Jul 16 at 17:27
    
Judging from the scale of his sketch, i thought it would be very sufficiently fast. –  ChocolateBar Jul 16 at 17:28
1  
Look at the derivative of the function at $x = 0$. It seems the OP wants something with initially a large positive slope that gradually flattens out, not a slope that starts flat, increases, then decreases. –  David K Jul 16 at 17:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.