You are on page 1of 15

Tema 3

Representacin grca 2D y 3D o a
Guillermo Peris Ripolls e
Aplicacin o
Optimizacin del ujo de un canal de agua. o A la hora de disear un canal de agua, como el que se muestra en la siguiente n gura, se pretende que la velocidad de ujo sea mxima. a

Las variables a considerar a la hora de disear el canal son su altura h, la anchura n de la base c, y el ngulo lateral . Puede demostrarse que la velocidad de ujo es a inversamente proporcional al per metro, cuya expresin es: o p=c+ mientras que el rea total de ujo es a A = ch + h2 cot(). Considerando que el canal debe tener 200 cms. de rea transversal (A = 200), a la funcin 1/p unicamente depender de h y . Representa la superf o a cie 1/p = f (h, ), mostrando el diagrama de contornos simultneamente. Para qu a e valores aproximados de h y la velocidad de ujo es mxima? a
Velocidad de flujo en un canal

2h sin()

1/p

0.03 0.025 0.02 0.015 0.01

20

40 60 80 Theta (Grados) 100

120

140

160

10

20 15 Altura (cm)

Ingenier Qu a mica

Programacin en Octave o

3-2

Representacin grca 2D y 3D o a

Contenidos
3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 o 3.2. Representaciones 2D . . . . . . . . . . . . . . . . . . . . . . 3-3 3.2.1. Grcas simples . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 a 3.2.2. Grcas mltiples . . . . . . . . . . . . . . . . . . . . . . . . 3-4 a u 3.2.3. Mejorando el aspecto de las grcas . . . . . . . . . . . . . . 3-6 a 3.3. Representaciones 3D: l neas, contornos y superf cies. . . . 3-7 3.3.1. L neas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 3.3.2. Supercies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 3.3.3. Contornos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 3.4. Aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 o 3.5. Ejercicios prcticos . . . . . . . . . . . . . . . . . . . . . . . 3-13 a

Universitat Jaume I

Guillermo Peris Ripolls e

3.1 Introduccin o

3-3

3.1.

Introduccin o

Resulta muy habitual que los ingenieros utilicen grcos para mostrar sus ideas de una a forma ms clara, ya que es ms sencillo identicar tendencias en una gura que una a a tabla de resultados. Octave dispone (junto con el paquete octave-forge) de un gran conjunto de funciones utiles para la creacin de grcos. En este tema estudiaremos o a algunas de ellas.

3.2.

Representaciones 2D

Todas las funciones de que dispone Octave para la creacin de grcos utilizan el o a programa gnuplot. Este es un programa que podemos usar de forma independiente de Octave, aunque aqu aprenderemos a utilizarlo desde la interfaz de Octave.

3.2.1.

Grcas simples a

Para dibujar grcas, Octave dispone de la orden plot(x,y), donde x e y son dos a vectores de la misma dimensin que representan las coordenadas de las abscisas y o ordenadas de los datos a representar, respectivamente. Supongamos que queremos representar la grca de sin(x) entre 0 y 2. Entonces, deber a amos crear en primer lugar un vector con valores de x, y el vector sin(x). Para ello, podemos utilizar por ejemplo 100 puntos equiespaciados en el eje x y calcular su seno: x = linspace(0,2*pi,100); y = sin(x) ; plot(x,y) ; Al ejecutar este cdigo, nos aparece una ventana similar a la siguiente: o
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 line 1

Figura 3.1: Grca simple. a

Pensemos que cuantos ms puntos utilicemos, ms el ser la representacin oba a a o tenida, pero ms tiempo le costar a Octave obtener el resultado. a a

Ingenier Qu a mica

Programacin en Octave o

3-4

Representacin grca 2D y 3D o a No es demasiado complicado mejorar esta grca. Por ejemplo, con la orden title a se aade un t n tulo, con las rdenes xlabel e ylabel se aaden, respectivamente, o n etiquetas a los ejes de abscisas y ordenadas; adems, la orden grid(on) aade una a n rejilla a la grca. Estas rdenes no surten efecto hasta que no se actualiza la grca a o a con la orden replot. Observa el uso de estas rdenes en el siguiente ejemplo, cuyo o resultado se muestra en la Figura 3.2: title(Representacion de sin(x)), xlabel(x), ... ylabel(sin(x)), grid(on), replot F jate en que los textos deben escribirse entre comillas simples.
Representacion de sin(x) 1 0.8 0.6 0.4 0.2 sin(x) 0 0.2 0.4 0.6 0.8 1 line 1

