11 votos

¿Una aproximación diferenciable del módulo?

Estoy tratando de encontrar un diferenciable aproximación de la "fract" función, que devuelve la parte decimal de un número real.

$y = x-\lfloor x\rfloor$

enter image description here

Tengo algo que funciona "ok", que me dieron por la adaptación de un bandlimited onda en diente de sierra.

$y=0.5-\frac{sin(2\pi x)+sin(4\pi x)/2+sin(6\pi x)/3+sin(8\pi x)/4+sin(10\pi x)/5}{\pi}$

enter image description here

Puedo agregar más armónicos para que la banda limitado onda en diente de sierra más cercana a la actual "fract" de la función, pero para mi uso caso, todos estos de función trigonométrica llamadas son bastante caros.

Era curioso, hay otros (mejor calidad / baja de la complejidad computacional) formas de differentiably aproximado de esta función?

23voto

lisyarus Puntos 2126

Una función como

$$x-\frac{x^n}{1+x^n}$$

bien se aproxima a $x-\lfloor x \rfloor$ en el intervalo de $[0, 2]$ grandes $n$. Si nos lo tomamos en el intervalo de $\left[{1 \over 2}, {3 \over 2}\right]$ y repetir periódicamente, tenemos un buen casi diferenciable aproximación. $x^n$ puede ser calculado de manera eficiente el uso de los binarios algoritmo de exponenciación (por lo tanto, sería útil si $n=2^k$).

PD: me dijo casi diferenciable, ya en el límite de los puntos de la derivada es $\approx 1 - \frac{n}{2^{n-1}}$$1-\frac{n}{(3/2)^{n+1}}$, por lo tanto, si $n$ es adecuada grande, la derivada es $\approx 1$ desde el punto de vista práctico.

Un ejemplo en vivo en desmo.

enter image description here

11voto

mathreadler Puntos 3517

Asumir $x\to f(x)$ es la función de discontinous que quiere más suave/más regular. Entonces, por ejemplo el valor medio local integral $$F(x) = \frac{1}{2\Delta_x}\int_{x-\Delta_x}^{x+\Delta_x}f(\varphi)d\varphi \hspace{1cm} \text{(local averaging)}$$ will be differentiable for any $\Delta_x\in \mathbb $ R^+$ (why?) You can estimate this as a discrete sum (low pass filter) or you can calculate an explicit expression for it analytically as a continuous time convolution since $f(x) es muy agradable en este ejemplo. Uno un poco más suave y más complicado es si nos iterar: $$F_2(x) = \frac{1}{2\Delta_x}\int_{x-\Delta_x}^{x+\Delta_x}F(\varphi)d\varphi \hspace{1cm} \text{(linear interpolation)}$ $

enter image description here

5voto

Hurkyl Puntos 57397

Deje $\{ x \}$ media $x - \lfloor x \rfloor$. Dado su objetivo de tener la derivada ser barato computable por computadora, usted debe utilizar una función definida a trozos:

$$ f(x) = \begin{cases} \{ x \} & \epsilon \leq \{ x \} \leq 1 - \epsilon \\ g(x) & 0 \leq \{ x \} < \epsilon \\ h(x) & 1 - \epsilon < \{ x \} < 1 \end{casos} $$

donde $g$ $h$ son fácilmente calculada funciones (por ejemplo, polinomios cuadráticos) que satisfacen las condiciones que se enumeran a continuación, y $\epsilon$ es un pequeño número positivo.

El punto es que para la mayoría de los valores de $x$, usted tiene $f'(x) = 1$ por lo que hay muy poco trabajo en el cálculo de la derivada.


Las condiciones para $f$ a ser diferenciable son:

  • $g(0) = h(1)$
  • $g(\epsilon) = \epsilon$
  • $h(1-\epsilon) = 1 - \epsilon$
  • $g'(0) = h'(1)$
  • $g'(\epsilon) = 1$
  • $h'(1 - \epsilon) = 1$

Por simetría, usted probablemente querrá $h(x) = 1 - g(1-x)$. A continuación, las condiciones de reducir a la

  • $g(0) = 1/2$
  • $g(\epsilon) = \epsilon$
  • $g'(\epsilon) = 1$

2voto

user21820 Puntos 11547

Aquí es diferenciable. A intervalo de repetición $f$ cada unidad.

$f(x) = x + \dfrac{(\frac12-x)c(1+c)}{(x+c)(1-x+c)}$ cada $x \in [0,1]$, con el parámetro $c \to 0^+$.

El gradiente también tiende a $1$ en el punto medio como $c \to 0^+$.

La principal ventaja es que no es necesario exponentiation; aritmética pura.

Ejemplo con $c=0.001$.

enter image description here][1

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X