Quantcast
Channel: Linux Music 3.0 » Mandriva
Viewing all articles
Browse latest Browse all 10

Dibujar Funciones A Trozos Discontinuas Con Sagemath

$
0
0

Hola, hace tiempo que quería saber dibujar funciones a trozos discontinuas con algún software matemático, pero la falta de tiempo libre y las ganas siempre ganaban. Hoy he tenido tiempo para investigar un poco.

Primero lo he intentado con WxMaxima, pero me unía las discontinuidades con el comando wxplot2d, lo he solucionado cargando el paquete draw, pero el código es demasiado largo. Me  he ido a Sagemath mediante la ejecución de Cantor, y he obtenido resultados óptimos y con muy poco código. Definitivamente Sagemath es de lejos el mejor software matemático actualmente, junto con Geogebra. Los dos son libres y muy bien presentados.

Veamos un  par de ejemplos,

f(x)=    \begin{cases}    4 & \mbox{si}\quad x<-2 \\    -2x & \mbox{si}\quad -2\le x\le 0 \\    x^2+1 & \mbox{si}\quad x>0    \end{cases}

Esta función presenta una discontinuidad de salto finito. La definiremos en Sagemath con el comando Piecewise, y la dibujaremos con el comando plot. Aquí el código:

x=var(‘x’);

f=Piecewise([[(-5,-2),4],[(-2,0),-2*x],[(0,5),x^2+1]])

f.plot( ).show(xmin=-4, xmax=4, ymin = 0, ymax = 5, aspect_ratio=1)

Veamos un último ejemplo con una función a trozos que presenta una discontinuidad de salto infinito, la función es la siguiente:

f(x)=    \begin{cases}    \frac{1}{x} & \mbox{si}\quad x<0 \\    \sqrt{x} & \mbox{si}\quad x\ge 0 \\    \end{cases}

Para dibujarla utilizaremos los dos comandos anteriores junto con la suma del comando line para dibujar las semi-asíntotas verticales y horizontales, coincidente con los ejes. El código es:

g=Piecewise([[(-5,0),1/x],[(0,5),sqrt(x)]])

g.plot( xmin=-4, xmax=4, ymin = -5, ymax = 5, aspect_ratio=1,detect_poles=’show’)+ line([(0,-5), (0,0)],color=’red’,linestyle=’–‘,thickness=’2′)+ line([(-5,0), (0,0)],color=’red’,linestyle=’–‘,thickness=’2′)

Y los resultados son los siguientes:

funcion1 funcion2

Saludos


Viewing all articles
Browse latest Browse all 10