Cálculo diferencial 5: integrando ecuaciones diferenciales

Quinta parte del recorrido hacia las ecuaciones diferenciales. Para un índice de los artículos sobre este tema, puede consultarse este enlace.


En la última entrada hablamos de la relación entre derivadas e integrales. Si por ejemplo tenemos una ecuación donde la derivada de una función desconocida es igual a una función que conocemos,

\displaystyle \frac{d}{d\xi}f(\xi) = g(\xi)

tendremos que

\displaystyle f(\xi) -f(\xi_0) = \int \limits _{\xi_0} ^{\xi} g(\xi)d\xi

Por ejemplo, en una entrada anterior dijimos que la derivada de una recta me da una constante (su pendiente), por lo que si miramos todo del otro lado,

\displaystyle \frac{d}{dt}v(t) = A

con A una constante, implica que

 v(t) -v(t_0) = A(t -t_0)

También vimos que

\displaystyle \frac{d}{dt}\left[ A \left( t -t_0 \right)^2 \right]_{t_1} = 2 A \left( t_1 -t_0 \right)

Por lo tanto, no es difícil ver que

\displaystyle \int\limits _{t_0} ^{t} A(t -t_0) dt = \frac{1}{2}A(t -t_0)^2

Volvamos entonces a nuestra famosa ecuación diferencial

\displaystyle M g - k v^2 = M \frac{d}{dt}v

y hagamos algo que, si bien arriesgado para nuestro paracaidista, nos simplificará enormemente los cálculos: eliminemos la fricción con el aire haciendo k = 0. Es decir, una verdadera caída libre en ausencia de atmósfera. En esta situación, luego de simplificar el factor de la masa obtenemos

\displaystyle \frac{d}{dt}v = g

donde g es una constante (en este caso, la aceleración de la gravedad).

Con lo visto anteriormente podemos resolver esta ecuación simplemente integrando, lo que nos dará

\displaystyle v(t) -v(t_0) = \int\limits _{t_0} ^t g dt = g(t -t_0)

Recordando ahora que la velocidad es la derivada de la posición respecto del tiempo, podemos obtener

\displaystyle x(t) -x(t_0) = \int\limits _{t_0} ^t \left[ v(t_0) + g(t -t_0) \right]dt

Ahora bien, una integral es básicamente una suma de cosas (seguida de un límite), por lo que la integral de la suma de dos funciones será la suma de sus integrales. A partir de esto, de considerar que v(t_0) es simplemente un número constante (el valor de la velocidad en un único instante bien definido) y de lo que vimos durante esta entrada llegamos a

\displaystyle x(t) -x(t_0) = v(t_0) (t -t_0) + \frac{1}{2} g (t -t_0)^2

que no es otra cosa que la «ley horaria» del movimiento rectilíneo uniformemente acelerado. Hagan un esfuerzo de memoria, que seguro lo vieron en la escuela: ahora, ya saben de dónde sale.

Desafortunadamente, la ecuación diferencial que ha servido de hilo conductor en estas entradas es mucho más compleja. El término con la velocidad al cuadrado y la presencia de una constante hacen que sea particularmente difícil de resolver, por lo que el explicar el resultado exacto sería demasiado para estas modestas entradas (la solución general para la velocidad implica una función hiperbólica con otras funciones hiperbólicas —y otras cosas— en su argumento, mientras que integrar eso para obtener la posición agrega un logaritmo…). Pero a no desesperar, que aún así podremos utilizar lo aprendido para realizar un cálculo iterativo aproximado en Octave.

Pero eso será en la última entrada de la serie.

, ,

Deja un comentario

Programando el pasado en WordPress

Hace unos meses cometí un error: al escribir sobre cómo fue instalar Linux en mi nueva portátil decidí crear una página en lugar de un artículo. Esa página era una subpágina de «entradas destacadas», por lo que cada vez que pasaba el cursor por el menú de páginas me daba un submenú que resultaba bastante incómodo y no del todo claro. Quizás el problema fuera del tema usado en este sitio, pero la verdad es que luego de un tiempo me di cuenta de que sería mejor convertir esa página en un artículo, por lo que inmediatamente surgieron dos preguntas:

Pregunta 1: ¿existe una herramienta en WordPress para convertir páginas en artículos o viceversa?

Respuesta 1: No.

Pregunta 2: Si no queda otra alternativa que copiar el contenido de la página y pegarlo en un artículo, ¿existe una forma de hacer que el artículo se publique con la fecha anterior a la actual, por ejemplo cuando fue creada la página?

Respuesta 2: Sí.

A la derecha de la zona de edición del artículo tenemos la posibilidad de editar cuándo se publicará la entrada. Generalmente esta opción se usa para programar entradas futuras para que se publiquen automáticamente (de hecho, la mayor parte de las entradas de este sitio son programadas con varios días de anticipación), pero si ponemos allí una fecha anterior a la actual el artículo será publicado inmediatamente con esa fecha.

