P. 1
Graficas Matlab

Graficas Matlab

|Views: 231|Likes:
Publicado porcesogota

More info:

Published by: cesogota on Jan 16, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/19/2014

pdf

text

original

Sections

  • INTRODUCCI´ON
  • 1.MANEJO ELEMENTAL DE MATLAB
  • 2.GR´AFICAS 2D
  • 2.1. Funciones de la forma y = f(x)
  • 3.GR´AFICAS 3D
  • 4.GR´AFICOS ESTAD´ISTICOS
  • Formaci´on Pol´ıtica N´umero de Esca˜nos
  • 5.GR´AFICAS EN MOVIMIENTO: “MOVIES”

´ 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

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

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

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

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

si existe >>inv(A) ans = 1.2500 MATRICES PREDEFINIDAS.0000 -0.0000 1.2500 0. matriz unidad de tama˜o (n × n) n 9 . En MatLab hay varios comandos que sirven para definir con gran facilidad matrices de tipos particulares.5000 1. Algunas de estas funciones son las siguientes: eye(n).5000 -3.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 -0.5000 0 -0.

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

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

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

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

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

aparece 0 y donde o se cumple. aparece 1. >>(2<x)&(x<=6) ans = 0 0 1 1 1 15 1 0 .Donde N es el n´mero de puntos cuyas coordenadas queremos obu tener. Para dibujar gr´ficas de funciones definidas a trozos. sobre el mismo x de antes. Veamos o un ejemplo. 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. Las coordenadas de esos puntos quedar´n almacenadas en a las variables [x. 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. 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. y]. necesitamos a utilizar lo que vamos a denominar ´ ındices o variables l´gicas. si escribimos ı.

grid on.5 3 Figura 6.^2). Y ahora definimos la funci´n. de otra forma. Dibujar las gr´ficas de las siguientes funciones eligiena do.*(1<=x).5 −1 −2 Función definida a trozos −1. Una funci´n definida a trozos.y. a 4 3.5 −1 −0. 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.obtenemos unos en los valores que verifican 2 < x ≤ 6.5 0 −0.5 1 1. asteriscos o cruces porque. o Ejercicio 2.5 2 1.*((0<=x)&(x<1))+(-x+2).5 2 2.3.5 0 0. Y ahora la dibujamos.5 1 0. o >>y=(x. multiplicando cada trozo por el ´ o ındice l´gico que describa el lugar en el que queremos dibujarlo. Resulta conveniente hacerlo con puntos. no aparecer´n las discontinuidades a >>plot(x.3000). en cada caso.1.’.*(x<0)+1.5 3 2.’).title(’Funci´n definida a trozos’) o Y obtenemos la gr´fica de la figura 6. una tabla de valores adecuada para que aparezcan los aspectos m´s representativos de la funci´n: a o 16 .

1000).(2*(t./(t. Curvas en param´tricas e Veamos ahora c´mo se pueden representar curvas en el plano dadas o en forma param´trica.*(t.^2+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.^2-1)). 2 t2 + 1 t +1 . >>t=linspace(-5.^2-1)). es decir. Y ahora lo podemos dibujar de dos formas distintas: >>plot((t. b] Empecemos con un ejemplo: queremos dibujar la gr´fica de la curva a r(t) = t(t2 − 1) 2(t2 − 1) . de la forma e r(t) = (x(t).^2+1)) 17 .5./(t. y(t)) t ∈ [a.2. −5 ≤ t ≤ 5 En primer lugar generamos los valores de t en el intervalo indicado.

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

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

Un punto de la curva en polares (r0 . para dibujar la gr´fica de a r = 2 − 4 cos(θ). Curva en polares. Calculamos los valores de r >>r=2-4*cos(tetha).100).pi. Y dibujamos la gr´fica a 20 . es θ0 . Por lo tanto. −π ≤ θ ≤ π Generamos los valores del ´ngulo tetha a >>tetha=linspace(-pi. Por ejemplo. 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. a o medido en sentido positivo. θ0 ) tiene distancia al origen r0 y el ´ngulo que forma el vector de posici´n del punto con el eje horizontal. 90 120 6 60 4 150 2 30 180 0 210 330 240 270 300 Figura 9.

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

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

-sin(t).30). y). habr´ que o a efectuar los pasos siguientes: Generamos el mallado >>[x.cos(t). y)/−2 ≤ x ≤ 2.cos(t). 6 f )r(t) = (cos(3t). 23 . Por ejemplo. −2 ≤ y ≤ 2}. − cos(2t) − cos(t). 2 sen3 (t). 2 cos2 (t).8*pi. t) − 4 ≤ t ≤ 3. ) − 10 ≤ t ≤ 4. sen t. ) − 12 ≤ t ≤ 19. b)r(t) = (cos(t). a >>t=linspace(0. en primer lugar hay que generar tablas de valores para las variables x e y. al a igual que para funciones de una variable. y) Para dibujar gr´ficos de funciones de dos variables z = f (x.1.5:2). 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.1) Ejercicio 3.^2). Funciones de la forma z = f (x.y]=meshgrid(-2:. Por ejemplo. sen(2t)) − π ≤ t ≤ π. 4 t t t c)r(t) = ( cos t. e 4 cos(2t). 1 sen t) − π ≤ 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). 6 6 36 t t t d)r(t) = (e 4 sen(2t). 3. en realidad. Para eso se utiliza el comando meshgrid. >>quiver3(sin(t).^2-y. 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.8. ahora lo que tenemos que hacer es generar un mallado sobre un rect´ngulo del plano a XY . 4 t e)r(t) = (sen(2t) + sen(t).igual que con el comando quiver.t.2. ) − 9 ≤ t ≤ 10. 2 cos2 (t). Sustituimos en la funci´n para calcular los valores de z o >>z=exp(-x.

5 0.y]=meshgrid(0:. 1] × [0.1:1 describe la variaci´n de la variable x. Por ejemplo.y. si queremos hacer un mallado para la regi´n [0.3. Manipulaci´n de gr´ficos 3D o a MALLADO. 3]. Para conseguir efectos de sombreados y colores diferentes se pueden consultar todas las posibilidades de los 24 .z).y. y 0:.shading flat %efecto de sombreado distinto Comando plot3 Comando mesh 1 1 0.0:.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.5 0 2 0 −2 −2 0 2 0 2 0 −2 −2 0 2 Figura 11.z) >>surf(x. a 3. ´ste se aplica a las dos o e variables. Gr´ficas 3D.1:1.1:3). El comando meshgrid se puede utilizar tambi´n para e generar mallados de regiones rectangulares.y.z) >>mesh(x.y.1:3 o la de la variable y. La secuencia 0:. SOMBRAS Y COLORES.5 0.z) >>surf(x. Si s´lo se utiliza un intervalo.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. tendremos que escribir o >>[x.

Algo que resulta tambi´n interesante.5 0. Gr´fica 3D con escala de colores.95 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. que nos permite.^2+1)).945 Figura 12.97 0.*y).5 −1 −1 −0. a ´ ´ ROTACION DE GRAFICAS. 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.99 0.5 0 −0.5 0 1 0.98 0. utilizando el rat´n sobre la a o figura./(x.98 0. EJES.y]=meshgrid(linspace(-1.985 0.95 0.99 0.97 0.995 1 0. >>surf(x.94 1 0.z).50)). rotarla de manera interactiva en tres dimensiones. a Como se puede observar.1.^2+y. Otro comando interesante en las gr´ficas 3D es rotate3d.975 0. e a Para generar la gr´fica de la figura 12 ha sido utilizada la siguiente a secuencia de comandos: >>[x. 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. >>z=cos((x.965 0.96 0.comandos colormap y shading. 25 .96 0. esto se a consigue con el comando colorbar (despu´s de dibujada la gr´fica).y.colorbar 0.955 0.

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

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

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

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

en cada uno de los siguientes casos: a) R(t) = t. Dibujar las superficies generadas por >>cylinder(R(t). t ∈ [−2π. 1] b) R(t) = t2 .5 −1. el eje 30 . t ∈ [−1.>>t=linspace(0. t ∈ [−3. 3] ´ ´ MAS SUPERFICIES DE REVOLUCION.5. 2π] d) R(t) = et .2.20). 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.r=sqrt(t). e n o 3. o Ejercicio 3. Real(z). Paraboloide de revoluci´n generado con cylinder. t ∈ [−1.5 −1 −0.5 Figura 17.5 0 −0.5 1 1.4 0.5 0 0. es decir. (No conviene poner demaa siados puntos en linspace para que se pueda apreciar bien el dibujo.30). 1] c) R(t) = 2 + sen(t).) 1 0.8 0.6 0.cylinder(r) Y obtendremos la gr´fica de la figura 17.f(z)) dibuja una gr´fica tridimensional a en la que el eje X es la parte real de la variable.2 0 1. 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.5 −1 −1.5 1 0.5.

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

1 0. como puede ser el programa STATGRAPHICS. 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 . resulta conveniente utilizar uno u otro tipo de gr´fico. a ´ 4. diagramas de barras e histogramas.5 −1 −1 −0.1. o Ejemplo 4. en los que ´ tenemos varias opciones. que son: diagramas de Sectores. dispone de algunos comandos que nos permiten calcular algunos de los par´metros estad´ a ısticos b´sicos.5 0 −0.5 0 1 Figura 19. diagramas de Pareto. 4. 32 . Gr´fica de f (z) = z 1/2 . Vamos a ir viendo a los que se pueden hacer con MatLab. as´ como comandos para generar bastantes gr´ficos. el diagrama de sectores permite compararlas en un c´ ırculo con sectores cuyo ´ngulo es directamente proporcional al a porcentaje de cada opci´n.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. a ı a Dependiendo del tipo de datos estad´ ısticos de los que dispongamos. Diagramas de sectores Resultan utiles para representar datos de tipo cualitativo.5 0 −0.5 0.5 −1 1 0.

’Otros’) (Nota: si la leyenda no sale en el lugar deseado. MatLab calcula autom´ticamente los a a porcentajes correspondientes y los pone junto a su sector >>pie(x).) PP PSOE CiU IU PNV Otros 3% 2% 2% 4% 52% 36% Figura 20. e pero en versi´n tridimensional (ver figura 21). procedemos como sigue. Como se puede observar en el gr´fico (figura 20).’PNV’. Con el comando pie3 se obtiene tambi´n un diagrama de sectores.legend(’PP’. Introducimos los datos en un vector >>x=[183 125 15 8 7 12] x = 183 125 15 8 7 12 Y ahora. o 33 . 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. ’PSOE’. se puede mover utilizando el bot´n izquierdo del rat´n y coloc´ndola en el lugar adecuao o a do.’IU’.’CiU’. Diagrama de sectores. dibujamos el diagrama.

Diagrama de sectores 3D. n Adem´s.Tanto para el comando pie. los unos y los ceros indican. 4.2. Diagramas de Pareto Vamos a utilizar el ejemplo 4. los sectores que queremos separar y los que no. a Para generarlo. Por ejemplo. un pol´ ıgono con las frecuencias acumuladas de los esca˜os. ordenadas en forma decreciente y sobre u n las barras. escribimos >>x=[183 125 42] x = 183 125 42 34 . respectivamente. 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.[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. como para el comando pie3 existe la posibilidad de separar uno o m´s sectores para destacarlos con respecto a de los dem´s.1. PP PSOE CiU IU PNV Otros 3% 2% 2% 4% 36% 52% Figura 21. en el eje vertical derecho aparece una escala de porcentajes. si queremos separar los sectores correspona dientes a los dos primeros datos >>pie3(x.

title(’Barras Verticales 3D’) >>subplot(2.1.) >>subplot(2.2).3.2. si hubi´semos utilizado los datos tal y e como aparec´ en el ejemplo 4. puede no n o aparecer en el dibujo. Diagrama de Pareto. Por ejemplo.barh(x).ylabel(’N´mero de Esca~os’) u n Y obtenemos el gr´fico de la figura 22.>>pareto(x). barh.title(’Barras Horizontales 3D’) 35 . Y ahora usamos los comandos bar. ıan 4.4).1).2. (Usando el comando subplot podemos conseguir que a aparezcan todos en la misma figura.3).title(’Barras Verticales’) >>subplot(2.bar3h(x).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. bar3 y bar3h para generar los gr´ficos.2. 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.title(’Barras Horizontales’) >>subplot(2. 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. 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 ].2. Diagramas de barras Existen varias posibilidades para representar diagramas de barras.bar(x).

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

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

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

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

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

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

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->