Como todos evidentemente sabréis hoy es el Día de las floristerías, perfumerías y demás tiendas de regalos San Valentín. Digamos que en cierto modo se nos obliga desde todos los sectores a demostrar más amor hoy que cualquier otro día del año.

El caso es que podemos hacerlo (de hecho debemos) cualquier día, en cualquier momento…y de la forma que creamos más conveniente (no por mucho regalo demostramos que queremos más). ¿Y por qué no usar las matemáticas para ello?

En Gaussianos podemos encontrar varios artículos donde el amor y las matemáticas son los temas principales. Por ejemplo, tenemos a The Klein Four Group con su canción Finite Simple Group (of order two) y dos artículos sobre fórmulas matemáticas y corazones, éste, donde podemos ver únicamente un corazón en 2D, y éste otro, donde se mejoraba el corazón anterior y se añadían otros en 3D. En el artículo de hoy vamos a ver alguna forma más de generar corazones con fórmulas matemáticas.

Fórmulas matemáticas que generan corazones

Vamos a ver tres maneras más de generar corazones a partir de fórmulas matemáticas. En cada una de ellas os daré la fórmula a partir de la cual se genera el corazón y el código de Mathematica que debéis usar para ello, junto con imágenes de nuestra creación.

Pero antes de nada os recomiendo que ejecutéis en Mathematica la orden (sin espacios)

< < Miscellaneous`RealOnly`

para que los números complejos no hagan acto de presencia y nos provoquen problemas con las soluciones de las ecuaciones.

  • La primera opción es la que genera esta ecuación:

    x^2 + (y - x^{2/3})^2 = 1

    ¿Cómo la generamos con Mathematica? Pues primero cargamos el paquete ImplicitPlot con

    < < Graphics`ImplicitPlot`

    y después utilizamos el siguiente código:

    ImplicitPlot[x^2+(y-x^(2/3))^2==1,{x,-1,1},Axes->False]

    Evidentemente, si queremos que los ejes aparezcan quitamos la opción Axes->False.

    ¿Cómo quedaría la cosa? Pues tal que así:

    Corazón

    Ha quedado algo pequeño y, por qué no decirlo, soso, ¿verdad? Bien, vamos a darle un poco de forma a este corazón. Lo vamos a representar como gráfica de dos funciones. Despejamos la variable y de la ecuación y dibujamos la gráfica de las dos funciones resultantes. El código completo de una de las posibles formas de representar esta situación sería el siguiente:

    f[x_]:=(x^(1/3))^2+(1-x^2)^(1/2)
    g[x_]:=x^(2/3)-(1-x^2)^(1/2)
    a=Plot[f[x],{x,-1,1},AspectRatio->1]
    b=Plot[g[x],{x,-1,1},AspectRatio->1]
    Show[a,b]

    Obteniendo el siguiente corazón:

    Corazón

    Esto…quedaría más bonito en rojo, ¿no? Vuestros deseos son órdenes, démosle algo de color:

    Plot[{f[x],g[x]},{x,-1,1},AspectRatio->Automatic,PlotStyle->{{RGBColor[1,0,0]
    ,Thickness[0.05]},{RGBColor[1,0,0],Thickness[0.05]}},Axes->False]

    Obtenemos así este bonito corazón con el borde rojo:

    Corazón con borde rojo

    Pero, como ya vimos en uno de los posts anteriores sobre este tema, también podemos rellenar el corazón de color. Recuerdo qué había que hacer:

    Cargamos el paquete FilledPlot con < < Graphics`FilledPlot` y después usamos el siguiente código:

    FilledPlot[{f[x],g[x]},{x,-1,1},Fills->{{{1,2},RGBColor[1,0,0]}},
    Curves->None,AspectRatio->Automatic,Axes->False]

    con el que se nos muestra el corazón anterior relleno de rojo:

    Corazón relleno de rojo

  • La segunda opción que os traigo es la que genera esta ecuación:

    (x^2 + y^2 - 1)^3 - x^2 \cdot y^3 = 0

    Con el paquete ImplicitPlot cargado antes podemos generar nuestro corazón con el código:

    ImplicitPlot[(x^2+y^2-1)^3-x^2*y^3==0,{x,-2,2},{y,-2,2}]

    obteniendo esto:

    Corazón

    Al igual que en el caso anterior, podemos quitar los ejes y hacer que el contorno del corazón sea rojo. Ahí va el código:

    ImplicitPlot[(x^2+y^2-1)^3-x^2*y^3==0,{x,-2,2},{y,-2,2},
    PlotStyle->{{RGBColor[1,0,0],Thickness[0.02]},{RGBColor[1,0,0],Thickness[0.05]}},Axes->False]

    Con él se nos muestra este corazón:

    Corazón con borde rojo

    Pero ahora mismo no sé cómo hacer que este corazón se muestre relleno de color. ¿Alguna idea?

  • Y la tercera opción de hoy nos muestra nuestro corazón mediante una ecuación en coordenadas polares (os acordáis de lo que eran, ¿verdad?). Concretamente esta es la ecuación que nos va a dar nuestro corazón:

    r=\cfrac{\sin{(t)} \cdot \sqrt{|\cos{(t)}|}}{\sin{(t)} + \frac{7}{5}} - 2 \sin{(t)} + 2

    Para poder representarla cargamos primero el paquete Graphics con < < Graphics`Graphics` y después usamos la función PolarPlot, a la que le damos el valor de r de la ecuación y el rango de valores de t así:

    PolarPlot[{Sin[t]*Sqrt[Abs[Cos[t]]]/(Sin[t]+7/5)- 2*Sin[t]+2},{t,0,2*Pi},AspectRatio->1]

    El resultado es este bonito corazón

    Corazón

    que también podemos dibujar con el borde en color rojo con el siguiente código:

    PolarPlot[{Sin[t]*Sqrt[Abs[Cos[t]]]/(Sin[t]+7/5)-2*Sin[t]+2},{t,0,2*Pi},
    AspectRatio->1,PlotStyle->{{RGBColor[1,0,0],Thickness[0.05]},{RGBColor[1,0,0],
    Thickness[0.05]}},Axes->False]

    Este es el corazón que obtendríamos:

    Corazón con borde rojo

    Al igual que en el caso anterior, no se me ocurre una forma de rellenarlo de color. Se aceptan sugerencias.

Bonus fractal

Otra curiosa manera que he encontrado en esta entrada de Mathematics and Multimedia de relacionar amor con matemáticas es utilizar el triángulo de Sierpinski así:

Triángulo amoroso de Sierpinski

No me digáis que no es original…


¿Conocéis alguna otra función/ecuación matemática cuya representación gráfica sea un corazón? Los comentarios son vuestros.


Esta entrada sirve como aportación de Gaussianos a la edición 2.1 del Carnaval de Matemáticas, que en esta ocasión organiza el precursor de la iniciativa, el gran Tito Eliatron.

Print Friendly, PDF & Email
5 1 vote
Article Rating

¿Te ha gustado la entrada? Puedes invitarme a un café, Gauss te lo agradecerá 😉


Comparte: