lunes, 23 de abril de 2012

Matemática online

Una entrada breve.

El otro día descubrí que si uno escribe en Google, por ejemplo: y=x/sin(x) además de los resultados, Google nos pinta la gráfica y nos permite interactuar con ella. El resultado es mejor que ningún programa de pintar funciones que haya visto hasta ahora. Desgraciadamente, no tiene muchas opciones y no tiene muchas funciones definidas.



Ayer me encontré este otro. El resultado gráfico no es tan bueno, aunque no está nada mal, y permite pintar varias funciones a la vez, y tiene muchas funciones predefinidas:


Y no sólo eso, también permite hacer derivadas e integrales de funciones y otras cosas. Aún le faltan algunas cosillas, pero me parece que está muy bien.

No deja de sorprenderme que a veces se vean mejores aplicaciones para web (o Android, o IPad) que para Windows, Linux o Apple (sí, soy consciente que estoy comparando cuatro cosas diferentes, pero se me entiende ¿no?). Por ejemplo, desde mi punto de vista, gmail le da mil vueltas a casi cualquier cliente de email existente (digo casi porque no los conozco todos, no porque haya visto uno mejor), cuando lo lógico sería que fuese al revés.

Dejo la puerta abierta a que pongáis enlaces a más páginas de este tipo.



sábado, 21 de abril de 2012

Reglas de Golomb y turbulencia

Reglas de Golomb

Imaginad que queremos construir una regla pero que, por alguna razón, tenemos un límite en el número de marcas que podemos hacer en ésta. ¿Cuál sería la forma óptima de situar las rayas?

La respuesta a esta pregunta es una regla de Golomb. La siguiente figura muestra una de orden 4:


Como se puede ver, en este caso con sólo cuatro marcas podemos medir seis distancias diferentes. De hecho, todas las distancias enteras entre 1 y 6 están incluidas. Cuando esto ocurre se dice que es una regla de Golomb perfecta.

Lamentablemente, para reglas mayores que 6, no existe ninguna regla de Golomb perfecta, a lo más que podemos aspirar es a reglas de Golomb optimas (hay varias definiciones de óptimo), para lo cual no existen algoritmos eficientes, que se sepa.

¿Qué tiene esto de interesante? Por un lado me resulta curioso que no exista un buen algoritmo para generarlas. Hubiera jurado que usando algún tipo de potencia de dos en la localización de las marcas (inicialmente pensé en algo como 1,2,4,8...) se conseguiría, pero no, no es tan sencillo.

Por otro lado, tengo la impresión de que las reglas de Golomb tienen que tener alguna utilidad. Wikipedia dice que se usan en códigos de correción de errores y para determinar puntos de colocación de antenas, así que me puse a pensar si se me ocurría alguna otra aplicación. Al final pensé en algo que requiere una digresión...

Turbulencia y autocorrelación

No voy a ponerme aquí a hablar de la turbulencia en detalle (entre otras cosas porque si me pusiera me daría cuenta de que no tengo los conceptos lo suficientemente claros como para explicarlos). Sólo voy a hablar de la parte relacionada con las reglas de Golomb.


Lo primero que uno piensa sobre la turbulencia es que es un fenómeno más o menos aleatorio. Y eefectivamente, en muchos aspectos así es. La clave está en ese "más o menos". Si uno se fija en un flujo turbulento se ve que está formado por "remolinos" de diferentes tamaños, y que pese a que en conjunto tenemos una estructura aleatoria, localmente las velocidades entre puntos cercanos tendrán una cierta correlación estadística. Dicho de otra forma, cuanto más cerca estén dos puntos en el fluído, más probable será que ambos formen parte del mismo remolino turbulento y, por tanto, más probable será que las velocidades del fluido en ambos puntos estén relacionadas.

De hecho, gran parte de lo que se sabe sobre turbulencia no son más que expresiones de correlación temporal y espacial de las diferentes componentes de la velocidad de un fluido. La siguiente gráfica muestra un ejemplo típico. En ordenadas tenemos la correlación y en abcisas la separación entre los puntos:
Un valor de 1 significa que las velocidades son iguales (los dos puntos son el mismo), un valor negativo que existe una correlación, pero con el signo cambiado (podemos imaginar que los puntos están en lados opuestos de un remolino) y cero significa que no hay correlación estadistica entre ellos.

Una de las cosas que se puede hacer, tanto con modelos numéricos como con datos experimentales, es estudiar la correlación entre componentes de la velocidad. De esta forma podemos obtener otras magnitudes relacionadas con la turbulencia. Por simplicidad, supongamos que queremos hacerlo en un laboratorio.

La forma trivial de hacerlo sería colocar N sensores de velocidad en posiciones \(x=n\Delta x \), donde \(n=0,1,2,...N-1\). De esta forma tendríamos N-1 distancias para construir una gráfica como la de arriba.

