Graficando funciones discontinuas con Mathematica

Mientras estaba tratando de ilustrar el comportamiento de las funciones racionales elípticas dentro de la Tesis, me encontré con uno de los problemas del comando Plot[] del Mathematica. Este comando, al ir conectando puntos donde evalúa a la función, termina dibujando una línea en donde debería haber una discontinuidad. Por ejemplo, si uno ejecuta el comando Plot[1/(x-1),{x,-3,3}] obtiene el siguiente resultado:

Puede verse claramente que hay una línea vertical en x = 1.

Después de encontrar en la Web varias opciones que no me resultaban satisfactorias, tales como actualizar a la versión 6 o dividir el gráfico en segmentos con dominios donde la función es continua (estaba trabajando con una función con 4 polos), decidí acotar el valor de la función y reemplazar los valores superiores con valores indeterminados.

Esta solución aplicada al problema de mostrar correctamente al gráfico anterior quedaría como:

f[x_]:=1/(x-1);
fp[x_]:=Module[{},
ret=f[x];
If[Abs[ret]>30,Indeterminate,ret]];
Off[Plot::plnr];
Plot[fp[x],{x,-3,3}];
On[Plot::plnr];

Los comandos Off[] y On[] desactivan y activan respectivamente la emisión del error Plot::plnr, producido por la función Plot[] al encontrarse con valores no numéricos.

En otros temas, más allá de las funciones elípticas, dos interesantes fotos de objetos de oro sólido (particularmente apropiados con el oro a más de $100000 el kg 🙂

  1. Una pepita de oro de más de 4 kg.
  2. Un ladrillo de 220 kg de oro (más de $22000000 en la actualidad).

Una cosa a destacar es que 220 kg de oro solo tienen un volumen de 11.4 litros, ya que el oro es uno de los elementos más densos (si, más que el plomo). O sea que podríamos meter $22000000 en un cubo de 23 cm de arista… aunque sería algo difícil de levantar.

Advertisements

6 thoughts on “Graficando funciones discontinuas con Mathematica

  1. Mariano M. Chouza says:

    Error corregido en la segunda aparición de “$22000000”.

  2. Laura says:

    Mariano, aquí, te copio otro intento para graficar. Podrías decirme cómo hago para desactivar el primer gráfico que me aparece?

    Gracias por publicar esta ayuda para graficar las discontinuas.

    Saludos! Laura.

    f[x_] := 1/(x – 1);
    fp[x_] := Module[{},
    ret = f[x];
    If[Abs[ret] > 30, Indeterminate, ret]];
    Off[Plot::plnr];
    xmin := -3;
    xmax := 3;
    grafica = Plot[fp[x], {x, xmin, xmax},
    PlotStyle -> {{Thickness[0.01], Hue[.71]}}];
    Off[Plot::plnr];

    Clear[x];
    Clear[y];
    Show[grafica,
    AspectRatio -> Automatic,
    GridLines -> Automatic,
    Axes -> Automatic,
    AxesLabel -> {x, y},
    AxesOrigin -> Automatic,
    AxesStyle -> Automatic,
    PlotRange -> {{xmin, xmax}, {-6, 4}}]
    On[Plot::plnr];

  3. Laura says:

    Otra modificación, teniendo en cuenta el valor de y máximo:

    f[x_] := 2/(x^2 – 16);
    xmin := -8;
    xmax := 8;
    ymin := -2;
    ymax := 2;
    fp[x_] := Module[{},
    ret = f[x];
    If[Abs[ret] > (ymax + 1), Indeterminate, ret]];
    Off[Plot::plnr];

    grafica = Plot[fp[x], {x, xmin, xmax},
    PlotStyle -> {{Thickness[0.01], Hue[.71]}},
    GridLines -> {{-6, -4, -2, 2, 4, 6}, {-2, -1.5, -1, -0.5, 0.5,
    1, 1.5, 2}}];

    Clear[x];
    Clear[y];
    Show[grafica,
    AspectRatio -> 1,
    Axes -> True,
    AxesLabel -> {x, y},
    AxesOrigin -> Automatic,
    AxesStyle -> Automatic,
    PlotRange -> {{xmin, xmax}, {ymin, ymax}}];

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s