Ease-in-out function
I am trying to create a nice ease-in-out function that given values from 0 - 1 produces an output of 0 - 1 which accelerates slowly up to full speed then slows down again as it nears 1.
I currently have a function using sine, in the form...
$$y = (\sin(πx/2))^2$$
This works ok, and gives me results in the range I require however it is too quick to reach the terminal velocity, I am looking for something which has a more gradual start / end and a steeper center (if that makes sense).
Any help would be appreciated!
Something to try would be the parametrized function $$ f_\alpha(x)=\frac{x^\alpha}{x^\alpha+(1-x)^\alpha} $$ $f_1(x)=x$ and $f_2(x)$ looks like this
$\hspace{5cm}$
As $\alpha$ gets bigger, the slope in the middle becomes greater and the ends at $x=0$ and $x=1$ become flatter. As $\alpha\to\infty$, the curve tends toward a step function.
These functions have the nice property that $f_a\circ f_b=f_{ab}$. Thus, $f_a$ and $f_{1/a}$ are inverses.
You could also use a polynomial that's $0$ at $0$, $1$ and $1$ and has zero derivative at both ends; the unique polynomial of degree $3$ with those properties is $y=x^2(3-2x)$.
In both of those functions, you can replace $x$ by
$$u=\frac12+\frac{\arctan\left(\alpha\left(x-\frac12\right)\right)}{2\arctan\frac\alpha2}$$
and choose $\alpha$ to achieve the desired steepness, with $\alpha\to0$ corresponding to $u=x$ and $\alpha\to\infty$ corresponding to a step function.