Diferencia entre revisiones de «PrInf03: Gráficos de funciones»
(→Funciones no vectorizadas) |
(→Funciones no vectorizadas) |
||
| Línea 38: | Línea 38: | ||
# 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-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. | ||
# 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''. | ||
== 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:04 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.
Contenido
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
- 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].
- Una vez hayas creado el vector, puedes calcular las imágenes de x simplemente haciendo 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.
y = cos(x);
- Para dibujar la gráfica simplemente tenemos que ejecutar
plot(x,y);
- 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
- 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.
- Ahora intentamos generar el valor de la y, usando el siguiente código ¿Qué ocurre? ¿Por qué? ¿Cómo podemos arreglarlo?
y = x^2-2*x+1;
- Dibuja el gráfico de la función una vez que hayas logrado generar el vector y.