Fractales en Matlab



En esta ocasión hablaremos un poco acerca de fractales sencillos y de cómo podemos usar Matlab para crearlos. Primero sería bueno definir lo que es un Fractal, un Fractal es un objeto semi-geométrico cuya estructura básica, fragmentada o irregular, se repite a diferentes escalas. Es decir, si se aumenta cualquier zona de la misma un número cualquiera de veces seguirá pareciendo la misma figura.

Para comenzar, un ejemplo simple de un fractal creado mediante números reales es el triángulo de Sierpinski. Sólo se necesitan 3 pasos para crear éste fractal: Dibújese un triángulo equilátero ABC. Hállense los puntos medios de cada lado y conéctense para formar tres nuevas líneas dentro del triángulo original. Repetir para cada uno de los triángulos resultantes que estén “cabeza arriba”.

Para generar el triángulo de Sierpinski mediante Matlab se requiere el siguiente código:

function sierpinski (a,b,c,nivel)
hold on;
plot(a(1),a(2),'.');
plot(b(1),b(2),'.');
plot(c(1),c(2),'.');
if nivel>0
p1=[(a(1)+c(1))/2 (a(2)+c(2))/2];
p2=[(a(1)+b(1))/2 (a(2)+b(2))/2];
p3=[(c(1)+b(1))/2 (c(2)+b(2))/2];
sierpinski(a,p2,p1,nivel-1);
sierpinski(p1,p3,c,nivel-1);
sierpinski(p2,b,p3,nivel-1);
end

Ahora veamos un fractal un poco más complicado. Representaremos el conjunto de Julia, el cuál se encarga de analizar la función fc(z)=z2+c para distintos números complejos c y, para un número c fijo, con distintos valores de z. Para poder visualizar este conjunto en Matlab, con un valor de c = 0,27334 - 0.00742i, solamente se requiere el siguiente script:

puntos=200;
puntosx=linspace(-2.1,0.9,puntos);
puntosy=linspace(-1.5,1.5,puntos);
[X,Y]=meshgrid(puntosx,puntosy);
c=0.27334-0.00742*i;
Z=X+Y*i;
iteraciones=20;
for k=1:iteraciones
Z=Z.^2+c;
W=exp(-abs(Z));
end
pcolor(W);
shading flat;

Para obtener información más detallada de este tema y una gran cantidad de ejemplos, sólo visita las pags:

Puertos en Matlab

Anteriormente te hemos presentado algunos ejemplos de lo que Matlab es capaz de hacer. Se han mostrado algunas aplicaciones de Matlab en aparatos o robots programados.

Puede parecerte interesante, pero tal vez no tengas idea de cómo comenzar a trabajar con este tipo de programación. Es por ello que esta vez te presentamos algunas ligas de Documentos y Blogs que de manera muy sencilla y detallada muestran pasos simples para comenzar a manejar el envío y recepción de datos a través de puertos en tu computadora mediante Matlab.
www.compelect.com.co/otros/diamatlab/2005/PAPPERok.pdf
http://www.forosdeelectronica.com/about29748.html
http://www.planetcursos.com/curso/Njg1Mg

Laboratorio de Electricidad 2

Complementando el post anterior, aquí presento otra simulación de un mecanismo que muchos habrán visto en el laboratorio de Física, la máquina de Wimshurst, que crea un voltaje entre dos esferas haciendo girar un disco para cargarlas. Es genial la manera en que podemos recrear ciertos mecanismos con la ayuda de este software y un poco de creatividad.

El código lo encuentras en:

http://demonstrations.wolfram.com/WimshurstMachine/WimshurstMachine-source.nb

Cabe aclarar que este notebook está diseñado para Mathematica 7. Disfrútenlo!!

Diego V.

Laboratorio de Electricidad 1

Dentro de la infinidad de posibilidades que nos brinda Wolfram Mathematica, tenemos la simulación de diferentes mecanismos, incluidos aquellos que utilizamos a diario en la escuela.

Es así como podemos crear nuestro propio osciloscopio virtual, de aperiencia similar y mismas funciones que las de nuestro laboratorio. Fácil de manejar y con características sumamente útiles, solo debes cambiar las características de la onda y Mathematica hará el resto.

El código lu puedes encontrar en:

http://demonstrations.wolfram.com/VirtualOscilloscope/VirtualOscilloscope-source.nb

Diego V.

No sabes como leer una resistencia???

Muchos de los que estudiamos carreras de ingeniería eventualmente tendremos materias relacionadas con circuitos eléctricos. A su vez, esto implica que para nuestras prácticas debamos aprendernos el típico código de colores de las resistencias para así poder conocer su valor nominal.

Pues si eres nuevo en este campo, o en algún momento necesitas saber el valor de una resistencia y no sabes que significan las banditas de color en ella, aquí te presento un notebook de Mathematica que te ayudará de forma interactiva. Simplemente ingresa el siguiente código en tu software.

CÓDIGO:

