1 2 3 4

 

Graficación de funciones. Integral de Riemann

En esta sección vamos a discutir los  aspectos matemáticos de la implementación de un graficador, usado para hacer experimentos relacionados con la integral de Riemann. Para empezar teneieno una idea,  haga clic en el botón "Graficar" y luego manipule la barra de escala y el intervalo de graficación.

Los navegadores ya no brindan soporte para applets de java, este applet se ha deshabilitado

Supongamos que queremos graficar una función f (x) desde x = a hasta x = b en un sistema de coordenadas en el que el eje X   tiene escala '1:escalaX', es decir, una unidad son 'escalaX'   pixeles y el eje Y tiene escala '1:escalaY'. Vamos a suponer que el eje X va desde  xmin  hasta  xmax. Y que estos valores son definidos por el usuario.

Primero vamos a establecer la relación entre las coordenadas reales de un punto y sus correspondientes coordenadas en la pantalla de un monitor. La pantalla de un monitor la debemos imaginar como una rejilla finita de puntos, como se ve en la figura que sigue (aquí los pixeles están distanciados de una manera exagerada para ayudar a visualizar la situación). La esquina superior izquierda inicia en (0,0), es decir la fila 0-columna 0. 

 

En este gráfico se muestra una simulación de los pixeles en pantalla.

En la simulación de los pixeles en pantalla del gráfico de arriba, se puede observar que se ha escogido el punto (7,14) como origen de coordenadas, así que  respecto a este sistema de coordenadas

  • el punto de pantalla (6, 14) corresponde a (-1, 0) respecto al sistema de coordenadas 

  • el punto de pantalla (17, 14) corresponde a (1, 0) respecto al sistema de coordenadas 

  • el punto  (1,1)  respecto al sistema de coordenadas  corresponde al punto (17, 4) en pantalla

En general, el punto (p, q) respecto al sistema de coordenadas con origen (x0, y0) corresponde al punto en pantalla 
(x0 + p, y0 - q).

Para graficar una función, desde x = a hasta x = b, se debe tener en cuenta la escala en el eje X.

Si por ejemplo la escala es 1 : 10 (es decir, 1 unidad =10 pixeles ), entonces para graficar f (x) desde x = 0 a x = 2 disponemos solamente de 20 pixeles.

Si queremos graficar f (x) desde x = a hasta x = b, podemos unir con segmentos, como máximo, (b - a)*escalaX pares ordenados pues este es exactamente el número de pixeles que tenemos en el eje X entre x = ax = b. Las coordenadas reales de estos pares son     (Rxi, Ryi) con

 

Rxi = a + i/escalaX;    Ryi = f (Rxi),      i = 0, 2,...,(b - a)*escalaX

Por ejemplo, si escalaX= 10 entonces Rx2 = a + 2/10, es decir, avanzamos en saltos de una décima. Como la escala es "1:10", cada décima representa un salto de un pixel. No podemos avanzar, con esta escala, en saltos de menos de una décima pues al redondear obtendriamos "0 pixeles" de avance

Las coordenadas correspondientes en pantalla son

Cxi = Math.round (a*escalaX + i);    Cyi = Math.round (escalaY*f (Rxi))    i = 0, 2,...,(b - a)*escalaX

Por ejemplo, si  escalaY = escalaX = 10  y  a = 2  entonces

si  Rx7 =  2 + 7/10  =  2.7  entonces Cx7 =   27     pixeles desde el origen de coordenadas

si  Ryi = 1.3454 entonces Cyi = 13 pixeles arriba del origen.

Entonces, si el origen está en (x0, y0) (en la pantalla) entonces el gráfico se obtiene uniendo los pares

 (x0 + Cxi,  y0 - Cyi);           i = 0, 2,...,(b - a)*escalaX

Con estos cálculos podemos usar exactamente los pixeles disponibles (o menos, si es el caso). El número de pares ordenados puede aumentar o disminuir de manera automática al variar la escala en el eje X y el eje Y, es decir, si queremos evaluar valores de x más cercanos, podemos aumentar la escala en X. Muchas veces, por problemas de redondeo se debe aumentar también la escala  en Y.

Los aumentos en la escala son necesarios para capturar el comportamiento de funciones que oscilan  muy rápido en pequeños intervalos (como y = sen (1/x) )

Para dibujar n rectángulos entre la curva de ecuación y = f (x) y el eje X entre x = a y x = b se debe tomar en cuenta la 'escalaX'   pues está determina el número máximo de rectángulos que podemos dibujar.

Si decidimos dibujar n rectángulos entre x = a y x = b entonces Rxi = a + i*(b - a)/n, pero esto tiene sentido a la hora de pasarlo a coordenadas de pantalla solo si la escala es lo suficientemente grande como para que cada paso 
i*(b - a)/n corresponda a 1 o más pixeles en coordenadas de pantalla.

Como es natural, cualquier descuido en los cálculos haría que no aparezcan algunos rectángulos o algunos puntos de la gráfica.

Conclusión

En los ejemplos presentados, hemos abordado las matemáticas necesarias para resolver algunos problemas computacionales de graficación. En estos se muestra como en problemas de graficación por computadora, el problema no es solo tener una solución matemática del problema, sino tener una solución eficiente. Al mismo tiempo, la solución de estos problemas plantean retos que ayudan a `saborear' un poco la matemática aplicada. Finalmente, aunque la programación es una actividad muy creativa, muchas veces se requiere el estudio de algoritmos ya establecidos para obtener una solución eficiente a un problema.

Bibliografía

1. Cormen, T.(editor)  Introduction to Algorithms. MIT Press. Segunda Edición. 2001.

2. Noble, D. Daniel, J. Algebra Lineal Aplicada. Prentice-Hall. Tercera Edición. 1989.

3. Schildt, H. Java 2. McGarw-Hill. 4ta Edición. 2001

4. Glassner, A. (Editor) Graphics Gems. Morgan Kaufmann. 1990.

5. Arvo, J. (Editor) Graphics Gems II. Morgan Kaufmann. 1991.

6. Mortenson, M. Mathematics for Computers Graphics Applications. Industrial Press. 1999

 

Este documento fue generado usando  LaTeX2HTML translator Version 99.2beta6 (1.42)


 1 2 3 4

Revista Virtual, Matemática Educación e Internet.
Derechos Reservados.