separata introduccion a matlab

22
Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C. 1 INTRODUCCION Matlab es un entorno de trabajo para el cálculo científico. Programado originalmente por Cleve Moler a finales de los años 70. Matlab es una abreviatura de Matrix Laboratory. Su primera implementación se hizo en Fortran que era, y en buena medida aún sigue siéndolo, el lenguaje estándar en la implementación de métodos numéricos. Posteriormente se reimplementó en C, que es como se encuentra en la actualidad. Las aplicaciones de Matlab se fueron extendiendo a otras ramas del cálculo científico y de las ciencias aplicadas en general, dotándole de una gran popularidad en ambientes científicos (especialmente en Ingeniería). Dichas extensiones se consiguieron en gran parte mediante la implementación de toolboxes, librerías escritas en el lenguaje de programación propio de Matlab y que ampliaban el rango de problemas que podían resolverse. Sin miedo a equivocarse, se pueden enunciar las siguientes áreas donde Matlab muestra un gran potencial: Algebra Lineal numérica; Procesamiento de señales (análisis, compresión de datos,..); Diseño de sistemas de control; Salidas gráficas; Estadística; Simulación de sistemas dinámicos. La extensa gama de problemas que cubre hace de Matlab un lenguaje difícil de entender y manejar en su completitud. Esto no quiere decir que sea inarbodable: el conocimiento base que permite empezar a trabajar es muy sencillo. No obstante el elevado número de comandos que se encuentra a disposición del alumno provoca que en ocasiones existan problemas no sólo para encontrar los comandos adecuados sino también para tener una idea de qué posibilidades exactamente ofrece Matlab en un problema o tarea en particular. El lenguaje de programación de Matlab es bastante más flexible que el de los lenguajes tradicionales. No es preciso la declaración inicial de variables, éstas se pueden introducir en el momento que se necesiten, y por ejemplo, vectores y matrices pueden declararse sin especificar sus dimensiones e incluso cambiar sus tamaños sobre la marcha. Ello permite una programación algo más desordenada, aunque debe tenerse bien claro que una programación clásica, más al uso, suele generar código más eficiente.

Upload: maarco

Post on 13-Jul-2016

39 views

Category:

Documents


1 download

DESCRIPTION

Introduccion a MatLab

TRANSCRIPT

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

1

INTRODUCCION Matlab es un entorno de trabajo para el cálculo científico. Programado originalmente por Cleve Moler a finales de los años 70. Matlab es una abreviatura de Matrix Laboratory. Su primera implementación se hizo en Fortran que era, y en buena medida aún sigue siéndolo, el lenguaje estándar en la implementación de métodos numéricos. Posteriormente se reimplementó en C, que es como se encuentra en la actualidad.

Las aplicaciones de Matlab se fueron extendiendo a otras ramas del cálculo científico y de las ciencias aplicadas en general, dotándole de una gran popularidad en ambientes científicos (especialmente en Ingeniería). Dichas extensiones se consiguieron en gran parte mediante la implementación de toolboxes, librerías escritas en el lenguaje de programación propio de Matlab y que ampliaban el rango de problemas que podían resolverse.

Sin miedo a equivocarse, se pueden enunciar las siguientes áreas donde Matlab muestra un gran potencial:

Algebra Lineal numérica; Procesamiento de señales (análisis, compresión de datos,..); Diseño de sistemas de control; Salidas gráficas; Estadística; Simulación de sistemas dinámicos.

La extensa gama de problemas que cubre hace de Matlab un lenguaje difícil de entender y manejar en su completitud. Esto no quiere decir que sea inarbodable: el conocimiento base que permite empezar a trabajar es muy sencillo. No obstante el elevado número de comandos que se encuentra a disposición del alumno provoca que en ocasiones existan problemas no sólo para encontrar los comandos adecuados sino también para tener una idea de qué posibilidades exactamente ofrece Matlab en un problema o tarea en particular. El lenguaje de programación de Matlab es bastante más flexible que el de los lenguajes tradicionales. No es preciso la declaración inicial de variables, éstas se pueden introducir en el momento que se necesiten, y por ejemplo, vectores y matrices pueden declararse sin especificar sus dimensiones e incluso cambiar sus tamaños sobre la marcha. Ello permite una programación algo más desordenada, aunque debe tenerse bien claro que una programación clásica, más al uso, suele generar código más eficiente.

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

