viernes, 8 de noviembre de 2013

Modelos Matemáticos V: Probabilidad

  Hasta ahora todas las formas que hemos visto para modelar fenómenos son muy confiadas en que realmente algo va a suceder tal como lo expresan sus fórmulas matemáticas, o al menos de manera muy parecida.
Pero los hechos, y aquí se considera un principio llamado de  causalidad, dependen de hechos anteriores. Y a su vez de hechos que se realizan paralelamente y es muy difícil considerar a todos ellos en una fórmula matemática que explique a solo uno, especifico y delimitado en tiempo y espacio.

 La probabilidad permite modelar matemáticamente justamente esos procesos o fenómenos que involucran una gran cantidad de eventos o elementos, es más, mientras mayor número de elementos mejor se ajusta el modelo a la realidad.
  
 El sentido común nos dice que al comprar un boleto de lotería tenemos más probabilidad de ganarla que aquel que no compró un boleto, pero ¿hasta qué punto es esto cierto?. Para eso definiremos la probabilidad de un suceso como la cantidad de acontecimientos favorables dividido para la cantidad de todos los acontecimientos posibles. En el ejemplo de la lotería suponiendo que se usan boletos numerados del 1 al 99999, tendríamos 99999 casos posibles y si solo compramos un boleto, 1 caso favorable.
                     $P=\frac { favorables }{ todos }  = \frac { 1 }{ 99999 } = 0.0000100001$
Es fácil llegar a la conclusión de que la máxima probabilidad es 1, cuando todos los casos son favorables. Por esto se le representa multiplicado por 100, es decir en porcentaje.

 Es necesario diferenciar un porcentaje de probabilidad de un porcentaje de cantidad, decir 50% de una moneda es distinto al 50% de probabilidad de obtener cara al lanzar la moneda.

 Comparando el ejemplo de la moneda y el ejemplo de la lotería mediante experimentación (Es curioso que podemos hacerlo con la misma moneda, primero realiza lanzamientos de la moneda y luego compra con ella un boleto de lotería) se ve que la probabilidad que supusimos que es para un único acontecimiento en el tiempo, una solo lanzamiento o un solo sorteo, es también una probabilidad para varios acontecimientos es decir que la probabilidad de que salga cruz en 20 lanzadas sigue siendo del 50% y esperaríamos que 10 sean cruz, pero como dice el gráfico un 50% de probabilidad no es un 50% de cantidad y puede que al final las 20 lanzadas sean cara, pero si realizamos 1 millón de lanzadas es más seguro que medio millón sea cruz y el otro medio millón resulte cara. ¿Por qué? Porque la probabilidad funciona mejor mientras más elementos se tomen en cuenta, pues si resultara algo diferente habría que cambiar el 50% a otro valor y ajustar a la realidad.

 Es por eso que la probabilidad es una buena forma de modelar fenómenos que ocurren muchas veces o que implican una gran cantidad de datos, pero ¿Qué tan determinista es una probabilidad?. Parece una pregunta tonta pero es necesario conocer que tan apegado a lo que realmente ocurre es una probabilidad o si como modelo matemático que es, se queda en el terreno de la matemática formal y abstracta.  

 Ahora con el ejemplo de la lotería vemos que para ganarla necesitamos comprar un boleto una cantidad considerable de veces y eso solo para que el 0,00001% de probabilidad se vuelva más cercano al 0,0001% de cantidad, y esto comprando el mismo número siempre, es decir el que compra un boleto tiene más probabilidad que el que no compra pero es tan baja que a efectos teóricos no hay diferencia pero resulta que si hay ganadores de lotería, por que ese es el resultado inevitable del sistema de juego si se venden todos los boletos mas no porque el comprador del boleto ganador compró más boletos, a menos que sean realmente muchos ( lo que casi seria como gastar el premio que se sortea para recuperarlo después).


 Lo mismo pasa en la naturaleza existen fenómenos que si bien tienen una probabilidad muy pequeña, ocurren y otros que con probabilidades mayores no logran ser observados. Pero que es lo que pasa con una probabilidad del 0,0000000000000000000000000001% o más pequeña,   pues que necesitaríamos vigilar a todo momento en todo lugar para lograr observar una posible ocurrencia. Ocurrencia que no puede suceder nunca o puede suceder repetidas veces seguidas para nunca más volver a aparecer, a esto podemos llamar aleatoriedad total pues la probabilidad de una proceso completamente aleatorio según la definición es de uno sobre todo lo posible, en matemático $\frac{1}{\infty}$ , que por lo general se toma como cero, pero no lo es "necesariamente", para poder usarlo en situaciones prácticas es más parecido al montón de decimales como el numero de más arriba, con muchos más ceros adelante.
La ecuación de Schrodinger que describe la probabilidad de encontrar a una partícula en un tiempo dado.
Lo curioso es que es una onda de probabilidad por lo que da distintas probabilidades a distintas posiciones, sin embargo aquí estamos todo junto.


El famoso gato de Schrodinger

Pero no todos los casos posibles de algunas situaciones tienen la misma probabilidad. En un curso de primero de primaria es mucho más probable encontrar niños de 5 años que de 6 o 7, y muy poco probable a alguien de menos de tres años o de más de treinta. Se puede ver gráficamente, a estas distribuciones, y la más normal es la que se llama NORMAL, cuya función matemática la describió Gauss y se conoce también como la campana de Gauss.
Imagen tomada de matematicasdigitales.com
     Hay otras distribuciones que cumplen con el texto de la imagen, es decir la integral (si no sabes lo que es un integral no te pierdas el siguiente artículo) de toda la función es igual a 1, cumpliendo por supuesto con la definición de probabilidad. Tal vez lo interesante de una distribución normal es que donde se indica m o u (más popular y general) es el valor con mayor probabilidad y equivale al promedio de toda la función. Donde se indica  -s y  s   (-sigma y sigma) es la desviación a derecha e izquierda de los valores contiguos al de mayor probabilidad y como es evidente en muchos fenómenos también tienen una probabilidad elevada. Una Distribución Gaussina se suele representar como N(m,s) y existe una tabla del valor de la integral para la distribución N(0,1) que es la propiamente dicha Normal pues sus valores se ajustan o normalizan para que resulte m=0 y s=1.
