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
editarPartiendo 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
editarConsideramos 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
editarLa 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
editarLa 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
editarLa 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
editarLa 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
editarLa 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
editarla 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
editarLa 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
editarla 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
editarLa 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
editarUna 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.