2

. En la figura 1.1 podemos ver el aspecto inicial de MaLab. Distinguimos las siguientes

ventanas

• Command window: Ventana donde podemos ejecutar los comandos;

• Ventanas auxiliares: command history, workspace, current directory que

informan (y permiten editar) los comandos insertados, las variables declaradas y

el directorio(carpeta en el disco duro) que estamos trabajando.

• Ventana de ayuda: que proporciona una acceso completo a las funciones de

ayuda de MatLab, incluido bùsquedas, demostraciones, etc.

Entre las primeras características destacamos

• El prompt de MatLab es >>. El usuario escribe a continuación

• Para ejecutar se pulsa la tecla Enter

• Se pueden recuperar comandos anteriores navegando con las flechas .

Cuando se trabaje en MatLab, debemos tener en cuenta

• Se distinguen mayúsculas y minúsculas.

• El carácter % se utiliza para insertar comentarios. Todo lo que sigue es ignorado

por MatLab

• Si se teclea al final de una orden ’;’ ésta se ejecuta pero el resultado no se

visualiza por pantalla

• Dos comandos se pueden insertar en la misma línea separados por “,” o por “;”.

La diferencia entre los dos es que con “,” se muestran los resultados de las

operaciones mientras que con “;” la operación se ejecuta pero no se visualiza.

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

3

Figura 1.1

Ejercicio 1.1 Ejecuta las instrucciones >> 4+4 % mi primera operación >> 3^4, 4/9 >> 3^4; 4/9 >> 3^4, 4/9; >> 3^4; 4/9; y observa la salida. Haremos algunos comentarios sobre el ejercicio anterior. El circunflejo ^ es la potenciación: >> 3^5 ans = 243 El término ans es la primera variable que vemos de Matlab. Concretamente, guarda la última salida dada por Matlab (answer): >> 4+6 ans = 10 >> ans*2 ans = 20 >> ans*2 ans = 40

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

4

La raíz cuadrada se puede calcular bien elevando a 1/2 ( ^(1/2) ) o bien utilizando sqrt. Ejercicio 1.2 Comprueba la diferencia entre 4/4+6 4/(4+6) 3^5*2 3^(5*2) Nota. La prioridad de ejecución entre operaciones matemáticas es la habitual: primero se calcula la potenciación ^, posteriormente los productos y divisiones *, / y en último lugar, las sumas y restas + y -. Este orden se puede cambiar utilizando los paréntesis. La regla es sencilla: dada una expresión, lo primero que se calcula es lo que está dentro de cada paréntesis. Esta regla es recursiva, es decir, si dentro de un paréntesis hay otros paréntesis, para evaluar el primero se empezará con los paréntesis interiores. En general los resultados numéricos se presentan con cuatro cifras decimales correctas, aunque todas las operaciones se ejecutan en doble precisión. Si se desean las salidas con toda la precisión disponible se debe insertar la instrucción >> format long A partir de este punto, el resultado de cualquier operación se mostrará con 16 cifras significativas. La instrucción >> format short % o simplemente format devuelve a la forma estándar con cuatro cifras decimales. Existen más opciones con format. Las siguiente líneas muestran algunas de ellas: >> pi % el numero pi ans = 3.1416 >> format long % mayor precision >> pi ans = 3.14159265358979 >> format rat %salidas en forma fraccionaria >> pi ans = 355/113 Números complejos La aritmética compleja se encuentra también integrada en Matlab. La unidad imaginaria ( 1− ) se representa en Matlab con i ó j: >> clear i j % borramos posibles valores de i y j >> i^2 ans= -1 >> j^2 ans= -1

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

5

El signo i suele ser habitual en Matemáticas mientras que en diversas ramas de la Física y en Ingeniería de Telecomunicaciones o Eléctrica se prefiere el símbolo j (en este caso para no confundir con la intensidad de corriente eléctrica). De ahí que Matlab permita ambas representaciones. Todas las operaciones matemáticas incluyen la aritmética compleja en el sentido usual >> 1+i +5-6i % suma de dos numeros complejos ans = 6.0000 - 5.0000i >> (5+3i)*(5-3i), (1+2i)/(3-4i) ans = 34.00 ans = -0.20 >> conj(3e-3+2e-4i) % conjugado ans = 0.0030 - 0.0002i >> abs(3+4i), angle(2i) % modulo y argumento ans = 5 ans = 1.5708 Comandos de Ayuda La ayuda de Matlab es ciertamente muy clara y completa. Los comandos siempre dispuestos a echarnos una mano son: help: muestra una ayuda por pantalla, en la ventana de comandos, con la información esencial sobre un comando concreto. helpwin: similar a help pero despliega la ayuda en una ventana auxiliar, permitiendo así una navegación, estilo web, muy cómoda. lookfor: permite buscar una cadena en la primera línea de todos los ficheros de ayuda. Ejercicio 1.3 Utilizando las funciones de ayuda, obtener información de alguna de estas funciones elementales de Matemática

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

6

Variables Matlab no necesita la declaración de variables como en un lenguaje tradicional. En principio todas las variables son reales, y basta hacer uso de ellas para que queden declaradas: >> a=1; b=2; c=3; >> a-b ans = -1 >> a*b*c ans = 6 El comando who sirve para conocer los nombres de las variables declaradas, mientras que con whos obtenemos una información más precisa: >> who Your variables are: a b c >> whos a Name Size Bytes Class a 1x1 8 double array Grand total is 1 element using 8 bytes Para borrar una variable se utiliza la instrucción clear, por ejemplo, >> a=4; >> whos a Name Size Bytes Class a 1x1 8 double array Grand total is 1 element using 8 bytes >> clear a >> whos a >> borra la variable (es decir, whos no devuelve nada). Con la orden >> clear all se borran todas las variables declaradas hasta el momento. Nota. En Matlab es correcto declaraciones de este tipo >> sin=1; >> sin+1 ans= 2 De esta forma sin pasa a ser una variable que sobrescribe el valor original que tenía como función seno. Para recuperar el valor original basta ejecutar >> clear sin

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

7

Vectores y Matrices Para definir un vector fila, basta introducir sus coordenadas entre corchetes:

>>v=[1 2 3] % Vector de 3 coordenadas

v= 1 2 3

>>w=[4 5 6]; El operador ' es el de trasposición (en realidad trasposición y conjugación):

>>w'

ans = 4 5 6 Si queremos declarar un vector de coordenadas equiespaciadas entre dos dadas, por ejemplo, que la primera valga 0, la última 20 y la distancia entre coordenadas sea 2, basta poner:

>>v1=0:2:20

v1 = 0 2 4 6 8 10 12 14 16 18 20 Equivalentemente, si lo que conocemos del vector es que la primera coordenada vale 0, la última 20 y que tiene 11 en total, escribiremos:

>>v2=linspace(0,20,11)

v2 = 0 2 4 6 8 10 12 14 16 18 20 A las coordenadas de un vector se accede sin más que escribir el nombre del vector y, entre paréntesis, su índice:

>>v2(3)

ans = 4

y se pueden extraer subvectores, por ejemplo:

>>v2(2:5)

ans= 2 4 6 8

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

8

ó

>>v1(:)

ans= 0 2 4 6 8 10 12 14 16 18 20 Las matrices se escriben como los vectores, pero separando las filas mediante un punto y coma; así una matriz 3x3:

>>M=[1 2 3;4 5 6;7 8 9]

M = 1 2 3 4 5 6 7 8 9

>>M' % Su traspuesta (su adjunta)

ans = 1 4 7 2 5 8 3 6 9

>>N=[v;w;0 0 1] % También es una matriz 3x3

N = 1 2 3 4 5 6 0 0 1 A los elementos de una matriz se accede sin más que escribir el nombre de la matriz y, entre paréntesis, los respectivos índices:

>>N(1,3) % Elemento en la primera fila y tercera columna de la matriz N

ans = 3

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

9

También se puede acceder a un fila o columna completas,

>>N(:,2) % Segunda columna de N

ans = 2 5 0

>>N(2,:) % Su segunda fila

ans = 4 5 6

acceder a la matriz como si fuera una columna,

>>M(2:7) % Los elementos segundo a séptimo de la matriz como columna

ans = 4 7 2 5 8 3

ó acceder a cualquiera de sus submatrices

>>N(2:3,[1 3]) % Submatriz formada por los elementos que están en % "todas" las filas que hay entre la segunda y la tercera y % en las columnas primera y tercera