La mayoría de los caso probables están entre -3sigma y 3sigma, en muchos casos de rigor científico se exige  5sigma. 
 La probabilidad a veces parece que es cuestión de suerte, otras veces parece que tiene más determinación y aciertos que la matemática no probabilista. Lo cierto es que está presente y podemos usarla para describir matemáticamente procesos que no tenemos certeza que se presenten.


    


miércoles, 16 de octubre de 2013

Impresora 3D, Parte III: Software de Terceros

Para obtener un objeto impreso en 3D se necesita moldearlo en el computador con algún programa dedicado a ello como  Blender, y se pueden lograr cosas como estas:


E incluso en Blender se puede realizar también animación y realizar vídeos como:

Una vez que se tiene el modelo realizado en computadora es necesario transformarle en coordenadas que puedan ser enviadas como instrucciones a la impresora 3D, para esto es necesario guardarlo en formato .stl (desde cualquier programa de modelado 3D), en Blender se  logra seleccionando el submenú "Export" del menú "File":


Un lugar donde se puede encontrar una gran cantidad de modelos en 3d en formato .stl es  www.thingiverse.com.


Con el archivo .stl en mano es hora de usar otro programa para transformarlo en código G, que es un estándar de máquinas de prototipo rápido y de control numérico computarizado (CNC). Un programa que es muy usado por su facilidad de uso y que es gratis es Slic3r, además que  está diseñado para crear código G listo para ser usado en impresoras 3D.
Logo de Slic3r, para no confundirse con 3D Slicer.
 El código G son instrucciones que indican a la maquina principalmente la posición requerida y la velocidad a la cual debe moverse. Además indica la temperatura, cambio de herramienta (por ejemplo en Impresoras 3D que imprimen a colores, o que imprimen en múltiples materiales), etc.

Código G visto en Notepad++

En el extracto de arriba se pueden ver comandos que empiezan con las letras G y M, explicado cada uno brevemente:
M107: Enciende un ventilador de disipación de calor.
M104: Indica la temperatura del extrusor, S200 coloca la temperatura en 200 C.
G28: Mueve el extrusor a una posición predeterminada de origen. 
M109: Hace lo mismo que M104.
G90: Indica que las distancias usadas para el espacio(X, Y, Z) son absolutas.
G21: Indica que las coordenadas están dadas en milímetros.
G92:  Coloca en el software las coordenadas en 0, E0 coloca las coordenadas del extrusor en 0.
M82: Indica que las distancias dadas para el extrusor (E) son absolutas.
G1: Indica que se debe hacer un movimiento y las coordenadas de destino. Lo que esta después de F es velocidad, después de X coordenada X y así sucesivamente con Y, Z y E.

Nuestro propio software lo que realizara es la interpretación del código G y su transmisión vía comunicación serial con un microcontrolador.
En el microcontrolador se recibirán ordenes para mover adecuadamente los motores y controlar la temperatura. El detalle de esto en el próximo articulo.


No viene mal que ya descarguen y jugueteen con alguno de estos programas.

domingo, 6 de octubre de 2013

Modelos Matemáticos IV

Modelos Matemáticos Modernos.

Un punto, una palabra común y a la que le asignamos pronto una definición gráfica. Y tiene un uso definido en gramática.

En matemática y geometría es un concepto básico, más no muy claro para usarlo en un modelo matemático. Por ejemplo $\pi$ es un punto distinto de 3,14159265359 y todos los decimales más que puedan agregarse.
No son $\pi$, en el sentido más estricto, si cambia tan solo uno de esos números, pues los puntos en una recta numérica son infinitos.


Otro concepto básico es el de línea que se define como la sucesión continua de puntos. En el ejemplo anterior en realidad se hablaba de que $\pi$ es distinto en la línea recta numérica a cualquier otro punto pues para identificar a un punto se necesita de un sistema de referencia cuyo origen sea 0.
Recta Numérica en la cual se ha señalado a $\pi$
En el mundo real este sistema de referencia es de tres dimensiones, cuyo origen se puede representar como  un arreglo = (0,0,0).
 Se puede incluir al tiempo en un sistema cuyo origen es (0,0,0,0). Por ejemplo el punto (2,1,3,6) toma un significado de un punto que se encuentra a 2 unidades de medida del origen por lo largo, a 1 unidad de distancia por lo ancho, a 3 de distancia por lo alto y a 6 unidades de medida de tiempo desde el inicio por decirlo de alguna manera.
Ejemplo de como se representa un punto en 4 dimensiones, solo interesa el instante en el que se ha definido la posición.
La unidad de medida es una convención para que representen lo mismo un metro o un segundo en cualquier lugar del mundo. Teóricamente se puede expresar cualquier porción o fracción pequeñísima de la unidad, es decir se puede hablar de 0,000001 segundos (tiempos en los que se mide por ejemplo la realización de una operación en una computadora) e incluso cantidades más pequeñas con muchos más ceros adelante. Sin embargo Planck demostró que por debajo de ciertas cantidades muy pequeñas el mundo debe funcionar muy distinto, iniciando así la teoría cuántica.

Por tanto en un modelo matemático que utilice los puntos y la definición normal de línea, llamado modelo analógico, al final se debe poder llegar a un modelo discreto, en donde las mediciones ya no se pueden hacer con una cantidad infinita de decimales de cierta unidad de medida, sino solo a saltos de múltiplos de las cantidades cuánticas. Tal vez un ejemplo sencillo es que un modelo de población no se puede hablar de 2,4 individuos, tan solo se puede hablar de individuos completos, la cantidad cuántica en modelos de población. Sin embargo cuando se habla de poblaciones muy grandes ya se puede decir 2,4 miles de individuos, lo mismo pasa con la mayoría de modelos matemáticos para otras variables físicas, dado que la cantidades cuánticas son muy pequeñas en relación a lo que nuestros sentidos pueden captar.
En esto también se basa la digitalización, pues usando muchos valores discretos escuchamos una canción guardada en un computador como si estuviéramos en frente del artista, y así una innumerable cantidad de acciones que realizamos cotidianamente.
Una canción en 8bit (formada con máximo 256 sonidos, incluido el silencio) 

 La canción tomada de un vídeo análogo y pasado a digital para subirlo a Youtube.

