You are currently browsing the tag archive for the ‘kernel Gaussiano’ tag.

Obviamente, en los kernels cúbico, cuártico y quíntico, al llegar a derivadas de orden superior, tenemos expresiones del tipo \alpha(\boldsymbol{q}) . \beta(\boldsymbol{q}) y lo que hemos hecho, de manera incorrecta, es:

\frac{\partial}{\partial q_j} \big ( \alpha(\boldsymbol{q}) . \beta(\boldsymbol{q}) \big ) = \alpha(\boldsymbol{q}) . \frac{\partial}{\partial q_j} \beta(\boldsymbol{q}),

por lo que nos falta sumarle:

\frac{\partial}{\partial q_j} \alpha(\boldsymbol{q}) . \beta(\boldsymbol{q}).

Así pues, para el kernel Gaussiano si es correcta la formula genérica, pero no para el resto. De todas maneras, si es válida para las primeras derivadas.

A continuación una animación con:

W_G(\boldsymbol{q}), \frac{\partial}{\partial q_1}W_G(\boldsymbol{q}), \frac{\partial}{\partial q_2}W_G(\boldsymbol{q}), \frac{\partial^2}{\partial q_1^2}W_G(\boldsymbol{q}), \frac{\partial^2}{\partial q_1 \partial q_2}W_G(\boldsymbol{q}), \frac{\partial^2}{\partial q_2^2}W_G(\boldsymbol{q}),

W_3(\boldsymbol{q}), \frac{\partial}{\partial q_1}W_3(\boldsymbol{q}), \frac{\partial}{\partial q_2}W_3(\boldsymbol{q}),

W_4(\boldsymbol{q}), \frac{\partial}{\partial q_1}W_4(\boldsymbol{q}), \frac{\partial}{\partial q_2}W_4(\boldsymbol{q}),

W_5(\boldsymbol{q}), \frac{\partial}{\partial q_1}W_5(\boldsymbol{q}), \frac{\partial}{\partial q_2}W_5(\boldsymbol{q})

Anuncios

Vamos a suponer que estamos en dimensión n y miraremos como quedan los diferentes kernels y sus derivadas. Denotaremos con \boldsymbol{q} a (q_1,\ldots,q_n) y q = \sqrt{\sum_{i=1}^n q_i^2} será su módulo.

Para poder hablar de las derivadas parciales en espacios de esta dimensión vamos a introducir la notación multi-índice de Schwartz. Un multi-índice de dimensión n es una n-tupla de enteros no negativos \alpha = (\alpha_1,\ldots,\alpha_n) con \alpha_j \in \mathbb{Z}_+ para j= 1\ldots n, de manera que \alpha \in \mathbb{Z}_+^n. Llamamos  módulo de \alpha a:

|\alpha| = \sum_{i=1}^n \alpha_i

Además, podemos definir

\alpha + \beta := (\alpha_1 + \beta_1, \ldots ,\alpha_n + \beta_n)

y

q^\alpha:=\Pi_{i=1}^n q_i^{\alpha_i}.

Finalmente, definimos el operador diferencial para \alpha \in \mathbb{Z}_+^n como:

D^\alpha:=\frac{\partial^{|\alpha|}}{\partial q_1^{\alpha_1} \partial q_2^{\alpha_2} \ldots \partial q_n^{\alpha_n}}

kernel Gaussiano:

W(\boldsymbol{q},h) = \frac{\sigma}{h^n} e^{-(\frac{q}{h})^2}

\frac{\partial}{\partial q_j}W(\boldsymbol{q},h) = D^{e_j}W(\boldsymbol{q},h) = \frac{\sigma}{h^n}\frac{-2}{h^2} e^{-(\frac{q}{h})^2}q_j

