0 Usuarios y 1 Visitante están viendo este tema.
clear, clc, close all n = 12;a = linspace(0,5,n);b = linspace(-5,0,n);figure(1)hold on for k=1:nphi = linspace(-pi/4,pi/4);rho = sqrt(a(k)*cos(2*phi)); x1 = rho.*cos(phi);y1 = rho.*sin(phi);x2 = -x1;y2 = -y1; plot(x1,y1,'b',x2,y2,'b--')% x3 y3 caso especial para cuando 'a(k)' no sea positivo, % para ello necesito crear un vector b = linspace(-5,0,n) y % ponerlo antes del bucle.phi = linspace(pi/4+1e-3,3*pi/4); % le sumo 1e-3 para que pi/4 + 1e-3 sea% un número mayor que el simbólico pi/4 y no menor cuando Matlab lo% redondee (truncándolo). De esta forma el coseno de el vector phi da% siempre no positivo, que es lo que se busca. De lo contrario Matlab da un% mensaje de error, porque se hace la raíz cuadrada de una cantidad% negativa, al efectuar el producto por las componentes del vector 'b'.rho = sqrt(b(k)*cos(2*phi));x3 = rho.*cos(phi);y3 = rho.*sin(phi);x4 = -x3;y4 = -y3;plot(x3,y3,'k',x4,y4,'k--')% Ahora trayectorias ortogonalesphi = linspace(0,pi/2);rho = sqrt(a(k)*sin(2*phi));x1 = rho.*cos(phi);y1 = rho.*sin(phi);x2 = -x1;y2 = -y1; plot(x1,y1,'r',x2,y2,'r--')% igual que antes, x4 y4 caso especial. phi = linspace(pi/2+1e-3,pi);rho = sqrt(b(k)*sin(2*phi));x5 = rho.*cos(phi);y5 = rho.*sin(phi);x6 = -x5;y6 = -y5; plot(x5,y5,'c',x6,y6,'c--')end