Taller de Informática I Dpto. Computación – F.C.E. y N. - UBA GRAFICACION Y CICLOS Algunos conceptos previos: Operador ‘:’ Se trata de una de las formas de definir vectores y matrices más usada y más fácil de utilizar, dada la rápida visualización de la salida sin necesidad de ver el resultado: octave> x=1:1:10; octave> x x = 1 2 3 4 5 6 7 8 9 10 De alguna manera, el : representa un rango, en este caso desde 1 hasta 10 y en el centro se coloca el paso (o sea con que incremento se llega desde 1 hasta 10). Por defecto el paso es 1 pero puede ser cualquier número entero o real, positivo o negativo: octave> x=10:-1:1 x = 10 9 8 7 6 5 4 3 2 1 Gráficos plot() crea un gráfico a partir de vectores y/o columnas de matrices, con escalas lineales sobre ambos ejes. Por ejemplo, vamos a hacer un gráfico de la función 0.1 * |x| * sin(x) Graficaremos usando valores para x entre -2pi y 2pi 1) Generamos el vector x entre -2p y 2pi octave> x = -2*pi:0.1:2*pi; 2) Dibujamos: octave> plot(x, abs(0.1*x) .* sin(x)); .* Recordar que * es el producto de matrices. No funcionará con vectores, mientras que .* es el producto miembro a miembro de los elementos de cada vector Generalicemos nuestra función: a * |x| * sin(x) y graficamos dando 3 diferentes valores a la variable a. Por ejemplo: octave> plot(x, abs(0.1*x) .* sin(x)); octave> plot(x, abs(0.2*x) .* sin(x)); octave> plot(x, abs(0.3*x) .* sin(x)); ¿Cómo hacemos si queremos ver los tres gráficos en una misma pantalla? octave> hold on; 2010 Taller de Informática I Dpto. Computación – F.C.E. y N. - UBA hold es una función que permite agregar gráficos a una figura ya existente, respetando su contenido Otras funciones útiles: Muestra una cuadrícula en la pantalla del gráfico. Usando grid on se activa y con off se desactiva title(‘titulo): Coloca un título al gráfico xlabel(‘leyeda x’): Coloca una leyenda al eje x ylabel(‘leyeda y’): Coloca una leyenda al eje y grid: Por defecto, el color de las líneas del gráfico es rojo, pero eso se puede cambiar, así como también el estilo de las líneas. En las siguientes tablas se muestran las posibilidades de colores y estilos de líneas: Símbolo y m c r g b w k Color Amarillo Magenta Celeste Rojo Verde Azul Blanco Negro (por defecto) Símbolo . o x + * s d ^ Tipo de línea Puntos Con círculos Marcas en x Marcas en + Marcas en * Marcas cuadradas Marcas en diamante Triangulo apuntando arriba Por ejemplo, nuestra función a * |x| * sin(x) sobre 3 diferentes valores de a, en diferentes colores y estilos de líneas (HACER), todo en un mismo gráfico, con título y leyenda La función plot() permite también dibujar múltiples curvas introduciendo varias parejas de vectores como argumentos. En este caso, cada uno de los segundos vectores se dibujan en ordenadas como función de los valores del primer vector de la pareja, que se representan en abscisas. Obsérvese bien cómo se dibujan el seno y el coseno en el siguiente ejemplo (usamos el mismo x definido al comienzo): octave> y=sin(x); z=cos(x); octave> plot(x,y,x,z) Sentencia ‘for’ 2010 Taller de Informática I Dpto. Computación – F.C.E. y N. - UBA 2010 Repite una serie de sentencias un número determinado de veces, sin importar los procesos que ocurran dentro, por lo que la única manera de salir del bucle es esperar que el ciclo acabe. La sintaxis de la sentencia sería: for var = expression body endfor Cuando var llega al valor de expression, el ciclo se detiene. Para el caso de nuestra función donde ‘a’ tomaba 3 valores diferentes: a * |x| * sin(x) podemos realizar el siguiente ciclo: octave> octave> octave> octave> octave> close all; hold on; for a = 0.1:0.1:0.3 plot(x, abs(a*x) .* sin(x)); end; Ejercicio: Probar con valores negativos de ‘a’ quitando la función abs (Es decir, hacer directamente a*x) Ejercicio: Mostrar en una misma pantalla en azul las curvas que corresponden a valores positivos de a, y en rojo las curvas que corresponden a valores negativos de a.