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
Ha quedado bien, ¿verdad?
¿Te ha gustado la entrada? Puedes invitarme a un café, Gauss te lo agradecerá 😉
¡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ó. 🙂
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
[…] La ecuación del logo de Batman en Mathematica gaussianos.com/la-ecuacion-del-logo-de-batman-en-mathemat… por disconubes hace nada […]
¡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
Información Bitacoras.com…
Valora en Bitacoras.com: No hay resumen disponible para esta anotación…
¿Pero cómo se hace para integrarlo todo en una única función?
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}]
En Mathematica: `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 = (3 (Abs[x – 1/2] + Abs[x + 1/2] + 6) – 11 (Abs[x – 3/4] + Abs[x + 3/4]))/2, 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]… Lee más »
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.
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… Lee más »
Ya lo conocía, pero nunca me canso de verlo…
[…] 1 alma 20 La ecuación del logo de Batman en Mathematica gaussianos.com/la-ecuacion-del-logo-de-batman-en-mathemat… por Goefry en matemáticas […]
[…] La ecuación del logo de Batman en Mathematica gaussianos.com/la-ecuacion-del-logo-de-batman-en-mathemat… por Goefry hace 1 segundos […]
Nene, yo quiero que me pongas la de Superman, va más con mi estilo. Hala, reto complicado eh!! Muac!!
Muy chulo. Esto me ha recordado a un post sobre una curiosidad aun más espectacular, la fórmula autorreferente de Tupper:
https://gaussianos.com/la-formula-autorreferente-de-tupper/
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 :).
Enhorabuena: Sigue habiendo gente que utiliza su mente sin esperar recompensas
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é.
Yo hubiera esperado que fuera mas facil en coordenadas polares.
Ahora que llega la primavera, en una de esas es incorrecto.
¡Qué grande! La cantidad de buenos ratos que nos puede proporcionar la paciencia y perseverancia de otros…
[…] Si quieres ver el desarrollo matemático y saber han llegado a esta función puedes martirizar tus neuronas en Gaussianos. […]
[…] 09/20/2011 by carlosro_ec | 0 comments var addthis_product = 'wpp-262'; var addthis_config = {"data_track_clickback":true};var addthis_options = "facebook,twitter,linkedin,email";Fuente: gaussianos […]
me encanta, una pruebe contundente sobre lo maravilloso de la matematica
[…] also doch Spaß machen … Ich behaupte hiermit keineswegs, dass ich die Batman Equation (oder auch ihre Herleitung) auch nur ansatzweise verstehen würde, aber das Ergebnis finde ich auf den ersten Blick […]
[…] (algo simple, pero carita sonriente al fin y al cabo). La ecuación, al más puro estilo de la ecuación del logo de Batman que ya hemos visto por aquí parece algo compleja, ya que con ella debemos representar cuatro conjuntos, pero veremos ahora que […]
[…] actuales, vimos cuántos poliedros regulares hay, hablamos sobre la banda de Möbius, dibujamos el logo de Batman con Mathematica, os di mi opinión sobre la utilidad directa de las matemáticas, construimos (con trampa) un […]
[…] no, pero curvas “especiales” hay muchísimas en Wolfram|Alpha. ¿Quién no recuerda la ecuación del logo de Batman que se hizo famosa en internet hace un año y algo? Pues se puede encontrar en Wolfram|Alpha con la […]
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.