Dada la enorme cantidad de datos también es necesario tratarlos con otra rama de la matemática, la probabilidad, pues sabemos que estamos compuestos de células pero es poco práctico realizar mediciones a cada una de ellas, por lo que se realiza experimentos a un grupo y se espera que las demás se comporten de la misma manera. O se utiliza a las de un individuo y se espera que se obtengan resultados similares en las células de otro individuo. La medicina ocupa mucho de esto, pues no es posible probar un nuevo medicamento en toda la población para asegurar su efectividad pero es posible considerar un porcentaje de población a la cual no surtirá efecto o un porcentaje en el cual se generarán efectos no deseados.
Sobre probabilidad se discutirá más en el siguiente artículo.  

Si una vacuna sirve, se espera que elimine a la totalidad de virus presentes.
Otra "dificultad" que tienen los modelos matemáticos, por lo menos en física, es que no toman en cuenta que deben ser válidos en cualquier sistema de referencia, es decir en "donde" y "cuando" queramos poner el origen, ya que los sistemas validos en cualquier sistema de referencia no hacen mucha diferencia entre una dimensión de distancia o tiempo, tal cual como nosotros percibimos, como lo demostró Einstein en su teoría de relatividad.
Algo a lo que no estamos acostumbrados a pesar de que ya se han adaptado la mayoría de modelos matemáticos y físicos a esta condición.

El GPS te indica donde te ubicas,lo cual seria imposible si no funcionaria independientemente de donde te ubiques y de que momento necesitas saberlo. 

Otra condición que en cambio es común saberla pero no se expresa en todos los modelos es la de incertidumbre, y no me refiero solo al principio postulado por Heisenberg sino también a la mas perceptibles como que no podemos responder la hora exacta a una persona que nos la pregunta, para cuando terminemos de hablarle habrán pasado algunos segundos, o que sin herramientas precisas no se puede tomar medidas precisas. Y en cuanto al de Heisenberg tiene mucho que ver con que no se puede medir con precisión simultáneamente pares de variables físicas. Esto último también tiene que ver con que no se puede conseguir lo máximo de algo sin el costo de obtener lo mínimo de otra cosa, no es posible obtener lo máximo de ambas y trata de obtener lo mínimo de ambas es muy difícil.

Por tanto los modelos matemáticos establecidos (aquellas ecuaciones que estudias en el colegio o universidad) se ajustan a la experimentación, por ende a la realidad. Pero por experimentación mismo se ha llegado a ver la necesidad de incluir la teoría cuántica y de la relatividad para explicar ciertos fenómenos que aquellas ecuaciones no predicen o satisfacen adecuadamente.

Los modelos matemáticos se vuelven más complejos y es menos común conocer de aquellos fenómenos hasta que se realizan experimentos o hasta que su utilidad y aplicabilidad se vuelve cotidiana. Por ejemplo todos sabían que el sol es una fuente de energía hace unos siglos, pero  solo hemos optimizado su uso desde el siglo pasado, pues la verdad antes no sabíamos como hacerlo.

Además aunque el modelo matemático es más complejo, la idea que antecede el desarrollo de nuevos modelos es mucho más simple y general, y al igual que si de un  modelos de  un atuendo de vestir se tratara, se vuelve más elegantes.
¿Acaso se puede simplificar más la relación entre energía y masa?

Y de eso trata hacer modelos matemáticos, acercarse cada vez más al funcionamiento de la naturaleza en un lenguaje que podemos entender y sacar provecho de aquel entendimiento. Si bien puede volverse más difícil entender matemáticamente como logramos ver un objeto. (Desde que la luz del Sol se emite, se refleja en el objeto, llega a nuestros ojos, y la función que cumplen nuestros ojos y la que cumple nuestro cerebro en convertir esa luz en información), sin ese conocimiento fuera imposible ayudar a ver mejor a los que lo necesita o de plano dar vista a quien no tiene.

Mejorar los modelos matemáticos se vuelve un objetivo de la ciencia y aplicar los que ya se conocen, aunque quizás jamás lleguen a ser ideales, es indispensable para el progreso
Además un modelo matemático no necesariamente es el último en su campo de estudio, pues las ideas en que se basa son humanas y los humanos cometemos errores.
 Es aquí donde entra el método científico con el fin de depurar las ideas y mejorar los modelos matemáticos, y la matemática mismo puede cambiar con el fin de acercarnos más al  entendimiento del funcionamiento del universo y de cada una de las partes que lo componen.

Documental Recomendado:
Qué es un grado?

sábado, 21 de septiembre de 2013

Impresora 3D, Parte II: Microcontrolador

En la primera parte presentamos a estos dispositivos. Ahora nos dedicaremos ha describirlo en detalle. Es importante dado que se les puede utilizar en muchísimas aplicaciones,y que la impresión 3D es solo una más de tantas.


¿Pero qué es un microcontrolador?

Un procesador digital con periféricos integrados o como lo dice la Wikipedia:  Un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.
Desmenuzando el concepto encontramos palabras como procesador o unidad central de proceso, memoria y periféricos de entrada/salida.

Procesador: Es la cabeza del microcontrolador, lee instruciones de la memoria, las ejecuta y el resultado lo vuelve a guardar en memoria y/o lo envía a los periféricos. 
En comparación a los procesadores usados en computadoras son mucho más "lentos". Además se dedican a una tarea específica. Lejos de ser desventajas, implica menor consumo de energía y menor costo. 

Memoria: Ya que el propósito de un procesador es seguir instrucciones, estas se almacenan en una memoria. Estas instrucciones es lo que llamamos programa al ejecutarse en un orden pre-establecido. Para obtener dicho orden requiere de un contador de programa y una pila (fila) para este contador. La memoria que almacena estas instrucciones es de solo lectura y de allí su nombre en inglés ROM (Read Only Memory).
  
Dentro de la memoria además se encuentran registros reservados para el funcionamiento correcto del microcontrolador y variables de usuario, datos que varían durante la ejecución del programa. La memoria que almacena esto es más grande y se necesita de acceso aleatorio, de alli sun nombre en inglés RAM (Random Access Memory).

Periféricos de Entrada/Salida: Un sistema digital que no posee interacción con el mundo físico no sirve de mucho. Está es la principal ventaja de los microcontroladores, poseen en un solo chip todo lo necesario para interactuar con el mundo físico y con otros sistemas digitales. Más que los periféricos como tal, que pueden ser una pantalla, un teclado, un motor, un micrófono, un parlante, etc, el microcontrolador posee los puertos (físicamente las patitas o pines) para conectarlos y lo necesario para comunicarse mediante estándares como I2C, SPI, UART, USB incluso ETHERNET. 