Programando esta entrada

Programando esta entrada

Y así fue como la página que hablaba de la experiencia de instalar Linux en mi nueva portátil terminó convirtiéndose en un artículo con fecha de publicación de un par de meses antes de cuando realmente presioné el botón «Programar».

Deja un comentario

Controlando la separación silábica en LaTeX/LyX

Cuando en un documento hacemos que el texto esté «justificado» (hacer que ambos márgenes, izquierdo y derecho, formen una línea) nos enfrentamos a un problema: si el texto está en columnas o la fuente tipográfica usada es grande en modo tal de tener pocas palabras por línea, el software que usemos se verá obligado a variar la distancia entre las palabras para ajustarse a los márgenes, lo que dará espacios en blanco de tamaño impredecible que harán incómoda la lectura. Para evitar esto, se recurre a la separación silábica de palabras a final de línea en modo tal que se reduzcan esos espacios… pagando el precio de tener muchas palabras «cortadas».

Comparen las siguientes capturas:

colortexto1 colortexto2

 

 

 

 

 

 

 

 

 

En la imagen de la izquierda la separación entre palabras es uniforme, pero tenemos una palabra quebrada casi en cada línea, lo cual dificulta la lectura. Por otra parte, la imagen de la derecha tiene solo una palabra separada, pero los espacios entre palabras son completamente aleatorios. Ambas situaciones son malas (si bien la segunda es mucho peor…).

En general, LaTeX hace un gran trabajo equilibrando los espacios con la separación silábica, pero solo cuando el texto es «lo suficientemente ancho». ¿Es posible cambiar manualmente el comportamiento de LaTeX? Sí, aunque lo que hay que hacer es más cercano a la «magia negra» que a un método de trabajo…

LaTeX usa un algoritmo complejo para decidir cómo distribuir el texto en las líneas del párrafo. Simplificando un poco el proceso, podríamos decir que calcula un parámetro que mide «qué tan mal» se ve el texto y trata de minimizarlo en dos pasadas. En la primer pasada, calcula qué tan mal se ve el texto sin la separación silábica y si el resultado es aceptable, pues todo listo. Si el resultado de la primer pasada no es aceptable (y suele no serlo), pasa de nuevo permitiendo esta vez la separación silábica al final de la línea.

Lo que dice si un resultado es «aceptable» o no, es un parámetro llamado «tolerancia»: si lo mal-que-se-ve está dentro de lo tolerado, pues pasa.

Y dado que el algoritmo hace dos pasadas, pues tenemos dos parámetros de «tolerancia», uno para la primer pasada y otro para la segunda.

¿Y como controlamos estas tolerancias? En el preámbulo LaTeX (en LyX: Documento → Configuración → Preámbulo LaTeX) se escribe

\pretolerance=<valor>
\tolerance=<valor>

Donde <valor> es un número entero entre 0 y 10000.

Y es en estos valores donde viene la «magia negra»: la imagen de la izquierda usa los valores por defecto de LaTeX mientras que la de la derecha usa 2000 para pretolerance y 3000 para tolerance.

Si para tolerance escribo en cambio 20, obtengo lo siguiente:

colortexto3

Lo cual está más «equilibrado»: tenemos la mitad de separaciones silábicas que en la primer imagen y los espacios, si bien no completamente homogéneos, son un poco más predecibles que en la segunda imagen.

El valor correcto para pretolerance y tolerance dependerá del tamaño de la página, de la fuente tipográfica, de los márgenes, del número de columnas… en fin, que encontrarlos es cosa de prueba y error. Y es que cuanto más «angosto» el texto es, menos estables estos parámetros resultan, todo lo cual viene a querer decir que cuando más los necesitemos más difícil será encontrarlos.

Y sí, la vida es cruel…


Para profundizar:

Unos tipos duros: ¿Menos guiones o más espacios irregulares? Este es el dilema

http://tex.stackexchange.com/questions/19178/whats-the-difference-between-tolerance-and-badness

http://tex.stackexchange.com/questions/31301/how-to-reduce-the-number-of-hyphenation

google, duck duck go o su buscador favorito ;)

3 comentarios

Liberado KDE Plasma 5.1

Semana de entornos de escritorio: Hoy se ha anunciado la liberación de Plasma 5.1.

El título del anuncio no podía ser más claro: «Plasma 5.1 Brings Back Many Popular Features», que se traduce como «Plasma 5.1 trae de regreso muchas características populares».

Cosas que vuelven en Plasma 5.1: El gestor de tareas de solo iconos, el plasmoide de notas, el monitor de carga del sistema, soporte para múltiples zonas horarias en el reloj del panel.