\frac{\partial^2}{\partial q_j \partial q_k}W(\boldsymbol{q},h)=D^{e_j+e_k}W= \frac{\sigma}{h^n}(\frac{-2}{h^2})^2 e^{-(\frac{q}{h})^2} q^{e_j+e_k}=\frac{\sigma}{h^n}(\frac{-2}{h^2})^2 e^{-(\frac{q}{h})^2}q_jq_k

D^\alpha W(\boldsymbol{q},h) = \frac{\sigma}{h^n}(\frac{-2}{h^2})^{|\alpha|} e^{-(\frac{q}{h})^2}q^\alpha

kernel cúbico:

W(\boldsymbol{q},h) = \frac{\sigma}{h^n} \begin{cases} \frac{1}{4}(2-q)^3-(1-q)^3 \mbox{ si } 0 \leq q < 1 \\ \frac{1}{4}(2-q)^3 \mbox{ si } 1 \leq q < 2 \\ 0 \mbox{ si } q \geq 2 \end{cases}

Recordemos que q = \sqrt{ \sum_{i=1}^n q_i^2 }, por lo que \frac{\partial}{\partial q_j}q = \frac{2 q_j}{2 \sqrt{\sum_{i=1}^{n} q_i^2}} = \frac{q_j}{q}. Así pues:

\frac{\partial}{\partial q_j}W(\boldsymbol{q},h) = \frac{\sigma}{h^n}(-1)\frac{3}{q} q_j \begin{cases} \frac{1}{4}(2-q)^2-(1-q)^2 \mbox{ si } 0 \leq q < 1 \\ \frac{1}{4}(2-q)^2 \mbox{ si } 1 \leq q < 2 \\ 0 \mbox{ si } q \geq 2 \end{cases}

\frac{\partial^2}{\partial q_j \partial q_k}W(\boldsymbol{q},h) = \frac{\sigma}{h^n}\frac{3.2}{q^2} q_j q_k \begin{cases} \frac{1}{4}(2-q)-(1-q) \mbox{ si } 0 \leq q < 1 \\ \frac{1}{4}(2-q) \mbox{ si } 1 \leq q < 2 \\ 0 \mbox{ si } q \geq 2 \end{cases}

\frac{\partial^3}{\partial q_j \partial q_k \partial q_l}W(\boldsymbol{q},h) = \frac{\sigma}{h^n}(-1)\frac{3.2.1}{q^3} q_j q_k q_l \begin{cases} \frac{1}{4}-1 \mbox{ si } 0 \leq q < 1 \\ \frac{1}{4} \mbox{ si } 1 \leq q < 2 \\ 0 \mbox{ si } q \geq 2 \end{cases}

Por lo tanto, para 0 \leq |\alpha| \leq 3 (si |\alpha|>3 entonces W \equiv 0) podemos escribir:

D^\alpha W(\boldsymbol{q},h) =

=\frac{\sigma}{h^n}(-1)^{|\alpha|}\frac{\frac{3!}{(3-|\alpha|)!}}{q^{|\alpha|}} q^\alpha \begin{cases} \frac{1}{4}(2-q)^{3-|\alpha|}-(1-q)^{3-|\alpha|} \mbox{ si } 0 \leq q < 1 \\ \frac{1}{4}(2-q)^{3-|\alpha|} \mbox{ si } 1 \leq q < 2 \\ 0 \mbox{ si } q \geq 2 \end{cases}

kernel cuártico:

 W(\boldsymbol{q},h) = \frac{\sigma}{h^n} \begin{cases} (\frac{5}{2}-q)^4-5(\frac{3}{2}-q)^4+10(\frac{1}{2}-q)^4 \mbox{ si } 0 \leq q < \frac{1}{2} \\ (\frac{5}{2}-q)^4-5(\frac{3}{2}-q)^4 \mbox{ si } \frac{1}{2} \leq q < \frac{3}{2} \\ (\frac{5}{2}-q)^4 \mbox{ si } \frac{3}{2} \leq q < \frac{5}{2} \\ 0 \mbox{ si } q \geq \frac{5}{2} \end{cases}