Manipulate[
 With[{c1 = 
  Switch[color1, 0, Black, 1, Brown, 2, Red, 3, Orange, 4, Yellow, 
  5, Green, 6, Blue, 7, ColorData["HTML", "Violet"], 8, Gray, 9, 
  White], c2 = 
  Switch[color2, 0, Black, 1, Brown, 2, Red, 3, Orange, 4, Yellow, 
  5, Green, 6, Blue, 7, ColorData["HTML", "Violet"], 8, Gray, 9, 
  White], c3 = 
  Switch[color3, 0, Black, 1, Brown, 2, Red, 3, Orange, 4, Yellow, 
  5, Green, 6, Blue, 7, ColorData["HTML", "Violet"], 8, Gray, 9, 
  White],
  c4 = Switch[color4, 1, Brown, 2, Red, 3, ColorData["HTML", "Gold"],
  4, ColorData["HTML", "Silver"], 5, None]}, 
  Column[{Graphics3D[{Cylinder[{{0, 0, 0}, {4, 0, 0}}], 
  Cylinder[{{-3, 0, 0}, {7, 0, 0}}, .1], c1, 
  Cylinder[{{.3, 0, 0}, {.7, 0, 0}}, 1.05], c2, 
  Cylinder[{{1.3, 0, 0}, {1.7, 0, 0}}, 1.05], c3, 
  Cylinder[{{2.3, 0, 0}, {2.7, 0, 0}}, 1.05], 
  If[c4 === None, {}, {c4, 
  Cylinder[{{3.3, 0, 0}, {3.7, 0, 0}}, 1.05]}]}, Boxed -> False,
  ImageSize -> 400], 
  Text@Row[{"resistance", " = ", 
  Row[{FromDigits[{color1, color2}, 10], "\[Times]", 
  HoldForm[10]^color3, " ohms, ", 
  color4 /. {Brown -> 1, Red -> 2, 
  ColorData["HTML", "Gold"] -> 5, 
  ColorData["HTML", "Silver"] -> 10, None -> 20}, 
  "% tolerance"}]}]}, Alignment -> Center]], {{color1, 5, 
  "band 1"}, {0 -> "Black", 1 -> "Brown", 2 -> "Red", 3 -> "Orange", 
  4 -> "Yellow", 5 -> "Green", 6 -> "Blue", 7 -> "Violet", 
  8 -> "Gray", 9 -> "White"}}, {{color2, 8, "band 2"}, {0 -> "Black",
  1 -> "Brown", 2 -> "Red", 3 -> "Orange", 4 -> "Yellow", 
  5 -> "Green", 6 -> "Blue", 7 -> "Violet", 8 -> "Gray", 
  9 -> "White"}}, {{color3, 3, "band 3"}, {0 -> "Black", 
  1 -> "Brown", 2 -> "Red", 3 -> "Orange", 4 -> "Yellow", 
  5 -> "Green", 6 -> "Blue", 7 -> "Violet", 8 -> "Gray", 
  9 -> "White"}}, {{color4, 4, "tolerance"}, {1 -> "Brown", 
  2 -> "Red", 3 -> "Gold", 4 -> "Silver", 5 -> "none"}}]

Ejecútalo y simplemente deberas seleccionar el color de cada banda para que Mathematica te diga el valor exacto de tu resistor. Espero sea de utilidad para nuestros lectores.

Diego V.



Juega con Matlab

En esta ocasión Matlab nos muestra una función totalmente diferente a lo que habíamos visto antes. Ahora Matlab nos permite jugar y divertirnos.

Un grupo de estudiantes de Ingeniería Electrónica, durante un proyecto que tiene como función programar y controlar robots de Lego Mindstroms NXT mediante Matlab, se dieron a la tarea de crear un robot capaz de jugar gato (Tic Tac Toe).

Este robot es capaz de dibujar en una hoja de papel un tablero para dicho juego. Posteriormente el robot marca una da las casillas con una X, es ahí donde tu participas colocando un 0 en la casilla que quieras. Cuando estés listo solo presionas el botón del robot y este se encargará de leer el tablero mediante un lector óptico, se da cuenta de que casillas no están ocupadas, y marca una de ellas. El juego continúa de la misma manera hasta que salga un ganador.



Si quieres más información de este tipo de robots y lo que puedes hacer con ellos, visita:
http://mindstorms.lego.com/eng/Antarctica_dest/Default.aspx




Aplicación de Matlab

Una vez más Matlab nos sorprende con sus múltiples funciones y aplicaciones. En esta ocasión Matlab hace uso de uno de los juguetes de los que la mayoría de nosotros disfrutamos durante nuestra infancia, Lego.

Tres alumnos de la carrera de Mecatrónica, en el Instituto Tecnológico de Georgia, se dieron a la tarea de crear un Robot capaz de construir casas a partir de Lego. Lo interesante de este robot es que el sistema funciona a partir de un plano creado a través de Matlab.