Ejemplo de comunicaciones SPI, el Master es una computadora básica y utiliza un microcontrolador en una placa Arduino para controlar la Pantalla LCD

¿Como funciona un microcontrolador?

El microcontrolador esta diseñado para dedicarse a una tarea específica. Esta tarea es definida por el programa, el cual puede ser escrito en diversos lenguajes de programación: ensamblador(el cual es distinto según el fabricante del microcontrolador, pero permite usarlo completamente), en C (el más usado y cumple un estándar, por lo que pasar el programa de un microcontrolador a otro, ya sea de distinto modelo o marca, es más fácil.) o en Basic (el más sencillo pero puede no estar disponible para algunos microcontroladores). 

Una vez que esta listo el programa debe ser grabado en el microcontrolador. Esto se puede hacer mediante un grabador dedicado para el microcontrolador según el fabricante o cargando previamente un programa llamado "bootloader", mediante dicho grabador, para luego poder modificar el programa mediante conexión USB. Tal vez no hace falta mencionar que hasta este punto una computadora es imprescindible para el proceso, de aquí en adelante la necesidad de un computador dependerá del uso que le demos al microcontrolador.

Una vez con el programa cargado en el microcontrolador, debemos energizarlo y darle una señal de reloj para que el programa inicie a ejecutarse, además conectarle a los periféricos con los que se va a trabajar.
Esto podemos realizarlo ya sea en un protoboard o en una placa impresa previamente realizada.
Como es más seguro hacerlo en una placa impresa pero también podemos desear grabarle otro programa, o de plano utilizar el microcontrolador en otra tarea entonces es muy útil hacer una placa llamada Entrenadora, con conexiones para todos los puertos. 
Entrenadora para un PIC18F2550
(Queda pendiente subir el diseño de una entrenadora y un tutorial para crear tus propias placas impresas, puedes adelantarte buscando en Internet.
Esto hasta encontrar un programa libre para realizar placas y la mejor opción de microcontrolador. El PIC16F887 de Microchip es en el cual esta desarrollado actualmente la impresora.
Como se ve en las imagen anterior el PIC18F2550/4550, también de Microchip, o en la imagen siguiente una placa Arduino traen directamente conexión USB, pero Arduino no es de Microchip sino de Atmel*.
Tal como se comenta antes, pasar el programa escrito en C a cualquier microcontrolador no representa dificultad mayor, sin embargo el compilador [que es libre en ambos casos*] y el hardware necesario para grabar el microcontrolador son totalmente distintos.)



<Publicidad>Tal vez hoy en día la placa entrenador más famosa es Arduino, que la pueden comprar hecha, además trae el microcontrolador ya cargado con el bootloader y el software necesario para escribir el programa.</Publicidad>
Placa Arduino UNO

Y eso es todo.

Bueno no todo, si no sabes programar o si no tienes un poco de conocimientos en electrónica, pero para eso esta Internet. 
Actualmente es relativamente fácil aprender la programación y electrónica necesarias para un proyecto específico con un poco de esfuerzo y dedicación. 
En el resto de artículos nos dedicaremos a estos dos temas en referencia a la Impresión 3D. Además se tratará de conceptos de código G y modelado 3D, también necesarios para la impresión 3D.



*Conseguir microcontroladores de Atmel en mi ciudad "Cuenca, Ecuador" no es fácil.
**Arduino es un proyecto de hardware y software libre. Software de compilación para Microchip lo proporciona la misma empresa pero es más largo el desarrollo en comparación de realizarlo con software de pago.

jueves, 19 de septiembre de 2013

Modelos Matemáticos III: Vectores y Matrices

Día a día esperamos tener en orden las cosas. La naturaleza así mismo tiene un orden, y los podemos representar matemáticamente, tanto los procesos humanos como los naturales, mediante lo que se llaman arreglos o arrays (en inglés). Una propiedad importante de los arreglos es que poseen dimensiones, al igual que se entiende el mundo como lo vemos con nuestros ojos, de tres dimensiones. 
Además pueden ser de dimensión cero, es decir un número normal, llamado también escalar, se puede representar como un punto gráficamente.
De una dimensión, varios números formando una fila o una columna, llamado vector, se representa con una línea y además se le puede dar sentido y dirección. Ejemplo: $ \left[ 2\quad 3 \right] $ es un vector de dos dimensiones. Ojo con eso el vector es una array de una dimensión, pero a su vez puede contener otra cantidad de dimensiones, un vector de una dimensión también es un escalar.

De dos dimensiones, un conjunto de números ordenados en filas y columnas, llamado matriz, se representa como un plano. Ejemplo: $\begin{bmatrix} 7 & 8 & 9 \\ 4 & 5 & 6 \\ 1 & 2 & 3 \end{bmatrix}$, la disposición acostumbrada en un teclado numérico  de tres filas y tres columnas. Al igual que los vectores, la matriz es un array de dos dimensiones, sin embargo puede contener una cantidad cualquiera de filas y columnas.

De tres dimensiones, un conjunto de matrices,se representa como un espacio tal como ven nuestros ojos. Así mismo pueden ser arreglos de más dimensiones, por ejemplo la realidad según la relatividad general es de 4 dimensiones, y la teoría de cuerdas propone una realidad de 11 dimensiones.

Estos últimos ejemplos demuestran la importancia de los arreglos, pues logran describir la base sobre la cual se sostienen los demás modelos matemáticos. La mayoría de cursos formales de física inician con una introducción de calculo vectorial, pues resulta sumamente útil el concepto de vector para explicar matemáticamente un fenómeno. En el artículo anterior se habló de la velocidad en un vector de una sola dimensión, un escalar, sin embargo para describir mejor el fenómeno se debería usar $ \frac { d\overrightarrow { posición }  }{ dt } =\frac { d\overrightarrow { x }  }{ dt } +\frac { d\overrightarrow { y }  }{ dt } +\frac { d\overrightarrow { z }  }{ dt } $, que indica el movimiento en las tres dimensiones del espacio, tal como perciben nuestros ojos.

