How can I get smooth curve at the sigmoid function?

1.7k Views Asked by At

I'm trying to implement the sigmoid curve by using the following function.

A is 3.2505508013 B is 1.5223545069 and K is 0.56.

$\left(\frac{\left(\frac{\left(\left(2\left(\sqrt[A]{xx}\right)-1\right)-\left(\left(2\left(\sqrt[A]{xxxxxxxx}\right)-1\right)\cdot k\right)\right)}{k-\left|2\left(\sqrt[A]{xxx}\right)-1\right|\cdot 2\cdot k+1}\space +1\right)}{2}\right)^B$

Then, I got the following curve. enter image description here

But As you can see, in the red circle. it might be not smooth. I want to get a smooth curve like the following black curve in the red circle. enter image description here

How can I get a smooth curve at the sigmoid function?

Is there any way to make smooth curve? if you have any idea, please help me.

UPDATE: Note that a and b and c is changeable.

enter image description here

enter image description here

multiple version. enter image description here

1

There are 1 best solutions below

4
On BEST ANSWER

First I assume the following constraints for the function $f$ from the pictue

  • $f(0)=0$
  • $f(1) \approx 1$
  • $1<f'(0)<\infty$
  • $f'(1)\approx 1$
  • "hill" on $[0,b]$
  • quickly goes to the asymptote on $[b,1]$

the function $x$ covers most of those points, except for the hill. So now we can write $f(x) = x + g(x)$ and need to find $g$ such that

  • $g(0) = 0 \approx g(1)$
  • $g'(0) >0$
  • $g'(1)\approx0$
  • "hill" on $[0,b]$ with height $c$ (*)

To make the hill we write g as aproduct of two functions, $g(x) = h_1(x)\cdot h_2(x)$, one with $h_1(0)=0$ and increasing, the other $h_2(0)\neq 0$ and decreasing.

One choice that allows us to tweak the parameters very simply would be $h_1 = c\cdot S(x)$ and $h_2 = \frac{1+S(b-x)}{2}$ where $S(x)$ is any sigmoidal curve with $S(\pm\infty)=\pm 1$ and $S(0)=0$, for example $S(x) = \tanh(x), S(x) = \arctan(x)\frac{2}{\pi}, S(x) = erf(x)$

Another possibility could be $h_1 = (x+1)^n-1$ and $h_2=A \exp(-kx)$ but here the relationship between $(A, n, k)$ and $(b,c)$ is not staightforward

*) if $g$ has a maximum at $(x_0, g(x_0))$ then the maximum of $f(x) = x+g(x)$ when measured orthogonally towards the diagonal is at $(x_0, x_0+g(x_0))$ and its diagonal "height" is $\frac{g(x_0)}{\sqrt{2}}$