Integración Numérica con GNU Octave | 2da Parte

in #steemstem6 years ago
Imagen editada con GIMP, gráficos hechos con GNU Octave. Elaborada por @abdulmath.
Saludos queridos lectores, bienvenidos nuevamente a mi Blog. Quiero compartir con ustedes un nuevo tema en mi blog, siguiendo la línea de análisis numérico, en esta oportunidad comenzaremos a desarrollar un poco el tema de Integración Numérica, usando GNU Octave, en el que hablaremos acerca de las Reglas Compuestas de Integración, Error, mostraremos algunas script y construiremos funciones para mostrar algunos ejemplos. La misma está dirigida al público en general, con destrezas en temas de análisis real, cálculo avanzado, entre otros; con especial énfasis en profesionales y estudiantes universitarios de ciencias, ingeniería y carreras afines. Al final, dejaremos bibliografía, para que puedan consultar algunos tópicos especiales para los interesados. Estoy abierto a sus comentarios y dudas que puedan surgir dentro del tema. Sin perder más tiempo, comencemos.

Reglas Compuestas

Continuando con el tema de Integración Numérica, podemos resaltar que la cota del error que describimos en la publicación anterior Integración Numérica con GNU Octave | 1era Parte salvo el que intervalo o dominio donde queremos acotar sea bastante pequeño, es decir, que h = b - a lo suficientemente pequeño, la misa no es muy buena. Afortunadamente, hay una manera más sencillo o fácil de organizar el cálculo de la integral, de modo que las cuadraturas de intervalos pequeños prevalezcan. A esto se le llama o conoce como Reglas Compuestas.



Derivación

Si tenemos una partición



entnces

Si aplicamos QNC(m) a cada una de las subintegrales, resulta una regla de cuadratura compuesta basada en QNC(m). Por ejemplo, si



entonces

ec32.png

es una regla compuesta de Simpson. En general, si z esta contenida en una partición de [a, b] y fname es una cadena de caracteres de alguna función, entonces


Script para calcular el valor de Q. Elaborado con GNU Octave, por @abdulmath.

asignamos a numI la estimación compuesta de m puntos de Newton-Cotes de la integral basada en la partición donde se encuentra z. Más adelante, mostraremos como automatizar la elección de una buena partición. Por ahora nos centraremos en describir reglas compuestas que están basadas en particiones uniformes. En estas reglas, n > 1,


Para i = 1: n + 1, la regla de evaluación compuesta toma la forma


Script para evaluar la regla compuesta. Elaborado con GNU Octave, por @abdulmath.

Designemos la estimación producida por la regla de cuadratura mediante Q(n)NC(m). El cálculo es un poco ineficiente ya que se involucra n - 1 evaluaciones de funciones y adicionalmente un bucle. La evaluación de más a la derecha en la i-ésima llamada en QNC es la misma que la evaluación de f más a la izquierda de la (i+1)-ésima llamada. La figura siguiente muestra y representa la situación en el caso de cuatro subintervalos, para una regla de cinco puntos.



Representación de la evaluación de la función para Q(4)NC(5). Elaborado en Inskcape, por @abdulmath.

Para evitar redundancia de las evaluaciones de f y un bucle con llamadas a los valores de función repetidas veces, es mejor no aplicar QNC a cada uno de las b subintegrales. En su lugar, calculamos previamente todas las evaluaciones de la función que sean necesarias y las almacenamos en un vector de columna simple, es decir, fval(1:n*(m-1)+1). Así, podemos calcular la combinación lineal que define la regla compuesta como mostraremos a continuación.

En el ejemplo anterior de la regla compuesta de cinco puntos, es decir, Q(4)NC(5), las 17 evaluaciones de funciones requeridas se almacenan en fval(1:17). Si w es el vector de peso para QNC(5), entonces


