Inverse Graphing Calculator, de la gráfica a la ecuación

Inverse Graphing Calculator es, como su propio nombre indica, una calculadora gráfica inversa (que, por cierto, ya enlacé en la cuenta de Twitter de Gaussianos). Generalmente, en un programa de representación gráfica por ordenador nosotros introducimos la ecuación y el programa nos devuelve la gráfica. Lo que hace IGC es justo lo contrario:

Nosotros introducimos una palabra, frase, o secuencia alfanumérica y el programa genera una representación gráfica de la misma (esta es la parte menos interesante) a partir de la cual devuelve la ecuación implícita en dos variables que corresponde a dicha representación.


Por ejemplo, para la palabra GAUSSIANOS obtenemos la siguiente representación gráfica:

GAUSSIANOS

y la ecuación implítica que IGC genera como la correspondiente a esta representación es la siguiente:

Ecuación que genera la palabra GAUSSIANOS

La verdad es que es bastante curioso…pero también algo oscuro. Las ecuaciones que genera IGC parecen demasiado complejas. Y he estado echando un ojo por la web y no he encontrado nada que explique, al menos por encima, cómo funciona el programa.

Un ejemplo de la complejidad de las ecuaciones. Para representar una O el programa genera la siguiente ecuación:

O

La primera parte se da un aire a la ecuación de una circunferencia de centro (3,3) y radio 1 si la igualamos a cero, pero el segundo término de la suma

(y^2-6y+8+\sqrt{y^4-12y^3+52y^2-96y+64})^2

es bien extraño, ¿no creéis?

Como todo esto me parecía raro he estado intentando representar algunas de las ecuaciones implícitas que devuelve este programa con Mathematica, a ver qué salía. He estado usando el paquete ImplicitPlot, pero la verdad es que no he obtenido resultado. No sé si es debería usar otras instrucciones o si escribo algo de forma incorrecta, pero no obtengo las representaciones que debería obtener basándonos en IGC.

Lo que os pido es que si alguien sabe exactamente cómo habría que decirle a Mathematica que nos represente estas ecuaciones que nos lo diga a través de un comentario. Y si alguien conoce otro programa que dé buenos resultados a la hora de realizar estas representaciones que también comente. Tengo curiosidad por saber si esta calculadora gráfica inversa funciona de verdad.


Gracias a Ismael por enviarme un meme desde su blog ya que me recordó la página y me ha hecho darle vueltas al tema.

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.