Otra cualidad de gran importancia de los arreglos es su uso en computo de información, pues el hecho de tener datos ordenados, proporciona una gran ventaja para la elaboración de algoritmos. Es por esto que a un nivel básico se puede entender la memoria de un computador como un arreglo, no de números simples, sino de bytes; que a la vez es un arreglo de 8 bits, unidades básicas de información,que pueden ser verdadero o falso.
Otro uso en la informática es el despliegue de datos visualmente. Las pantallas modernas, díganse planas, son una matriz, y cada elemento es un píxel, cada píxel a su vez tiene tres partes, una de color rojo, una verde y una azul. Colocando los valores adecuados de intensidad para cada color del píxel se pueden conseguir los mas variados colores. Colocando en cierto orden los píxeles de un color dado se forman figuras, letras, imágenes, etc.
Una cámara fotográfica digital así mismo tiene sensores cuyas celdas se encuentran colocadas en forma matricial, según la intensidad de la luz que llega a cada celda se puede formar la imagen.
Matriz correspondiente a una celda de un sensor ccd usado en la cámaras digitales.

La asignatura de la Matemática que estudia los arreglos se llama Álgebra Lineal, sin embargo aplicaciones no lineales han permitido el desarrollo de una nueva rama llamada Cálculo Tensorial.

Al hablar de digital, hablamos de cantidades discretas, a pasos determinados, ya sea el bit que solo puede ser 1 ó 0, o ya sea refiriéndonos al tiempo, ya que el mundo no es digital y para transformarlo como tal se necesita tiempo. Al hablar en "digital":  una línea continua como de la geometría clásica,de puntos infinitos,  pasa a ser un vector con una cantidad finita de elementos. 
La transformación de la línea al vector se pude realizar mediante muestreo, es decir tomando solo ciertos puntos de dicha linea. La forma más sencilla es hacerlo cada cierto tiempo determinado, por ejemplo cada 0,01 segundos, es por eso que se dice que el tiempo también se vuelve discreto.
Discretización de una señal.

La línea verde que son mediciones reales, se convierten en un vector que toma como elementos cada uno de los datos, tomados en los tiempos determinados por la líneas naranjas.
 El vector Dato permite trabajar con dichos valores en una computadora o cualquier sistema digital, realizando cualquier operación. Para poder utilizar la línea verde del gráfico anterior, en un equipo electrónico, se necesita un equipo diseñado particular y específicamente para la operación requerida.

En fin, sin el concepto matemático de arreglo nos es imposible dale un orden al mundo físico, ya sea en la forma que perciben nuestros sentidos o en la forma que hemos desarrollado de procesarlo y sacarle mayor provecho mediante digitalización.

Son sin duda, dado su capacidad de organizar, los arreglos lo que nos permite entrar a la era conocida como de la Información. Pues ninguna información es útil si no puede localizarse y relacionarse con otras de temática semejante. 
Como dato final y curioso, lo que acabas de leer esta almacenado en vectores de bytes, que con un estándar conocido como ASCII  relaciona cada byte con un carácter de texto. Lees gracias también a los píxeles de tu pantalla, que llegan hasta tus ojos gracias a la luz, que sera uno de los temas a tratar en el próximo artículo. Porque todos estamos contentos con los vectores físicos para explicar fenómenos pero nos falta conocer (modelar), que produce y que actúa en tales fenómenos. Además, porque el siguiente artículo casi solo trata de física, aprovecharemos para crear un enlace a otra asignatura matemática que se emplea para modelar todo. Quizá no me crees, pero con eso puedo apostar.  

    

sábado, 7 de septiembre de 2013

Impresora 3D: Parte I; Introducción

Una impresora 3D básicamente es un mecanismo que da forma en la vida real a objetos modelados por computadora.
La impresora que construimos (está en construcción), para realizar su objetivo tiene un extrusor, el cual calienta el material con el que se imprime y lo deposita como un filamento. El extrusor es movido en las tres dimensiones de largo, ancho y altura a través del giro de varillas roscadas acopladas a motores de pasos.
¿Cómo conseguir la impresión de la figura deseada? Fácil, moviendo los pasos necesarios de cada motor para alcanzar la posición indicada, soltar un poco de material y repetir este proceso en cada punto de la figura.

¿Cómo mover los pasos necesarios de cada motor? Pues mediante un simple cálculo y una regla de tres.

Finalmente
Para indicar al motor que se mueva el número de pasos calculado se le debe enviar una orden, indicando la dirección y otra que se repite tantas veces como pasos tiene que dar el motor. El motor en sí necesita de una secuencia correcta, la cual es generada por el microcontrolador, para que el movimiento sea en orden.
Estas secuencias pueden ser las siguientes (video borroso, pero se entiende):
 
Ahora explicaré unos breves conceptos de electrónica y microcontroladores para los que no conocen del tema.
La electrónica digital basa su operación en el concepto de estados binarios, es decir se puede estar encendido o apagado. Por general, y debido a que todo se modela matemáticamente es conveniente colocar el estado de encendido como un 1 y el estado de apagado como 0. A la unidad que posee esta característica de estar en uno u otro estado se le llama bit. El microcontrolador que usamos, el PIC 16F887, procesa datos de 8 bits, que van desde el 00000000 hasta el 11111111, pasando por el 00000001, 00000010, etc. Que representan los números en base decimal del 0 al 255.

Los datos binarios al igual que sus similares decimales se pueden sumar, restar, multiplicar y dividir, pero además se pueden realizar operaciones lógicas, es más el microcontrolador en sí mismo esta constituido de compuertas lógicas, las cuales están hechas a su vez de transistores.

A los microcontroladores actualmente se les encuentra en muchos aparatos eléctricos pues su capacidad de ser programados les permite cumplir una inmensa cantidad de tareas, ya sea una secuencia de luces, reproducción de audio y video o una incontable lista de actividades posibles de realizar con un poco de imaginación y conocimiento.  En el próximo artículo se contara más sobre estos dispositivos que marcan sin duda el salto al mundo digital. 

miércoles, 28 de agosto de 2013

Traducción: What 3D printers can do... and what they can't

Qué pueden hacer las impresoras 3D ...y que no pueden hacer.

Artículo Original:
Instructables: What 3D printers can do... and what they can't 