3 x

Figura 3.2: Graca simple con t tulo, rejilla y etiquetas.

3.2.2.

Grcas mltiples a u

Si estamos interesados en dibujar varias curvas en una misma grca, podemos haa cerlo de forma simple utilizando varios pares de vectores. Por ejemplo, la orden plot(x,y,w,z) dibujar en una misma grca las curvas de y en funcin de x, y a a o w en funcin de z. F o jate en el siguiente cdigo, que dibuja las curvas sin(x) y cos(x) o en la misma gura (Figura 3.3): x = linspace(0,2*pi,100); y = sin(x) ; z = cos(x); plot(x,y,x,z),title(Grafica del seno y coseno de x), ... xlabel(x), grid(on) , replot Octave distingue las dos l neas utilizando colores, lo cual no se puede apreciar en impresiones en blanco y negro (como la que tienes entre tus manos ;) ). Ser a interesante poder distinguir las curvas bien por el formato de las l neas, bien por el formato de los puntos. Para ello, debemos indicar en la orden plot tripletes de datos, a saber: el vector x, el vector y y un formato de lineas y puntos, teniendo en cuenta las opciones que se muestran en la Tabla 3.1. Si antecedemos un guin al indicador del o
Universitat Jaume I Guillermo Peris Ripolls e

3.2 Representaciones 2D
Grafica del seno y coseno de x 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 line 1 line 2

3-5

3 x

Figura 3.3: Grca mltiple. a u

punto, stos se unen con una l e nea cont 1 . Por ejemplo, una mejor representacin nua o de la curva anterior se har con la siguiente orden (Figura 3.4): a plot(x,y,-o,x,z,+),... title(Grfica del seno y coseno de x),xlabel(x), grid(on) a , replot

Grafica del seno y coseno de x 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 line 1 line 2

3 x

Figura 3.4: Grca con marcas. a

Hemos comprobado que, al crear una nueva gura, esta aparece en una ventana de guras, desapareciendo la gura anterior (si la hab Si estamos interesados en a). que aparezcan distintas guras (en distintas ventanas) debemos ejecutar previamente la orden figure. Por ultimo, la orden clg limpia la ventana de grcos. Esta orden a resulta conveniente utilizarla antes de crear una nueva gura.
1

Consulta el manual de Octave para obtener ms informacin sobre el diseo de grcas. a o n a

Ingenier Qu a mica

Programacin en Octave o

3-6 Punto punto ms a estrella c rculo marca Indicador . + * o x

Representacin grca 2D y 3D o a

Tabla 3.1: Opciones de marcas.

