´ GRAFICAS CON MATLAB

Roberto Rodr´ ıguez del R´ ıo
Departamento de Matem´tica Aplicada a Universidad Complutense de Madrid

´ INTRODUCCION 1. Manejo elemental de Matlab. 1.1. Interfaz de usuario. Variables. 1.2. Vectores y Matrices. 2. Gr´ficas 2D. a 2.1. Funciones de la forma y = f (x) 2.2. Curvas en param´tricas. e 2.3. Curvas en polares. 2.4. Cambios de coordenadas polares-cartesianas. 3. Gr´ficas 3D. a 3.1. Curvas en el espacio. 3.2. Funciones de la forma z = f (x, y) 3.3. Manipulacin de Gr´ficos 3D. a 3.4. Algunas superficies en el espacio. 3.5. Gr´ficos de funciones complejas. a 4. Gr´ficos estad´ a ısticos. 4.1. Diagramas de sectores. 4.2. Diagramas de Pareto. 4.3. Diagramas de barras. 4.4. Histogramas. 5. Gr´ficas en movimiento: “movies”. a REFERENCIAS

1

´ INTRODUCCION El nombre MatLab es una abreviatura de las palabras MATrix LABoratory. MatLab es un sistema interactivo para c´lculos cient´ a ıficos y de ingenier´ basado en las matrices. Con ´l se pueden resolver complejos ıa e problemas num´ricos sin necesidad de escribir un programa espec´ e ıfico para ello, aunque tambi´n es posible programar. Adem´s, el programa e a MATLAB dispone, dependiendo de la versi´n, de diferentes m´dulos o o (Toolboxes) que permiten resolver problemas espec´ ıficos. Nosotros nos vamos a centrar en la capacidad de MatLab para generar gr´ficos, aunque, antes de llegar hasta este punto, haremos un r´pido a a resumen de los comandos b´sicos del programa. a Debido a que MatLab es un programa de C´lculo Num´rico, la fora e ma de producir gr´ficos es completamente distinta de la de programas a de C´lculo Simb´lico como Derive, Mathematica o Maple. En MatLab, a o nosotros tenemos que calcular mediante comandos adecuados los puntos que despu´s se representar´n en la gr´fica. e a a 1. MANEJO ELEMENTAL DE MATLAB Supongamos que hemos sido capaces de abrir el programa. En Matlab, las ´rdenes se introducen escribi´ndolas una a una a continuaci´n o e o del prompt (>>) que aparece en la ventana del usuario. Veamos en primer lugar, algunas de las operaciones matem´ticas m´s elementales. a a Para sumar dos n´meros: u >>2+2 ans = 4 Despu´s de escribir cada comando hay que pulsar Intro para que e lo ejecute. Si despu´s de esta agotadora primera sesi´n con MatLab e o queremos salir del programa, se puede hacer de dos formas, escribiendo exit a continuaci´n del prompt, o bien con File Exit MATLAB. o El valor que queremos calcular tambi´n se puede asignar a una vae riable. Por ejemplo: x=3^2 x= 9

2

Hay que tener en cuenta que MatLab distingue entre may´sculas y u min´sculas, por lo tanto, se distingue entre la variable X y la variable x. u La notaci´n para las operaciones matem´ticas elementales es la hao a bitual en todos los programas de C´lculo Simb´lico: a o suma resta divisi´n o exponenciaci´n o multiplicaci´n o + / ^ *

Tambi´n est´n definidas algunas de las funciones m´s comunes utilie a a zadas en Matem´ticas. Su sintaxis coincide tambi´n con la que se utiliza a e en la mayor´ de los programas de Matem´ticas, como, por ejemplo, el ıa a programa DERIVE, aunque hay algunas diferencias. Algunas de estas funciones son: sin sinh asin cos cosh acos tan atan exp log log10 sqrt abs seno seno hiperb´lico o arcoseno coseno coseno hiperb´lico o arcocoseno tangente arcotangente exponencial logaritmo neperiano logaritmo decimal ra´ cuadrada ız valor absoluto

Para obtener listas completas de todas las funciones que puede utilizar Matlab, as´ como para saber el uso de cada una de ellas o de cualquier ı comando, siempre se puede acudir al help. Esto se puede hacer de varias formas, poniendo >>helpwin, siendo el propio programa quien nos ofrece la ayuda (como en cualquier otro programa), o poniendo >>helpdesk, con lo que nos ofrece ayuda interactiva, conect´ndose a Internet si este a recurso est´ disponible en nuestro ordenador. a Si conocemos el nombre del comando, pero queremos saber para qu´ sirve, se puede poner: e >>help comando 3

Y nos ofrecer´ ayuda sobre el comando en cuesti´n, si ´ste existe. a o e Por ejemplo, >>help rotate3d ROTATE3D Interactively rotate the view of a 3-D plot. ROTATE3D ON turns on mouse-based 3-D rotation. ROTATE3D OFF turns if off. ROTATE3D by itself toggles the state. See also ZOOM.

Nos ofrece informaci´n sobre el comando rotate3d, comando que o sirve para rotar figuras tridimensionales utilizando el rat´n. o Otra forma de buscar ayuda es utilizar el comando lookfor, por ejemplo, poniendo >>lookfor cos, nos aparecer´ una lista con todos a los comandos que tienen que ver con la funci´n coseno. o 1.1. Interfaz de usuario. Variables Con las flechas del cursor: ↑ y ↓ , se pueden recuperar las ´rdenes o anteriores, sin tener que volver a teclearlas. Esto resulta util en el caso ´ de una equivocaci´n o cuando se quiere repetir un comando con alguna o peque˜a modificaci´n. n o A veces, puede resultar necesario, hasta imprescindible, que el resultado de un c´lculo no aparezca en pantalla. Por ejemplo, si generamos a una matriz de orden muy alto con el objeto de hacer despu´s una gr´fica. e a El hecho de que aparezca la matriz en pantalla puede resultar un poco engorroso. Para conseguir esto se pone un punto y coma al final de la instrucci´n. o Por ejemplo, x=sin(3);1 No aparece ning´n resultado, pero ha realizado el c´lculo, porque si u a escribimos el valor de x, aparecer´ el valor 0.1411. a
1

El argumento de las funciones trigonom´tricas siempre se mide en radianes. e

4

cada vez se obtiene el mismo resultado en las distintas formas num´ricas.Los comandos se pueden ir escribiendo y ejecutando uno a uno. lo u ofrecer´ como tal.. aunque tambi´n u e se puede hacer directamente escribiendo las ´rdenes a continuaci´n de o o >>: Si escribimos: >>x=34/8449.6484 Los resultados num´ricos que ofrece MatLab se pueden visualizar en e diferentes formatos. o >>x=sin(10).8391 z = 0. si un resultado es un n´mero entero. volviendo a escribir >>x. lo har´ con 4 cifras decimales (redondeana a do a la cuarta cifra). Este formato que usa por defecto se puede modificar en el men´ File Preferences Numeric Format. Por ejemplo. Si el comando o la cantidad de comandos es demasiado larga para que aparezca en un unico rengl´n.5440 y = -0. Si no lo es. escribiendo tres puntos suspensivos. Por defecto. lo expresar´ en u a notaci´n cient´ o ıfica. en cuyo caso deben ir separados por comas. e 5 . Si el resultado es un n´mero grande. es decir.. rengl´n a rengl´n. z=tan(10) x = -0. y vamos cambiando el formato como se indica en la siguiente tabla.. y tambi´n se pueden escribir uno a continuaci´n o o e o de otro en una misma l´ ınea. se puede romper la cadena y seguir en el ´ o siguiente rengl´n.y=cos(10).

lo unico que o u ´ cambia es la forma en que lo vemos en la pantalla. a e Las variables pueden contener hasta 19 caracteres. pi: El n´mero π.´ 0 o aproximaci´n racional o formato por defecto No obstante.024144869215292e-003 3f707b9f29b8eae2 0.Formato format long format short e format long e format hex format bank format + format rat format short Variable x 0. Esta variable se modificar´n en cuanto haya un nuevo resula tado. pero a adem´s nos informa del tama˜o y del tipo de variable. se puede utilizar el comando >>clear variable. que produce el mismo resultado que >>whos. En Matlab. En la operaci´n o siguiente se puede recuperar este resultado volviendo a escribir ans. ıa eps: Es el n´mero m´s peque˜o que utiliza el ordenador tal que. si en un momento determinado queremos saber con qu´ variae bles estamos trabajando. se puede escribir >>who. Adem´s hay algunas variables especiales que se utilizan por defecto: a ans: Es la variable que se utiliza en los resultados.00 + 2/497 0. 6 . e la representaci´n interna del n´mero siempre es la misma. en el a n item File con Show Workspace. NaN: Mensaje de error (Not a Number). (No hay una variable para el n´mero e. sea guida por letras. si se pone s´lo >>clear. los caracteres m´s a all´ del 19 se ignoran. pero se u u podr´ definir >>e=exp(1)). Inf: Infinito.0241e-003 4. aparece si hacemos 1/0. O bien. Las variables deben comenzar con una letra.0040 Caracter´ ısticas 16 d´ ıgitos 5 d´ ıgitos m´s exponente a 16 d´ ıgitos m´s exponente a sistema hexadecimal 2 decimales signo +. independientemente del formato que se est´ utilizando. por ejemplo. lo normal es ir asignando valores escalares o matriciales a variables. nos indica lo mismo. 0/0. crea un n´mero en coma flotante mayor que u 1. a o se borrar´n todas las variables que se est´n utilizando actualmente. . y borrar´ la variable que se indique. d´ ıgitos o guiones de subrayado. que nos indica qu´ vae riables est´n en uso. el comando >>whos. u a n cuando se le suma 1.00402414486922 4. Para borrar una variable.

Para activarla basta con teclear >>demo.0000 1. >>sqrt(2) % Ra´z cuadrada de 2 ı calcular´ la ra´ de 2 y se saltar´ el comentario. a ız a Una buena forma de acabar la lectura de esta primera introducci´n o ser´ la de echar un vistazo a la demo que viene incorporada con el proıa grama. el menor y el mayor de los n´meros reales utilizables.5000 3. Veamos c´mo se introducen y c´mo se pueden hacer o o algunas de las operaciones elementales con ellos. Exactamente el mismo resultado lo conseguir´ ıamos con el comando linspace 7 . aparecer´ una ventana a en la que se pueden ir viendo algunas de las capacidades del programa. o si ponemos.5000 2. u Poniendo el s´ ımbolo % se consigue que no se ejecute lo que venga a continuaci´n.0000 2.5:3 x = 1. 1. Otra forma de crear vectores es la siguiente: >> x=1:0. Vectores y matrices Los vectores y las matrices son los elementos b´sicos con los que a trabaja Matlab.realmin.5 unidades.0000 que genera un vector que va desde 1 hasta 10 con un paso de 0. VECTORES. Por ejemplo. o bien se calcula el transpuesto de un vector fila con >>x’. entre corchetes: >> x=[1 2 3] x = 1 2 3 Si queremos definir un vector columna. realmax: Son.2. separadas por espacios o por comas. Un vector se puede definir introduciendo sus coordenadas. respectivamente. se suele utilizar para escribir comentarios aclaratorios en l´ ıneas de comandos de manera que no afecten a su ejecuci´n. se separan las filas por puntos y comas. en el mismo rengl´n. sino que se interprete como un o o comentario.

1. 2 0 0.5) que produce 5 n´meros igualmente espaciados entre 1 y 3.>>x=linspace(1. a a MATRICES.*b c = 2 -6 15 obtenemos el producto de los elementos del primero y del segundo vector elemento a elemento. Para introducir una matriz. 6 5 4.^2.3.b=[2 -3 5]. u PRODUCTO ESCALAR. 3 4 6. Consideremos los dos vectores siguientes: >>a=[1 2 3]. 8 . -2 3 4]. Para obtener el valor del producto escalar >>sum(c) ans = 11 El producto de dos vectores o dos matrices elemento a elemento ser´ muy importante cuando queramos representar gr´ficas de funciones. Si los multiplicamos de la forma c=a.:) e c) A^2 y A. Definimos dos matrices 3 × 3 >>A=[1 1 2.3) o por ejemplo >>A(1. 9 8 7] A = 3 2 1 6 5 4 9 8 7 Ejercicio 1. Despu´s de definida la matriz.1) y tambi´n A(2. ¿En qu´ se diferencian estos dos comandos? e Veamos algunas operaciones elementales con matrices. se separa cada fila con un punto y coma A=[3 2 1. 2 1 0].2) b) A(:.B=[-1 2 0. probar los siguientes coe mandos e intentar descubrir para qu´ sirven: e a) >>A(2.

En MatLab hay varios comandos que sirven para definir con gran facilidad matrices de tipos particulares.5000 -3.0000 -0. Algunas de estas funciones son las siguientes: eye(n).5000 0 -0.Para sumarlas >>C=A+B C = 0 5 0 3 4 4 2 6 4 Para multiplicarlas >>D=A*B D = -3 -7 0 8 24 4 8 24 0 Para elevar una matriz a una potencia >>A^3 ans = 45 162 43 44 157 39 58 204 46 Para calcular su determinante >>det(A) ans = -4 Para calcular su inversa.2500 MATRICES PREDEFINIDAS.2500 -0. si existe >>inv(A) ans = 1.5000 1.0000 1. matriz unidad de tama˜o (n × n) n 9 .2500 0.

n).n). matriz de unos (n × n) ones(m. crea una matriz en forma de cuadrado m´gico de taa ma˜o n × n n ´ 2.d2. genera un vector con n valores igualmente espaciados entre x1 y x2 logspace(d1. Por ejemplo. queremos dibujar la gr´fica de la funci´n o a o y = sen(x): Primero creamos una tabla de valores para x >>x=0:pi/100:2*pi. matriz de n´meros aleatorios (n×n). de tama˜o m × n n randn(n). lo mismo. pero de orden (m × n) linspace(x1. Funciones de la forma y = f (x) Para hacer gr´ficas de funciones de una variable con MatLab.1. lo mismo. Otra forma de conseguir el mismo resultado ser´ ıa utilizar el comando >>x=linspace(0.x2. genera un vector con n valores espaciados logar´ ıtmicamente entre 10d1 y 10d2 rand(n). Ahora calculamos los valores de y >> y = sin(x). N (0. matriz de ceros de tama˜o (m × n) n zeros(n).n).zeros(m. pria mero tenemos que crear una tabla de valores de la variable para despu´s e dibujar la funci´n. 1) magic(n). lo mismo. Con este comando hemos formado una tabla (el vector x) con 200 valores entre 0 y 2 ∗ π. GRAFICAS 2D 2. distribuidos u uniformemente (n × n) rand(m. distribuidos seg´n u u la normal estandar.n). pero de orden (n × n) ones(n).n).200). y por ultimo la dibujamos (ver figura 1) ´ 10 .2*pi. matriz de n´meros aleatorios entre 0 y 1.

*exp(-x.y) El aspecto de la gr´fica se puede modificar utilizando algunos coa mandos: 11 .6 0. a >>plot(x.1 0.4 −0. como u en este caso. se escribe el comando para que ejecute el dibujo (fi´ gura 2. e Veamos un ejemplo algo m´s complicado. Queremos dibujar ahora a 2 la gr´fica de la funci´n y = xe−x . (¿Por qu´ hay que poner los puntos antes de las operaciones?) e Y por ultimo. 2π].) >>plot(x.01. 3] con un a paso de longitud 0.6 −0.8 −1 0 1 2 3 4 5 6 7 Figura 1. Definimos la funci´n o >>y=x. no se aprecian los v´rtices.y) Realmente lo que hemos hecho es dibujar 200 puntos de la funci´n en o el intervalo [0. que vamos a dibujar la gr´fica en el intervalo [−3. a o Definimos los valores para los que queremos hacer la gr´fica a >>x=-3:.^2).8 0. Gr´fica de y = sen(x).4 0. Si el n´mero de puntos es lo suficientemente grande.2 0 −0. Es decir.01:3.2 −0. y posteriormente el programa los ha unido mediante segmentos.

2 −0. hacer >>help plot.4 −0.3 0. −1 ≤ x ≤ 1.1 0 −0.3 0. Para consultar todas las posibilidades. el comando a >>plot(x.1 −0.4 0.5 0. Gr´fica de y = xe−x con cuadr´ a ıcula. Con el comando >>axis([-2 2 -1 1]).2 −0. El comando plot ofrece m´ltiples posibilidades de cou lor y forma de trazo de la gr´fica. Por ejemplo. Los ejes que aparecen por defecto en una gr´fica tambi´n se a e pueden modificar.5 0. a o Con >>axis square. Gr´fica de y = xe−x .3 −0.Ejes. Para desactivar la cuadr´ ıcula habr´ que a escribir >>grid off.5 −3 −2 −1 0 1 2 3 Figura 2. Si queremos que aparezca una cuadr´ ıcula sobre el dibujo. .1 −0. a 0.y.5 −3 2 −2 −1 0 1 2 3 Figura 3.Cuadr´ ıcula.4 −0. El aspecto del dibujo ser´ ıa ahora como el de la figura 3. conseguiremos que la figura aparezca en un cua12 .’r*’).4 0. nos dibujar´ la gr´fica en color rojo y con asteıa a riscos. utilizaremos el comando >>grid on.Color y trazo. 2 .3 −0.2 0. .2 0. conseguiremos que la gr´fica aparezca en la regi´n −2 ≤ x ≤ 2.0.1 0 −0.

2 0 −0. Gr´ficas de y = sen(x) y de y = sen(x + a π ). se mantendr´ la anterior. Y ahora las dibujamos 1 0.’g--’). en principio la figura anterior es sustia tuida por la nueva.grid on 13 . >>z=sin(x+pi/3).300). y generamos una nueva gr´fica. a . >>y=sin(x). utilizando el comando >>hold on. Con el comando >>axis equal. Se puede agrandar la figura o alguna zona seleccionada de la figura. a por ejemplo. sin cambiar el rango de los ejes. Sin embargo.8 0.6 0. . Otra forma de hacerlo es dibujar desde el principio dos gr´ficas juntas.Zoom.2 −0. vamos a dibujar las gr´ficas de las funciones y = sen(x) e a π y = sen(x + ) en la misma figura (4): 3 Generamos las tablas. o habr´ que escribir >>zoom off.4 0.6 −0. Se pueden dibujar tantas gr´fia a cas como se quieran en una misma figura. >>x=linspace(0. Para desactivar el comando anterior: >>hold off.z.drado.2*pi.y.8 −1 0 1 2 3 4 5 6 7 Figura 4. con todas sus propiedades.4 −0.x.’r-’. 3 >>plot(x. Utilizando el comando >>zoom on. conseguiremos que los rangos de los ejes sean iguales.Varias gr´ficas en la misma figura. y se podr´ dibujar a a encima una nueva. Hay que abrir la figura y utilizar los botones izquierdo y derecho del rat´n. Si ya tenemos dibujada una. Para desactivarlo.

6 1. con trazo discontinuo).^2). se abrir´ la figura y podremos indicar a con el rat´n el lugar donde ha de ir el texto. o si queremos a˜adir alguna recta o una poligon nal al dibujo.y]=ginput(N) 14 .Etiquetado de gr´ficas.2 0 −3 −2 −1 0 Eje de Abscisas 1 2 3 Figura 5. Escribiendo >>[x. con trazo continuo. se puede utilizar el comando ginput.2 1 0.500).z=2*exp(-x.8 0.’-’. Con u el comando >>gtext(’texto’).4 0. Ve´moslo con un ejemplo (ver figura 5): a a >>x=linspace(-3. Una vez que se ha realizao a do una gr´fica. a Adem´s de los comandos descritos antes para etiquetar gr´ficas. ’2*exp(-x^2)’) % Pone una leyenda Campanas de Gauss exp(−x2) 2 2*exp(−x ) 2 1.^2). .x. .y.8 1. Existen diversas posibilidades para el etia quetado de las gr´ficas. Para conseguir esto.y=exp(-x.’--’) % dibujamos dos funciones >>title(’Campanas de Gauss’) >>xlabel(’Eje de Abscisas’) % Etiqueta el eje horizontal >>ylabel(’Eje de Ordenadas’) % Etiqueta el eje vertical >>legend(’exp(-x^2)’.(La primera en color rojo.3. que seleccionaremos con un o clic.Obtenci´n de puntos desde el gr´fico. Etiquetado de gr´ficas. exisa a te la posibilidad de poner un texto en alg´n otro lugar de la figura.4 Eje de Ordenadas 1. >>plot(x. el lugar aproximado en el que est´n a los m´ximos y m´ a ınimos.6 0. podemos necesitar conocer las coordenadas de algunos a puntos de la misma. y la segunda en verde. Por ejemplo.z.

>>(2<x)&(x<=6) ans = 0 0 1 1 1 15 1 0 . y]. Creamos un vector con los n´meros del 1 al 7 u >>x=1:7 x = 1 2 3 4 5 6 7 Y ahora escribimos >>x>4 ans = 0 0 0 0 1 1 1 Observamos que donde no se cumple la condici´n. Las coordenadas de esos puntos quedar´n almacenadas en a las variables [x. necesitamos a utilizar lo que vamos a denominar ´ ındices o variables l´gicas.Donde N es el n´mero de puntos cuyas coordenadas queremos obu tener. aparece 1. si escribimos ı. Despu´s de ejecutado el comando habr´ que pulsar con el bot´n e a o izquierdo del rat´n sobre el dibujo tantas veces como puntos hayamos o especificado. Veamos o un ejemplo. aparece 0 y donde o se cumple. sobre el mismo x de antes. Para dibujar gr´ficas de funciones definidas a trozos. Para crear estas variables l´gicas se pueden utilizar o los siguientes operadores relacionales: < > <= >= == ∼= menor que mayor que menor o igual mayor o igual igual distinto Estos operadores se pueden combinar utilizando los operadores l´gio cos: & | ∼ y o no As´ por ejemplo.

^2). multiplicando cada trozo por el ´ o ındice l´gico que describa el lugar en el que queremos dibujarlo.title(’Funci´n definida a trozos’) o Y obtenemos la gr´fica de la figura 6.5 3 Figura 6. una tabla de valores adecuada para que aparezcan los aspectos m´s representativos de la funci´n: a o 16 .5 0 −0.*((0<=x)&(x<1))+(-x+2). Una funci´n definida a trozos.5 3 2. Dibujar las gr´ficas de las siguientes funciones eligiena do.3.3000).5 0 0.y. o Ejercicio 2.’).1. a 4 3. no aparecer´n las discontinuidades a >>plot(x.5 −1 −0.grid on. Resulta conveniente hacerlo con puntos. Y ahora definimos la funci´n.5 2 1. Y ahora la dibujamos. asteriscos o cruces porque.’.5 1 1. o >>y=(x.*(1<=x).5 1 0.5 −1 −2 Función definida a trozos −1. Ahora supongamos que queremos   x2  f (x) = 1   −x + 2 representar la funci´n o si x < 0 si 0 ≤ x < 1 si 1 ≤ x Generamos una tabla de valores en el dominio en el que queramos dibujar la funci´n o >>x=linspace(-2. en cada caso. de otra forma.5 2 2.obtenemos unos en los valores que verifican 2 < x ≤ 6.*(x<0)+1.

a) f (x) = x(x2 + 4)2 √ b) f (x) = x − x c) f (x) = log x x x(x − 2) d) f (x) = (x + 1)(x − 2) 1 x e) f (x) = sen f ) f (x) = g) f (x) = x e|x−1| x2 si x < 0 −1 si x ≥ 0  −x si x < −1  h) f (x) = 1 si 0 < x < 2   2 −x si x > 2 √  1 − x si x < −1  i) f (x) = 1 − x2 si −1 < x < 1 √  x − 1 si x > 1 2.1000). Curvas en param´tricas e Veamos ahora c´mo se pueden representar curvas en el plano dadas o en forma param´trica.2.^2-1)).^2+1). 2 t2 + 1 t +1 . >>t=linspace(-5. es decir.^2+1)) 17 .(2*(t. y(t)) t ∈ [a. de la forma e r(t) = (x(t). b] Empecemos con un ejemplo: queremos dibujar la gr´fica de la curva a r(t) = t(t2 − 1) 2(t2 − 1) .*(t. Y ahora lo podemos dibujar de dos formas distintas: >>plot((t.5./(t.^2-1))./(t. −5 ≤ t ≤ 5 En primer lugar generamos los valores de t en el intervalo indicado.

2*pi.^2-1)). para dibujar los vectores velocidad sobre la curva r(t) = (cos(t).cos(t)).*(t. utilizando el comando quiver.axis square Produce la gr´fica de la figura 8. 18 . Dibujada una curva en param´tricas existe la posibilidad de dibujar e sobre la misma los vectores velocidad. ya que ´ste ser´ el n´mero de vectores a e a u que se dibujen. La velocidad de ejecuci´n o depende del n´mero de puntos que hayamos generado con el comando u linspace. puede que no se aprecie con claridad la gr´fica.-sin(t). sin embargo. Por ejemplo.^2+1)) Los dos comandos producen el mismo resultado. t ∈ [0.5 −1 −1./(t.sin(t)./(t.r’(t)).(2*(t.5 −2 −5 −4 −3 −2 −1 0 1 2 3 4 5 Figura 7. >>quiver(cos(t). 2π] >>t=linspace(0. Curva en param´tricas.5 0 −0. e obtendremos la gr´fica de la figura 7.^2-1)).20).^2+1). a La sintaxis del comando es >>quiver(r(t). la forma de ejecuci´n es diferente.5 1 0. sen(t)) . aparece un o a circulito (el cometa) que va dibujando la curva. la segunda es m´s divertida. Si el n´mero de puntos que se u indica con el comando linspace es demasiado grande. a Y otra forma de hacerlo es utilizar el comando >>comet((t.2 1. El n´mero de u vectores que aparecen en este caso es 20.

− cos(2t) − cos t).5 −1 −0. 2 sen(2t)). 2 sen3 t).1. Vectores velocidad sobre una circunferencia. 2 sen(2t) .2. θ ∈ [θ1 .5 1 0. utilizando el a comando quiver: a)r(t) = (2 cos3 t. c)r(t) = d)r(t) = t π t t t 12( )2 − 9 . Dibujar las curvas en param´tricas siguientes.5 0 0. en los e apartados a) y b).3. θ2 ] 19 .5 −1.5 1 1. 10 10 2. Curvas en polares Una curva en coordenadas polares es la imagen de la funci´n o r = h(θ). g)r(t) = h)r(t) = 2 7t 2 7 t cos( ). −3 ≤ t ≤ 3 3 cos t(cos t + 1). t sen( ) . − cos(3t) .5 −1 −1. 3 2 3 t t− −π ≤ t ≤ π −π ≤ t ≤ π −3π ≤ t ≤ 3π 11 22 sen(3t).5 0 −0. f )r(t) = e sen(2t). (( )2 − 1)16( )2 + 2 π π π −π ≤ t ≤ π −π ≤ t ≤ π −π ≤ t ≤ π . e cos(2t) . dibujar adem´s los vectores velocidad. 2 t 4 t 4 e)r(t) = (sen(2t) + sen t.5 Figura 8. −π ≤ t ≤ π b)r(t) = (3 sen t. Ejercicio 2.

para dibujar la gr´fica de a r = 2 − 4 cos(θ). Curva en polares. Por ejemplo.Un punto de la curva en polares (r0 .pi. es θ0 . Calculamos los valores de r >>r=2-4*cos(tetha). a o medido en sentido positivo. la relaci´n entre las coordenadas polares y las coordeo nadas param´tricas es e x = r cos(θ) y = r sen(θ) Para dibujar una curva en polares con MatLab se utiliza el comando polar. Por lo tanto. −π ≤ θ ≤ π Generamos los valores del ´ngulo tetha a >>tetha=linspace(-pi. Y dibujamos la gr´fica a 20 . θ0 ) tiene distancia al origen r0 y el ´ngulo que forma el vector de posici´n del punto con el eje horizontal.100). 90 120 6 60 4 150 2 30 180 0 210 330 240 270 300 Figura 9.

Los puntos ahora obtenidos se podr´ dibujar utilizando el comando plot. d) r = cos(8θ). c) r = sen(6θ). −π ≤ θ ≤ π b) r = 3 − 6 sen(θ).4. e) r = 5 cos(2θ). Cambios de coordenadas polares-cartesianas Hay dos comandos que permiten hacer cambios de coordenadas. −π ≤ θ ≤ π −π ≤ θ ≤ π −π ≤ θ ≤ π −π ≤ θ ≤ π 2. GRAFICAS 3D En esta secci´n vamos a ver c´mo se pueden dibujar con MatLab o o gr´ficos de curvas en el espacio en forma param´trica. Esto es. dadas a en coordenadas polares: a) r = 7 − 7 sen(θ). gr´ficas de funa e a ciones de dos variables z = f (x.>>polar(tetha.3.r) Ejercicio 2. 21 . En los ejemplos del ejercicio anterior. y algunos ejemplos de superficies parametrizadas. y).r]=cart2pol(x. habr´ que utilizar ıa >>[theta. utilizar el comando pol2cart para cambiar las coordenadas polares obtenidas a coordenadas cartesianas.y). suponiendo que los puntos en coordenadas polares est´n e previamente almacenados en las variables theta y r. Usar despu´s el comando plot para obtener las gr´ficas e a en las nuevas coordenadas.y]=pol2cart(theta. Dibujar las gr´ficas de las siguientes funciones. Si queremos cambiar de coordenadas polares a coordenadas cartesianas hay que utilizar el comando >>[x. Ejercicio 2. ıan Para hacer el cambio de coordenadas cartesianas a coordenadas polares.r). ´ 3.4.

con la diferencia de que aqu´ se utilizan los comandos plot3 o comet3.5 0 1 Figura 10.5 0.t). queremos dibujar la h´lice e r(t) = (sen(t).5 −1 −1 −0. >>comet3(sin(t).1.cos(t).5 0 −0. Al o 22 .vector velocidad).2000).8*pi.cos(t). Gr´fica de una h´lice. a 0 ≤ t ≤ 8π 30 25 20 15 10 5 0 1 0. tambi´n ı e existe un comando quiver3 para dibujar vectores velocidad sobre las curvas. Curvas en el espacio Se generan de una manera similar a las curvas en el plano. cos(t).3. que funciona de manera an´loga a como lo hac´ e a ıa el comando comet en las curvas en el plano.grid on con lo que obtendremos la gr´fica de la figura 10. Y ahora podemos utilizar dos comandos: plot3 lo que nos da el dibujo completo >>plot3(sin(t). Por ejemplo. t) y sobre ella los vectores velocidad. Generamos los valores de t: >>t=linspace(0.t) Para dibujar algunos vectores velocidad sobre la curva hay que utilizar el comando quiver3(vector posici´n. a e O tambi´n comet3.

sen t. ) − 12 ≤ t ≤ 19. >>quiver3(sin(t). ) − 10 ≤ t ≤ 4.^2). en primer lugar hay que generar tablas de valores para las variables x e y. ahora lo que tenemos que hacer es generar un mallado sobre un rect´ngulo del plano a XY . a >>t=linspace(0. habr´ que o a efectuar los pasos siguientes: Generamos el mallado >>[x.30). 3. 2 cos2 (t). 6 6 36 t t t d)r(t) = (e 4 sen(2t).5:2).8*pi. al a igual que para funciones de una variable.cos(t). 4 t t t c)r(t) = ( cos t.t. y).8.2. Por ejemplo.^2-y.igual que con el comando quiver. e 4 cos(2t). −2 ≤ y ≤ 2}. 4 t e)r(t) = (sen(2t) + sen(t). 2 cos2 (t).-sin(t). tambi´n conviene volver a generar e los valores de t de manera que no sean demasiados para que se pueda apreciar mejor la gr´fica. − cos(2t) − cos(t). sen(2t)) − π ≤ t ≤ π. ) − 9 ≤ t ≤ 10. Sustituimos en la funci´n para calcular los valores de z o >>z=exp(-x. y) Para dibujar gr´ficos de funciones de dos variables z = f (x. Por ejemplo.cos(t). Funciones de la forma z = f (x. si queremos dibujar la gr´fica de la funci´n a o z = e−(x 2 +y 2 ) en la regi´n del plano D = {(x.1. t) − 4 ≤ t ≤ 3. 23 . 1 sen t) − π ≤ t ≤ π.y]=meshgrid(-2:. 2 sen3 (t). Representar las curvas siguientes y representar en gr´fia ca aparte algunos vectores velocidad de la curva en los intervalos indicados: a)r(t) = (2 cos3 (t).1) Ejercicio 3. y)/−2 ≤ x ≤ 2. Para eso se utiliza el comando meshgrid. 6 f )r(t) = (cos(3t). b)r(t) = (cos(t). en realidad.

y. SOMBRAS Y COLORES. 1] × [0. Manipulaci´n de gr´ficos 3D o a MALLADO.z) >>mesh(x. si queremos hacer un mallado para la regi´n [0. y 0:. ´ste se aplica a las dos o e variables. La secuencia 0:.y.y.5 0 2 0 −2 −2 0 2 0 2 0 −2 −2 0 2 Comando surf Comando surf con shading flat 1 1 0.5 0. a 3.5 0. 3]. Gr´ficas 3D.1:3 o la de la variable y. El comando meshgrid se puede utilizar tambi´n para e generar mallados de regiones rectangulares.z) >>surf(x.1:3). Si s´lo se utiliza un intervalo.1:1 describe la variaci´n de la variable x.0:. tendremos que escribir o >>[x.y]=meshgrid(0:.3. Para conseguir efectos de sombreados y colores diferentes se pueden consultar todas las posibilidades de los 24 . Por ejemplo.1:1.5 0 2 0 −2 −2 0 2 0 2 0 −2 −2 0 2 Figura 11.shading flat %efecto de sombreado distinto Comando plot3 Comando mesh 1 1 0.y.z).Y ahora podemos dibujar el gr´fico con alguno de los siguientes coa mandos que producen los dibujos mostrados en la figura 11: >>plot3(x. Tambi´n se puede utilizar dentro de meshgrid el comando e linspace.z) >>surf(x.

975 0. >>surf(x.945 Figura 12. e a Para generar la gr´fica de la figura 12 ha sido utilizada la siguiente a secuencia de comandos: >>[x.y. los puntos m´s altos corresponden a los a colores m´s calientes y los puntos m´s bajos de la gr´fica est´n coloreados a a a a con colores fr´ ıos.95 0. rotarla de manera interactiva en tres dimensiones./(x. esto se a consigue con el comando colorbar (despu´s de dibujada la gr´fica).50)).5 0 −0.^2+1)). utilizando el rat´n sobre la a o figura.985 0. Las longitudes de los ejes coordenados tambi´n se pueden e modificar con el comando >>axes([xmin xmax ymin ymax zmin zmax]) Los comandos grid on y axis square tambi´n funcionan en este e tipo de gr´ficos.98 0.comandos colormap y shading.95 0.*y).955 0.1. Gr´fica 3D con escala de colores. >>z=cos((x.97 0. a ´ ´ ROTACION DE GRAFICAS. a Como se puede observar. Otro comando interesante en las gr´ficas 3D es rotate3d.99 0.995 1 0.99 0.96 0.98 0.5 0.96 0. que nos permite.97 0. Algo que resulta tambi´n interesante.5 −1 −1 −0.colorbar 0.^2+y.y]=meshgrid(linspace(-1. 25 .z). e es a˜adir una escala de colores al dibujo que nos permite conocer las n alturas (coordenada z) de los diferentes puntos de la gr´fica.94 1 0. EJES.5 0 1 0.965 0.

Vamos a representar la gr´fica de la funci´n a o z = x2 + y 2 .colorbar Esta ultima orden dibuja un mapa de colores por niveles. por ejemplo. Para hacer esto: Primero dibujamos las curvas de nivel con >>contour(x. la orden ´ colorbar hace aparecer una escala de valores seg´n el color.y. Hay varias formas de obtenerlas usando MatLab.^2+y.10) Despu´s guardamos la informaci´n en una variable. podemos dibujar la gr´fica utilizando alguno de los comandos a descritos anteriormente. y). para calcular los valores de z. 14 y 15): >>contour(x. las curvas o sobre el plano XY .10) % dibuja 10 curvas de nivel >>contour3(x. Sustituimos en la funci´n.CURVAS DE NIVEL. pero en el espacio >>pcolor(x. Dada una funci´n z = f (x.30).z. e o >>cs=contour(x.y]=meshgrid(-2:. o >>z=x. dibujando algunas curvas de nivel. donde k es una constante se llaman curvas de nivel. es decir.10) % lo mismo. o Si se usa el comando contour.z. como se describi´ antes. Creamos el mallado. Ahora.y. u nos indica el valor de la variable z. determinadas por f (x. A continuaci´n.1:2). despu´s se pueden etiquetar las curvas e con los valores correspondientes de la z.y.z. tenemos dos opciones: o 26 .y.z.^2. y) = k. Las curvas de nivel se pueden hacer utilizando alguno de los comandos siguientes (ver figuras 13.z).y. >>[x.

Curvas de nivel en el espacio.5 −1 −1.’manual’) % nos permite elegirlas con el rat´n o Por otra parte. Curvas de nivel sobre el plano XY .5 0 0. a o Ejercicio 3. dibuja la gr´fica. 8 7 6 5 4 3 2 1 0 2 1 0 −1 −2 −2 −1 1 0 2 Figura 14.5 0 −0.5 2 Figura 13.z).y.5 1 1.2. Dibujar tambi´n algunas curvas de nivel: e 1 a)z = 9 + x2 + y 2 27 . el comando >>meshc(x. utilizando alguno de los comandos descritos anteriormente.2 1.5 −1 −0. Representar las gr´ficas de las siguientes funciones de a 2 variables. >>clabel(cs) % etiqueta algunas aleatoriamente O bien >>clabel(cs. y por a debajo.5 −2 −2 −1. las curvas de nivel (algunas veces ser´ necesario modificar los a ejes para que la gr´fica de la funci´n no tape a las curvas de nivel).5 1 0.

dibujar varias esferas con diferentes valores de n. Gr´fica 3D con escala de colores. u Cuanto mayor sea n. mayor ser´ la aproximaci´n a la curvatura real de a o la esfera (de radio 1. en particular. 28 .4.5 2 0 Figura 15. centrada en el origen.3. Utilizando el comando sphere. 4.axis square. etc. a Ejercicio 3.title(’ESFERA’) Obtenemos la gr´fica de la figura 16.) Poniendo s´lo >>sphere. por defecto a a >>sphere.5 0 0. Probar.2 8 1. el o valor que tomar´ n ser´ 20. donde n es el n´mero de puntos en los que queda dividido el ecuador de la esfera. Se genera utilizando el comando >>sphere(n). ESFERA.5 −1 −0. Algunas superficies en el espacio Hay varios comandos en MatLab que permiten generar las gr´ficas a 3 (superficies que no son funciones.5 7 1 6 0.5 5 0 4 −0. a b)z = − |xy| 2 cos( x +y ) 4 c)z = 3 + x2 + y 2 d)z = y2 − 3|x| 5 2 +y 2 ) 2 e)z = e−(x 3.5 1 −2 −2 −1. 3.5 3 −1 2 −1.5 1 1.) Estos comandos de superficies en R son funciones que ya vienen programadas. los valores 2.

5 −1 1 0. podemos utilizar como o √ generatriz la funci´n r(t) = t. a o donde la generatriz es una funci´n definida por R(t). pero guardando la informaci´n en tres variables o >>[x.z’). El comando >>cylinder(R. con t ∈ [a. b].5 0 1 Figura 16.y’.5 0. a CILINDRO. Ejercicio 3. 2] o 29 . si usamos s´lo >>cylinder(R). Como en el caso de la esfera. De esta forma. por defecto.4.n) genera autom´ticaa mente un cilindro de revoluci´n de radio R.y. Para dibujar las normales en el sentido opuesto habr´ que poner surfnorm(x’. si o queremos dibujar un paraboloide de revoluci´n. puede ser utilizado para obtener las gr´ficas de diferentes tipos de superficies de revoluci´n.z]=sphere(n). Por ejemplo. Esfera de radio 1 centrada en el origen. donde n es el n´mero de o u puntos de la circunferencia de la base del cilindro.5 0 −0. con t ∈ [0. y).5 −1 −1 −0.ESFERA 1 0. el n´mero n es.y. Vectores Normales a una superficie Dibujar los vectores normales a la superficie de una esfera siguiendo los siguientes pasos: Dibujar una esfera utilizando lo descrito anteriormente.z) Este comando tambi´n se puede utilizar para dibujar los vectores nore males en superficies de funciones de la forma z = f (x. Utilizar el comando >>surfnorm(x. 20. o u Lo realmente interesante de este comando es que tambi´n admite e radios variables R(t).5 0 −0.

5 −1.4 0. el eje 30 .5 1 1.20). Real(z). Dibujar las superficies generadas por >>cylinder(R(t).5 Figura 17.30).5 0 −0. 2π] d) R(t) = et . t ∈ [−1. t ∈ [−2π.>>t=linspace(0.5 0 0.6 0.) 1 0. t ∈ [−3.5 −1 −0. e n o 3. (No conviene poner demaa siados puntos en linspace para que se pueda apreciar bien el dibujo.5 −1 −1.r=sqrt(t). en cada uno de los siguientes casos: a) R(t) = t. 3] ´ ´ MAS SUPERFICIES DE REVOLUCION. o Ejercicio 3. Gr´ficos de funciones complejas a El comando cplxmap permite representar gr´ficas de funciones coma plejas de variable compleja en el siguiente sentido: Sea la funci´n compleja de variable compleja o f : C −→ C z −→ w = f (z) El comando >>cplxmap(z.5. El comando >>makevase hace aparecer una ventana interactiva que permite dibujar gr´ficas de superficies de revoluci´n en las que la generatriz es una a o poligonal cuyos v´rtices se se˜alan con el rat´n sobre el propio dibujo. t ∈ [−1. Paraboloide de revoluci´n generado con cylinder.cylinder(r) Y obtendremos la gr´fica de la figura 17.8 0.5. 1] b) R(t) = t2 . 1] c) R(t) = 2 + sen(t).5 1 0.f(z)) dibuja una gr´fica tridimensional a en la que el eje X es la parte real de la variable.2 0 1. es decir.2.

Y es la parte imaginaria de la variable. El comando >>cplxroot(2) generar´ la superficie de la figura 19. Esto se consigue utilizando previamente el comando >>cplxgrid(n). la funci´n g(z) = z 1/3 es una funo o ci´n trivaluada. u Por ejemplo. ıa Para obtener m´s informaci´n. Ese ´ to no es as´ para cualquier funci´n compleja. Gr´fica de f (z) = z 2 . es decir. cada z puede producir tres valores distintos para g(z).5 −1 −1 −0. su imagen f (z). 31 .^2) obtenemos la gr´fica de la funci´n f (z) = z 2 (figura 18) a o 1 0. Re(f (z)). con los comandos >>z=cplxgrid(12).5 0 −0. y o as´ sucesivamente.z. Im(z) y el eje Z es la parte real de la imagen de la funci´n. >>cplxmap(z.5 0 −0. o La variable z va a pertenecer siempre al dominio constituido por el disco unidad centrado en el origen y las coordenadas de los puntos deben estar en forma polar. es unica.5 −1 1 0. a Obs´rvese que para cada valor de z.5 0. la funci´n ı o o f (z) = z 1/2 es una funci´n bivaluada. que contienen sendas demostraciones de gr´fia cas de funciones complejas. Por ejemplo. Para obtener las gr´ficas de estas funciones especiaı a les. es decir. donde n es el n´mero entero positivo. se pueden ejecutar los comandos a o cplxdemo y grafcplx.5 0 1 Figura 18. a donde n es el ´ ındice de la ra´ ız. que se denominan Superficies de Riemann. MatLab dispone de un comando que las dibuja autom´ticamente. es el comando cplxroot(n).

5 0. que son: diagramas de Sectores.5 0 −0.5 0 −0. Gr´fica de f (z) = z 1/2 . Diagramas de sectores Resultan utiles para representar datos de tipo cualitativo. 4.1 0.5 −1 −1 −0. el diagrama de sectores permite compararlas en un c´ ırculo con sectores cuyo ´ngulo es directamente proporcional al a porcentaje de cada opci´n. como puede ser el programa STATGRAPHICS.5 0 1 Figura 19. a ´ 4. as´ como comandos para generar bastantes gr´ficos. dispone de algunos comandos que nos permiten calcular algunos de los par´metros estad´ a ısticos b´sicos. o Ejemplo 4. resulta conveniente utilizar uno u otro tipo de gr´fico.1 Los resultados de las elecciones generales del 12 de marzo de 2000 al Congreso de los Diputados fueron los siguientes: 2 No al menos como programas especializados en c´lculos estad´ a ısticos. diagramas de Pareto. a ı a Dependiendo del tipo de datos estad´ ısticos de los que dispongamos. diagramas de barras e histogramas.1. 32 . en los que ´ tenemos varias opciones.5 −1 1 0. GRAFICOS ESTAD´ ISTICOS A pesar de que no se puede decir que MatLab sea el programa ideal para hacer c´lculos relacionados con la Estad´ a ıstica2 . Vamos a ir viendo a los que se pueden hacer con MatLab.

’IU’. Con el comando pie3 se obtiene tambi´n un diagrama de sectores. procedemos como sigue. MatLab calcula autom´ticamente los a a porcentajes correspondientes y los pone junto a su sector >>pie(x). dibujamos el diagrama.’Otros’) (Nota: si la leyenda no sale en el lugar deseado.’PNV’.’CiU’. Diagrama de sectores.legend(’PP’. e pero en versi´n tridimensional (ver figura 21). o 33 . se puede mover utilizando el bot´n izquierdo del rat´n y coloc´ndola en el lugar adecuao o a do.) PP PSOE CiU IU PNV Otros 3% 2% 2% 4% 52% 36% Figura 20. Se puede poner una leyenda que nos indique qu´ sector corresponde a cada partido pol´ e ıtico.Formaci´n Pol´ o ıtica Partido Popular Partido Socialista Obrero Espa˜ol n Converg`ncia i Uni´ e o Izquierda Unida Partido Nacionalista Vasco Otros Total N´ mero de Esca˜ os u n 183 124 15 8 7 12 350 Para dibujar un diagrama de sectores de los resultados de las elecciones. Introducimos los datos en un vector >>x=[183 125 15 8 7 12] x = 183 125 15 8 7 12 Y ahora. Como se puede observar en el gr´fico (figura 20). ’PSOE’.

los sectores que queremos separar y los que no. respectivamente. en el eje vertical derecho aparece una escala de porcentajes.2. Diagrama de sectores 3D. Por ejemplo. pero ligeramente modificado: Formaci´n Pol´ o ıtica Partido Popular Partido Socialista Obrero Espa˜ol n Otros Total N´ mero de Esca˜ os u n 183 124 42 350 El diagrama de Pareto que produce MatLab constar´ de barras cuyas a alturas son el n´mero de esca˜os. a Para generarlo. como para el comando pie3 existe la posibilidad de separar uno o m´s sectores para destacarlos con respecto a de los dem´s. Diagramas de Pareto Vamos a utilizar el ejemplo 4.[1 1 0 0 0 0]) El vector que se pone a continuaci´n de x debe tener la misma lono gitud que el x. n Adem´s. si queremos separar los sectores correspona dientes a los dos primeros datos >>pie3(x. 4. los unos y los ceros indican. escribimos >>x=[183 125 42] x = 183 125 42 34 . un pol´ ıgono con las frecuencias acumuladas de los esca˜os. PP PSOE CiU IU PNV Otros 3% 2% 2% 4% 36% 52% Figura 21. ordenadas en forma decreciente y sobre u n las barras.1.Tanto para el comando pie.

3.) >>subplot(2.2.>>pareto(x). Diagrama de Pareto.2.bar3(x). algunas de las barras correspondientes ıan a los partidos pol´ ıticos que hab´ obtenido un n´mero bajo de esca˜os ıan u n no habr´ aparecido.title(’Barras Horizontales’) >>subplot(2. puede no n o aparecer en el dibujo. (Usando el comando subplot podemos conseguir que a aparezcan todos en la misma figura. si hubi´semos utilizado los datos tal y e como aparec´ en el ejemplo 4.barh(x).bar(x). Este comando tiene un peque˜o problema y es que si la frecuencia n de uno de los datos es peque˜a en comparaci´n con las otras. Por ejemplo.1.2. Supongamos que queremos representar los siguientes datos en un diagrama de barras: Introducimos los datos en un vector >>x=[10 2 3 5 18 20 15 ].4).3). a 350 100% 300 86% 250 Número de Escaños 71% 200 57% 150 43% 100 29% 50 14% 0 1 2 3 0% Figura 22.bar3h(x).title(’Barras Horizontales 3D’) 35 .title(’Barras Verticales 3D’) >>subplot(2.ylabel(’N´mero de Esca~os’) u n Y obtenemos el gr´fico de la figura 22.title(’Barras Verticales’) >>subplot(2.2. ıan 4. Y ahora usamos los comandos bar. Diagramas de barras Existen varias posibilidades para representar diagramas de barras. barh. bar3 y bar3h para generar los gr´ficos.1).2).

1) u >>x=randn(1000. las ´rdenes anteriores o los dibujan tambi´n agrupados de manera que resulte f´cil compararlos. con la orden bar3(x. Ahora. tambi´n se pueden agrupar en 3D. Obtenemos los gr´ficos de la figura 23.20 15 10 5 0 Barras Verticales 7 6 5 4 3 2 1 1 2 3 4 5 6 7 0 5 Barras Horizontales 10 15 20 Barras Verticales 3D 20 15 10 5 0 1 2 3 Barras Horizontales 3D 7 6 5 4 3 2 1 4 5 0 6 7 10 20 Figura 23.12 10 7]. en este caso. Por ejemplo. 4 2 7. Si queremos que 36 . e a Veamos el siguiente ejemplo: >>x=[1 2 3. a Hay que observar que las gr´ficas 3D se pueden modificar utilizando a el comando rotate3d descrito en las secciones anteriores.1).4. a Y por ultimo. obtenemos los gr´ficos de la figura 24. 10 9 8. de forma diferen´ e te a la anterior.4 3 6. Los datos pueden estar agrupados.’group’) y se puede hacer que aparezcan las barras apiladas con bar3(x. generamos 1000 n´meros aleatorios siguiendo la normal N (0. 4. utilizando los mismos comandos que antes. Histogramas Para generar histogramas se utiliza el comando hist.’stack’) (ver figura 25). Diagramas de barras. obtenemos (figura 26) un histograma en el que los datos aparecen agrupados en 10 intervalos. Con la orden hist(x).

1000). con File New M-File. Se abre un editor en el que escribiremos lo siguiente. a a donde N es el n´mero de intervalos. llaa n mados “movies”. producen la sensaci´n de movio miento.N). n=50. % n numero de fotogramas 37 . aparezcan m´s o menos intervalos.12 10 8 6 4 2 0 1 2 3 4 5 5 4 3 2 1 0 5 10 15 15 10 5 0 1 2 5 4 3 2 1 3 0 5 10 20 4 Figura 24. Estos fotogramas. u ´ 5. Veamos en primer lugar el programa: En primer lugar. GRAFICAS EN MOVIMIENTO: “MOVIES” Entre las m´ltiples posibilidades del programa MatLab est´ la de u a producir gr´ficas en movimiento. Veamos un ejemplo: queremos dibujar la gr´fica de la curva y = a λ sin(x) para varios valores de λ contenidos en el intervalo [−1. Se trata de peque˜os programas. una vez visualizados. habr´ que indicarlo con >>hist(x. Diagramas de barras con datos agrupados.2*pi. abrimos el editor de programas de MatLab. que elaboran una “pel´ ıcula”fotograma a fotograma. 1]. Ejemplo 1 function cuerda % movie cuerda x=linspace(0.

A medida que j var´ de 1 a ıa 38 .2 1. basta con escribir el nombre del programa.y. Datos agrupados en 3D y barras apiladas.2]) F(j) = getframe. habr´ que a cambiar la primera l´ ınea del programa. un cono junto de instrucciones. end Es lo que en programaci´n se deonomina un bucle. Si se pone otro nombre. y=sin(t)*sin(x).axis([0 2*pi -1.2 1.’*’). plot(x. plot(x. Para ejecutarlo. comandos gr´ficos que se ejecutan a varias veces.y.12 10 8 6 4 2 0 1 2 3 4 5 30 25 20 15 10 5 0 1 2 3 4 5 Figura 25. dependiendo del valor de j. end movie(F. cuerda. en este caso. Work) con el nombre cuerda. y=sin(t)*sin(x). for j = 1:n t=(2*pi/49)*(j-1).2]) F(j) = getframe. El n´cleo del programa lo constituyen el conjunto de comandos: u for j = 1:n t=(2*pi/49)*(j-1). en la l´ ınea de comandos.’*’).axis([0 2*pi -1. esto es.2) % veces que queremos ver la peli A continuaci´n lo guardamos (en el directorio que aparece por deo fecto.

Histograma. 50. axis([-1 1 -1 1]).sin(t)*sin(x). Para ıa. Por ultimo.2) o ´ permite visualizar la pel´ ıcula el n´mero de veces que se le indique. end movie(F. F(j)=getframe.200).’rs’). el comando movie(F. por tanto. plot(cos(x). for j = 1:n t=(pi/29)*(j-1)..5) Ejemplo 3 function colores % movie 39 . u A continuaci´n se incluyen algunos ejemplos m´s de “movies”: o a Ejemplo 2 function elipse % movie n=30.250 200 150 100 50 0 −4 −3 −2 −1 0 1 2 3 4 Figura 26. λ = sin(t) var´ entre -1 y 1. x=linspace(0. ıa cada valor de j se realiza un gr´fico/fotograma que se almacena con a la instrucci´n F(j) = getframe.2*pi. t var´ de 0 a 2π y.

y.z).y. z=2*sin(t)*exp(-x. end movie(F.^2). for j = 1:n t=(2*pi/19)*(j-1). surf(x. n=20. surf(x. end movie(F.axis([-3 3 -3 3 -5 5]) F(j) = getframe.n=30. z1=sin(t)*z.3) Ejemplo 6 40 . end movie(F.z1).y]=meshgrid(-1:.y. n=20.6) Ejemplo 5 function picos % movie [x. for j = 1:n x=rand(10).1:1).z]=peaks.^2-y. for j = 1:n t=(2*pi/19)*(j-1).axis([-1 1 -1 1 -2 2]) F(j) = getframe. imagesc(x) F(j) = getframe.5) Ejemplo 4 function membrana % movie membrana [x.

plot(cos(t).[0 . %horaria plot([0 .1000).sin(t)).5*cos(hor)]. for j = 1:n.function reloj % movie reloj n=100.9*sin(horas*2*pi/12). .8*cos(min)].axis square hold on horas=0:12.’k*’) hor=pi/2-(j-1)*2*pi/(n-1). % minutera plot([0 ..2*pi. plot(.[0 . t=linspace(0.. min=pi/2-(j-1)*12*2*pi/(n-1).8*sin(min)]) hold off F(j) = getframe..9*cos(horas*2*pi/12). end movie(F) 41 .5*sin(hor)]).

o a ZUAZUA. a HARMAN. 1999. 1997. J. A. e IRVING.. y RICHERT. P´gs. Madrid. “Matem´ticas en el Aula de Inform´tica”. HIGHAM. Madrid. GIBLIN. SIAM. Mathematical Explorations with Matlab. Cambridge University Press. N. o P´gs. a a En Zuazua. y HIGHAM. J. Cultura y Deporte/UIMP. Boston. 145-210. Cultura y Deportes/UIMP. Vol. (Director) Temas relevantes de la Matem´tica actual: el a reto de la Ense˜anza Secundaria.J. Advanced Engineering Mathematics using Matlab. (Director) Temas relevantes de la Matem´tia ca actual: el reto de la Ense˜anza Secundaria. L. 2000. N. 2000. En Zuazua. 2000. D. “An´lisis de Fourier: historia y aplicaciones a recientes”. Centro de publicaciones del Ministerio n de Educaci´n.. Centro de publicaciones del Ministerio n de Educaci´n. Centro de publicaciones n del Ministerio de Educaci´n. Cultura y Deporte/UIMP. 11-43. Th. DUOANDIKOETXEA. (Director) Temas relevantes de la Matem´tica actual: el a reto de la Ense˜anza Secundaria. Matlab guide.J. E. Cambridge. K. o 42 . Madrid. RODR´ IGUEZ DEL R´ R. IO. Philadelphia. P. 4. 2000. E. DABNEY. PWS.REFERENCIAS CHEN. E.

Sign up to vote on this title
UsefulNot useful