El otro día estaba dando una vuelta por GeoGebratube y me encontré este curioso applet en el que se puede ver que con una ecuación nada más (si, es una ecuación, aunque ahí le falta el =0) se puede dibujar una carita sonriente (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 no lo es tanto.

Lo que vamos a ver es cómo representarla con Mathematica 8.0. Veamos cuál es la ecuación de la que estamos hablando:

\begin{matrix}(x^4 + 2 x^2 y^2 - \mathbf{b} \cdot x^2 \cdot y - 40.75 x^2 + y^4 - y^3 - 40.75 y^2 + 25 y + 393.75) \cdot \\ \cdot ((x + 3)^2 + (y - 7)^2 - 1) \cdot ((x - 3)^2 + (y - 7)^2 - 1) \cdot (x^2 + (y - 2)^2 - 64)=0 \end{matrix}

Daos cuenta de que aparece un parámetro en dicha ecuación, b (en negrita). Distintos valores de este parámetro darán distintas representaciones, que para nosotros significarán distintas caras. Es decir, la carita obtenida dependerá de este b.

Como decíamos, la parte izquierda de la ecuación tiene cuatro términos multiplicados entre sí, y cada uno de ellos dibuja una parte de la carita. Veamos qué hace cada uno para, por ejemplo, b=0:

  • El último término, (x^2 + (y - 2)^2 - 64), dibuja el círculo exterior. El código de Mathematica para dibujarlo es

    a1=ContourPlot[(x^2 + (y - 2)^2 - 64) == 0, {x, -10, 10}, {y, -10, 10}]

    y queda así:

  • Los dos términos ((x + 3)^2 + (y - 7)^2 - 1) y ((x - 3)^2 + (y - 7)^2 - 1) nos dan los ojos. Podemos dibujarlos los dos juntos con este código en Mathematica

    a2=ContourPlot[((x + 3)^2 + (y - 7)^2 - 1)*((x - 3)^2 +
    + (y - 7)^2 - 1) == 0, {x, -10, 10}, {y, -10, 10}]

    y nos quedaría así:

  • Y la sonrisa y la nariz se controlan con el término (x^4 + 2 x^2 y^2 - 40.75 x^2 + y^4 - y^3 - 40.75 y^2 +      25 y + 393.75). El código a utilizar sería

    a3=ContourPlot[(x^4 + 2 x^2 y^2 - 40.75 x^2 + y^4 - y^3 - 40.75 y^2 +
    + 25 y + 393.75) == 0, {x, -10, 10}, {y, -10, 10}]

    y su representación quedaría así:

Si representamos las cuatro partes en la misma gráfica obtenemos nuestra cara. Podemos hacerlo con el comando Show:

Show[a1,a2,a3]

o también con la ecuación inicial directamente:

ContourPlot[(x^4 + 2 x^2 y^2 - 40.75 x^2 + y^4 - y^3 - 40.75 y^2 + 25 y + 393.75)*((x + 3)^2 + (y - 7)^2 - 1)*((x - 3)^2 + (y - 7)^2 - 1)*(x^2 + (y - 2)^2 - 64) == 0, {x, -10, 10}, {y, -10, 10}]

Que coloreado (con Paint) podría quedar así:

Pero, como hemos dicho antes, para cada valor de b obtenemos distintas caras. Aquí tenéis algunas para que veáis cómo va cambiando para unos cuantos valores de b entre -0.7 y 4.7. Para dibujarlas podemos hacer lo siguiente:

  • Definimos la función f(b), que será la parte izquierda de la ecuación entera, dependiente de b:

    f[b_] := (x^4 + 2 x^2 y^2 - b*x^2*y - 40.75 x^2 + y^4 - y^3 - 40.75 y^2 + 25 y + 393.75)*
    ((x + 3)^2 + (y - 7)^2 -1)*((x - 3)^2 + (y - 7)^2 - 1)*(x^2 + (y - 2)^2 - 64)
  • Ahora definimos g(t) como la representación de la ecuación f(t)=0;

    g[t_] := ContourPlot[f[t] == 0, {x, -10, 10}, {y, -10, 10}]
  • De esta manera para cada valor de t podemos dibujar una cara distinta. Podéis probar escribiendo en Mathematica g[valor_de_t], para algunos valores. Lo que he hecho yo es agrupar varios con la función GraphicsGrid. En concreto aquí tenéis 18 caritas para 18 valores distintos de t para que veáis cómo varían. El código sería el siguiente:

    GraphicsGrid[{{g[-0.7], g[-0.5], g[-0.3]}, {g[-0.1], g[0], g[0.1]}, {g[0.3], g[0.5],
    g[0.7]}, {g[2.3], g[2.6], g[2.9]}, {g[3.2], g[3.5], g[3.8]}, {g[4.1], g[4.4], g[4.7]}}]

Y ahora las imágenes. Apreciad el paso de carita sonriente a señor con bigote:

Como habréis apreciado, entre las nueve primeras y las nueve últimas hay una especie de salto. Las imágenes que aparecen ahí son las que formarían el paso de sonrisa a bigote. Podéis ver vosotros mismos qué tipo de figuras van quedando utilizando valores entre 1 y 2.

Pero podríamos haber probado con valores más pequeños o más grandes que los que aparecen aquí. ¿Qué ocurriría? Pues para valores más pequeños que -1, en este caso -3, -10 y -20, la cosa saldría así:

De una sonrisa a una pajarita.

Y para valores más grandes que 5, por ejemplo para 10, 20 y 30, saldrían así:

De un bigote a unas gafas.

Realmente interesante el juego que da esta ecuación, ¿verdad? Os dejo a vosotros la posibilidad de comentar qué aplicaciones podría tener todo esto, pero a bote pronto se me ocurren cosas relacionadas con juegos para niños. ¿Qué pensáis?


Y para terminar una petición y una pregunta:

  • Petición: si sabéis de más ecuaciones de este tipo que generen figuras curiosas utilizad los comentarios para contárnoslo.
  • Pregunta: ¿alguien sabe cómo colorear partes de estas gráficas directamente con Mathematica? Si es así os agradecería que dijerais algo en un comentario.

Esta es mi tercera contribución para la Edición 3.1 del Carnaval de Matemáticas, que en esta ocasión tiene como anfitrión a Scientia potentia est.

Print Friendly, PDF & Email