Las impresoras 3D han tenido una enorme cantidad de atención en el  año pasado con un montón de historias sobre lo increíbles que son. Cómo pueden hacer las piezas de recambio para cualquier cosa que se rompe. Cómo van a revolucionar la fabricación. Como todo el mundo podía tener una y hacer todo lo que usted necesite.

En resumen,  las impresoras 3D  son bastante increíble, pero no es el milagro que se anuncia con bombos y platillos. Así que vamos a tamizar a través y ver por lo que realmente hay que emocionarse en estos momentos.

Las impresoras 3D de consumo (lo que mucha gente va a utilizar)
La impresión en 3D que está disponible para los consumidores en este momento se basa en el modelado por deposición fundida o FDM . Estas impresoras acumulan una capa por capa del modelo  por extrusión ABS o PLA en el área de construcción . Se trata básicamente de una versión mucho más elegante de una pistola de pegamento. Una pequeña pistola de pegamento controlada por un ordenador.

Estas impresoras 3D suelen costar  $ $1000 - $ 2000 $, pero las más pequeñas puede ser encontrados por tan poco como $ 200 (sólo materiales). El replicador MakerBot Replicator 2 es la impresora más popular de este tipo, pero hay docenas de otros fabricantes para elegir también.

Con un poco de jugueteo y  trabajo se puede imprimir prácticamente cualquier forma que se ajuste dentro del volumen de generación posible de la impresora. Así que si cabe en la impresora, usted puede hacerlo . Eso es simplificar un poco (bueno, mucho) , pero esa es la idea , y es una idea genial.

Después de un poco de práctica se puede aprender a diseñar nuevas cosas como joyas , adornos o juguetes. Ya que todo se imprime, puede personalizar cualquier pieza que desee. Tome un par de horas para aprender diseño 123D y usted comenzará a tener cosas nuevas para imprimir .

Ese es el poder de la impresión 3D. Usted puede pasar rápidamente de una idea a un diseño y luego a la realidad. Sus habilidades en hacer las cosas a mano, no importan aquí . Esto es por qué es tan increíblemente útil usar una impresora 3D para hacer prototipos de sus ideas.

Recientemente he trabajado en un casco de una memoria flash y el primer modelo me tomó alrededor de 2 minutos para el diseño . Después de que se trataba de unos 15 minutos para imprimir en un Replicator 2 . Luego he comprobado y ajustado el diseño para otra impresión . Repetí el proceso varias veces y en 2 horas tenía un archivo con el que estaba contento. Esto es aún más teniendo en cuenta que sólo pasé unos 20 minutos de las 2 horas de trabajo activo . El resto se destinó a otros trabajos relacionados .

Todo sobre los materiales.
Ese es el poder de la impresión 3D. Gracias a servicios como 3D Creation Systems donde usted puede cargar su archivo y conseguir impresiones en máquinas mucho más elegantes con una mejor resolución . No hay satisfacción inmediata , pero que aún así se obtiene una impresión de alta calidad de manera rápida y el acceso a más materiales.

Incluso con esta amplia selección de materiales de impresión , sigue siendo una selección muy limitada . Si echaramos una mirada a todos los plásticos que hay estaríamos aquí durante días. Hay miles de ellos y eso sólo plástico . También hay madera y metal , y más allá de eso. Cada material diferente en este increíblemente enorme selección tiene una calidad diferente.

He visto un sinnúmero de personas que imprimen artículos en ABS o PLA y se quejan de cómo su impresora no debe estar trabajando porque el trabajo impreso no funciona igual que el original . Pero, por supuesto, no podemos volver a crear todos los elementos por ahí con un par de tipos de plástico.

Se trata de utilizar la impresión en 3D con otras herramientas.
La clave del avance en el uso de la impresión en 3D es utilizarlo como una nueva herramienta increíble de formar grandes piezas para trabajar junto a todos los otros grandes artículos y materiales que hay. ¿Por qué molestarse en hacer un resorte débil de plástico cuando se puede tener un muelle de metal ?

Así que la impresión 3D no lo es todo , pero se puede utilizar junto con casi todo. Puede llegar a donde queremos ir mucho más rápido que antes de que sea ridículo. Pero todavía no es el milagro anunciado con bombos, no es la única herramienta que necesitaremos de aquí en adelante .

Cuando la publicidad se apague, no vamos a estar buscando en al asombro ante algo que es impreso en 3D, vamos a estar buscando en un montón de cosas impresionantes nuevas que se hicieron rápidamente con la ayuda de la impresión 3D . Y eso va a ser increíble.


lunes, 19 de agosto de 2013

Nikola Tesla

Un serbio-estadounidense, un ingeniero, un inventor, un físico, un visionario.
Nacido en 1856, vivió en Croacia, Austria, Eslovenia, República Checa, Francia y Estados Unidos.
Junto a Thomas Edison, fue un precursor del uso de la energía eléctrica, base del funcionamiento del mundo actual. En principio Tesla trabajaba para Edison, pero este último jamás valoró adecuadamente su trabajo. Además de que la mayoría de inventos de Edison, al igual que los dispositivos actuales, funcionan con corriente continua, por esto investigaba el transporte y comercialización de la energía eléctrica con dicha corriente; Tesla sin embargo se dio cuenta que la transmisión en corriente alterna es más eficiente, por lo que incluso actualmente es la forma en que se transporta la energía desde los generadores hasta tu casa. Que se usara la corriente alterna seguramente molesto mucho a Edison, ya que sus inversiones en corriente continua no eran nada pequeñas, tal que desarrolló la silla eléctrica a corriente alterna para hacer quedar mal a Tesla, incluso electrocutó un elefante.

Tesla, que se dice no necesitaba trazar planos pues imaginaba muy claramente lo que deseaba construir, tuvo que trabajar mucho  para poder construir laboratorios en muchos lugares de Estados Unidos, ya que experimentaba con altas energías y equipos grandes, que terminaban estropeados o molestando a los vecinos, teniendo que mudarse a otro lugar para continuar sus investigaciones.