Cosas que mejoran: la presentación de las notificaciones, el gestor de contenido del portapapeles, el estilo Breeze está ahora disponible también para aplicaciones Qt4, mejorando la integración de aplicaciones aún no portadas a Frameworks 5, se tienen innumerables correcciones de error, mejoras en el rendimiento y la estabilidad, etcétera.

Ahora es más fácil cambiar entre plasmoides que realicen la misma tarea (por ejemplo, pasar del lanzador de aplicaciones por defecto a Lancelot o cambiar el tipo de reloj).

Se ha progresado en el soporte para Wayland. Un nuevo gestor de ventanas, «kwin-wayland» complementa ahora al existente, que ha sido renombrado como «kwin_x11». Una nueva librería llamada KWayland da información de configuración a KInfoCenter y otros sistemas que la necesiten (Martin Gräßlin explica de qué se trata esto en su blog). Más trabajo es necesario para lograr una experiencia con Wayland que sea agradable para todos los usuarios, pero los desarrolladores esperan tener todo listo en los próximos meses.

Aún faltan algunas características presentes en KDE4, pero el sistema está progresando a buen ritmo.

En este enlace es posible ver la lista de cambios.

,

Deja un comentario

Liberado LXQt 0.8

LXQt-logoCinco meses después de la versión 0.7, hoy se anuncia la liberación de LXQt 0.8.

Además de correcciones de error y nuevos temas, se tienen muchas y muy interesantes novedades:

  • Soporte completo para Qt 5 (en la próxima versión se eliminará el soporte para Qt4)
  • Nuevo componente lxqt-admin para administrar el sistema
  • Como comentamos, nuevos temas, algunos de ellos basados en temas plasma de KDE
  • Soporte mejorado para múltiples pantallas
  • Soporte para transparencia RGBA si se tiene disponible un compositor de escritorio
  • Nuevo módulo para configurar el monitor, lxqt-config-monitor, el cual reemplaza el eliminado (y al parecer, problemático) lxqt-config-randr
  • El navegador de archivos pcmanfm-qt tiene ahora soporte para activar elementos con un solo clic y para para arrastrar y soltar al escritorio, además de ofrecer integración con ark y otras mejoras
  • En lxqt-panel se pueden ahora reordenar los botones de la barra de tareas y se tiene soporte par el control de volumen a través de OSS (si disponible)
  • El administrador de energía lxqt-powermanagement tiene soporte mejorado con systemd/logind
  • Se puede elegir la fuente tipográfica usada en pantalla
  • Etcétera

En la página oficial del proyecto puede encontrarse una lista de repositorios para instalar LXQt en distintas distribuciones (al día de hoy, el repositorio de openSUSE no ha sido aún actualizado).

Habrá que comenzar a probarlo.

,

Deja un comentario

Cálculo diferencial 4: la relación entre derivadas e integrales

Cuarta parte del recorrido hacia las ecuaciones diferenciales. Para un índice de los artículos sobre este tema, puede consultarse este enlace.


Un detalle importante antes de continuar: en los artículos anteriores calculamos la derivada de una función para un valor particular de su variable. Ahora bien, nada impide hacer este cálculo para más valores… o incluso para todos los valores de la variable. Podemos así construir, a partir de la función original, una nueva función que me dará el resultado de la derivada de la función original para cada valor de su variable.

Ahora sí, ataquemos el tema de esta entrada. Con suerte, tanto el tema como nosotros saldremos ilesos… ;)

En entradas anteriores hemos hecho algunos gráficos mostrando la posición de un objeto en función del tiempo. Probemos ahora a hacer un gráfico diferente: la velocidad del objeto en función del tiempo

Velocidad-tiempo1

En un gráfico de este tipo, una línea horizontal nos dice que la velocidad se mantiene en un valor constante, mientras que una línea recta nos dice que la velocidad varía con aceleración constante.

Detengámonos un momento para recordar lo que vimos en su momento al hablar de integrales (Parte 1, Parte 2, Parte 3). ¿Listo? ¿Seguros de haber repasado en profundidad? Bien, sigamos.

Una cosa importante de notar es que si bien en aquellos artículos calculamos integrales en el plano para así obtener un área, la definición que dimos de integral no está limitada a esto: cualquier función que dependa de «algo» puede ser integrada respecto a ese algo. Integrar en el plano dará un área, integrar en otro tipo de variables dará otra cosa, pero el concepto es siempre el mismo.

Tratemos entonces de calcular la integral de la velocidad como función del tiempo y veamos que tipo de «área» obtenemos.

Tal y como hicimos la otra vez, aproximemos esta «área» con N columnas de un cierto ancho \Delta t_k y altura igual al valor real de la función en el borde izquierdo de la columna misma. Finalmente, haremos el famoso «límite» para un número infinito de columnas cada vez más angostas.

Básicamente estamos aproximando la función del gráfico anterior por otra formada por tramos horizontales, tal y como se ve en el siguiente gráfico

Velocidad-tiempo2

Es decir, el área será

 \displaystyle \int\limits_{t_0} ^{t_{final}} v(t)dt = \mathop{\lim_{N\to\infty}}_{\Delta t_k \to 0} \sum_{k=1}^{N}v(t_k)\Delta t_k

Pero como dijimos al principio, una línea horizontal implica velocidad constante y por lo tanto podemos escribir

 \displaystyle v(t_k) = \frac{\Delta x_k}{\Delta t_k}

Reemplazando en la expresión de arriba, obtenemos

 \displaystyle \int\limits_{t_0} ^{t_{final}} v(t)dt = \mathop{\lim_{N\to\infty}}_{\Delta t_k \to 0} \sum_{k=1}^{N}\frac{\Delta x_k}{\Delta t_k}\Delta t_k = \mathop{\lim_{N\to\infty}}_{\Delta t_k \to 0} \sum_{k=1}^{N} \Delta x_k

Es decir, cada columna de la aproximación nos da el desplazamiento que se tendría al mantener la velocidad constante, por lo que la suma de las columnas no es otra cosa que una aproximación al desplazamiento total del objeto. Y claro, luego de tomar el límite obtendremos que la integral de la velocidad como función del tiempo es exactamente el desplazamiento real del objeto en ese tiempo

 \displaystyle \int\limits_{t_0} ^{t_{final}} v(t)dt = \Delta x = x(t_{final}) -x(t_0)

Lo cual, recordando que la velocidad no es otra cosa que la derivada de la posición respecto del tiempo, nos da

 \displaystyle \int\limits_{t_0} ^{t_{final}} \frac{d}{dt} x(t) dt = \Delta x = x(t_{final}) -x(t_0)

Es decir, la integral de la derivada de una función nos da la variación de la función original entre los extremos de integración. En forma general, para una función cualquiera que depende de una variable general:

\displaystyle \int\limits_{\xi_0} ^{\xi_{final}} \frac{d}{d\xi}f(\xi) d\xi = f(\xi_{final}) -f(\xi_0)

A este importante resultado se lo conoce como teorema fundamental del cálculo.

Derivadas e integrales están estrechamente relacionadas: en un sentido general podemos decir que una es la «inversa» de la otra. Por lo tanto, si tenemos una ecuación diferencial simple en la cual la derivada de una función está igualada a una expresión, para resolver el problema ¡solo es necesario calcular la integral de la expresión!

Volveremos un poco sobre esto en la siguiente entrada.

, ,

1 comentario

Usando diccionarios locales en LyX

Hace unos días hablábamos aquí de una nueva versión del diccionario inglés para OpenOffice y afines. Este diccionario se actualiza casi mensualmente lo que hace que esté mucho más avanzado que los diccionarios hunspell que vienen por defecto en las instalaciones Linux, por lo que surge la pregunta de cómo utilizar estos nuevos diccionarios en lugar de los del sistema, o incluso otros diccionarios que no estén disponibles desde nuestro administrador de paquetes.

Es muy simple. Descargando las extensiones de los diccionarios para AOO/LibO, simplemente cambiamos sus nombres de <diccionario>.oxt a <diccionario>.zip y los descomprimimos, lo que nos dará varios archivos y posiblemente algunas carpetas. De todo esto, lo que nos interesa son los archivos con las siguientes extensiones:

  • .dic y .aff: estos archivos contienen los diccionarios de corrección ortográfica
  • .dat y .idx: estos archivos contienen los diccionarios de sinónimos

Copiando estos archivos en una carpeta cualquiera simplemente abrimos LyX y nos dirigimos a Herramientas → Preferencias → Rutas:

lyxdictios

Ahora LyX usará los diccionarios que copiemos a los directorios que hemos creado (en la captura solo he cambiado la carpeta de los diccionarios de sinónimos, pero cambiar el directorio de los diccionarios hunspell funciona de la misma forma).

En el mismo menú Preferencias, bajo Configuración de idioma podemos elegir que la corrección ortográfica marque los errores encontrados en tiempo real,

lyxdictios1

mientras que el atajo de teclado Mayúsculas-F7 nos abrirá el diccionario de sinónimos en la palabra sobre la cual se encuentre el cursor. Es importante notar que si tenemos los archivos .aff en nuestra carpeta de diccionarios, el diccionario de sinónimos reconocerá palabras «modificadas» (plurales, verbos conjugados, etcétera), si bien solo dará sugerencias «sin modificar» (ofrecerá singulares, verbos en infinitivo, etcétera).

Deja un comentario

A %d blogueros les gusta esto: