Galería de representación de funciones 2D

Podemos ver algunas funciones típicas en 2D y la forma de representarlas con Scilab:

Giros y simetrías de una curva

editar

Partiendo de una función que define una curva, se pueden obtener giros de 90 grados y simetrías, partiendo de las coordenadas iniciales.

 
   clf;
   esc=10;
   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Función.");
   t=0:0.3:7;
   x=4*t
   y=10*t-t^2;
   plot (x,y,'g');

Partiendo de esta función como ejemplo, podemos rotarla 90 grados en sentido horario, con la siguiente instrucción:

   plot (y,-x,'r');

Que se puede teclear directamente desde la consola o añadiendola con SciNotes al scripts.

Para girar 180 grados:

   plot (-x,-y,'r');

por ultimo para girar 270 grados:

   plot (-y,x,'r');
     

La simetría de la la función respecto al eje x, se hace con la siguiente instrucción:

   plot (x,-y,'b');

La simetría respecto del eje y se hace:

   plot (-x,y,'b');
   

La simetría respecto a la primera diagonal, la bisectriz del primer y tercer cuadrante, se obtiene:

   plot (y,x,'b');

y la simetría respecto a la segunda diagonal, la bisectriz del segundo y cuarto cuadrante, es:

   plot (-y,-x,'b');
   

Espiral de Arquímedes

editar

Consideramos la espiral de Arquímedes la curva plana que cumple la relación, en coordenadas polares:

 

Dode r es el radio, b es una costante y   es el ángulo.

En coordenadas cartesianas tendríamos:

 
 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   esc=20;
   b=%pi;
   n=3;   //rotaciones

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Espiral de Arquímedes");
   k=0:0.01:n*2*%pi;
   x=b*k.*cos(k);
   y=b*k.*sin(k);
   plot (x,y,'g');

Evolvente del círculo

editar

La evolvente del círculo es una curva plana que se obtiene al desenrollar un hilo de una circunferencia, sus ecuaciones cartesianas son:

 
 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   r=1; //radio de la directriz
   esc=2;

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-4*esc,2*esc],"c"); // eje y

   xtitle ("Evolvente del círculo");
   k=0:0.01:2*%pi;
   plot (r*cos(k),r*sin(k),"b")     // circunferencia directriz

   k=0:0.01:2*%pi;
   x=r*(cos(k)+k.*sin(k));
   y=r*(sin(k)-k.*cos(k));
   plot (x,y,'g');

Espiral de Fermat

editar

La espiral de Fermat es una curva plana de ecuación en coordenadas polares es:

 

Donde r es el radio y   es el ángulo.

En coordenadas cartesianas tendríamos:

 
 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   esc=2;
   n=3;  //rotaciones

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Espiral de Fermat");
   k=0:0.01:n*2*%pi;
   x=sqrt(k).*cos(k);
   y=sqrt(k).*sin(k);
   plot (x,y,'g');
   plot (-x,-y,'g');

Dado que la raíz cuadrada puede tomar valores positivos y negativos, en realidad estamos representando dos funciones o la espiral se representa en dos trazos:

   plot (x,y,'g');
   plot (-x,-y,'g');

Cocleoide

editar

La cocleoide es una curva en forma de caracol similar a un estrofoide que se puede representar por la ecuación polar:

 

Donde a es una variable de escala, que no deforma la curva.

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   esc=0.2;
   a=1; 
   n=10; //revoluciones
   plot ([-0.4,1.2],[0,0],"c"); // eje x
   plot ([0,0],[-0.2,1],"c");   // eje y

   xtitle ("Cocleoide: a= "+string(a)+".","eje x","eje y");
   k=0:0.01:2*n*%pi;
   r=a*sin(k)./k
   x=r.*cos(k);
   y=r.*sin(k);
   plot (x,y,'g');

Cicloide

editar

La cicloide es un curva que se obtiene con el trazo de un punto de una circunferencia (generatriz) cuando rueda sin deslizar sobre una recta:

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   g=6;     //radio de la generatriz
   t=6;     //radio de la traza
   esc=10;

   plot ([-2*esc,6*esc],[0,0],"b"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Cicloide: g= "+string(g)+", t= "+string(t)+".");
   k=0:0.01:2*%pi;
   plot (g.*cos(k),g.*sin(k)+g,"r") // circunferencia generatriz

   k=-%pi:0.01:3*%pi;
   x=g*k-t.*sin(k);
   y=g-t.*cos(k);
   plot (x,y,'g');

Con la superposición de varias cicloides se puede obtener, por ejemplo, la figura de un puente atirantado:

 

Esta figura es la superposición de cicloides de generatriz de radio g=6 y con radio de traza t= 6 hasta 0, con t=0 se obtiene una recta, que corresponde al centro de la generatriz al deslizarse sobre la recta.

Epicicloide

editar

La epicicloide es una curva plana que se obtiene por la traza de un punto una circunferencia (generatriz) que rueda sin deslizar sobre otra circunferencia fija (directriz).

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   d=8;     //radio de la directriz
   g=8;     //radio de la generatriz
   t=8;     //radio de la traza
   n=1;     //rotaciones
   esc=10;

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Epicicloide: "+string(d)+", "+string(g)+", "+string(t)+".");
   k=0:0.01:2*%pi;
   plot (d.*cos(k),d.*sin(k),"b");       // circunferencia directriz
   plot (g.*cos(k),g.*sin(k)+g+d,"r");   // circunferencia generatriz

   //a=0:0.01:n*2*%pi; b=a*d/g;
   b=0:0.01:n*2*%pi; a=b*g/d;

   x=(d+g).*sin(a)-t.*sin(a+b);
   y=(d+g).*cos(a)-t.*cos(a+b);
   plot (x,y,'g');

En la figura se puede ver una epicicloide con radio de la directriz de 8, radio de la generatriz de 8, y radio de traza de 8, este caso particular con los tres valores iguales de epicicloide se denomina cardioide.

Hipocicloide

editar

la hipocicloide es una curva plana formada por el trazo de un punto de una circunferencia (generatriz) que rueda sin deslizar por el interior de otra circunferencia (directriz), de mayor radio que la generatriz.

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   // d>g
   d=20;    //radio de la directriz,
   g=15;    //radio de la generatriz,
   t=7;     //radio de la traza
   n=4;     //rotaciones
   esc=10;

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Hipocicloide: "+string(d)+", "+string(g)+", "+string(t)+".");
   k=0:0.01:2*%pi;
   plot (d.*cos(k),d.*sin(k),"b");       // circunferencia directriz
   plot (g.*cos(k),g.*sin(k)-g+d,"r");   // circunferencia generatriz

   //a=0:0.01:n*2*%pi; b=a*d/g;
   b=0:0.01:n*2*%pi; a=b*g/d;

   x=(d-g).*sin(a)-t.*sin(b-a);
   y=(d-g).*cos(a)+t.*cos(b-a);
   plot (x,y,'g');

Pericicloide

editar

La pericicloide es una curva plana generada por el trazo de un punto de una circunferencia (generatriz) que rueda sin deslizar en otra circunferencia (directriz) inscrita en la generatriz.

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   // d<g
   d=8;     //radio de la directriz
   g=16;    //radio de la generatriz
   t=16;    //radio de la traza
   n= 1;    //rotaciones
   esc=10;

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Pericicloide: "+string(d)+", "+string(g)+", "+string(t)+".");
   k=0:0.01:2*%pi;
   plot (d.*cos(k),d.*sin(k),"b");       // circunferencia directriz
   plot (g.*cos(k),g.*sin(k)-g+d,"r");   // circunferencia generatriz

   //a=0:0.01:n*2*%pi; b=a*d/g;
   b=0:0.01:n*2*%pi; a=b*g/d;

   x=(d-g).*sin(a)+t.*sin(a-b);
   y=(d-g).*cos(a)+t.*cos(a-b);
   plot (x,y,'g');

En la figura se puede ver una pericicloide con un radio de generatriz doble que el radio de la directriz, y la curva obtenida es un cardioide que también puede trazarse con una epicicloide.

Superelipse

editar

la superelipse es una generalización de la elipse.

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   esc=1;
   a=2; b=2; n=0.5;

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Superelepse: a="+string(a)+", b="+string(b)+", n="+string(n)+".");
   t=linspace (0,%pi/2,100);
   x=a.*(cos(t)).^(2/n);
   y=b.*(sin(t)).^(2/n);
   plot (x,y,'b');
   plot (x,-y,'b');
   plot (-x,-y,'b');
   plot (-x,y,'b');

Esta función se traza por cuadrantes por simetría del primer cuadrante.

Superfórmula

editar

La Superfórmula

 
 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   esc=1;
   a=5; b=1; m=1; n1=2; n2=1; n3=1;

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Superfórmula: a="+string(a)+", b="+string(b)+", m="+string(m)+", n1="+string(n1)+", n2="+string(n2)+", n3="+string(n3)+".");
   t=linspace (0,4*%pi,100);
   r=(abs(cos(m*t/4)/a).^n2+abs(sin(m*t/4)/b).^n3).^(-1/n1);
   x=r.*cos(t);
   y=r.*sin(t);
   plot (x,y,'g');

Curva mariposa

editar

Una representación curiosa es la curva mariposa que tiene por ecuación polar:

 

Donde n es un número entero.

 
   // 'b'-blue,    'c'-cyan, 'g'-green, 'k'-blak,
   // 'm'-magenta, 'r'-red,  'w'-white, 'y'-yelow.

   scf(0);
   clf(0);

   esc=2;
   n=4;    //rotaciones

   plot ([-4*esc,4*esc],[0,0],"c"); // eje x
   plot ([0,0],[-3*esc,3*esc],"c"); // eje y

   xtitle ("Curva mariposa.");
   t=-2*n*%pi:.01:2*n*%pi;
   r=exp(cos(t))-2*cos(4*t)-(sin(t/2/n)).^5;
   y=r.*cos(t);
   x=r.*sin(t);
   plot (x,y,'g');

Notese: que los valores de x e y están permutados, de modo que la mariposa sea simétrica respecto al eje y, si se toman los valores de x e y en el sentido normal la mariposa seria simétrica respecto al eje x.

Enlaces externos

editar

Referencias

editar