Como principal investigador de la corriente alterna, estaba seguro de poder conducir mensajes a través de las ondas eléctricas al igual que potencia de manera inalámbrica, es así que terminó inventando la radio, aunque Marconi fue quien mejor aprovechó la tecnología desarrollada por Tesla. Vale decir que la televisión, telefonía celular, radares, wifi, bluetooth, y toda forma de comunicación inalámbrica se basan en las ideas de Tesla, que a su ves se basó en la teoría de Hertz y la teoría de Maxwell a su vez basados en el trabajo de Michael Faraday, de quién se cuenta la anécdota de que el Ministro de Hacienda, (responsable de los impuestos) le preguntó que para que servía la inducción magnética este respondió: Pues no tengo ni idea, pero estoy seguro de que en el futuro se cobrarán impuestos por ello.   

Tesla al igual que Faraday fue un visionario, que inventaba por el gusto de ser creativo, por tratar de mejorar su calidad vida y la de los demás seres humanos, y dijo:

"He invertido todo mi dinero en experimentos para realizar nuevos descubrimientos que permitan a la humanidad llevar una vida un poco más fácil".
"No hay emoción más intensa para un inventor que ver una de sus creaciones funcionando"
   
Además desarrollo mucha tecnología más basada en la corriente alterna de baja frecuencia y un poco más en corriente alterna de alta frecuencia, tecnologías que son muy usadas actualmente con sus respectivas mejoras, y otras, que rozan la leyenda, que no han podido ser aprovechadas. Tiene a su nombre 700 patentes. Conocía muy bien el efecto de resonancia, y con la resonancia natural del planeta quería llevar la energía eléctrica inalábricamente a todo el mundo, lastimosamente no tuvo los fondos necesarios para terminar dicho proyecto.

Gracias a Tesla la respuesta de Faraday es una realidad hoy en día, pero un poco más de desarrollo de su proyecto de energía inalámbrica y la respuesta de Faraday se hubiera convertido en falsa, pues no necesitaríamos pagar por electricidad, al igual que no lo hacemos por la señal de radio o televisión abierta.(Claro no hubiera faltado el vivo que se le ocurriera que funcione como la telefonía celular para obtener ganancias). 

Nikola Tesla, un gran inventor con visión. No solo sentado sobre hombros de gigantes sino con Teslascopio incluido, es decir con una dosis de imaginación.

viernes, 16 de agosto de 2013

Modelos Matemáticos II: Derivadas

Ahora que ya hemos visto aquí problemas cuyo modelo matemático se expresan con ecuaciones algebraicas, es hora de ver problemas que tienen más dinamismo, más acción por decir de alguna forma.

Considerando la caída libre de los cuerpos, o la caída de objetos al piso (o como se le quiera llamar).
Se puede observar que al lanzar un objeto para arriba, este cae luego de alcanzar cierta altura. ¿Podemos decir a qué altura llega?, ¿Qué tiempo demora en caer? o ¿Hará un hueco en el piso al caer?
De hecho si podemos, para lo cual nos basta saber que EC. 1 $v=\frac { dx }{ dt }$ lo que quiere decir que la velocidad es igual a la variación de la distancia en el transcurso del tiempo.
Entonces tenemos que buscar como varía la distancia con respecto al tiempo, para lo cual lanzamos un objeto y vemos lo siguiente (bueno no un objeto en este caso)
Si gráficamos la relación entre distancia y tiempo tendremos algo bastante parecido a:


Cuya expresión matemática más próxima es de la forma EC. 2 $ y=-a{t}^{2}+bt+c$ donde c es la altura máxima, b es una cantidad que depende de las condiciones climáticas y la forma del objeto pues se refiere a la fricción del aire, y finalmente a es una constante que vamos a ver que significado tiene más adelante, pero antes se necesita saber lo siguiente: (Pensando en las personas que no conocen cálculo)




Estos sencillos conceptos como ver si una línea va de subida o de bajada, son  la misma comprensión con la cual Newton empezó a colocar en números a la naturaleza. Claro que existen muchos más conceptos necesarios para entender con teoría matemática una derivada, pero en esencia se entiende mejor con los dibujos anteriores.
Entonces podemos definir sencillamente una derivada como la dirección de cambio de un fenómeno, si es cero quiere  decir que no hay cambios o se llego a un punto de inflexión. Si es un numero positivo quiere decir que aumenta con respecto a lo que estemos derivando. por último si es un número negativo pues lo contrario, que disminuye respecto con lo que estemos derivando.
Visto de otra forma simplista es la división de una cantidad muy pequeña para otra cantidad muy pequeña, y de distintas unidades.

La mayoría de fenómenos son dinámicos, ya sea en la naturaleza, economía, sociedad ,etc. por eso sus modelos matemáticos incluyen derivadas, que es la herramienta matemática para denotar variaciones.
En cuanto a los puntos de inflexión, su importancia reside en que son los mínimos o máximos que se pueden alcanzar, lo cuál por lo general responden a nuestras preguntas más inmediatas al observar algo, tales como ¿Qué tan alto puede llegar?, ¿Cúanto puede llegar a costar?, ¿Qué tanto puede llegar a crecer?, ¿Cuánto demorará en llegar?, etc.

Volviendo a lo anterior, en el primer gráfico se nota claramente que la pendiente es negativa, pero el sentido común nos dice que algo que empieza a caer desde el reposo, con velocidad cero, aumenta su velocidad y no la disminuye, se hace más negativa, como no indica una pendiente negativa. Debemos tener cuidado de como expresamos el fenómeno, o mejor dicho de la perspectiva desde la cual lo observamos. En la vida cotidiana y por eso mismo transportado a la matemática, se denota lo positivo como lo de arriba o que esta a la derecha, y como negativo lo que esta abajo o a la izquierda. Por aquello un movimiento que va hacia abajo tiene signo negativo, lo cual de manera retrospectiva indica que el signo negativo se debe a un movimiento hacia abajo, simplemente una convención para poder distinguir el sentido de movimiento.
En ocasiones menos es más.
Estas convenciones de signos son comunes en los modelos matemáticos, siendo algunos tan antiguos y usados a pesar de ser "erróneos", como el sentido de la corriente eléctrica que indica el movimiento de cargas positivas, pero sabemos que las que se mueven son las cargas negativas, pero incluso podríamos cambiar la consideración de cargas negativas por positivas y viceversa sin alterar por ello el funcionamiento de la naturaleza.