ans = 4 6 0 1 Existen algunas matrices definidas previamente; por ejemplo, la matriz identidad,

>>eye(5) % eye se pronuncia en inglés como I

ans = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

la matriz nula,

>>zeros(3)

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

10

ans = 0 0 0 0 0 0 0 0 0

o la matriz cuyos elementos valen todos 1:

>>ones(4)

ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Se puede conocer el tamaño de una matriz y la longitud de un vector:

>>size(N) % Dimensiones de la matriz N (número de filas y de columnas)

ans = 3 3

>>size(v)

ans = 1 3

>>length(v) % Longitud del vector (número de coordenadas)

ans = 3

Existen comandos que permiten crear de forma sencilla matrices. Por ejemplo:

>>diag(v) % Matriz diagonal cuya diagonal es el vector v

ans = 1 0 0 0 2 0 0 0 3

>>diag(diag(M)) % Matriz diagonal con la diagonal de M. La sentencia diag(M) da % el vector formado por la diagonal de la matriz M

ans = 1 0 0 0 5 0 0 0 9

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

11

>>diag(ones(1,4),1)+diag(ones(1,4),-1) % Matriz tridiagonal 5x5 con 0 en la diagonal % principal y 1 en la sub y superdiagonal

ans = 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0

>>tril(M) % Matriz formada por la parte triangular inferior de M.

ans = 1 0 0 4 5 0 7 8 9

>>triu(M) % Matriz formada por la parte triangular superior de M.

ans = 1 2 3 0 5 6 0 0 9

Ejemplos: >> a = [1 2 3; 4 5 6; 7 8 9; 10 11 12]; >> a(2,3) % elemento (2,3) de a ans = 6 >>a(2,:) % fila 2 de a ans = 4 5 6 >>a(:,1) % columna 1 ans = 1 4 7 10 >>a(:,2)=0 % columna 2 es ahora 0 a = 1 0 3 4 0 6 7 0 9 10 0 12

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

12

Podemos acceder a partes de una fila o columna: >> a(1,2:3) % vector [a(1,2) a(1,3)] ans = 0 3 >> a(2:4,3) % vector columna [a(2,3); a(3,3); a(4,3)] ans = 6 9 12 >> a(1:2,2:3) % matriz [a(1,2) a(1,3); a(2,2) a(2,3)] ans = 0 3 0 6 Algebra Básica Las variables pueden ser manipulados algebraicamente en Matlab si son declarados como símbolos por el comando syms. Por ejemplo: >>syms x y >>z=(x - y)*(x+y) >>expand(z) Solución Algebraica de Ecuaciones en Matlab >>solve('x^2 - 2*x - 4 = 0') ans = [ 5^(1/2)+1] [ 1-5^(1/2)] >>[x,y]=solve('x^2 - y = 2','y-2*x=5') x = [ 1+2*2^(1/2)] [ 1-2*2^(1/2)] y = [ 7+4*2^(1/2)] [ 7-4*2^(1/2)] Si queremos la representación decimal de x e y: >>eval(x) ans = 3.8284 -1.8284 >>eval(y) ans = 12.6569 1.3431

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

13

Cálculos Básicos Diferenciación: Ejemplo: Calcular la derivada de 3x >>syms x; >>diff(x^3) ans = 3*x^2 Alternativamente, se puede definir primero 3x como una función: >>f=inline('x^3','x'); >>diff(f(x)) ans = 3*x^2 También se pueden calcular las derivadas de orden superior: Ejemplo: La segunda derivada de la función f(x): >>di_(f(x),2) ans = 6*x Finalmente, MATLAB puede calcular las derivadas parciales. >>syms y; >>g=inline('x^2*y^2','x','y') g = Inline function: g(x,y) = x^2*y^2 >>di_(g(x,y),y) ans = 2*x^2*y Integración Ejemplo: Hallar la integral de 2x >>syms x; >>int(x^2) ans = 1/3*x^3 or >>f=inline('x^2','x') f = Inline function: f(x) = x^2 >>int(f(x)) ans = 1/3*x^3

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

14

La integral con límites de integración:

Ejemplo: Hallar la integral ∫1

0

2dxx

>>int(f(x),0,1) ans = 1/3 Para integrales dobles, como por ejemplo: Hallar

