Diferencia entre revisiones de «PrInf03: Gráficos de funciones»

De MateWiki
Saltar a: navegación, buscar
(Funciones no vectorizadas)
(Funciones no vectorizadas)
Línea 36: Línea 36:
 
=== Funciones no vectorizadas ===
 
=== Funciones no vectorizadas ===
  
# En los puntos anteriores hemos dibujado funciones que ya estaban vectorizadas, por lo que era sencillo generar los gráficos. Vamos ahora a representar la parábola <math>y = x^2-2x+1</math> con <math>x\in[-3,3]</math>. El primer paso será generar el vector ''x'' que contenga 50 elementos igualmente espaciados entre -3 y 3.
+
# En los puntos anteriores hemos dibujado funciones que ya estaban vectorizadas, por lo que era sencillo generar los gráficos. Vamos ahora a representar la parábola <math>y = x^2-20x+1</math> con <math>x\in[-30,30]</math>. El primer paso será generar el vector ''x'' que contenga 100 elementos igualmente espaciados entre -30 y 30.
 
# Ahora intentamos generar el valor de la ''y'', usando el siguiente código {{#tag:source|y = x^2-2*x+1;|lang="matlab"}} ¿Qué ocurre? ¿Por qué? ¿Cómo podemos arreglarlo?
 
# Ahora intentamos generar el valor de la ''y'', usando el siguiente código {{#tag:source|y = x^2-2*x+1;|lang="matlab"}} ¿Qué ocurre? ¿Por qué? ¿Cómo podemos arreglarlo?
 
# Dibuja el gráfico de la función una vez que hayas logrado generar el vector ''y''.
 
# Dibuja el gráfico de la función una vez que hayas logrado generar el vector ''y''.
 +
# ¿Cuáles son los puntos de corte de la parábola con el eje x? Es difícil apreciarlo bien porque no están dibujados los ejes en el gráfico. Añade una rejilla usando el comando ''grid'' y luego usa la función de zoom de la ventana de gráficos para dar una estimación con dos decimales de los dos puntos de corte con el eje horizontal.
  
 
== Ejercicios post-práctica ==
 
== Ejercicios post-práctica ==
  
 
[[Categoría:Prácticas de Informática]]
 
[[Categoría:Prácticas de Informática]]

Revisión del 12:08 3 jul 2013

Además de facilitar los cálculos matriciales, otra de las grandes ventajas de Octave UPM es la generación de gráficos. Se pueden realizar muchos tipos de gráficos, en el plano y en el espacio. En esta práctica vamos a tener nuestro primer contacto con los gráficos, dibujando gráficos de funciones en el plano. Ser capaz de generar gráficos de funciones en el plano puede ayudarnos a entender mucho más fácilmente cómo funcionan nuestros programas, sobre todo cuando estemos implementando métodos numéricos.

1 Vídeos previos

Antes de realizar esta práctica, es recomendable ver estos vídeos del Curso de Introducción a la Programación. No es imprescindible verlos antes de hacer la práctica, pero sí recomendable. Si no has podido verlos antes, empieza la práctica, y vuelve a los vídeos después de la práctica.

También es recomendable haber realizado antes la práctica 2, que enseña cómo crear y modificar vectores y matrices.

2 Comandos que se aprenderán en esta práctica

En esta práctica vamos a ver qué significan los siguientes comandos de MATLAB / Octave

plot clf figure
hold legend grid

3 Contenido de la práctica

Para dibujar gráficos de funciones en el plano tenemos que entender que en realidad con el comando plot vamos en realidad a dibujar tablas de datos, es decir, vectores y matrices. Tendremos que discretizar las funciones para poder representarlas. La discretización hará que la curva sea más suave, y por tanto más parecida a la realidad, o más tosca. Pero la curva no puede realizarse infinitamente suave por dos problemas principales: rendimiento, y representación de los números en el ordenador.

3.1 Funciones de la biblioteca vectorizadas

  1. Vamos a dibujar la función trigonométrica [math]y = \cos(x)[/math], con [math]x \in [0, 2\pi][/math]. Como primer paso, crea un vector x que contenga 10 elementos igualmente espaciados entre 0 y [math]2\pi[/math].
  2. Una vez hayas creado el vector, puedes calcular las imágenes de x simplemente haciendo
    y = cos(x);
    Esto es así porque la función cos está vectorizada: si el argumento de entrada es un vector, devuelve un vector aplicando la función a cada elemento del vector entrada. Comprueba que las longitudes de los vectores x e y son iguales.
  3. Para dibujar la gráfica simplemente tenemos que ejecutar
    plot(x,y);
  4. El gráfico obtenido no es demasiado parecido a la función trigonométrica. ¿Cómo podemos generar un gráfico en el que la curva se perciba claramente?

3.2 Funciones no vectorizadas

  1. En los puntos anteriores hemos dibujado funciones que ya estaban vectorizadas, por lo que era sencillo generar los gráficos. Vamos ahora a representar la parábola [math]y = x^2-20x+1[/math] con [math]x\in[-30,30][/math]. El primer paso será generar el vector x que contenga 100 elementos igualmente espaciados entre -30 y 30.
  2. Ahora intentamos generar el valor de la y, usando el siguiente código
    y = x^2-2*x+1;
    ¿Qué ocurre? ¿Por qué? ¿Cómo podemos arreglarlo?
  3. Dibuja el gráfico de la función una vez que hayas logrado generar el vector y.
  4. ¿Cuáles son los puntos de corte de la parábola con el eje x? Es difícil apreciarlo bien porque no están dibujados los ejes en el gráfico. Añade una rejilla usando el comando grid y luego usa la función de zoom de la ventana de gráficos para dar una estimación con dos decimales de los dos puntos de corte con el eje horizontal.

4 Ejercicios post-práctica