Ahora aplicaremos la operación matemática de derivar  a la EC. 2, (si no conoces cálculo puedes revisar reglas de derivación o tablas) obteniendo:  EC. 3 $ \frac { dy }{ dt } =-2at+b$. Esta sería la expresión matemática de la velocidad de un cuerpo en caída libre, si para no complicarnos consideramos que no hay fricción es decir $b=0$, obtenemos que la velocidad es $V=-2at$, lo cual no indica que a pesar que el dibujo del movimiento es una curva, el dibujo de la velocidad es una línea. En este caso la derivada es de la posición "y" con respecto al tiempo "t", y la expresión de la cual se presenta la gráfica a continuación indica que la velocidad incrementa proporcional al tiempo que transcurre, es decir a mayor tiempo, la velocidad es mayor (aunque más negativa según la convención)  
La pregunta es que sucede si volvemos a derivar, obteniendo la variación de la velocidad respecto al tiempo:
EC. 4$\frac { dV }{ dt } =\frac { { d }^{ 2 }y }{ d{ t }^{ 2 } } = -2a $, a este concepto se le llama aceleración, en el caso del fenómeno de caída libre, está depende solamente de a, si a es constante, como hemos supuesto en las derivadas (ponerse a derivar tomando en cuenta a, b y c como "no constantes", variables que también dependen de "t", se puede realizar a mano. Considerando como variables que dependen de "y" y "t", es una de la razones por la cual fue necesario desarrollar los computadores),primero si no conocemos su valor, da lo mismo poner a que 2a (Este tipo de cambio de variables o simplificar las expresiones, también es común en el desarrollo de modelo matemáticos). Segundo llegamos a vislumbrar que la caída del cuerpo, y que no quede flotando, se debe a que existe algo que produce aquella cantidad "a", a ese algo le llamamos gravedad y "a" es la aceleración que produce sobre un cuerpo, con las consideraciones que hemos tomado se nota que no depende de la posición ni del material del objeto, es la misma para una pluma como para una moneda, el porque la puma demora más cayendo se debe a su forma, la cual no consideramos desde el momento en que hicimos $b=0$. Por cierto $ a = 9,8 \frac { m }{ { s }^{ 2 } } $ en el planeta Tierra en promedio, pero en realidad varía con la altura, así que es ligeramente distinta en la playa que en una montaña, y casi nula la variación desde una mesa al piso.
Si quieres saber más sobre la gravedad contacta con Will E. Coyote

Manipulando tan simple definición $ v=\frac { dx }{ dt }$, conociendo que es una derivada, y observando el comportamiento de los objetos de este universo se han logrado muchas cosas útiles, incluso las teorías de Einstein parten de este concepto y lo llevo mucho más allá de las convenciones establecidas en su tiempo, gracias también a las Ecuaciones de Maxwell, que son un conjunto de cuatro ecuaciones, cuyas soluciones deben satisfacer las condiciones de las cuatro a la vez. sobre este tipo de modelamiento matemático se hablará en la siguiente entrega.  


viernes, 2 de agosto de 2013

SISTEMAS DISTRIBUIDOS: Chat con envio de archivos Java

UN CHAT CON ENVÍO DE ARCHIVOS ADJUNTOS PROGRAMADO EN JAVA ES UN BUEN EJEMPLO DEL USO DE LA CLASE SOCKET ASÍ COMO DE SUS ATRIBUTOS OBJECTOUTPUTSETREAM Y OBJECTINPUTSTREAM. EN ESTE ARTICULO SE MUESTRA EL CÓDIGO FUENTE Y UNA EXPLICACIÓN DE LA LÓGICA USADA.

La estructura del programa es muy simple. Tanto el servidor como el cliente tienen activos en todo momento los hilos par recibir o mejor dicho están escuchando en el puerto todo el tiempo esperando por un nuevo mensaje. Así mismo tanto el cliente como el servidor disponen de un hilo para enviar mensaje, al que tienen que pesarle como parámetros el socket y la ventana del receptor, de esta manera puede manipular el texto en pantalla y escribir en el mismo socket o puerto en el que esta escuchando el receptor.

Por ultimo así como ambos(Cliente y Servidor) envían y reciben mensajes, ambos tienen hilos para enviar y recibir archivos, esto se hace primero llenando un vector de datos de tipo byte y luego enviándolo por el socket, si no se a enviado todo el archivo se llenara nuevamente el vector de datos y se enviara, hasta que se envie por completo el archivo. En el caso de mi programa el vector de tipo byte es de 8 Kb o 8192 bytes. Esto queda a su elección pero se recomienda no demasiado grande.

Una pequeña mejora que se puede hacer al programa es activar el hilo de recibir archivos solo cuando sea necesario, ya que en mi programa estos están activos todo momento en un puerto diferente. Esto se puede hacer agregando una condición de texto, por ejemplo cuando se desee enviar un archivo el emisor escribirá en pantalla "Enviar Archivo" y el receptor al leer esto activara el  hilo de recibir y luego este se dormirá.

En el siguiente link les dejo el CÓDIGO del programa en Netbeans:
CÓDIGO FUENTE




domingo, 28 de julio de 2013

SISTEMAS DISTRIBUIDOS: Reloj Analógico en Java

El RELOJ ANALÓGICO DIBUJADO EN JAVA es un simple y muy buen ejemplo para la aplicación de la clase GRAPHICS  ademas del uso de HILOS. En este articulo se muestra la lógica y el CÓDIGO para implementar este programa.


En breve resumen, el programa tiene 4 clases diferentes, una clase  RelojAnalogicoKevinChaca que es la encargada del control de todo el sistema; la clase Aguja que se instancia 3 veces(hora, minuto y segundo) y cada una con parámetros de dimensiones diferentes. esta clase también tiene un método pintar que utiliza la clase GRAPHICS de Java para dibujar cada manecilla; la clase Temporizador es un HILO ,de igual manera se instancia para cada manecilla(hora, minuto y segundo) y por ultimo la clase ventana que es un JFRAME que simplemente muestra el reloj para lo cual usa también un método paint de la clase GRAPHICS.

La lógica del programa es muy sencilla, después de dibujar en la ventana el diseño del reloj, es decir puntos de separación entre minutos y horas, se toma la hora del sistema mediante la clase DATE de Java y calcula por medio de ángulos, dividiendo la circunferencia en 360 grados, la posicion de cada manecilla y la dibuja cada segundo.

En el siguiente link les dejo el CÓDIGO del programa en Netbeans:

CÓDIGO FUENTE