Ejercicios
1 Ejecuta las l neas de cdigo necesarias en Octave para obtener las grcas de las guras o a anteriores. 2 Dibuja la funcin y = sin(x) + x x cos(x) en el intervalo x ]0, 30[. Aade un t o n tulo y las etiquetas que creas oportunas. 3 A la hora de realizar una grca, es importante el muestreo que se realice de la funcin. a o Para entender mejor sto, compara los siguientes ejemplos y piensa en cual es la causa de que e la segunda grca presente un mejor aspecto que la primera. a n = 5; x = 0:1/n:3; y = sin(5*x) ; plot(x,y) n = 25; x = 0:1/n:3; y = sin(5*x) ; plot(x,y)

3.2.3.

Mejorando el aspecto de las grcas a

En este apartado vamos a introducir algunas rdenes ms para cambiar el aspecto o a de los grcos. Por ejemplo, podemos estar interesados en personalizar la leyenda a explicativa de las distintas l nea de una grca. Esta leyenda normalmente aparece a con los textos line 1, line 2, etc. Para cambiar este texto, debemos escribirlo entre punto y comas (;) del formato de l nea y punto de la orden plot. Esto se entiende mejor con el anterior ejemplo de la representacin de seno y coseno: o plot(x,y,-o;seno(x);,x,z,.;coseno(x);) title(Grfica del seno y coseno de x),xlabel(x) a grid(on) , replot En ocasiones resulta interesante tener distintos grcos en una misma ventana. a Esto es lo que se conoce como subventanas. Para ello, podemos dividir la ventana de grcos en dos subventanas (apiladas o contiguas) o cuatro subventanas, utilizando a la orden subplot. Esta orden acepta 3 argumentos, donde los dos primeros indican las divisiones en las y columnas de la ventana, y el tercero a la posicin en la que o se va a situar la siguiente grca (las ventanas se numeran de izquierda a derecha, y a de arriba y abajo). La utilizacin de subgrcas la entenders mejor con el siguiente o a a ejercicio.

Universitat Jaume I

Guillermo Peris Ripolls e

3.3 Representaciones 3D: l neas, contornos y superf cies.


Grfica del seno y coseno de x 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 seno(x) coseno(x)

3-7

3 x

Figura 3.5: Grca con marcas. a

Ejercicios
4 Ejecuta las siguientes lineas de cdigo y trata de entender por ti mismo la orden subplot. o

x = linspace(0,2*pi,100); y = sin(x) ; z=cos(x); subplot(2,1,1) plot(x,y,;seno(x);) subplot(2,1,2) plot(x,z,;coseno(x);)

Hasta ahora hemos observado que Octave ja automticamente la escala de los a ejes, ajustndola a los valores de los datos. Podemos cambiar estos valores ejecutana do la orden axis([xmin xmax ymin ymax]), donde se indican respectivamente los valores m nimos y mximo de x, y m a nimo y mximo de y. a

3.3.

Representaciones 3D: l neas, contornos y superf cies.

Hasta ahora hemos obtenido grcas en dos dimensiones a partir de funciones dea pendientes de una sola variables. Si las funciones dependen de dos variables (o ms) a se necesitan representaciones de orden superior. Para ello, Octave incluye distintas funciones para la representacin tridimensional. A continuacin vamos a explicar las o o funciones bsicas para crear tres tipos de grcas: l a a neas 3D, supercies y contornos.

3.3.1.

L neas

Se pueden representar l neas en el espacio tridimensional con la orden plot3(x,y,z) de Octave, donde x, y y z son funciones de un parmetro. Por ejemplo, las siguientes a
Ingenier Qu a mica Programacin en Octave o

3-8

Representacin grca 2D y 3D o a ecuaciones generan una curva en tres dimensiones a medida que var el parmetro t: a a x = e0.05t sin(t) y = e0.05t cos(t) z = t Esta curva se puede representar con las siguientes rdenes Octave, dando lugar a la o gura que se muestra a continuacin: o t = [0:pi/50:10*pi]; plot3(exp(-0.05*t).*sin(t), exp(-0.05*t).*cos(t), t) xlabel(x), ylabel(y), zlabel(z), grid(on), replot

line 1

35 30 25 20 15 10 5 0 1 0.8 0.6 0.4 0.2 y

0.8

0.6

0.4

0.2 x

0.2

0.4

0.6

0.8

1 1

0 0.2 0.4 0.6 0.8

Figura 3.6: Curva 3D.

Ejercicios
5 Ejecuta las l neas de cdigo anteriores en Octave para obtener la grca de la Figura 3.6. o a

3.3.2.

Supercies

La funcin z = f (x, y) representa una supercie en un sistema de coordenadas xyz. o Antes de realizar la representacin, es necesario crear una malla de puntos en el plano o xy para calcula el valor de z en cada uno de ellos. Para ello, Octave dispone de la funcin meshgrid. La sintaxis de esta orden es: o [X, Y] = meshgrid(x,y) donde x e y son vectores con los valores de esta variables. X es una matriz en la que el vector x se copia en cada una de sus las, e Y es una matriz en la que el vector y se copia en cada una de sus columnas. De esta forma, podemos trabajar con las matrices X e Y para obtener una matriz Z en trminos de la funcin representada. El uso de e o meshgrid se ilustra con el siguiente ejemplo sencillo:
Universitat Jaume I Guillermo Peris Ripolls e

3.3 Representaciones 3D: l neas, contornos y superf cies.

3-9

x = [X, X X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y Y = 6 6 6 7 7 7 8 8 8 9 9 9 10 10

[1:5] ; y = [6:10]; Y] = meshgrid(x,y);

4 4 4 4 4

5 5 5 5 5

6 6 7 7 8 8 9 9 10 10 10

Una vez calculada la malla de valores X e Y, y con ellos la matriz Z, utilizaremos la funcin mesh(X,Y,Z) para crear la supercie. Veamos un ejemplo en el que se genera o 2 2 2 la supercie de la funcin z = xe[(xy ) +y ] para 2 x 2 y 2 y 2 con un o espaciado de 0.1. x = [-2:0.1:2]; y = x; [X, Y] = meshgrid(x,y); Z = X.*exp(-((X-Y. 2). 2+Y. 2)); mesh(X,Y,Z), xlabel(x), ylabel(y), zlabel(z)
line 1

0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 1.5 2

1.5

0.5 x

0.5

1.5

2 2

1 1.5

0.5

0.5

Figura 3.7: Supercie 3D.

Ejercicios
6 Ejecuta las l neas de cdigo anteriores en Octave para obtener la grca de la Figura 3.7. o a

Ingenier Qu a mica

Programacin en Octave o

3-10

Representacin grca 2D y 3D o a

3.3.3.

Contornos

Las representaciones topogrcas muestran los contornos terrestres mediante l a neas de altura constante. Estas lineas se conocen como lineas de contorno. Si caminamos a lo largo de una de estas lineas, la altura se mantiene constante. Octave dispone de la funcin contour(X,Y,X), que se utiliza de una foram similar a mesh: o x = [-2:0.1:2]; y = x; [X, Y] = meshgrid(x,y); Z = X.*exp(-((X-Y. 2). 2+Y. 2)); contour(X,Y,Z), xlabel(x), ylabel(y), zlabel(z)
0.4 0.3 0.2 0.1 2.78e17 2 0.1 0.2 0.3 1.5 0.4 1 0.5 0 0.5 1 1.5 2 1.5 1 0.5 0 x 0.5 1 1.5 2 2 y

Figura 3.8: Contorno.

Las representaciones de contorno y supercie pueden combinarse con la funcin o meshc(X,Y,Z). meshc(X,Y,Z), xlabel(x), ylabel(y), zlabel(z)

0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 1.5 2

1.5

0.5 x

0.5

1.5

2 2

1 1.5

0.5

0.5

Figura 3.9: Contorno+supercie.

Ejercicios
7 Ejecuta las l neas de cdigo necesarias en Octave para obtener las grcas de las Figuo a ras 3.8 y 3.9.

Universitat Jaume I

Guillermo Peris Ripolls e

3.4 Aplicacin o

3-11

3.4.

Aplicacin o

A continuacin se muestra el programa que resuelve la aplicacin expuesta al principio o o del tema. Las unicas novedades que introduce son el uso de dos nuevas funciones: axis: Esta funcin recibe como argumento un vector de 4 o 6 componentes, en o funcin de que la grca sea bidimensional o tridimensional. Por ejemplo, en el o a presente caso los 6 elementos del vector ser los valores m an nimos y mximos a de x, seguidos de los valores m nimos y mximos de y, y por ultimo los valores a m nimos y mximos de z. La grca utilizar estos valores para los l a a a mites de cada uno de los ejes. view: Esta funcin permite cambiar el punto de vista de una funcin 3D. Para o o entender mejor su uso, ejecuta la ayuda de Octave (help view). Por lo dems, no presenta demasiadas complicaciones, as que trata de entenderla a por ti mismo, y ejectala en Octave para comprobar que obtienes el mismo resultado. u % Limpiamos variables y graficos (si existen). clear clg % Definicion de constantes y vectores iniciales. A=200; Theta = 20:10:150; h = 2:20; % Creamos la malla de valores (x,y) y la funcion p. [alt,Th] = meshgrid(h, Theta); c = (A-alt.2./tan(Th*pi/180))./alt; p = c + (2*alt./sin(Th*pi/180)); % Realizamos la representacion grafica. meshc(Th,alt, 1./p) title(Velocidad de flujo en un canal) xlabel(Theta (Grados)), ylabel(Altura (cm)), zlabel(1/p) axis([0 160 0 20 0.008 0.03]) view(30,15), replot

Ingenier Qu a mica

Programacin en Octave o

3-12

Representacin grca 2D y 3D o a

Velocidad de flujo en un canal

1/p

0.03 0.025 0.02 0.015 0.01

20

40 60 80 Theta (Grados) 100

120

140

160

10

20 15 Altura (cm)

Figura 3.10: Optimizacin del ujo de un canal de agua. o

Universitat Jaume I

Guillermo Peris Ripolls e

3.5 Ejercicios prcticos a

3-13

3.5.

Ejercicios prcticos a

Es conveniente que pienses y realices los ejercicios que han aparecido a lo largo de la unidad marcados con el s mbolo b antes de acudir a la sesin de prcticas correspono a diente. Debers iniciar la sesin realizando los ejercicios marcados con el s a o mbolo . A continuacin, debers hacer el mayor nmero de los ejercicios siguientes. o a u Ejercicios
8 Consideremos de nuevo la ecuacin de Van der Waals para un mol de gas: o P = RT a V b V2

Escribe un programa isotermas.m que pida al usuario los valores de a y b, y represente una grca con las isotermas del gas (P en funcin de V, para un valor constante de T) a a o 100, 200, 300 y 400 grados cent grados. Recuerda que en la ecuacin de Van der Waals la o temperatura debe expresarse en Kelvin. Cada curva debe ir con un trazo diferenciado, con el texto que indique la isoterma que se ha representado, as como el t tulo de la grca y la a etiqueta de los ejes. Comprueba el funcionamiento correcto del programa con el benceno, para el cual a = 18.78 atm l/mol2 y b = 0.1208 l/mol.
Ecuacion de Van der Waals: Isotermas 25 T=100C T=200C T=300C T=400C 20

15 Presion(atm) 10 5 0 0

10

20

30

40

50 Volumen (l)

60

70

80

90

100

Ingenier Qu a mica

Programacin en Octave o

3-14

Representacin grca 2D y 3D o a
9 Se consideran 4.003 g. de helio y 39.944 g. de argn y se someten a cambios de presin o o a la temperatura de 0 grados Celsius, obtenindose las siguientes tablas de valores: e HELIO a 0o P(atm) V(l) 1.002 22.37 0.8067 27.78 0.6847 32.73 0.5387 41.61 0.3550 63.10 0.1937 115.65 ARGON a 0o P(atm) V(l) 1.000 22.4 11.10 2.000 32.79 0.667 43.34 0.500 53.68 0.400 63.68 0.333

Representa grcamente el volumen frente a la presin en ambos gases. Comprueba que a o el helio es un gas que verica la ley de Boyle-Mariotte: P V = constante, pero que el argn o no cumple exactamente esta ley. Para ello, debers representar el producto P V para cada gas. a El programa se llamar mariotte.m. a
120 Helio a 0C 110

25 Argon a 0C

100

20

90

80 Volumen(l)

15 Volumen(l) 10 5 0 0

70

60

50

40

30

20 0.1

0.2

0.3

0.4

0.5

0.6 0.7 Presion(atm)

0.8

0.9

1.1

20

40

60 Presion(atm)

80

100

120

40
22.416 Helio a 0C: P*V

Argon a 0C: P*V 38

22.414

36
22.412

34

22.41

32 P*V

P*V

22.408

30

28
22.406

26
22.404

24
22.402

22

22.4

1.5

2.5

3.5

4.5

5.5

20

1.5

2.5

3.5

4.5

5.5

Universitat Jaume I

Guillermo Peris Ripolls e

3.5 Ejercicios prcticos a


10 Uno de los modos normales de vibracin de la molcula de CO2 consiste en la extensin o e o lineal de los enlaces carbono-ox geno.

3-15

A
O
R
AB

B
C
R
BC

C
O

Podemos obtener una aproximacin a la energ de vibracin de este modo normal mediante o a o el potencial de Morse, segn la siguiente ecuacin: u o Evib = VAB (RAB ) + VBC (RBC ) donde VXY (R) = dXY e2AXY (RBXY ) 2eAXY (RBXY ) . En esta ecuacin RXY es la distancia entre los tomos X e Y , y el resto de parmetros para o a a el CO2 son: dAB = dBC = 7.65eV , bAB = bBC = 1.162A. Variando los valores de RAB y RBC , obtn la superf de energ potencial para este e cie a modo normal de vibracin del CO2 , y la superf de contorno asociado. o cie
Superficie de energia potencial del CO2

Energia (u.a.)

35 30 25 20 15 10 5 0 -5 -10 -15 -20 2.6 2.4 2.2

0.6 0.8

1.2 1.4 1.6 1.8 RAB (Angstrom)

1 0.8 2.2 2.4 2.6 0.6

2 1.8 1.6 1.4 RBC (Angstrom) 1.2

Ingenier Qu a mica

Programacin en Octave o

You might also like