A partir de esto, concluimos que Q(n)NC(m) es una suma de n productos internos, cada uno de los cuales implica el vector de peso w de la regla subyacente y una parte del vector fval. La siguiente función muestra lo que acabamos de decir:



Función la Regla Compuesta optimizada. Elaborado con GNU Octave, por @abdulmath.



Error

Ahora, veamos como es el error cometido. Supongamos que Qi2 es la estimación de m puntos de Newton-Cotes de la i-íesima subintegral. Si esta regla es exacta para polinomios de grado d, luego usando la ecuación (1) obtenemos la siguiente relación



Por definición


y


Sin embrago, se puede demostrar que


para algún valor de eta en [a, b] y así


Si |f(d+1)(z)| es menor o igual a Md+1 para todo x en el intervalo [a, b], entonces

Si comparamos con el error obtenido para la regla de Newton-Cotes (ver la ecuación (3) en Integración Numérica con GNU Octave | 1era Parte), vemos que el error en la regla compuesta es el error en la regla correspondiente simple dividido por nd+1. Así, con un valor de m fijo, es posible ejercer el control del error eligiendo un valor de n suficientemente grande. Por ejemplo, supongamos que queremos aproximar la integral con una regla de Simpson compuesta uniformemente espaciada para que el error sea menor que una tolerancia prescrita. Si sabemos que la cuarta derivada de f está acotada por M4, entonces elegimos n tal que



Para mantener el número de evaluaciones de la función lo más pequeño posible, n debe ser el número entero positivo más pequeño que satisfaga la siguiente relación


El siguiente script, muestra dos ejemplos donde se aplican lo visto para dos funciones simples


Script de aplicación para cálculo del error. Elaborado con GNU Octave, por @abdulmath.

Ahora veamos los gráficos obtenidos anteriormente.



Gráfica del error de aproximación de la integral para la función f(x) = sin(x). Elaborado con GNU Octave, por @abdulmath.

y


Gráfica del error de aproximación de la integral para la función f(x) = sqrt(x). Elaborado con GNU Octave, por @abdulmath.



Adaptatividad

Las reglas compuestas uniformemente espaciadas que son exactas para polinomios de grado d son eficientes si f(d+1) se comporta uniformemente en [a, b]. Sin embargo, si la magnitud de esta derivada varía ampliamente a lo largo del intervalo de integración, entonces el proceso de control de errores anteriormente puede resultar en una cantidad innecesaria de evaluaciones de la función. Esto se debe a que el valor de n está determinado por una cota Md+1 de la derivada a lo largo del intervalo. En regiones donde f(d+1) sea pequeña en comparación con este valor, los subintervalos son mucho más pequeños de lo necesario. Los métodos de cuadratura adaptativa abordan este problema descubriendo dónde el integrando se comporta mal y disminuye el tamaño de los subintervalos en consecuencia.

Un Proceso Adaptativo de Newton-Cotes

Para obtener una buena partición de [a, b], debemos poder estimar el error. De esta forma, la partición puede ser refinada si el error no es lo suficientemente pequeño. Una idea es usar dos reglas de cuadratura diferentes. La diferencia entre los dos valores predichos de la integral podría tomarse como una medida de su inexactitud.

La forma de realizarla es similar al que desarrollamos para la aproximación lineal por tramos adaptativa (ver Interpolación Polinomial a Trozos usando el entorno GNU Octave). Para ver los detalles debemos desarrollar el método para estimar el error.

Fijemos m y sean



Por lo tanto, A1 es la estimación de regla de m puntos simple y A2 es la estimación de regla de m puntos en 2 intervalos. Si estas reglas son exactas para polinomios de grado d, entonces se puede demostrar que


Supongamos que


Lo cual, es bastante razonable si f(d+1) no cambia mucho en [a, b]. Por lo tanto, I = A1 + C y I = A2 + C/2d+1 donde


Al restar estas dos ecuaciones para I y resolver C, obtenemos


y así


