Suma de Paralelogramos

Integración Numérica: Método de Paralelogramos

Suma de paralelogramos

Este es el procedimiento más sencillo, fue la aproximación que utilizó Newton cuando desarrolló el cálculo integral.

Ya vimos que las sumas de Riemann son una aproximación adecuada para el cálculo de las áreas debajo de una función f(x) en el intervalo [a, b]. Si dividimos el intervalo entre a y b en n subintervalos de igual tamaño, se generarán n tiras rectangulares de igual ancho, h, ahora de acuerdo a la definición de Riemann, la altura de referencia en cada tira, puede ser cualquier valor de la función f(x), dentro del sub intervalo. Pero utilizar cualquier valor dentro del subintervalo, a pesar de que es teóricamente correcto, no es práctico desde el punto de vista de la automatización y estandarización del proceso.

Si la curva de función f(x) tiene pendiente positiva dentro del intervalo [a, b], si tenemos un sub intervalo [xi, xi+1] y tomamos como valor de la función el valor del extremo izquierdo de un sub intervalo f(xi), el área estimada por la suma de los paralelogramos será menor que el área verdadera. Entonces se obtendrá una aproximación por defecto al valor de la integral en el intervalo [a, b]. Esto se puede ver en la gráfica, donde los paralelogramos no cubren por completo el área debajo de la curva en el intervalo [2, 4]. En esta figura se utilizaron solamente dos sub intervalos para facilitar la visualización del concepto.

null

Si en lugar de utilizar el valor de la función en el extremo izquierdo del sub intervalo, utilizamos el valor de la función en el extremo derecho del sub intervalo, f(xi+1), entonces el área de los paralelogramos será mayor que el área verdadera. Entonces se obtendrá una aproximación por exceso al valor de la integral en el intervalo [a, b]. Esto se puede ver en la gráfica, donde los paralelogramos sobrepasan el área debajo de la curva en el intervalo [2, 4].

null

Ahora podríamos utilizar cualquier punto dentro del sub intervalo [xi, xi+1], pero para fines prácticos utilizaremos el punto medio del sub intervalo, xm= 1/2* (xi + xi+1) y utilizaremos el valor de la función en este punto, f(xm) como el valor de la altura del paralelogramo, en este caso se observa que la mitad del paralelogramo está en exceso y la otra mitad está en defecto, lo que produce cierto balance entre exceso y defecto, como se muestra en la figura.

null

En resumen, se puede decir que las opciones para el valor de la función f(x) en el sub intervalo son tres:

1.- En el extremo izquierdo del sub intervalo, se utiliza f(xi), es una aproximación por defecto, si la pendiente es positiva en el intervalo.

2.- En el extremo derecho del sub intervalo, se utiliza f(xi+1), es una aproximación por exceso, si la pendiente es positiva en el intervalo.

3.- En el punto medio del sub intervalo, f(xm), donde xm=1/2* (xi + xi+1), es una aproximación que tiene cierto nivel de balance.

A continuación, revisaremos los algoritmos utilizados para cada una de estas opciones y presentaremos algunos procedimientos en VBA Excel para la aplicación de los mismos.

Sumatorias Utilizando Ciclos For – Next

Para realizar sumatoria en VBA puede utilizarse un ciclo For – Next, el cual tiene la siguiente forma:

Hay que crear 2 variables una variable para almacenar el valor de la suma y una variable para que funcione como contador.

Por ejemplo, la variable i para ser el contador del ciclo For – Next y la variable Suma para almacenar la suma.

null

La estructura del ciclo For – Next consta de un contador, en este caso la variable i, que comienza con un valor inicial, a y un valor final, b, antecedido por el comando To. Luego está el comando Step, para introducir el valor del delta que hay que ir sumando al valor de i hasta alcanzar el valor b. El comando Step es opcional, si no se coloca toma como valor predeterminado uno. Para finalizar el ciclo se utiliza el comando Next, [i], donde es opcional colocar el nombre de la variable utilizada como contador del ciclo.

Los valores de a, b y st no necesitan ser número enteros, son números reales, que podrían tener tipo de dato Integer o Long (en el caso de que utilicemos valores enteros en la variable utilizada como contador); Single o Double ( en el caso de utilizar valores reales). Recomendándose el uso de Double.

Como en lugar del valor del delta x, por lo general se utiliza el número de sub intervalos entre a y b, n. Entonces delta x = (b – a )/n

Caso 1: Valor de la función en el extremo izquierdo.

El procedimiento a seguir es el siguiente:

1.- Definir la función a la cual se le va a calcular la integral

2.- Definir el intervalo [a, b]

3.- Establecer el número de sub intervalos, n (número de paneles).

4.- Calcular el valor de delta x=(b-a)/n.

5.- Establecer el ciclo For – Next desde a hasta (b-delta x), con paso (step) igual a delta x.

6.- Calcular el Producto de f(xi)*delta x para cada sub intervalo.

7. Efectuar la suma de Riemann de todos los productos de f(xi)*delta x, el resultado es la aproximación de la integral en el intervalo [a, b].