El Robot se encarga de colocar piezas de lego apiladas siguiendo el modelo del plano que se creó previamente en Matlab y de esta manera comienza a generar las paredes y otros sólidos del plano. Una vez más nos podemos dar cuenta de la versatilidad de Matlab y de la infinidad de problemas que nos ayuda a resolver.


Crea tu propio Guitar Tuner con Mathematica.

Es increíble la manera en la que podemos relacionar las cosas en nuestras vidas, y lo es más aún cuando nos damos cuenta de que supuestos antagónicos, como la música y un software matemático por ejemplo, pueden llegar a tener más relación entre sí de la que creemos.

Si eres de las personas que disfrutan de la buena música, o mejor aún eres de aquellas que dan el siguiente paso y crean la suya propia, seguramente te topaste con el inconveniente de afinar tu instrumento.

Mathematica nos presenta una alternativa más conveniente. En lugar de comprar un afinador o buscar un software "Tuner" para tu instrumento en la red, puedes crear tu propio afinador para guitarra acústica, eléctrica y muchos otros instrumentos.

Simplemente descarga el código en el link : http://demonstrations.wolfram.com/GuitarTuner/

Córrelo en el software y listo!! Mathematica también para los músicos...

Diego V.

Mathematica 7.0 (Proximamente)


Con gran alegría comunicamos que próximamente tendremos Mathematica 7.0 con una gran variedad de novedades.


En este caso, destacan las nuevas funciones de procesamiento de imágenes,

También han incorporado nuevas funciones gráficas para representaciones de estadísticas, histogramas, campos vectoriales, lógica booleana, cálculo en variable discreta, ecuaciones en diferencia, análisis de Fourier, teoría de números, splines, teoría de grupos finitos, etc.

Por fin han incorporado de serie la posibilidad de enlazar varios Mathematica’s (en local o por red) para automatizar los cálculos en paralelo.

Se han incrementado las bases de datos on-line a las que se puede acceder. Antes se podía consultar en tiempo real los datos de bolsa y divisas, astronomía, información de países, etc. Ahora también es posible acceder a los datos del genoma humano (proteínas, cromosomas, genes), información geodésica, meteorológica, elementos químicos, etc.

Y además han incorporado algunas cosas curiosas, como la posibilidad de enviar los resultados automáticamente por email desde el propio Mathematica.

Algunos dirían ¡Sólo le falta hablar! Pues no, no le falta ni eso, ahora se puede hacer que "lea en voz alta", sintetizando la voz, los resultados que obtenga.
Lo nuevo:

Ciencia y Fe


En estos días se celebra el primer congreso internacional "Evolución biológica: hechos y teorías. Una valoración crítica 150 años después de 'El origen de las especies'", en el que se abordará la relación entre la teoría de la evolución de Charles Darwin (1809-1882) y la fe católica.


Este congreso, organizado por la Universidad Gregoriana de Roma y por la Universidad Americana de Notre Dame con el patrocinio del Vaticano, es el "primer" diálogo verdadero que se ha hecho entre ciencia y fe, dijo comentos el presidente del Consejo Pontificio para la Cultura, Gianfranco Ravasi.


A nivel científico se analizarán los datos conocidos desde la paleontología hasta la biología sistémica y molecular, para luego abordar las varias teorías científicas sobre la evolución de las especies. Igualmente se analizará desde el ámbito puramente científico todo lo que la ciencia dice sobre el origen del hombre. El segundo nivel de estudio será el pensamiento filosófico, ya sea desde el plano epistemológico como el de la filosofía de la naturaleza y sus distintas acepciones. Y el tercer plano de investigación tiene que ver con la reflexión teológica sobre la evolución, que para la fe cristiana parte de una adecuada exégesis de los textos bíblicos que hablan de la Creación, comenzando desde los dos primeros capítulos del Génesis, pero también enfocando el tema hacia la recepción por parte de la Iglesia de las teorías evolucionistas.

Reloj de Cartas en Matlab


Además de matemática existen otros programas o software que pueden ayudarnos a realizar múltiples trabajos. Matlab es un software matemático con un lenguaje de programación propio, el cuál nos permite, entre muchas otras cosas, realizar trabajos relacionados con la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario, etc.

Un ejemplo de los múltiples trabajos que puedes hacer en Matlab es este reloj digital hecho a base de cartas. El reloj funciona de la siguiente manera: al dar inicio al programa, las cartas vuelan por el aire hasta aterrizar en la mesa de póker; las cartas se acomodan de tal manera que cada una de ellas representa un número, fungiendo el As como uno y la Reina como cero, brindándote así la hora de un reloj.

A pesar de que el código parece un poco complicado, este es un buen ejemplo de lo que podemos llegar a hacer con este poderoso software, junto con un poco de creatividad y esfuerzo.

Para poder correr este programa en Matlab solamente tienes que descargar el archivo que se presenta en la liga que se muestra a continuación, descomprimirlo, y finalmente correr en Matlab el archivo "brendanclock.m". Automáticamente Matlab utilizará los otros archivos que descargaste y podrás hacer uso de este reloj ¡Inténtalo es sencillo!