8 Comentarios

  1. La respuesta la tienes en la misma página, en

    http://www.xamuel.com/line-segment-equation/

    ahí explica como establecer la ecuación de un segmento (con el cero sigue el mismo procedimiento).

    La “trampa” está en cómo está representando las inecuaciones mediante valores absolutos.

    Básicamente, para restringir una ecuación a un segmento del dominio, es decir para fijar

    0\preceq x\preceq 1

    en la ecuación implícita exige

    \left\vert x-0\right\vert +\left\vert x-1\right\vert =\left\vert 1-0\right\vert

    siguiendo este ejemplo, si se quiere el segmento para 0<x<1 que sea y=1 tenemos

    y=1, y-1=0

    para exigir que sea positivo elevamos al cuadrado y tenemos

    (y-1)^2

    lo juntamos todo y ¡voila!

    (y-1)^{2}+\left\vert x-0\right\vert +\left\vert x-1\right\vert =\left\vert 1-0\right\vert

    El problema con una máquina que represente gráficamente ecuaciones en general (como Matematica) es que realizan un muestreo de la ecuación y éstas, con la pinta que tienen, pues puede que no den en la diana (justo en el segmento).

    Publica una respuesta
  2. No creo que él esté dibujando la gráfica desde la ecuación, sino que, como sabe el texto, lo dibuja a la vez que genera la ecuación (pero el dibujo lo hace desde el texto, no desde la ecuación).

    Por cierto, para representar bien las ecuaciones, yo fijaría la X respecto la precisión del píxel de trazado obteniendo una ecuación implícita sólo en Y, luego, para resolver el problema de segmentos con pendiente mayor que 1 (en valor absoluto) sólo hay que volver a trazar la gráfica fijando Y y resolviendo la inecuación para X.

    Publica una respuesta
  3. Una forma de ver una ecuación implícita sin tener que “atinar” a los valores de la propia función es representar ésta como una superfície, es decir, si tenemos

    f(X)=0

    con X perteneciente a R^n, tomar

    f(X)=Y

    con (X,Y) en R^(n+1)

    vaya, que f(X)=0 sería la “curva de nivel”.

    El problema con las ecuaciones que genera esa “utilidad” es que los valores cercanos a su gráfica difieren en valores muy grandes (desde cerca del 0 hasta valores por encima de 10^300).

    Dibujando de ésta forma la gráfica y deformando logarítmicamente la altura de esa superfície (de forma que los valores grandes sean suavizados respecto los pequeños) y añadiendo además un factor en el tiempo (para visualizar mejor unas zonas primero y otras después). Bueno, pues después de ésto, tenemos ésta gráfica

    http://jose-juan.computer-mind.com/jose-juan/img/gauss/aeiou.gif

    Es decir, en lugar de intentar encontrar los “ceros exactos”, mostramos la distancia en cada punto de la imagen.

    Publica una respuesta
  4. El problema con lo de la O es que se complica mucho la vida, creo. Como pone una suma de cuadrados igualada a cero, han de ser cero ambos cuadrados. Uno de ellos da, en efecto, la ecuación de una circunferencia. Y el otro, el de la potencia cuarta, para mi que tiene un signo equivocado, ya que

    (y^2-6y+8)^2=y^4-12y^3+52y^2-96y+64

    así que el segundo paréntesis es una expresión más la raíz de su cuadrado igualado a cero. Si la raíz tuviera un signo negativo delante, sería una identidad. Si no, son dos puntos, las soluciones de la ecuación y^2-6y+8=0. Yo creo que debería ser lo del signo menos, y así tendríamos efectivamente una circunferencia.

    Publica una respuesta
  5. No sé qué versión de Mathematica tienes tú, pero en la última el paquete ImplicitPlot forma parte del núcleo del programa y la función ContourPlot acepta ecuaciones.

    Con esta función he intentado representar el tocho que sale, pero sólo al introducirlo en el programa este se cierra (esto me pasa por pedir la versión de Linux… bendito software libre ¬¬)

    Si tuviera un rato y paciencia para escribir todo eso lo representaría entero (esa sintaxis no la entiende ningún programa), pero así de primeras ese término raro que has resaltado al final no tiene solución.

    Publica una respuesta
  6. Hola,
    No habla español 🙂

    y^2-6y+8+sqrt(y^4-12y^4+52y^2-96y+65) >= 0,

    & =0 iff 2 <= y <= 4.

    Thus it “cuts” any line segments which go outside the band 2<=y<=4, allowing any full-height line segments to be equationed as if they were infinite-length (see: http://www.xamuel.com/inverse-graphing-calculator.php?phrase=%2F+\+X+V+W+M+N ). As you pointed out, it’s unnecessary on some letters like “O” 😉 Maybe I will simplify those… 😀

    I’m happy you like the calculator 🙂

    -Sam

    Publica una respuesta

Trackbacks/Pingbacks

  1. Twitter Trackbacks for Inverse Graphing Calculator, de la gráfica a la ecuación | Gaussianos [gaussianos.com] on Topsy.com - [...] Inverse Graphing Calculator, de la gráfica a la ecuación | Gaussianos gaussianos.com/inverse-graphing-calculator-de-la-grafica-a-la-ecuacion – view page – cached…
  2. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: Inverse Graphing Calculator es, como su propio nombre indica, una calculadora gráfica inversa (que,…

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 *