parameter family of functions $[0,\infty) \to [0,1)$

50 Views Asked by At

I'm looking for a parametrized family of functions $f_{a}(x): [0, \infty) \to [0, 1)$ with the following properties

  • monotonically increasing, no inflection points
  • $\forall a$, $f_{a}(0) = 0$ and $\lim_{x\to\infty} f_{a}(x) = 1$
  • $f_{a}(1/x) = 1 - f_{a}(x)$ (so the function is completely determined by its values between $0$ and $1$, and also $f_{a}(1) = 1/2$)
  • For one (perhaps extreme) parameter value, the function is $$f_{a_0}(x)=\begin{cases}x/2 \quad&\text{for } x<1\\1 - 1/(2x) \quad&\text{for } x > 1 \end{cases}$$

and bonus points for smoothness.

One close idea is (see the plot below) $$ f_a(x) = \frac{x^a}{x^a + 1} $$ which unfortunately has an inflection for $a > 1$.

Any hints?

enter image description here

Code to reproduce the plot:

import numpy
import matplotlib.pyplot as plt
import dufte

plt.style.use(dufte.style)

x = numpy.linspace(0.0, 2.0, 500)

y = 2 / numpy.pi * numpy.arctan(x)
plt.plot(x, y, label="2/pi * arctan(x)")


y = x / (x + 1)
plt.plot(x, y, label="x / (x + 1)")

y = x ** 0.5 / (x ** 0.5 + 1)
plt.plot(x, y, label="x ** 0.5 / (x ** 0.5 + 1)")

y = x ** 2 / (x ** 2 + 1)
plt.plot(x, y, label="x ** 2 / (x ** 2 + 1)")

x0 = numpy.linspace(0.0, 1.0, 250)
x1 = numpy.linspace(1.0, 2.0, 250)
y = numpy.concatenate([x0 / 2, 1.0 - 0.5 / x1])
plt.plot(x, y, label="{x/2, 1 - 1/2x}")

# plt.plot([1.0], [0.5], "o", color="#555", label="_nolegend_")

dufte.legend()
# plt.show()
plt.savefig("out.png", transparent=True, bbox_inches="tight")