Curvas y superficies de nivel en Matlab Samuel Muñoz Aguilar 28 de mayo de 2016 A continuación les presento algunas gráficas de funciones en 3D y sus curvas de nivel hechas con Matlab. %----CURVAS DE NIVEL 1---clc clear close all % Primera gráfica subplot(1, 2, 1) [X, Y] = meshgrid(-10:0.15:10); Z = -3*Y./(X.^2 + Y.^2 + 1); %Función surf(X, Y, Z); shading interp %Interpola los colores xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Superficie 1’) % Segunda gráfica subplot(1, 2, 2) id = contour(X, Y, Z, 10); %Muestra valores numéricos en las lineas de contorno clabel(id) %Tipo de color para las dos gráficas colormap(hsv) xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Curvas de nivel 1’) %Muestra los ejes proporcionales axis equal 1 %----CURVAS DE NIVEL 2---clc clear close all % Primera gráfica subplot(1, 2, 1) [X, Y] = meshgrid(-5:0.2:5); R = X.^2; S = Y.^2; Z = exp(-(R + S)./3).*(sin(R) + cos(S)); %Función surf(X, Y, Z); xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Superficie 2’) % Segunda gráfica subplot(1, 2, 2) contour(X, Y, Z, 20); colormap(hsv) %Estilo de color xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Curvas de nivel 2’) 2 %----CURVAS DE NIVEL 3---clc clear close all % Primera gráfica. Paraboloide subplot(2, 2, 1) [X, Y] = meshgrid(-5:0.2:5); Z = X.^2 + Y.^2; %Función surf(X, Y, Z); axis vis3d xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Paraboloide de revolución’) % Segunda gráfica. Curvas de nivel subplot(2, 2, 2) contour(X, Y, Z, 10); axis equal xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Curvas de nivel (Paraboloide)’) % Tercera gráfica. Cono subplot(2, 2, 3) t=0:0.2:5; [x,y,z]=cylinder(t); surf(x, y, z); axis vis3d xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Cono’) % Cuarta gráfica. Curvas de nivel subplot(2, 2, 4) contour(x, y, z, 10); colormap(hsv) %Estilo de color axis equal xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Curvas de nivel (Cono)’) 3 %----CURVAS DE NIVEL 4---clc clear close all subplot(1, 2, 1) [X, Y] = meshgrid(-10:0.3:10); Z = X.*Y.^3 - Y.*X.^3; surf(X, Y, Z); shading interp xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Silla de perro (superficie)’) subplot(1, 2, 2) contour3(X, Y, Z, 40); xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Silla de perro (curvas de nivel)’) 4 %----SUPERFICIES DE NIVEL---clc clear close all u = linspace(0, 2*pi, 50); v = linspace(0, 2*pi, 40); [U,V] = meshgrid(u,v); a = 2; X = sin(V).*cos(U); Y = sin(V).*sin(U); Z = cos(V); contour3(a*X,a*Y,a*Z, 25, ’EdgeColor’,’green’) hold on b = 4; contour3(b*X,b*Y,b*Z, 25, ’EdgeColor’,’blue’) c = 6; contour3(c*X,c*Y,c*Z, 25, ’EdgeColor’,’magenta’) axis vis3d %Hace a los 3 ejes proporcionales xlabel(’Eje x’); ylabel(’Eje y’); zlabel(’Eje z’); title(’Superficies de nivel’) hold off 5 Como extra les comparto tres gráficas más, espero les sean útiles. %----FUNCIÓN SENOIDAL ALREDEDOR DE UN CILINDRO---clc clear close all t = linspace(0, 2*pi, 500); a = 10; b = 1; c = 0.3; plot3(b*cos(t), b*sin(t), c*cos(a*t)); xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Seno alrededor de un cilindro’) 6 %----SUPERFICIE SIN LINEAS---clc clear close all [X, Y] = meshgrid(-10:0.3:10); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; surf(X, Y, Z); shading flat; %Quita las lineas negras de la superficie xlabel(’Eje x’), ylabel(’Eje y’), zlabel(’Eje z’) title(’Gráfica de superficie’) 7 %----TORO---clc clear close all t = -1:0.05:1; [x,y,z]=cylinder(3+sqrt(1-t.^2)); [x1,y1,z1]=cylinder(3-sqrt(1-t.^2)); %Primera parte del toro surf(x,y,z) hold on %Segunda parte del toro surf(x1,y1,z1) title(’Toro’) %Oculta los ejes axis off Para cada gráfica recomiendo que hagan un nuevo Script y así puedan modificar su código cuantas veces quieran. No tengan miedo de mover los parámetros de cada gráfica pues solo así podrán saber qué hace cada instrucción. Recuerden que si no entienden una función de Matlab, pueden escribir en el Command Window: help ’función’ y aparecerá una ventana de ayuda donde se explica que hace y cuales son los parámetros de la función que quieran. 8