Por tanto, para |\alpha| = 0 \ldots 4:

D^\alpha W(\boldsymbol{q},h) =

=\frac{\sigma}{h^n}(-1)^{|\alpha|}\frac{\frac{4!}{(4-|\alpha|)!}}{q^{|\alpha|}} q^\alpha \begin{cases} (\frac{5}{2}-q)^{4-|\alpha|}-5(\frac{3}{2}-q)^{4-|\alpha|}+10(\frac{1}{2}-q)^{4-|\alpha|} \mbox{ si } 0 \leq q < \frac{1}{2} \\ (\frac{5}{2}-q)^{4-|\alpha|}-5(\frac{3}{2}-q)^{4-|\alpha|} \mbox{ si } \frac{1}{2} \leq q < \frac{3}{2} \\ (\frac{5}{2}-q)^{4-|\alpha|} \mbox{ si } \frac{3}{2} \leq q < \frac{5}{2} \\ 0 \mbox{ si } q \geq \frac{5}{2} \end{cases}

kernel quíntico:

W(\boldsymbol{q},h) = \frac{\sigma}{h^n} \begin{cases} (3-q)^5-6(2-q)^5+15(1-q)^5 \mbox{ si } 0 \leq q < 1 \\ (3-q)^5-6(2-q)^5 \mbox{ si } 1 \leq q < 2 \\ (3-q)^5 \mbox{ si } 2 \leq q < 3 \\ 0 \mbox{ si } q \geq 3 \end{cases}

Por tanto, para |\alpha| = 0 \ldots 5:

D^\alpha W(\boldsymbol{q},h) =

=\frac{\sigma}{h^n}(-1)^{|\alpha|}\frac{\frac{5!}{(5-|\alpha|)!}}{q^{|\alpha|}} q^\alpha \begin{cases} (3-q)^{5-|\alpha|}-6(2-q)^{5-|\alpha|}+15(1-q)^{5-|\alpha|} \mbox{ si } 0 \leq q < 1 \\ (3-q)^{5-|\alpha|}-6(2-q)^{5-|\alpha|} \mbox{ si } 1 \leq q < 2 \\ (3-q)^{5-|\alpha|} \mbox{ si } 2 \leq q < 3 \\ 0 \mbox{ si } q \geq 3 \end{cases}

Volvemos a tratar los kernels pero teniendo en cuenta que nuesta anterior q de hecho es \frac{\boldsymbol{||r||}}{h}, por lo que en 1D, con h=1, tenemos \sqrt{x^2} = |x|, en 2D tenemos \sqrt{x^2+y^2} y en 3D tenemos \sqrt{x^2+y^2+z^2}.  En realidad, como lo que tenemos es ||r-r'||, habrá cosas del estilo de:

\sqrt{(x-x')^2+(y-y')^2+(z-z')^2}.

En los siguientes enlaces se encuentran información sobre cada uno de los kernels especificados:

  1. funciones definidas a trozos y sus gráficas
  2. kernel Gaussiano
  3. kernel cúbico
  4. kernel cuártico
  5. kernel quíntico

Dada una partícula a situada en r_a = (x_a,y_a) tenemos allí el kernel W_a(r-r_a,h). Dada otra partícula vecina b de posición r_b = (x_b, y_b), el punto

(x_b, y_b,W_a(r_b-r_a,h) = W_{ab} = W_{ba})

queda sobre el kernel:

Construimos una malla de 100\times 100 puntos de nuestros kernels en 2D. La primera animación contiene el kernel Gaussiano en el primer frame, el cúbico en el segundo, el cuártico en el tercero y el quíntico en el último:

En la siguiente animación mostramos los puntos de la primera derivada de los kernels:

Finalmente, la animación con puntos de las segundas derivadas de los kernels de nuestra aplicación:

octubre 2017
L M X J V S D
« Ago    
 1
2345678
9101112131415
16171819202122
23242526272829
3031