A continuación, se muestra una función definida por el usuario (UDF) para estimar el valor de la integral usando el valor de la función en el punto izquierdo del sub intervalo. Se ha creado una función para insertar la función a la que se le va a calcular integral.

Public Function ff1(x As Double) As Double

ff1 = x ^ 2 + 3

End Function

###

Public Function SumaP1(a As Double, b As Double, n As Long) As Double

Dim deltax As Double

deltax = (b – a) / n

Dim fi1 As Double

Dim sumpanel As Double

Dim i As Double

sumapanel = 0

For i = a To (b – deltax) Step deltax

fi1 = ff1(i)

sumapanel = sumapanel + fi1 * deltax

Next i

SumaP1 = sumapanel

End Function

Caso 2: Valor de la función en el extremo derecho.

El procedimiento a seguir es el siguiente:

1.- Definir la función a la cual se le va a calcular la integral

2.- Definir el intervalo [a, b]

3.- Establecer el número de sub intervalos, n (número de paneles).

4.- Calcular el valor de delta x=(b-a)/n.

5.- Establecer el ciclo For – Next desde (a + delta x) hasta b, con paso (step) igual a delta x.

6.- Calcular el Producto de f(xi+1)*delta x para cada sub intervalo.

7. Efectuar la suma de Riemann de todos los productos de f(xi+1)*delta x, el resultado es la aproximación de la integral en el intervalo [a, b].

A continuación, se muestra una función definida por el usuario (UDF) para estimar el valor de la integral usando el valor de la función en el punto derecho del sub intervalo. Se ha creado una función para insertar la función a la que se le va a calcular la integral.

Public Function ff1(x As Double) As Double

ff1 = x ^ 2 + 3

End Function

###

Public Function SumaP2(a As Double, b As Double, n As Long) As Double

Dim deltax As Double

deltax = (b – a) / n

Dim fi1 As Double

Dim sumpanel As Double

Dim i As Double

sumapanel = 0

For i = (a + deltax) To b Step deltax

fi1 = ff1(i)

sumapanel = sumapanel + fi1 * deltax

Next i

SumaP2 = sumapanel

End Function

Caso 3: Valor de la función en el punto medio del intervalo.

El procedimiento a seguir es el siguiente:

1.- Definir la función a la cual se le va a calcular la integral

2.- Definir el intervalo [a, b]

3.- Establecer el número de sub intervalos, n (número de paneles).

4.- Calcular el valor de delta x=(b-a)/n.

5.- Establecer el ciclo For – Next desde a hasta (b – delta x), con paso (step) igual a delta x.

6.- Calcular el punto medio del intervalo xm=(xi +xi+1)/2

6.- Calcular el Producto de f(xm)*delta x para cada sub intervalo.

7. Efectuar la suma de Riemann de todos los productos de f(xm)*delta x, el resultado es la aproximación de la integral en el intervalo [a, b].

A continuación, se muestra una función definida por el usuario (UDF) para estimar el valor de la integral usando el valor de la función en el punto derecho del sub intervalo. Se ha creado una función para insertar la función a la que se le va a calcular la integral.

Public Function ff1(x As Double) As Double

ff1 = x ^ 2 + 3

End Function

###

Public Function SumaP3(a As Double, b As Double, n As Long) As Double

Dim deltax As Double

deltax = (b – a) / n

Dim fi1 As Double

Dim sumpanel As Double

Dim i As Double

Dim m As Double

sumapanel = 0

For i = a To (b – deltax) Step deltax

m = (i + (i + deltax)) / 2

fi1 = ff1(m)

sumapanel = sumapanel + fi1 * deltax

Next i

SumaP3 = sumapanel

End Function

Comparación entre Casos

Para evaluar los 3 casos estudiados para la aproximación del valor de la integral se está utilizando la función f(x)= x^2+3. A continuación se muestra el valor analítico de la integral en el intervalo [0, 5].

null

Cuando se utiliza el valor de la función en los puntos extremos de los sub intervalos se obtiene una aproximación a la integral que puede ser por defecto, área menor que el área bajo la curva; o por exceso, área mayor que el área bajo la curva. Cuando se utiliza el valor de la función en el punto medio de los sub intervalos, se obtiene un balance entre las áreas en exceso y defecto, y la aproximación está bastante cerca del valor real de la integral, aún con un número pequeño de sub intervalos (n). En la figura se grafican el valor de las aproximaciones (eje de las Y) en función del número de sub intervalos utilizados (eje de las X), se muestran los tres casos, la curva de color azul, representando la aproximación por defecto y la curva de color rojo representando la aproximación en balance calculada en el punto medio de los sub intervalos y la curva de color naranja, representando la aproximación por exceso. Se observa que las aproximaciones por exceso y por defecto son simétricas y requieren más de 1000 sub intervalos para alcanzar valores más cercanos a la aproximación obtenida en el punto medio.

null

Al revisar la desviación porcentual, de las aproximaciones con respecto al valor analítico, se observa como la aproximación al utilizar el punto medio de los sub intervalos se acerca al valor analítico, con relativamente pocos subintervalos, n.

Bibliografía

Métodos Numéricos: Integración Numérica

https://www.amazon.com/dp/B06WLKTJPM