noticias y última hora

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.

Posts aleatorios

10 comentarios

  1. Trackback | 29 Mar, 2010

    Twitter Trackbacks for Inverse Graphing Calculator, de la gráfica a la ecuación | Gaussianos [gaussianos.com] on Topsy.com

  2. Trackback | 29 Mar, 2010

    Bitacoras.com

  3. josejuan | 29 de March de 2010 | 08:54

    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).

  4. josejuan | 29 de March de 2010 | 09:01

    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.

  5. josejuan | 29 de March de 2010 | 10:19

    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.

  6. Francisco | 29 de March de 2010 | 10:24

    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.

  7. Juanlu001 | 29 de March de 2010 | 11:44

    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.

  8. Juanlu001 | 29 de March de 2010 | 12:03

    A lo anterior: mentira :|

    Simplificando esto:

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

    Queda:

    (y-4) (y-2) (Sqrt[(y^2-6 y+8)^2]+(y-6) y+8)==0

    ¡Me dice que una ecuación factorizada no tiene solución! Va a ser verdad que http://gaussianos.com/solo-con-el-ordenador-no-es-suficiente/ solo con el ordenador no es suficiente…

  9. JavCasta | 29 de March de 2010 | 16:02

    Podéis preguntarle al autor:

    glowingfaceman@gmail.com

  10. Xamuel | 30 de March de 2010 | 16:27

    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… :D

    I’m happy you like the calculator :)

    -Sam

Comentarios cerrados.