La ecuación del logo de Batman en Mathematica

Hace ya unas semanas apareció por internet una imagen con una ecuación cuyas soluciones tenían como representación gráfica, en teoría, el logo de Batman. Aquí la tenemos:

Hasta donde yo sé el tema comenzó en Reddit. Blogs de todo el mundo se hicieron eco de este asunto, y durante un tiempo se dudó de la veracidad del mismo: ¿de verdad las soluciones de esa ecuación representaban el logo de Batman?

Pues sí. Y fue en StackExchange donde se encargaron de comprobarlo, representando de forma aislada cada una de las partes de la misma y explicándolas todas muy claramente.

Lo que vamos a hacer en este post es explicar cómo realizar esta representación en Mathematica. Los datos los he tomado de este post de Playing with Mathematica (por cierto, blog muy recomendable para los interesados en este programa), donde Sol Lederman (que también lleva Wild About Math) nos comenta el trabajo de Heike Gramberg en este sentido publicado en este grupo de Google.

Heike divide la ecuación en seis partes (los seis paréntesis grandes que aparecen en la imagen), define cada una de ellas por separado y después las representa todas juntas. Nosotros vamos a seguir el mismo camino.

Parte1

Código Mathematica:

pl1 = ContourPlot[((x/7)^2 + (y/3)^2 – 1) == 0, {x, -8, 8}, {y, -5,
5}, RegionFunction -> ((Abs[#1] > 3 && #2 > -(3 Sqrt[33])/7) &)]

Representación:

Parte 2

Código Mathematica:

pl2 = ContourPlot[(Abs[x/2] – ((3 Sqrt[33] – 7)/112) x^2 – 3 +
Sqrt[1 – (Abs[Abs[x] – 2] – 1)^2] – y) == 0, {x, -7, 7}, {y, -3,
3}]

Representación:

Parte 3

Código Mathematica:

pl3 = ContourPlot[(9 – 8 Abs[x] – y) == 0, {x, -7, 7}, {y, -3, 3},
RegionFunction -> ((3/4 < Abs[#] < 1) &)]

Representación:

Parte 4

Código Mathematica:

pl4 = ContourPlot[(3 Abs[x] + 3/4 – y) == 0, {x, -7, 7}, {y, -3, 3},
RegionFunction -> ((1/2 < Abs[#1] < 3/4) &)]

Representación:

Parte 5

Código Mathematica:

pl5 = ContourPlot[(9/4 – y) == 0, {x, -7, 7}, {y, -3, 3},
RegionFunction -> ((Abs[#1] < 1/2) &)]

Representación:

Parte 6

Código Mathematica:

pl6 = ContourPlot[((6 Sqrt[10])/
7 + (3/2 – Abs[x]/2) – (6 Sqrt[10])/14 Sqrt[
4 – (Abs[x] – 1)^2] – y) == 0, {x, -7, 7}, {y, -3, 3},
RegionFunction -> ((Abs[#1] > 1) &)]

Representación:

Logo Batman

Mostrando ahora en Mathematica las seis partes juntas con

Show[{pl1, pl2, pl3, pl4, pl5, pl6}]

obtenemos la siguiente representación:

que se parece bastante al contorno del logo de Batman.

Aunque, como proponen en un comentario en StackExchange, se consigue el logo más directamente con el código

Plot[{With[{w = 3*Sqrt[1 – (x/7)^2], l = (6/7)*Sqrt[10] + (3 + x)/2 – (3/7)*Sqrt[10]*Sqrt[4 – (x + 1)^2], h = (1/2)*(3*(Abs[x – 1/2] + Abs[x + 1/2] + 6) – 11*(Abs[x – 3/4] + Abs[x + 3/4])), r = (6/7)*Sqrt[10] + (3 – x)/2 – (3/7)*Sqrt[10]*Sqrt[4 – (x – 1)^2]}, w + (l – w)*UnitStep[x + 3] + (h – l)*UnitStep[x + 1] + (r – h)*UnitStep[x – 1] + (w – r)*UnitStep[x – 3]], (1/2)*(3*Sqrt[1 – (x/7)^2] + Sqrt[1 – (Abs[Abs[x] – 2] – 1)^2] + Abs[x/2] – ((3*Sqrt[33] – 7)/112)*x^2 – 3)*((x + 4)/Abs[x + 4] – (x – 4)/Abs[x – 4]) – 3*Sqrt[1 – (x/7)^2]}, {x, -7, 7}, AspectRatio -> Automatic, Axes -> None, Frame -> True, PlotStyle -> GrayLevel[0]]

que nos da la siguiente representación:

Y digo yo que si le añadimos a la primera representación la elipse

pl7 = ContourPlot[((x/8)^2 + (y/3.5)^2 – 1) == 0, {x, -8, 8}, {y, -5,
5}]

nos queda lo siguiente:

Y con un pelín de Paint obtenemos esto

que se parece mucho más a

(Imagen tomada de aquí)

Ha quedado bien, ¿verdad?

Autor: ^DiAmOnD^

Miguel Ángel Morales Medina. Licenciado en Matemáticas y autor de Gaussianos y de El Aleph. Puedes seguirme en Twitter o indicar que te gusta mi página de Facebook.

18 Comentarios

  1. ¡La batiseñal en mathematica! No se como no se me había ocurrido añadir la elipse siendo que hace tanto que vi la “ecuación del logo de batman”. Excelente y como ha sido siempre con todos las publicaciones de Gaussianos, esta no me defraudó. 🙂

    Publica una respuesta
  2. Paint, paint…. con un poco de paciencia se podría sacar los coloreados directamente con el Mathematica.

    Por cierto, que yo cambiaría el título al post por este otro BAT-MATH

    Publica una respuesta
  3. ¡Muy bueno lo de la elipse!

    Si en toda la ecuación se le aplica un escalado en X inversamente proporcional a Y todavía se parecerá más al original. (Como si pinzárais con los dedos a izq. y der. y estirárais; pero no como un acordeón, más como una masa de pizza).

    XD XD

    Publica una respuesta
  4. ¿Pero cómo se hace para integrarlo todo en una única función?

    Publica una respuesta
  5. mrvalenz, gracias :).

    Tito Eliatron, te prometo que lo intenté con Mathematica, pero no fui capaz de hacerlo y me pasé a la solución sencilla: Paint. Ah, y el título que propones habría sido mucho más acertado, sí :D.

    josejuan, es posible que jugando con la opción AspectRatio de Mathematica, y ajustando después si es necesario, el logo se parecería más. Si tengo un rato lo intento :).

    loumalou, ¿en Mathematica? Con Show. Así sin la elipse:

    Show[{pl1, pl2, pl3, pl4, pl5, pl6}]

    y así para que también aparezca la elipse:

    Show[{pl1, pl2, pl3, pl4, pl5, pl6,pl7}]

    Publica una respuesta
  6. Yo lo hice en Maple y también funciona perfectamente.

    restart;
    batman := (((1/7)*x)^2*sqrt(abs(abs(x)-3)/(abs(x)-3))+((1/3)*y)^2*sqrt(abs(y+3*sqrt(33)*(1/7))/(y+3*sqrt(33)*(1/7)))-1)*(abs((1/2)*x)-((3*sqrt(33)-7)*(1/112))*x^2-3+sqrt(1-(abs(abs(x)-2)-1)^2)-y)*(9*sqrt(abs((abs(x)-1)*(abs(x)-3/4))/((1-abs(x))*(abs(x)-3/4)))-8*abs(x)-y)*(3*abs(x)+(3/4)*sqrt(abs((abs(x)-3/4)*(abs(x)-1/2))/((3/4-abs(x))*(abs(x)-1/2)))-y)*((9/4)*sqrt(abs((x-1/2)*(x+1/2))/((1/2-x)*(x+1/2)))-y)*(6*sqrt(10)*(1/7)+(3/2-(1/2)*abs(x))*sqrt(abs(abs(x)-1)/(abs(x)-1))-(6*sqrt(10)*(1/14))*sqrt(4-(abs(x)-1)^2)-y);
    plots:-implicitplot(batman, x = -7 .. 7, y = -3 .. 3, factor = true, scaling = constrained, grid = [100, 100], gridrefine = 4);

    Posteriormente, intenté pasar esa ecuación a paramétricas para ver si mis robots se la aventaban, pero fallé en la parametrización u_u A ver si alguien me ayuda con eso.

    Publica una respuesta
  7. Qué grande! Nunca lo había pensado. Me ha encantado.
    Por si a alguien le interesa hacerla en Matlab (yo es que el Mathematica no lo uso habitualmente), este es el código. He añadido instrucciones para que salga el fondo negro y las líneas en amarillo (así se aproxima más a la realidad). Pintar el interior de la elipse de amarillo ya es más difícil, ya que la función del murciélago se va pintando por partes.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    clc;
    clear all;
    syms x y;

    f1 = figure(1);

    b1 = ((x/7)^2*sqrt(abs(abs(x)-3)/(abs(x)-3)) + …
    (y/3)^2*sqrt(abs(y+3*sqrt(33)/7)/(y+3*sqrt(33)/7))-1);
    b2 = (abs(x/2)-((3*sqrt(33)-7)/112)*x^2 -3 + …
    sqrt(1-(abs(abs(x)-2)-1)^2) -y);
    b3 = (9*sqrt(abs((abs(x)-1)*(abs(x)-0.75))/…
    ((1-abs(x))*(abs(x)-0.75))) -8*abs(x) -y);
    b4 = (3*abs(x) + 0.75*sqrt(abs((abs(x)-0.75)*…
    (abs(x)-0.5))/((0.75-abs(x))*(abs(x)-0.5))) -y);
    b5 = (2.25*sqrt(abs((x-0.5)*(x+0.5))/…
    ((0.5-x)*(0.5+x))) -y);
    b6 = (6*sqrt(10)/7 + (1.5-0.5*abs(x))*sqrt(abs(abs(x)-1)…
    /(abs(x)-1)) -6*sqrt(10)/14*sqrt(4-(abs(x)-1)^2) -y);
    b7 = (x/8)^2 + (y/3.5)^2 -1;

    axes(‘Xlim’, [-8.5 8.5], ‘Ylim’, [-5 5]);
    hold on;

    h = ezplot(b1, [-8 8 -3*sqrt(33)/7 6-4*sqrt(33)/7]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b2, [-4 4]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b3, [-1 -0.75 -5 5]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b3, [0.75 1 -5 5]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b4, [-0.75 0.75 2.25 5]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b5, [-0.5 0.5 -5 5]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b6, [-3 -1 -5 5]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b6, [1 3 -5 5]);
    set(h,’Color’, ‘Yellow’);
    h = ezplot(b7, [-8 8 -5 5]);
    set(h,’Color’, ‘Yellow’);

    set(gca,’Color’,[0 0 0]);

    title(”);
    xlabel(”);
    ylabel(”);

    hold off;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Publica una respuesta
  8. Nene, yo quiero que me pongas la de Superman, va más con mi estilo. Hala, reto complicado eh!! Muac!!

    Publica una respuesta
  9. Nadym, eso va a ser más difícil, aunque bueno, nunca se sabe :).

    Asier, sí, la fórmula autorreferente de Tupper es tremenda, de lo mejor que yo he visto de este tema :).

    Publica una respuesta
  10. Enhorabuena: Sigue habiendo gente que utiliza su mente sin esperar recompensas

    Publica una respuesta
  11. Me encanta ese gráfico, porque es una muestra de cómo se puede crear un logo con matemáticas.
    XD
    Lo vi primeramente en un blog amigo de Gaussianos, y quedé sorprendida de ver el logo. Aunque asumí que verdaderamente se podía hacer, nunca lo comprobé.

    Publica una respuesta
  12. Yo hubiera esperado que fuera mas facil en coordenadas polares.
    Ahora que llega la primavera, en una de esas es incorrecto.

    Publica una respuesta
  13. ¡Qué grande! La cantidad de buenos ratos que nos puede proporcionar la paciencia y perseverancia de otros…

    Publica una respuesta
  14. me encanta, una pruebe contundente sobre lo maravilloso de la matematica

    Publica una respuesta
  15. Como curiosidad está muy bien, pero para representar una imagen con matemáticas creo que es mejor acudir a los gráficos vectoriales escalables (SVG), ya sabéis con curvas de Bézier.

    Publica una respuesta

Trackbacks/Pingbacks

  1. La ecuación del logo de Batman en Mathematica - [...] La ecuación del logo de Batman en Mathematica gaussianos.com/la-ecuacion-del-logo-de-batman-en-mathemat...  por disconubes hace nada [...]
  2. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: No hay resumen disponible para esta anotación...
  3. La ecuación del logo de Batman en Mathematica - [...] 1 alma 20 La ecuación del logo…
  4. La ecuación del logo de Batman en Mathematica - [...] La ecuación del logo de Batman en Mathematica gaussianos.com/la-ecuacion-del-logo-de-batman-en-mathemat...  por Goefry hace 1 segundos [...]
  5. Ecuación matemática del logo de Batman | NETAMBULO | Tecnología, Internet y Ocio : Noticias y Curiosidades - [...] Si quieres ver el desarrollo matemático y saber han llegado a esta función puedes martirizar tus neuronas en Gaussianos.…
  6. La Ecuación de Batman | DistroGeek - [...] 09/20/2011 by carlosro_ec | 0 comments var addthis_product = 'wpp-262'; var addthis_config = {"data_track_clickback":true};var addthis_options =…
  7. Die Batman-Gleichung - [...] also doch Spaß machen … Ich behaupte hiermit keineswegs, dass ich die Batman Equation (oder auch ihre Herleitung) auch…
  8. De “carita sonriente” a “señor con bigote” con Mathematica - Gaussianos | Gaussianos - [...] (algo simple, pero carita sonriente al fin y al cabo). La ecuación, al más puro estilo de la ecuación…
  9. Gaussianos cumple 6 años de vida - Gaussianos | Gaussianos - [...] actuales, vimos cuántos poliedros regulares hay, hablamos sobre la banda de Möbius, dibujamos el logo de Batman con Mathematica,…
  10. WolframAlpha y algunas curvas muy "especiales" - Gaussianos | Gaussianos - [...] no, pero curvas “especiales” hay muchísimas en Wolfram|Alpha. ¿Quién no recuerda la ecuación del logo de Batman que se…

Puedes utilizar código LaTeX para insertar fórmulas en los comentarios. Sólo tienes que escribir
[latex]código-latex-que-quieras-insertar[/latex]
o
$latex código-latex-que-quieras-insertar$.

Si tienes alguna duda sobre cómo escribir algún símbolo puede ayudarte la Wikipedia.

Y si los símbolos < y > te dan problemas al escribir en LaTeX te recomiendo que uses los códigos html & lt; y & gt; (sin los espacios) respectivamente.

Envía un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *