Gráficos bidimensionales.pdf

May 30, 2018 | Author: Cristian David | Category: Quotation Mark, Cartesian Coordinate System, Color, Mathematical Analysis, Mathematics


Comments



Description

Gráficos bidimensionalesMATLAB permite crear complejos gráficos bidimensionales y tridimensionales. En esta página solamente nos referremos a algunas representaciones bidimensionales y una breve introdución a las representaciones tridimensionales. El comando plot(x,y) se utiliza para crear una representación gráfica bidimensional, donde x e y son vectores. Cuando se ejecuta este comando se crea la representación gráfica en una ventanaa denominada Figure Window, con un eje horizontal X y otro vertical Y, con etiquetas para el eje X (xlabel) y para el eje Y (ylabel), un título para el gráfico (title). El comando plot tiene parámetros adicionales que nos permiten especificar el color y tipo de línea o los símbolos utilizados como marcadores. Por ejemplo plot(x,y,'mo','linewidth',2,'markersize',12, 'markeredgecolor','g','markerfacecolor','y') Los dos primeros parámetros de plot son las coordenadas de los puntos (xi, yi) contenidos vectores x e y. El tercer parámetro es el especificador de línea que puede contener tres datos '-mo' entre comillas simples:  Estilo de línea (- significa sólido, por defecto)  Color de línea (m significa magenta)  Marcador (o significa círculo) Las posibles opciones son: Color Símbolo Estilo de línea Símbolo Azul (defecto) b Sólido(defecto) - Verde g A puntos : Rojo r raya-punto -. Cian c rayas -- Magenta m 'markersize'.5  markersize.Amarillo y Negro k Blanco w Opciones de símbolos para marcar puntos en la gráfica o círculo v Triángulo (hacia abajo) .y. una línea azul sólida concecta los puntos (xi. yi) plot(x.8). sus valores:  linewidth. una línea roja sólida conecta los puntos (xi. yi) plot(x. y. especifica el color de borde del símbolo que marca los puntos  makerfacecolor.':g'). ejemplo más abajo .'--ro'. punto X Triángulo (hacia arriba) x marca X < Triángulo (hacia la izquierda) + más > Triángulo (hacia la derecha) * estrella p pentagrama s cuadrado h hexagrama d diamante Se pueden también especificar las siguientes propiedades entre comillas simples y a continuación. yi) plot(x.y.y).2. especifica el color de relleno del símbolo que marca los puntos Ejemplos de plot: plot(x. una línea de puntos de color verde conecta los puntos (xi.'r').'linewidth'. especifica la anchura de línea su valor por defecto es 0. especifica el tamaño del símbolo que marca los puntos  markeredgecolor. 52 1.0 0.V.50 1.53 >> >> >> >> >> >> t=[0 10 20 30 40 50 60 70 80].46 1. plot(t.'markersize'. desde que se conecta la batería.73 1.73 1.10 1. t (s) 10 20 30 40 50 60 70 .8) title('Carga de un condensador') xlabel('tiempo (s)') ylabel('Voltaje (V)') En un experimento de descarga de un condensador se ha medido la diferencia de potencial V entre las placas del condensador en función del tiempo t.'--ro'.53].2.40 1.46 1.29 1.Una representación gráfica en una ventana En un experimento de carga de un condensador se ha medido la diferencia de potencial V entre las placas del condensador en función del tiempo t. t (s) 0 10 20 30 40 50 60 70 80 V (V) 0.52 1.40 1.50 1.'linewidth'.10 1. V=[0 0.29 1. y=cosd(x).03 Crear una tabla de datos y un gráfico. .V (V) 0. utilizando como argumento grados.15 0.45 0.08 0.82 0. cosd(x) y representarla en el intervalo de 0 a 360°. plot(x. tomando un intervalo de 10° >> >> >> >> >> >> >> x=0:10:360.y) grid on %rejilla title('y=cos(x)') xlabel('Valores de x') ylabel('Valores de y') Creamos un script oscilacion y lo guardamos en el fichero .26 0.M para examinar el papel de los parámetros: frecuencia angular ω y desfase δ en un Movimiento Armónico Simple A=1.05 0. similar al de la figura anterior. Vamos a obtener una tabla de datos de la función coseno.0. 0.5).5) Queremos representar a la vez.'b') plot(t. plot(t.*sin(100*t+1.A.-A.2*pi. t=linspace(0.'b') hold off legend('desplazamiento'.100).w=input('Frecuencia angular: ').7. Escribimos el script amortiguadasque guardamos un fichero .  El desplazamiento x en función del tiempo t  La amplitud A=5.x.x. 'r') title('Oscilación') xlabel('tiempo t') ylabel('posición x') Vamos a la ventana de comandos y corremos el script oscilacion >> oscilacion Frecuencia angular: 2 Desfase (rad): pi/2 Obtenemos la representación gráfica de sin(2t+π/2)=cos(2t) Varias gráficas en la misma ventana La ecuación de una oscilación amortiguada es x=Bexp(-γ·t)·sin(ωt+δ) donde B y δ se determinan a partir de las condiciones iniciales Sea la oscilación amortiguada x=5.0·exp(-7·t)·sin(100·t+1.M t=linspace(0.100). en función del tiempo t Ulizamos el comando hold on para representar varias gráficas en la misma ventana.'r') hold on plot(t. plot(t.0·exp(-7·t). x=5*exp(-7*t). A=5*exp(-7*t).'amplitud') title('Oscilaciones amortiguadas') xlabel('tiempo t') ylabel('posición x') En la ventana de comandos corremos el script amortiguadas >> amortiguadas . x=A*sin(w*t+delta). delta=input('Desfase (rad): '). 7. O bien.'amplitud') title('Oscilaciones amortiguadas') xlabel('tiempo t') ylabel('posición x') rojo 'r'. plot(t.t.A) en azul 'b'.5*exp(-7*t).'amplitud') title('Oscilaciones amortiguadas') xlabel('tiempo t') ylabel('posición x') .5). (t. t=linspace(0.0.100).-5*exp(-7*t)].-A) % (t. x=5*exp(-7*t). A=5*exp(-7*t).7.t.-A) sigue en azul legend('desplazamiento'.*sin(100*t+1.0.x.A. guardando los datos de la oscilación amortiguada x y de la amplitud A (positiva y negativa) en la matriz z. z=[5*exp(-7*t).5).*sin(100*t+1.Una forma alternativa utilizando el comando plot t=linspace(0.'r'.100).z) legend('desplazamiento'. plot(t.'b'.x) en (t. valor: 'b' (azul) line(t.'marker'. ylabel. y es el que aparece en la figura anterior. .. como en el script anterior Decorando las gráficas Ya hemos visto el efecto de xlabel. title y legend en el ejemplo anterior para poner un título a la gráfica (title).. El valor pos=1 es el valor por defecto. primero se crea la gráfica de la posición (t. seguido del valor de la propiedad. x=5*exp(-7*t).'color'.0.'amplitud') title('Oscilaciones amortiguadas') xlabel('tiempo t') ylabel('posición x') Los dos primeros parámetros del comando line son los vectores x e y de datos. por ejemplo: line(x. Se sugiere al lector que pruebe el efecto de los otros cinco valores.100).'r'. plot(t.-A) legend('desplazamiento'. identificar el eje X (xlabel) el eje Y (ylabel) y cada una de las gráficas en la misma ventana (legend) El comando legend El comando legend es más complejo que los otros comandos y admite la forma siguiente: legend('grafica1'.'r') line(t.'grafica2'..pos) El orden en el que se ponen las etiquetas corresponde al que se crean las gráficas.'--'.. 4.'linestyle'.A) legend('desplazamiento'.'color'.7. . 0.5). utilizando el comando line t=linspace(0. El comando axis . es que plot abre una ventana gráfica cada vez que es ejecutado.'amplitud') El último parámetro pos es un número opcional que especifica la posición de legend en la ventana. mientas que lineañade gráficas a la ventana abierta previamente con plot.'b') %propiedad: 'color'. 2 3.A.*sin(100*t+1. Sus posibles valores son: -1. A=5*exp(-7*t). 1.x.x) y después las dos gráficas de la amplitud (t. Los siguientes son propiedad entre comillas simples.Otra forma. En el ejemplo anterior.y.'o') La difrencia principal entre plot y line. establece la misma escala para ambos ejes axis square. title y text.xmax. establece nuevos límites a los ejes X e Y axis equal.ymax]).ymin. grid on. El comando axis permite cambiar el rango y la apariencia de los ejes axis([xmin. >> >> >> >> x = linspace(0. caracteres griegos.y) MATLAB crea un eje X y un eje Y cuyos límites se deducen a partir de los valores máximo y mínimo de cada uno de los vectores x e y. (por defecto) no añade la rejilla El comando text Para poner un texto en la figura en la posición especificada por las coordendas x e y. ylabel.3). Gráficos semilogarítmicos Para reprentar la función y = 10·exp(-2·x) en en intervalo de 0 a 3.y) El texto que se le pasa a los comandos xlabel. letra en negrita. Gráficas polares . Ajusta los límites de los ejes al rango de los datos El comando grid grid on. El texto incluso se puede rotar para que aparezca vertical o en otra orientación.y.'mensaje') El primer carácter del texto que se le pasa a text entre comillas simples se pone en el punto de coordendas (x. Consultar en el sistema de ayuda (Help Window) Text y Text Properties para ver el efecto de las distintas opciones. cursiva. región cuadrada axis tight. puede contener caracteres de distinta fuente de texto y tamaño.y). y = 10*exp(-2*x).añade una rejilla a la gráfica como en la primera figura grid off.Cuando se ejecuta el comando plot(x. text(x. semilogy(x. subíndices y superíndices. la cicloide. >> r=0. >> ang=0:pi/18:9*pi/2. La espiral logarítmica es una de las curvas notables junto a la catenaria.'r') . etc. b es un parámetro.1*ang). y θ es el ángulo en radianes. Véase "Viaje de la Tierra a Marte siguiendo una trayectoria en forma de espiral logarítmica".2*exp(0.r. >> polar(ang. La ecuación de la espiral logarítmica en coordenadas polares es r=r0·exp(b·θ) Donde r0 es el radio inicial.Las coordenadas polares especifican un punto en términos de la distancia (radio) al origenr y el ángulo θ que forma con el eje X. cuyo primer argumento es el 'handle' y los siguientes son los pares 'propiedad'.05 Hay otra manera de decorar los gráficos a través del 'handle' que devuelven y empleando la función set.Creamos el script espiral y lo guardamos en el fichero .M para examinar el papel de los parámetros: radio inicial r0.r. si queremos hacer más ancho el trazo de la curva escribimos a continuación del 'handle' gc. valor.'r') En la ventana de comandos corremos el script espiral >> espiral Radio inicial: 0. r=r0*exp(b*ang). polar(ang. Por ejemplo. ang=0:pi/18:9*pi/2. yparámetro b. r0=input('Radio inicial: '). b=input('Parámetro b: '). la .4 Parámetro b: 0. 2a≤b. La lemniscata de Bernoulli r2=2a2cos(2θ) Varias zonas gráficas en la misma ventana El comando subplot(m.5. El primero es el más interesante.r.3.1. 4. r0=input('Radio inicial: ').n. gc=polar(ang. Por ejemplo el comando subplot(2. 6. En Internet se pueden encontrar las ecuaciones de curvas polares como las cardiodes r=b+a·cosθ r=b+a·sinθ en los siguientes casos: b<a. Otra curva es la denominada pétalos de una rosa r=a·cos(nθ) donde n es el número entero: 2. r=r0*exp(b*ang). b=input('Parámetro b: '). a<b<2a.. ang=0:pi/18:9*pi/2.'r') set(gc.propiedad 'Linewidth' y su valor 1.2) crea seis áreas rectangulares ordenadas en dos filas y tres columnas como se muestra en la figura y hace el área marcada en amarillo p=2 como actual.. . Se pueden añadir más propiedades y sus correspondienets valores.p) divide la ventana gráfica Figure Window en m×n ventanas rectangulares gráficas más pequeñas dispuestas en forma de matriz en m filas y n columnas. Cada ventana está numerada de 1 a m·n tal como se indica en la figura.'Linewidth'.5). 3. 2.*sin(w*t+fi).*cos(w*t+fi).5. v=-gamma*A*exp(-gamma*t). Crear cuatro zonas gráficas en la misma ventana con el comando subplot 2.v) grid on xlabel('posición (m)') ylabel('velocidad (m/s)') . e=(v.^2)/2.2. Respresentar en la cuarta.01.0.e) grid on xlabel('tiempo (s)') ylabel('energía (J)') subplot(2. Representar en la tercera.2. fi=1.v) grid on xlabel('tiempo (s)') ylabel('velocidad (m/s)') subplot(2.7. w0=100.4) plot(x.x) grid on xlabel('tiempo (s)') ylabel('posición (m)') subplot(2.01. Representar en la primera zona. Representar en la segunda.La posición velocidad y energía de un oscilador amortiguado son. x=A*exp(-gamma*t). subplot(2. la velocidad del móvil v en función de su posición x (espacio de las fases) t=linspace(0.100). gamma=7. w=sqrt(w0*w0-gamma*gamma). la energía e del oscilador en función del tiempo t 4. x=Aexp(−γt)sin(ωt+φ) ω2=ω20−γ2v=dxdt=−γAexp(−γt)sin(ωt+φ)+Aωexp(−γt)cos(ωt+φ)E=12mv2+12mω20x2=1 2mω20A2exp(−2γt)(1−γω0sin(2(ω0t+φ))) Sea un oscilador amortiguado de amplitud A=5. A=5. la velocidad v del móvil en función del tiempo t 5. fase inicial φ=1.1) plot(t. respectivamente. la posición x en función del tiempo t 3.3) plot(t.2.*sin(w*t+fi)+w*A*exp(gamma*t).5 rad.2) plot(t. frecuencia angular natural ω0=100 rad/s y constante de amortiguamiento γ=7 s-1 Creamos el script amortiguadas_1 para 1.^2+w0*w0*x. la energía e del oscilador en función del tiempo t . Representar en la segunda.En la ventana de comandos corremos el script amortiguadas_1 >> amortiguadas_1 Varias ventanas gráficas Es posible abrir varias ventanas gráficas mediante el comando figure. Representar en la primera. close(n) cierra la ventana n yclose all cierra todas las ventanas gráficas Creamos el script amortiguadas_2 para abrir cuatro ventanas gráficas 1. la posición x en función del tiempo t 2. Figure 2. etc. Las ventanas gráficas se pueden cerrar con el comando close que cierra la ventana activa. Figure 3. MATLAB nombra cada ventana como Figure 1. plot(t. e=(v. A=5.*sin(w*t+fi)+w*A*exp(gamma*t). .^2)/2. Figure 3 y Figure 4.v) grid on xlabel('tiempo (s)') ylabel('velocidad (m/s)') figure plot(x.x) grid on xlabel('tiempo (s)') ylabel('posición (m)') figure plot(t. w=sqrt(w0*w0-gamma*gamma).^2+w0*w0*x.01.e) grid on xlabel('tiempo (s)') ylabel('energía (J)') figure plot(t. fi=1.v) grid on xlabel('posición (m)') ylabel('velocidad (m/s)') En la ventana de comandos corremos el script amortiguadas_2 >> amortiguadas_2 nos aparecen cuatro ventanas gráficas: Figure 1.5.*cos(w*t+fi). v=-gamma*A*exp(-gamma*t). la velocidad v del móvil en función del tiempo t 4. gamma=7.7. la velocidad del móvil v en función de su posición x (espacio de las fases) t=linspace(0. Representar en la tercera. w0=100.200).3.0. Figure 2. Respresentar en la cuarta. x=A*exp(-gamma*t).*sin(w*t+fi). Una vez examinadas. cerramos todas las ventanas gráficas >> close all Gráficos semilogarítmicos Son útiles cuando hacemos representaciones gráficas de funciones exponenciales o potenciales. x=linspace(0. y=10*exp(-2*x). Representamos la función 10·exp(-2·x) utilizando el comando semilogy. semilogy(x.3).y) grid on . 2·t t=0:0. Utilizamos el comando plot3 para dibujar la línea tridimensional. así como la de utilizar las diferentes opciones del menú Figure Window.Gráficos tridimensionales El ámbito de los gráficos en general. y de los tridimensionales en particular. x=sin(t) y=cos(t) z=0. El lector interesado puede explorar con más profundidad las numerosas posibilidades de representación gráfica que ofrece MATLAB. . es muy amplio.1:6*pi. y y z son funciones de un parámetro t. Curvas tridimensionales El caso más sencillo se presenta cuando x. >> x=-2:3. La función meshgrid de MATLAB crea la matriz X y la matriz Y. En la figura se muestra el conjunto de puntos del plano XY para el dominio 2≤x≤3. plot3(x. ylabel('y'). >> y=-1:3. La matriz X guarda las abscisas de los puntos y la matriz Y las ordendas de dichos puntos. z=0.y) El primer paso es crear una rejilla en el plano XY que cubra el dominio de la función y el segundo paso consiste en el cálculo del valor de z para cada uno de los puntos de la rejilla.'b') grid on xlabel('x'). zlabel('z') Superficies tridimensionales Algo más complicado es mostrar una superficie tridimensional descrita por una función de dos variables z=f(x. >> [X. -1≤y≤3 con espaciado de una unidad. Los puntos de la rejilla se definen mediante dos matrices.x=sin(t).2*t. y=cos(t).y.Y]=meshgrid(x.z.y) X = -2 -1 0 1 -2 -1 0 1 -2 -1 0 1 2 2 2 3 3 3 . ylabel('y').z) colormap hsv colorbar xlabel('x').25.^2) + eps. r = sqrt(x.^2 + y.y] = meshgrid(-7:0. Vamos a dibujar la función z=sinrr r=x2+y2−−−−−−√ en el dominio el dominio -7≤x≤7.z) xlabel('x').^2) + eps. El color de cada elemento de superficie está determinado por el valor de z y el mapa de colores (una lista ordenda de colores) [x. surf(x. mesh(x. En este caso z=9-x2-y2 >> Z=9-X.y] = meshgrid(-7:0. Evitamos a indeterminación 0/0 en el origen sumandoeps a r.-2 -2 -1 -1 0 0 1 1 2 2 3 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 Y = Se calculan los valores de z=f(x. [x.^2 Z = 4 7 5 8 4 7 1 4 -4 -1 8 9 8 5 0 7 8 7 4 -1 4 5 4 1 -4 -1 0 -1 -4 -9 Las funciones mesh y surf muestran superficies en tres dimensiones.y) para cada unos de los puntos de la rejilla./r.25:7).^2 + y./r.y. zlabel('z') Superficies definidas de forma paramétrica Sea la superficie . ylabel('y').^2-Y.y. z = sin(r). z = sin(r). -7≤y≤7 con espaciado de 0. r = sqrt(x. zlabel('z') Superficie coloreada.25:7). y. y=r.30). mesh(x.angulo]=meshgrid(r. 0≤θ≤2π r=linspace(0.30).z) xlabel('x-axis'. zlabel('z-axis') .2*pi. x=r. [r.x=r·cosθ y=r·sinθ z=r donde 0≤r≤1. angulo=linspace(0. z=r.1. ylabel('y-axis').angulo).*cos(angulo).*sin(angulo).
Copyright © 2024 DOKUMEN.SITE Inc.