El caso es que lo único que nos importa al hacer las correlaciones es la distancia entre los sensores. Aquí es donde entran las reglas de Golomb, podemos conseguir muchos más puntos usando el mismo número de sensores. Mi estimación es que para conseguir N distancias es necesario, aproximadamente, \(\sqrt{2N}\) sensores.

Lo mismo es aplicable a modelos numéricos o a otros métodos experimentales como el PIV

¿Alguna otra idea?


viernes, 6 de abril de 2012

Las ecuaciones de Navier-Stokes (I)

Atendiendo a la petición de Nabil de hablar de las derivadas materiales, me he ido por la tangente y he decidido hacer un especial, en al menos dos partes, sobre las ecuaciones de Navier-Stokes.

Sé que es un tema que no interesa a todo el mundo, así que muchos ni lo leerán y los que lo lean me temo que algunas cosas les parecerán básicas. Son básicas a propósito por dos razones: Una porque a mi me cuesta entender las cosas hasta que no consigo convertirlas en algo sencillo y la otra porque entro en unos detalles que muchas veces damos por sabidos y no nos detenemos a pensar mucho en ellos.

En cualquier caso, entenderé si nadie se lo lee... excepto Nabil. ¡A ti no te queda más remedio, por abrir la boca!

Ecuaciones de conservación

Una ecuación de conservación es cualquier ecuación en derivadas parciales de la forma:
\begin{aligned} \frac{\partial\phi}{\partial t}+\nabla\cdot\mathbf{F}=0 \end{aligned}

Donde \(\mathbf{F}\)  es un campo vectorial cualquiera. La razón de que estas ecuaciones se llamen así es que si la integramos en un dominio inmovil \(\Omega\) cualquiera tenemos:

\begin{aligned} \int_{\Omega}\frac{\partial\phi}{\partial t}+\int_{\Omega}\nabla\cdot\mathbf{F}=0 \end{aligned}

Commutando la derivada temporal con la integral y aplicando el teorema de la divergencia:

\begin{aligned} \frac{\partial}{\partial t}\int_{\Omega}\phi+\int_{\Gamma}\mathbf{n}\cdot\mathbf{F}=0 \end{aligned}

Donde \(\Gamma\)  es el contorno del dominio y \(\mathbf{n}\)  un vector perpendicular a éste en cada punto. De la ecuación anterior se deduce que los cambios en la magnitud \(\phi\)  dentro del dominio sólo son debidos a cosas que ocurren en el contorno, es decir, no hay creación o destrucción de \(\phi\)  dentro del dominio.

En realidad he hecho trampas, porque la derivación tendría que haberla hecho al revés. Generalmente uno empieza con la ecuación integral, que suele tener mucho más sentido físico y luego obtiene la ecuación diferencial. De hecho, creo que la mayor parte de las ecuaciones diferenciales tienen mucho más sentido en forma integral, pero no hablemos de eso ahora...

Como sabemos, las ecuaciones de Navier-Stokes no son más que la ecuaciones de conservación de la masa y el momento de un fluído y como ya imaginaréis, tienen exactamente la forma descrita.

Vamos a empezar por la conservación de la masa. Supongamos que tenemos un dominio fijo en el espacio y queremos calcular la variación de masa total en su interior en un intervalo de tiempo. Dicho de otra forma, el cambio en la masa es debido a la masa que entra o sale por los contornos:

\begin{aligned} \int_{\Omega}\rho\left(\mathbf{x},t_{1}\right)-\int_{\Omega}\rho\left(\mathbf{x},t_{0}\right)+\int_{\Gamma}\left[\int_{t_{0}}^{t_{1}}\rho\left(\mathbf{x},t\right)\mathbf{n}\cdot\mathbf{u}\left(\mathbf{x},t\right)\right]=0 \end{aligned}

Donde el término de la derecha es la integral en el contorno \(\int_{\Gamma}\)  del flujo de materia en cada punto del contorno \(\rho\left(\mathbf{x},t\right)\mathbf{n}\cdot\mathbf{u}\left(\mathbf{x},t\right)\)  integrada en el intervalo de tiempo \(\int_{t_{0}}^{t_{1}}\).

Esta ecuación es válida sin importar si las velocidades o densidades son continuas o no. Por supuesto, tienen que ser integrables, pero esa es una condición muchísimo menos restrictiva. Por ejemplo, esta ecuación es válida tanto para fluídos como para partículas extensas o, incluso puntuales. Es igual de válida para un fluído continuo como para el mismo fluído considerado como moléculas.

Sin embargo, también es un poco fea, así que vamos a intentar simplificarla (perdiendo algo de generalidad por el camino). Si consideramos que la cantidad total de materia dentro del dominio nunca varía bruscamente podemos tomar el límite cuando \(t_{1}\rightarrow t_{0}^{+}\) . Luego, dividiendo por \(t_{1}-t_{0}\)  y usando la definición de derivada en los dos primeros términos tenemos:

\begin{aligned} \left.\frac{\partial}{\partial t}\int_{\Omega}\rho\right|_{t_{0}}  \end{aligned}

Y en el último término, conmutando las integrales tenemos:

\begin{aligned} \lim_{t_{1}\rightarrow t_{0}^{+}}\frac{1}{t_{1}-t_{0}}\int_{t_{0}}^{t_{1}}\left[\int_{\Gamma}\rho\left(\mathbf{x},t\right)\mathbf{n}\cdot\mathbf{u}\left(\mathbf{x},t\right)\right]  \end{aligned}

Que, si nos damos cuenta, no es otra cosa que la derivada de la primitiva de \(\int_{\Gamma}\rho\left(\mathbf{x},t\right)\mathbf{n}\cdot\mathbf{u}\left(\mathbf{x},t\right)\)  en \(t_{0}\) y por tanto igual a:
\begin{aligned} \int_{\Gamma}\rho\left(\mathbf{x},t_{0}\right)\mathbf{n}\cdot\mathbf{u}\left(\mathbf{x},t_{0}\right)  \end{aligned}

En resumen, la ecuación de conservación de la masa resulta:

\begin{aligned} \left.\frac{\partial}{\partial t}\int_{\Omega}\rho\right|_{t_{0}}+\int_{\Gamma}\rho\left(\mathbf{x},t_{0}\right)\mathbf{n}\cdot\mathbf{u}\left(\mathbf{x},t_{0}\right)=0 \end{aligned}

Que es válida para todo \(t_{0}\)  y por tanto podemos escribir como:

\begin{aligned} \frac{\partial}{\partial t}\int_{\Omega}\rho+\int_{\Gamma}\rho\mathbf{n}\cdot\mathbf{u}=0  \end{aligned}

Esta ecuación tiene la forma integral de una ecuación de conservación. Haciendo la suposición (y, de nuevo, perdiendo generalidad) de que la velocidad y la densidad son derivables en el espacio, según lo dicho anteriormente, la podemos poner en forma diferencial:

\begin{aligned} \frac{\partial\rho}{\partial t}+\nabla\cdot\left(\rho\mathbf{u}\right)=0 \end{aligned}

Este es un tipo importante de ecuación de conservación en el que la magnitud conservada sólo está sujeta a convección por un campo de velocidades. A continuación veremos que las ecuaciones de Navier-Stokes son poco más que esto aplicado también a la cantidad de movimiento.

Vamos a ello, empecemos por suponer que estamos tratando con moléculas y no con fluídos, y que la ecuación de conservación de cada componente de momento tiene la siguiente forma:

\begin{aligned} \frac{\partial}{\partial t}\int_{\Omega}\rho u_{i}+\int_{\Gamma}\rho u_{i}\mathbf{n}\cdot\mathbf{u}=\int_{\Omega}F_{i}  \end{aligned}

Donde \(F_{i}\)  es la combinación de las fuerzas externas (gravitación, por ejemplo) y las fuerzas moleculares entre partículas. Por el momento no vamos a entrar en ellas, solo diré que aunque en principio parecen ser una fuente de momento (ya que la para que la ecuación sea realmente de conservación el lado derecho del igual tiene que ser cero), al final veremos que en realidad tiene la forma de la divergencia de un vector y que el momento efectivamente conserva.

Para este caso he escogido la ecuación integral en la que asumimos que las variaciones en el tiempo son derivables. Una condición que no es muy restrictiva si consideramos que cada molécula es extensa y tiene densidad finita.

El término advectivo es el único que incluye una integral en el contorno. Sin necesidad de suponer diferenciabilidad (en el sentido tradicional), podemos usar el teorema de la divergencia y escribir:

\begin{aligned} \frac{\partial}{\partial t}\int_{\Omega}\rho u_{i}+\int_{\Omega}\nabla\cdot\left(\rho u_{i}\mathbf{u}\right)=\int_{\Omega}F_{i}  \end{aligned}

En este caso, estoy usando la divergencia definida por la teoría de las distribuciones (o funciones generalizadas). Esta divergencia no devuelve una función, sino un objeto que podemos integrar, pero que no tiene mucho significado fuera de una integral. Ganamos generalidad a costa de usar un cálculo un pelín más complicado. Esto mismo podría haberlo hecho más arriba, cuando mostré la ecuación diferencial de la conservación de la masa.