Por lo tanto, la discrepancia entre las dos estimaciones divididas por 2d+1 - 1 proporciona una estimación razonable del error en A2. Si nuestro objetivo es producir una estimación de I que tenga un error absoluto tol o menor, entonces tenemos la siguiente función:


Función para calcular al integral de la función f(x) adaptada. Elaborado con GNU Octave, por @abdulmath.

Si la estimación heurística del error es mayor que tol, se inician dos llamadas recursivas para obtener estimaciones


que satisfacen


Configurando, Q = QL + QR, vemos que


El siguiente script muestra como usar la función AdapQNC para varios valores de tol y m


Script de applicación de AdapQNC. Elaborado con GNU Octave, por @abdulmath.

Obteniendo los siguientes resultados, resumidos en la siguiente tabla

m = 3m = 5m-7m = 9
tol = 0.01(104,26)(98,14)(60,6)(26,2)
tol = 0.001(216,54)(154,22)(60,6)(26,2)
tol = 0.0001(376,94)(210,30)(140,14)(130,10)
tol = 0.00001(696,174)(322,46)(260,26)(182,14)




Queridos amigos y lectores, espero hayan disfrutado y aprendido un poco más sobre la Integración Numérica usando el entorno GNU Octave donde pudimos aprender las ventajas de la integración numérica y como estimar el error cuando usamos este tipo de aproximaciones, también los invito a usar los script que les dejo y modificar las funciones dadas en los mismos y así poner en práctica todo lo que hemos aprendido hasta el momento. Estoy seguro que será de mucho apoyo a ustedes, hijos, nietos, sobrinos o amigos que quieran aprender un poco más del maravilloso mundo de las matemáticas y la programación. No olviden dejar sus comentarios. Saludos y nos leemos pronto.


Si desean consultar un poco más del tema pueden usar las siguientes referencias:

  • Demidovich, B. P., and I. A. Maron. Computational Mathematics Mir, Moscow, 1976.
  • Björck, Åke. Numerical methods in matrix computations. Vol. 59. Cham: Springer, 2015.
  • Burden, Richard L., and J. Douglas Faires. Numerical analysis. Ninth Edition. Cengage Learning. 2011.

Las imágenes, separadores y las ecuaciones fueron creadas y editadas por @abdulmath usando software libre, GNU Octave, , GIMP e Inkscape.



@SteemSTEM es un proyecto comunitario con el objetivo de promover y apoyar la Ciencia, la Tecnología, la Ingeniería y las Matemáticas en la blockchain Steem. @Stem-espanol es parte de esta comunidad, si desea apoyar el proyecto, puedes contribuir con contenido en español en las áreas de Ciencia, Tecnología, Ingeniería y Matemáticas, utilizando las etiquetas #steemstem y #stem-espanol.



Imagen diseñada con GIMP y elaborada por @abdulmath.

Sort:  

Felicitaciones por tu trabajo, esfuerzo y dedicación de contenido de calidad en esta plataforma.
Buena vibra.

Hola @angelica7, muchas gracias por tus palabras, siempre apoyando y animando a seguir mejorando, gracias por tu constancia. Saludos y besos.

Congratulations @abdulmath! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Award for the number of posts published

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

You can upvote this notification to help all Steemit users. Learn why here!



This post has been voted on by the steemstem curation team and voting trail.

There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!

Salam aleikum, gracias por tu apoyo de mi articulo.
Viendo tus referencias

Demidovich, B. P., and I. A. Maron. Computational Mathematics Mir, Moscow, 1976

La verdad es que esos rusos son un verdugos en matemática, COMPUTACIONAL en el 1976!!!. Asi que despues de los arabes, los rusos y Ud por supuesto, no hay mejores matemáticos....

Coin Marketplace

STEEM 0.35
TRX 0.12
JST 0.040
BTC 70557.88
ETH 3560.83
USDT 1.00
SBD 4.75