∫ ∫ +π

0

sin

0

22 )(x

dydxyx

>>syms y >>int(int(x^2 + y^2,y,0,sin(x)),0,pi) ans = pi^2-32/9 Limites Matlab puede también calcular límites

>>syms x; >>limit(sin(x)/x,x,0) ans = 1 Ejemplo: Hallar los limites laterales de:

>>limit(abs(x)/x,x,0,'left') ans = -1 >>limit(abs(x)/x,x,0,'right') ans = 1 Ejemplo: Hallar los limites infinitos

>>limit((x^4 + x^2 - 3)/(3*x^4 - log(x)),x,Inf) ans = 1/3

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

15

Suma y Productos >>X=1:7 X = 1 2 3 4 5 6 7 >>sum(X) ans = 28 >>prod(X) ans = 5040 Suma Simbólicas: Ejemplo:

>>syms k n; >>symsum(1/k - 1/(k+1),1,n) ans = -1/(n+1)+1 Serie de Taylor >>syms x; >>taylor(sin(x),x,10) ans = x-1/6*x^3+1/120*x^5-1/5040*x^7+1/362880*x^9

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

16

GRÁFICOS

La construcción de gráficos en MATLAB es una más de las facilidades del sistema. A través de comandos simples se puede obtener gráficos bidimensionales o tridimensionales con cualquier tipo de escala y coordenada. Existe en MATLAB una vasta biblioteca de comandos gráficos.

Comando Plot Primer nivel El primer comando que trataremos es plot. Es una instrucción muy versátil y la más indicada para dibujar gráficas de funciones y curvas en el plano. Su sintaxis básica es >> plot(x,y) que dibuja el vector y versus el vector x. Más en concreto une los puntos (x(i), y(i)) mediante segmentos. Tomando un número suficientemente elevado de puntos trazamos con ello una gráfica suave, sin esquinas visibles. Al ejecutar este comando se abre una ventana, figure en el vocabulario de Matlab, donde se traza la correspondiente figura. Si y es real, plot(y) toma x=1:n donde n es la longitud de y. Si, por otro lado, y es un vector de números complejos, dibuja la parte imaginaria versus la parte real. Es decir, es equivalente a plot(real(y),imag(y)). Ejercicio ¿Qué hacen las siguientes líneas de código? >> clear i >> t=linspace(0,2*pi,9); >> plot(exp(i*t)); Segundo nivel El comando además acepta una serie de argumentos que, entre otras cosas, permiten controlar el color, el tipo de marcas sobre los puntos (x(i), y(i)) y el formato de las líneas que los unen. Así, en su aspecto más general, plot(x,y,S) dibuja y versus x, con S una cadena de caracteres que se construye con:

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

17

Ejemplo:

X=linespace(0,4,100); Y=exp(-x).*cos(2*pi*x); figure(1);plot(x,y,’.’); figure(2);plot(x,y,’r-.’); figure(3);plot(x,y,’sm--’); figure(4);plot(x,y,’hg’); figure(5);plot(x,y,’kv:’);

Comandos asociados a Plot

hold on permite que sucesivas gráficas se vayan solapando; hold off desconecta esta opción(es la que está por defecto)

clf borra la ventana actual(figure) de gráficos title Título del gráfico. xlabel Título del eje-X. ylabel Título del eje-Y. zlabel Título del eje-Z. text Insertar anotación en gráfico. gtext Insertar anotación con un "mouse". grid Líneas de rejilla.

Ejemplo:

figure(1) % desplegamos ventana 1 clf % borramos todo x=linspace(0,5,100); f=inline(’exp(-n*x).*cos(x)’,’n’,’x’); % funciones vectorizadas hold on % solapamiento de graficas y=f(1/3,x); plot(x,y,’k--’,’linewidth’,2) y=f(1,x); plot(x,y,’r-.’,’linewidth’,2) y=f(3,x); plot(x,y,’:’,’color’,[0.0,0.0,0.5],’linewidth’,2) y=f(9,x); plot(x,y,’-’,’color’,[0.0,0.3,0.0],’linewidth’,2) grid on % desplegamos la red xlim([-0.5,6]), ylim([-0.25,0.5]) % rango de los graficos xlabel(’Eje OX’,’fontname’, ’Comic Sans Ms’, ’fontsize’,12) ylabel(’Eje OY’,’fontname’, ’Comic Sans Ms’, ’fontsize’,12) title(’Algunas graficas de funciones’,... ’fontsize’,16,’fontname’,’Times new roman’) legend(’exp(-x/3).*cos(x)’, ’exp(-x).*cos(x)’,... ’exp(-3x)*cos(x)’, ’exp(-9x).*cos(x)’);

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

18

El comando Subplot

Este comando permite la visualización de diferentes subventanas gráficas (axes) en una misma ventana. A modo de ejemplo, subplot(231) define en la figure seis zonas para volcar las salidas gráficas dispuestas en 2×3 (dos filas, tres columnas) y accede a la primera de ellas. La numeración es la desplegada en la figura

Ejemplo:

x=linspace(0,2*pi,150); subplot(321) plot(x,sin(x),’linewidth’,2); title(’sin(x)’,’fontsize’,14) axis tight subplot(322) plot(x,cos(x),’linewidth’,2); title(’cos(x)’,’fontsize’,14) axis tight subplot(323) plot(x,sin(2*x),’linewidth’,2);

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

19

title(’sin(2x)’,’fontsize’,14) axis tight subplot(324) plot(x,cos(2*x),’linewidth’,2); title(’cos(2x)’,’fontsize’,14) axis tight subplot(325) plot(x,sin(4*x),’linewidth’,2); title(‘sin(4x)’,fontsize’,14) axis tight subplot(326) plot(x,cos(4*x),’linewidth’,2); title(‘cos(4x)’,fontsize’,14) axis tight

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

20

Curvas en el espacio tridimensional

plot3(x,y,z) : produce una perspectiva (proyección bi-dimensional) da una curva lineal por partes que pasa por los puntos cuyas coordenadas son los elementos de x, y e z, vectores de la misma dimensión.

Ejemplo: Hallar la gráfica del rango de la función )),sin(),(cos()( 3ttttf =

Solución:

Parametrizando la curva:

t = 0.01 : 0.05 : 10*pi;

x = cos(t); y = sin(t); z = t .^3;

plot3(x,y,z,'r')

Gráficos de superficies Los gráficos de superficie permiten obtener representaciones de figuras tridimensionales y en especial de figuras de dos variables. El primer paso para representar una función de dos variables z=f(x,y) mediante su gráfico de superficie es utilizar el comando meshgrid, que básicamente define la matriz de puntos (X,Y) sobre los cuales se evalúa la función de dos variables para hacer su representación gráfica. El segundo paso es utilizar los comandos disponibles al efecto que vienen dados por el comando surf y sus variantes: Ejemplo: Representa gráficamente la superficie de la siguiente función:

22

22 )sin(),(

yxyx

yxfz++

== para 5.75.7 ≤≤− x , 5.75.7 ≤≤− y .

Solución: [X,Y]=meshgrid(-7.5:0.5:7.5,-7.5:0.5:7.5) ; % también es válido [X,Y]=meshgrid(-7.5:0.5:7.5)

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

21

Z = sin(sqrt(X.^2+Y.^2))./ sqrt(X.^2+Y.^2); surf(X,Y,Z)

A continuación representamos la superficie anterior acompañado de sus curvas de nivel [X,Y]=meshgrid(-7.5:0.5:7.5); Z = sin(sqrt(X.^2+Y.^2))./ sqrt(X.^2+Y.^2); surfc(X,Y,Z)

Ahora representamos el gráfico de malla relativo a la superficie anterior utilizando el comando mesh [X,Y]=meshgrid(-7.5:0.5:7.5); Z = sin(sqrt(X.^2+Y.^2))./ sqrt(X.^2+Y.^2); mesh(X,Y,Z)

Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Industrial Profesor: Hermes Pantoja C.

22

El siguiente gráfico muestra las curvas de nivel para la superficie anterior. [X,Y]=meshgrid(-7.5:0.5:7.5); Z = sin(sqrt(X.^2+Y.^2))./ sqrt(X.^2+Y.^2); contour(Z)

Ejercicio: Dada la siguiente función: 22 )2()3(),( −−−== yxyxfz para 42 ≤≤ x ,

31 ≤≤ y . Graficar la superficie de la función y sus curvas de nivel.