Pese a lo dicho en el párrafo anterior, sabiendo que las distribuciones sólo tienen sentido una vez integradas en algún dominio, nada nos impide trabajar con ellas mientras tanto sin integrarlas. Es decir, podemos escribir:

\begin{aligned} \frac{\partial}{\partial t}(\rho u_{i})+\nabla\cdot\left(\rho u_{i}\mathbf{u}\right)=F_{i}  \end{aligned}

Donde la ecuación anterior es válida para campos de velocidades no diferenciables siempre y cuando seamos conscientes de que en realidad sólo tiene sentido cómo ecuación integral y que este operador divergencia es un objeto distinto al que usé en la ecuación de conservación de la masa.

Desde el punto de vista estético, la ecuación anterior aún tiene un problema. En realidad son tres ecuaciones y además la notación es una especie de mezcla entre notación tensorial y vectorial. Escrita púramente en notación tensorial sería:

\begin{aligned} \partial_{t}left(\rho u_{i}right)+\partial_{j}\left(\rho u_{i}u_{j}\right)=F_{i} \end{aligned}

Que no está mal, aunque personalmente, la notación tensorial no me acaba de convencer. Otra cosa que podemos hacer es darnos cuenta de que el producto \(u_{i}u_{j}\)  es lo que suele llamarse producto diádico o diada y que suele representarse en forma vectorial simplemente como \(\mathbf{uu}\) , aunque las formas \(\mathbf{u}\mathbf{u^{T}}\)  y \(\mathbf{u}\otimes\mathbf{u}\)  también son comunes. Yo voy a usar \(\mathbf{u}\mathbf{u}^{T}\)  porque no requiere notación especial, es simplemente el producto matricial de dos vectores (recordemos que , por otro lado, \(\mathbf{u}^{T}\mathbf{v}\)  es el producto escalar \(\mathbf{u}\cdot\mathbf{v}\)).

 Claramente, \(\mathbf{u}\mathbf{u}^{T}\) es un tensor de 3x3 elementos. Es posible definir la divergencia de un tensor, basta ver la fórma tensorial para ver qué efecto tiene. En este caso, podemos ver \(\nabla\cdot(\mathbf{u}\mathbf{u}^{T})\) como el vector formado por las divergencias de cada columna de \(\mathbf{u}\mathbf{u}^{T}\) (Otra forma de escribirlo sería: \((\nabla^T\mathbf{u}\mathbf{u}^{T})^T\), que es más consistente, pero tiene demasiadas T para mi gusto)

Finalmente, la ecuación de conservación del momento resulta:

\begin{aligned} \frac{\partial}{\partial t}\left(\rho \mathbf{u}\right)+\nabla\cdot\left(\rho \mathbf{u}\mathbf{u}^{T}\right)=\mathbf{F}  \end{aligned}

Que tiene la brevedad justa como para que yo pueda entenderla en su totalidad. El término advectivo así escrito suele decirse que está en “forma conservativa”, aunque a mi me gusta pensar que está en la “forma que tiene que estar”.

Yo con esa ecuación me conformo; pero si queremos aún más brevedad podemos definir los vectores \(\mathbf{q}^{T}\equiv\left(1,u_{1},u_{2,}u_{3}\right)\), \(\mathbf{f}^{t}=\left(0,F_{1},F_{2},F_{3}\right)\)  y el operador \(\square\equiv\left(\frac{\partial}{\partial t},\frac{\partial}{\partial x_{1}},\frac{\partial}{\partial x_{3}},\frac{\partial}{\partial x_{3}}\right)\) , de forma que:

\begin{aligned} \square\cdot\left(\rho \mathbf{q}\mathbf{q}^{T}\right)=\mathbf{f} \end{aligned}

Donde \(\mathbf{q}\) es el cuadrivector velocidad (1 es la velocidad del tiempo 1 s/s). Esta fórmula es equivalente a las ecuaciones de conservación de la masa y el momento. Sin embargo no estoy seguro de que ganemos claridad con ello.

Así que por el momento nos quedaremos con dos ecuaciones de conservación de la masa y el momento, válidas para magnitudes discontinuas (teniendo en cuenta que en ese caso sólo tienen sentido integradas) y, por tanto, válidas para fluídos considerados como medios continuos o como partículas:

\begin{aligned} \frac{\partial\rho}{\partial t}+\nabla\cdot\left(\rho\mathbf{u}\right)=0 \end{aligned}

\begin{aligned} \frac{\partial}{\partial t}\rho \mathbf{u}+\nabla\cdot\left(\rho \mathbf{u}\mathbf{u}^{T}\right)=\mathbf{F}  \end{aligned}

En la próxima edición, hablaré de \(\mathbf{F}\)  y de cómo obtener la viscosidad (y la turbulencia) a partir del término convectivo.

...Y quizás de las derivadas materiales.