12
1.5 Integración numérica El cálculo numérico de las integrales es una de más importantes operaciones matemáticas en los algoritmos computacionales para analizar los modelos matemáticos en casi áreas de Física Computacional. En diferentes aplicaciones de la Mecánica Cuántica, Física Estadística, Estado Sólido, Física Atómica y Nuclear (método Harreé-Fock; teoría de perturbaciones, método variacional, Monte- Carlo, etc.) el cálculo de las integrales es una operación que define el gasto de tiempo. Por eso, los algoritmos para calcular las integrales deben ser universales y máximamente rápidos que garantizan la precisión sugerida. A diferencia de operaciones de la interpolación y la derivación numérica el problema de integración numérica es bien puesto. Sin embargo, en muchos casos cuando la función subintegral tiene singularidades el problema de control automático de los errores de cálculo sugiere la elaboración de unos algoritmos especiales que se llaman autoadaptables. Actualmente, existe una gran cantidad de algoritmos y programas que permiten realizar el cálculo de las integrales con la precisión sugerida en una forma automática, el usuario solo tiene definir la función subintegral, la región de la integración y tolerancia. Pero teniendo en diferentes bibliotecas, una variedad de algoritmos y programas siempre surge la pregunta ¿Cuál es la diferencia en los algoritmos y cómo escoger un programa para que éste garantiza la tolerancia sugerida en el tiempo óptimo? Existen dos maneras para aumentar la precisión de cálculo de las integrales. La primera, aumentando el número de pasos, en los cuales se calcula la función y de esta manera aumentan sin límites, (especialmente para las integrales multidimensionales), el tiempo de computación y los errores por redondeo acumulados. Otra posibilidad es aplicar algoritmos autoadaptables. En estos algoritmos, los tamaños de las subregiones se definen automáticamente: tamaños grandes, donde la función es suave y varia lentamente, y los tamaños pequeños en las partes donde la función posiblemente cambia su valor bruscamente. De esta manera, se obtiene un resultado con una precisión sugerida durante un tiempo mínimo posible de computación. El primer programa autoadaptable, para calcular integrales unidimensionales fue publicado en 1962 y empleó la fórmula de cuadratura de Simpson. Este programa y sus modificaciones tuvieron éxitos en la práctica y fueron incorporados en diferente software (Matlab, Matemática, etc.). El usuario de estos programas define un intervalo [a, b], prepara el subprograma para calcular la función () f x en cualquier punto de este intervalo y escoge , la precisión deseada. El programa trata de encontrar el valor aproximado de la integral I, para el cual se cumple la siguiente relación, () b a I dx gx usando un tiempo mínimo. El programa puede concluir, que la precisión deseada es imposible y encontrar su mejor valor posible y comunicar la precisión alcanzada. La precisión alcanzada y el tiempo de computación de un programa autoadaptable dependen de las fórmulas de cuadraturas que se utilicen en el programa. Hay dos tipos de fórmulas de cuadraturas, para calcular integrales unidimensionales: Un algoritmo utiliza la red con nodos equidistantes (Newton-Cotes) y otro la red de nodos no equidistantes (Gauss). Un método alternativo llamado Monte-Carlo se usa para calcular las integrales multidimensionales en espacios con dimensión mayor o igual a 4, las cuales se calculan como un producto del volumen de un hiperrectángulo y un valor promedio de la función subintegral calculado sobre un conjunto de puntos, creados a través de un generador de números aleatorios. Este método en el caso de integrales multidimensionales tiene varias ventajas en comparación con los algoritmos que utilizan las fórmulas de cuadraturas y en primer lugar debido al hecho de que el error del método y el tiempo de cálculo no crecen cuando la dimensión espacial se aumenta. La integración numérica se usa en dos casos: cuando la primitiva no puede ser obtenida en la forma analítica, y cuando la función subintegral () gx en la integral ( ) b a I d gx x = está dada en una forma de una tabla. Las fórmulas para el cálculo numérico de las integrales se llaman las Cuadraturas. Primero, para deducir las fórmulas independientes de los límites de la integral hacemos el cambio de variables ( ) x a b at = + :

1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

1.5 Integración numérica

El cálculo numérico de las integrales es una de más importantes operaciones matemáticas en los algoritmos computacionales

para analizar los modelos matemáticos en casi áreas de Física Computacional. En diferentes aplicaciones de la Mecánica Cuántica,

Física Estadística, Estado Sólido, Física Atómica y Nuclear (método Harreé-Fock; teoría de perturbaciones, método variacional, Monte-

Carlo, etc.) el cálculo de las integrales es una operación que define el gasto de tiempo. Por eso, los algoritmos para calcular las integrales

deben ser universales y máximamente rápidos que garantizan la precisión sugerida. A diferencia de operaciones de la interpolación y

la derivación numérica el problema de integración numérica es bien puesto. Sin embargo, en muchos casos cuando la función

subintegral tiene singularidades el problema de control automático de los errores de cálculo sugiere la elaboración de unos algoritmos

especiales que se llaman autoadaptables. Actualmente, existe una gran cantidad de algoritmos y programas que permiten realizar el

cálculo de las integrales con la precisión sugerida en una forma automática, el usuario solo tiene definir la función subintegral, la región

de la integración y tolerancia. Pero teniendo en diferentes bibliotecas, una variedad de algoritmos y programas siempre surge la pregunta

¿Cuál es la diferencia en los algoritmos y cómo escoger un programa para que éste garantiza la tolerancia sugerida en el tiempo óptimo?

Existen dos maneras para aumentar la precisión de cálculo de las integrales. La primera, aumentando el número de pasos, en

los cuales se calcula la función y de esta manera aumentan sin límites, (especialmente para las integrales multidimensionales), el tiempo

de computación y los errores por redondeo acumulados. Otra posibilidad es aplicar algoritmos autoadaptables. En estos algoritmos, los

tamaños de las subregiones se definen automáticamente: tamaños grandes, donde la función es suave y varia lentamente, y los tamaños

pequeños en las partes donde la función posiblemente cambia su valor bruscamente. De esta manera, se obtiene un resultado con una

precisión sugerida durante un tiempo mínimo posible de computación. El primer programa autoadaptable, para calcular integrales

unidimensionales fue publicado en 1962 y empleó la fórmula de cuadratura de Simpson. Este programa y sus modificaciones tuvieron

éxitos en la práctica y fueron incorporados en diferente software (Matlab, Matemática, etc.). El usuario de estos programas define un

intervalo [a, b], prepara el subprograma para calcular la función ( )f x en cualquier punto de este intervalo y escoge , la precisión

deseada. El programa trata de encontrar el valor aproximado de la integral I, para el cual se cumple la siguiente relación,

( )b

a

I dxg x − usando un tiempo mínimo. El programa puede concluir, que la precisión deseada es imposible y encontrar su mejor

valor posible y comunicar la precisión alcanzada. La precisión alcanzada y el tiempo de computación de un programa autoadaptable

dependen de las fórmulas de cuadraturas que se utilicen en el programa. Hay dos tipos de fórmulas de cuadraturas, para calcular

integrales unidimensionales: Un algoritmo utiliza la red con nodos equidistantes (Newton-Cotes) y otro la red de nodos no equidistantes

(Gauss). Un método alternativo llamado Monte-Carlo se usa para calcular las integrales multidimensionales en espacios con dimensión

mayor o igual a 4, las cuales se calculan como un producto del volumen de un hiperrectángulo y un valor promedio de la función

subintegral calculado sobre un conjunto de puntos, creados a través de un generador de números aleatorios. Este método en el caso de

integrales multidimensionales tiene varias ventajas en comparación con los algoritmos que utilizan las fórmulas de cuadraturas y en

primer lugar debido al hecho de que el error del método y el tiempo de cálculo no crecen cuando la dimensión espacial se aumenta.

La integración numérica se usa en dos casos: cuando la primitiva no puede ser obtenida en la forma analítica, y cuando la

función subintegral ( )g x en la integral ( )b

a

I dg x x= está dada en una forma de una tabla. Las fórmulas para el cálculo numérico de

las integrales se llaman las Cuadraturas. Primero, para deducir las fórmulas independientes de los límites de la integral hacemos el

cambio de variables ( )x a b a t= + − :

Page 2: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

1

0( ) ( ) ; ( ) ; ( ) ( ( ) )

b

aI g x dx b a I I f t dt f t g a b a t= = − = = + − (1.5.1)

En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir al otra integral dentro del Interval (0,1) tipo

1

0( )I f t dt= (1.5.2)

Para encontrar una fórmula de cuadratura correspondiente a la integral (1.5.2) dentro del intervalo [0,1] se utiliza una malla con N+1

nodos 0 0,1 ,1; ,2,kt k N = . En adelante, denotaremos valores de la función en estos nodos de la malla como

( ), 0,1,2, ,k ky f t k N= = . Para calcular integrales unidimensionales tipo (1.5.2) por los métodos numéricos siempre se utiliza la

siguiente fórmula de cuadraturas:

1

01 1

( ) ( ) ( , ) ( , )N N

k k k k

k k

f x dx W f t f N W y f N = =

= + = + (1.5.3)

Aquí kW son los coeficientes, kt son los nodos ( , )f N es el error de la fórmula de la cuadratura, el cual depende del número de nodos

N y de la función ( )f x . Todos métodos numéricos utilizan fórmula (1.1.3) y solo se difieren por el método de la selección de las

posiciones de nodos kt y de los coeficientes. kW . Una opción más simple es elegir los nodos equidistantes con la separación entre los

nodos adyacentes 1/h N= . Las coordenadas de los nodos en este caso son iguales a / , 0,1,2, ,kt k N k N= = . Dados valores en

estos nodos ( ), 0,1,2, ,k ky f t k N= = uno puede en la formula (1.5.3) reemplazar la función subintegral por el polinomio interpolante

de Lagrange o de Newton y calculando analíticamente la integral encontrar los coeficientes Wk. Las fórmulas obtenidas de esta manera

se llaman las fórmulas de Newton-Cotes. Particularmente, usando los polinomios interpolantes segmentarios de los órdenes más bajos

se obtienen las cuadraturas conocidas como las fórmulas de rectángulos, trapecios, y de Simpson.

Otra posibilidad, consiste en elegir los nodos, kt y coeficientes kW de tal manera, que la fórmula (1.5.3) sea exacta, para todos

polinomios hasta orden 2N-1. Para cumplir esta condición los nodos de la malla deben distribuirse dentro del intervalo [0,1] de una

manera irregular. Como ha demostrado Gauss las posiciones de estos nodos coinciden con los ceros de los polinomios de Legendre.

Seleccionando de esta manera las posiciones de la malla en la relación (1.5.3) se obtienen lasd fórmulas llamas de Gauss-Legendre o

Gauss-Hermite o Gauss Laguerre. Finalmente, si las posiciones de los nodos de la malla kt se escogen al azar a travesde un programa

especial, llamada generador de números aleatorios entonces la fórmula (1.5.5.3) se llama la cuadratura Monte Carlo.

1.5.1 Fórmulas de Newton-Cotes

Para caso cuando la malla es equidistante / , 0,1,2, ,kt k N k N= = las fórmulas (1.5.1) - (1.5.3), usando el cambio de variables

( ) / ) (t x a b a= − − pueden escribirse en una forma independientes del intervalo [a, b]

( )1

00

( ) ( ) ( ) ( ) ( , ); ; ; ( ) ( ( ) )N

b

k k k k kak

kg x dx b a f t dt b a W y f N y f t t f t g a b a t

N

=

= − = − + = = = + − (1.5.4)

Aquí ( ) ( ), 0,1,2, ,k ky f t f k N k N= = = son valores de la función subintegral en los nodos de la malla y N es el número de

subdivisiones en el segmento [0,1]. Suponemos en adelante que ya nosotros conocemos todos los valores de la función subintegral ky

en los nodos de la malla. Entonces, podemos reemplazar la función subintegral en la parte izquierda de (1.5,4) por el polinomio

interpolante dado por la fórmula de Lagrange, calcular entonces la integral en una forma analítica y hallar de esta manera los coeficientes

Wk. Según la fórmula de interpolación de Lagrange para un polinomio de orden N, para una función cuyos valores en los nodos

equidistantes son ( ) ( ), 0,1,2, ,k ky f t f k N k N= = = el polinomio interpolante es

( )( ) ( )( ) ( )

( )( ) ( )( ) ( )0 1 1 1

0 1 1 10

... ...( ) ( ) ( , ); ( )

... ...

Nk k N

k k kk k k k k k k Nk

t t t t t t t t t tf t P t y f N P t

t t t t t t t t t t − +

− +=

− − − − −= + =

− − − − − (1.5.5)

Haciendo en la integral 1

0( )f t dt el cambio de variables /t q N= ,y teniendo en cuenta que kt k N= encontramos la expresión final

para los coeficientes de Newton-Cotes kW :en la fórmula (1.54) son iguales a

Page 3: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

01

1 ( 1)( )

!( )!

N k NN

k

ii k

W q i dqN k N k

=

−= −

− (1.5.6)

Estos coeficientes satisfacen, dos condiciones:0

1N

k

k

W=

= y k N kW W −= . Además, se puede demostrar que el error ( ),f N en la

fórmula (1.4.5) decrece con el aumento del número N de subdivisiones según la relación siguiente

( ) ; 2, 32p

C Nf pN

N

= = +

(1.5.7)

donde 2

N

es la parte entera de la fracción N/2. Anotemos que aquí y en adelante N es el número de segmentos en que se divide el

intervalo de integración y p es el orden del método. Mayor el 0orden del método p, más rápido se disminuye (exponencialmente según

la fórmula (1.5.7) el error del cálculo de la integral con el incremento del número de subintervalos N). En la Tabla 1.5.1, se presentan

los coeficientes normalizados de Cotes, kW y los órdenes p de los métodos correspondientes para diferentes números de nodos N.

Tabla 1.5.1. Parámetros de las fórmulas de Newton-Cotes

N 0W 1W 2W 3W 4W p

1 1/2 1/2 3

2 1/3 4/3 1/3 5

3 1/8 3/8 3/8 1/8 5

4 7/90 32/90 12/90 32/90 7/90 7

a) Fórmula de Trapecios.

Para N=1, la malla tiene solo 2 nodos y solo un segmento con el ancho h b a= − (ver

Fig.1.5.1), y según la ecuación (1.5.6) dos coeficientes de Newton-Cotes para dos nodos

son iguales 1 1

0 10 0( 1) 1/ 2; 1/ 2W q dq W qdq= − − = = =

De aquí tenemos una fórmula de trapecio, para estimación aproximada de la integral

( ) ( )0 12

b

a

fh

dx y yx +

La interpretación de este resultado se ve claramente en la Fig. 1.5.1. Al reemplazar la

función actual por el interpolador lineal, en esta fórmula en la realidad se encuentra área de un trapecio. Esta claro que en este caso el

error del método corresponde al área sombreada en la Fig. 1.5.1

( ) ( ) ( ) ( ) ( )0 1( , )2 2

a h a h

a a

h hf h dx y y dx a a hf x f x f f

+ +

= − + = − + +

Al derivar esta expresión respecto de h se obtiene

( ) ( ) ( ) ( ) ( ) ( ) ( )1 1

( )2 2 2 2

h hh a h a a h a h af h a af f f hf f f = + − + + − + = + − − +

Al desarrollar la expresión en el paréntesis rectangular en la serie de Taylor y conservando los terminos hasta segunda orden, se

obtiene la formula final para el error del método de trapecios:

( ) ( ) ( )2 3

3( ) ( )4 12

h hh a h a Of f h =

En adelante, utilizaremos la fórmula de trapecios para elaborar los algoritmos de cálculo de las integrales en la siguiente forma:

( ) ( ) ( ) ( )3 3 30 1 ;

2

a h

a

hdx y y O h O hx C hf

+

= + + = (1.5.8)

Page 4: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

Utilizaremos la fórmula (1.5.8) pata calcular una integral dentro un intervalo

,a b ancho segmentándolo en N subintervalos estrechos y equidistantes de

ancho ( )h b a N= − cada uno. La integral sobre todo intervalo es suma de

las integrales sobre cada subintervalo (ver Fig.1.5.2)

( ) ( ) ( ) ( )

( ) ( )

1

31

1 1

13

0

1

2

2

i

i

xa h N N

i i

i ia x

N

N i

i

hdx dx y y O h

hy y

f x f

h N O h

x

y

+

= =

=

= = + + =

= + + +

Aquí se tiene en cuenta que en la suma inicial los valores de la función en dos nodos extrémales contribuyen solo una vez, mientras

que los nodos contribuyen dos veces cada uno. Además, teniendo en cuenta que

( ) ( ) ( )3 3 2 2 21

b aN O h C h C b a h C h O h

h

− = = − = =

Se obtiene formula de trapecios para un intervalo dividido en N segmentos:

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )1

2 20

1

; ; ; 12

b N

N i i

ia

hdx y y h y h h b a N y f a i h h O h O Nf x

=

= + + + = − = + = = (1.5.9)

Las fórmulas (1.5.8) y (1.5.9) ambas son fórmulas de trapecios, pero la primera es local que calcula la integral solo para un

subintervalo y el error de esta formula es de tercera orden ( )3p = respecto h o respecto 1/N. La formula (1.5.9) es global y calcula la

integral por todo intervalo sumando los resultados de todos subintervalos y acumulando los errores locales. Por, esta razón el orden

del error de la fórmula global es inferior es de segunda orden ( )2p = .

En la base de la fórmula (1.5.9) se puede proponer siguiente algoritmo simple en la fórma de pseudocódigo

( )

( )

, , ,

* se calcula la integral de la función desde a hasta b

  dividiendo el inervalo , en segmemtos y usandor método de trapecios

Parametrosdeentrada : ( ) func

(

Function Trap fun a b err N

fun x

a b N

fun x

( )

ión subintegral. , extremosdeintervalo,

-número de divisiones

Parametro de salida : valor de la integral, err - error edstimado*)

/ ; ( ( ) ( )) / 2;

1, 1 ; ( ) ;

a b

N

Trap

h b a N S fun a fun b

for i N do x a i h S S fun x

Trap h S

− +

= − + +

2;err h

Algoritmo Trap es primitivo y para lograr una precisión sugerida el usuario puede usarlo solo en una forma interactiva, es decir el

usuario debe definir el número de divisiones y cada vez aumentando el número de divisiones tomar decisión si el resultado satisface la

tolerancia sugerida. Es evidente que en esta interacción computador-usuario el usuario es la parte mucho mas lenta y el algoritmo de

este tipo no es aceptable. Mas adelante discutiremos la manera como se puede automatizar este proceso.

b) Fórmula de Simpson

Con el objetivo de encontrar un método de cálculo de la integral con una precisión

de orden superior consideremos en el marco del método Newton-Cotes aproximación

de la función subintegral mediante de un polinomio interpolante de segunda orden, es

decir en las fórmulas anteriores ponemos N=3 y consideremos la segmentación del

intervalo [a, b] en 2 subintervalos, así como se muestra en Fig.1.5.3. En este caso como

b=a+2h y la malla tiene 3 nodos, entonces según la fórmula (1.5.4

( ) ( )2

0 0 1 1 0 2( ) 2a h

af x dx h W y W y W y h

+= + + +

Aquí los coeficientes de Newton-Cotes según la fórmula (1.5.6) son iguales a: 2 2 2

0 1 20 0 0

1 1 1 8 1 1 1 1 8 2 1 1 1 8 1( 1)( 2) 6 4 ; q( 2) 4 ; q( 1) 2 ;

2 2 4 3 6 2 2 4 3 3 2 2 4 3 6W q q dq W q dq W q dq

= − − = − + = = − = − − = = − = − =

La fórmula de Newton-Cotes en este caso se transforma en la relación llamada la fórmula de SIMPSON

( ) ( )2

0 1 2( ) 43

a h

a

hf x dx y y y h

+= + + + (1.5.10)

Page 5: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

Utilizando el método similar al aplicado para la fórmula de trapecios se puede demostrar que el error del método de Simpson es: ( ) ( )

( )5 5 5

5

1( )

90

IVf a

h h O h C h ON

= = =

(1.5.11)

Las fórmulas /1.5.10) y (1.5.11) presentan la cuadratura de Simpson local y esta

cuadratura es de quinta orden sobre una malla de solo tres nodos, Extenderemos

ahora esta fórmula local para calcular una integral dentro un intervalo ,a b

ancho segmentándolo en 2N subintervalos estrechos y equidistantes de ancho

( ) 2h b a N= − cada uno. La integral sobre todo intervalo es suma de las

integrales sobre cada par de subintervalos (ver Fig.1.5.2)

( ) ( ) ( ) ( ) ( ) ( )2

2 2

15 4

2 2 2 1 2 0 2 2 1

1 1 1 1

4 2 43 3

i

i

xb N N N N

i i i N i i

i i i ia x

h hdx dx y y y O h y y y y Of x f x h

− − −

= = = =

= = + + + = + + + +

(1.5.12)

Aquí se tiene en cuenta que en la suma inicial los valores de la función en dos nodos extrémales contribuyen solo una vez, mientras

que los nodos internos con números pares contribuyen dos veces cada uno y ( ) ( )5 5 4 41

b aN O h C h C h O h

h

− = = =

La fórmula (1.5.12) es global y calcula la integral por todo intervalo sumando los resultados de todos subintervalos y acumulando los

errores locales. Por, esta razón el orden del error de la fórmula global es inferior y es de cuarta orden ( )4p = .

En la base de la fórmula (1.5.12) se puede proponer siguiente algoritmo simple en la fórma de pseudocódigo

( )

( )

, ,

* se calcula la integral de la función desde a hasta b

  dividiendo el inervalo , en 2 segmemtos y usando el método de Simpson

Parámetrosdeentrada : ( ) función

(

Function Si mps fun ab N

fun x

a b N

fun x

( )

( )

subintegral. , extremosdeintervalo,

2 -número de divisiones

Parametro de salida : valor de la integral*)

/ (2 ); 0 ( ) ( ); 1 0; 2 0;

1, 1 2 ; 1 1 ( ) ;

1, 2 1

a b

N

Simps

h b a N S fun a fun b S S

for i N do x a i h S S fun x

for i N do x a i

− +

= − + +

= + −

( )

; 2 2 ( )

0 2 1 4 2 3

h S S fun x

Simps h S S S

+

+ +

En conclusión, anotemos que la fórmula de Trapecio según la fórmula (1.5.9) permite calcular los valores de las integrales exactamente

para las funciones lineales, mientras que la fórmula de Simpson, según la relación (1.5.12) es exacta para todos los polinomios hasta la

tercera orden. Se puede también deducir las fórmulas de Newton-Cotes de los órdenes superiores de manera similar utilizando tabla

(1.5.1).

1.5.2 Control de precisión. Fórmula de Runge. Algoritmos auto-adaptivos

En la práctica para calcular la integral en un intervalo [a, b] se divide, en subintervalos equidistantes 1[ ], i ix x + . En los algoritmos

con el control de la precisión automático el número de subintervalos, sus disposiciones y longitudes, se escogen en acuerdo con la forma

de la función ( )f x y de la precisión ( ),f N sugerida. Denotemos a

( )0 1 ; ; - ,N i ix a x b h x x b a N+= = = = − donde N es el número de intervalos. En los algoritmos con

un control de precisión automática se utiliza el método de Runge con un proceso de bisección recursivo,

en el cual la fórmula de cuadraturas, dos veces, una vez para N y otra vez 2N divisiones, escogiendo

primera vez una malla con el paso h y otra vez 2h . Estos dos resultados se denotan, por ( )ihI y ( )

2

i

hI

, respectivamente. Por ejemplo, el algoritmo autoadaptable, para las cuadraturas de trapecios la primera

vez se utiliza la fórmula principal (un subintervalo):

( ) ( ) ( ) ( ) ( ) ( ) ( )1

1

;2 2

Nbi i

i i i i hh hai

h hI f x f x f x f x h I f x dx I+

=

= = + = = + + (1.5.13)

Y la segunda vez una fórmula combinada (dos subintervalos)

Page 6: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

( ) ( ) ( ) ( ) ( )

22 21

;4 2 4 2

Nbi i

i i i i hh hai

h h h hI f x f x f x f x h I f x dx I

=

+ +

= + + + + = =

(1.5.14)

Ambas expresiones (1.5.13) y (1.5.14) dan valores aproximados hI y 2hI de la integral

( )b

a

I dx xf= (1.5.15)

La idea principal del método de Runge de control de la precisión consiste en

comparar dos valores aproximados hI y 2hI de la integral exacta I y utilizar el

resultado de la comparación para estimar sus precisiones. Suponemos quelos

valores aproximados hI y 2hI de la integral exacta I se han calculados por medio

de una cuadratura que tiene la precisión de orden p (recordamos que p=2 para el

método de trapecios y p=4 para el método de Simpson). Entonces entre estos tres

valores existen las siguientes relaciones: ( )2; 2pp

h hI I C h I I C h= + = + .

Restando estas dos igualdades se encuentra la constante

( ) ( )22 2 1pp p

h hC I I h= − − y la formula final que relaciona el valor exacto de

la integral con el valor aproximado;

2

2 ;2 1

h h

h p

I II I

−= + =

− (1.5.16)

La relación (1.5.16) permite elaborar un algoritmo de cálculo de la integral con el

control automático.

En Fig.1.5.6 se presenta el diagrama de flujo parta un algoritmo que

calcula la integral con el control automático de la precisión usando la formula

cuadratura de trapecios. El orden del método de trapecios p=2 y por eso en este

algoritmo la fórmula para estimación de error según (1.5.16) es

( )2 3h hI I = − . Los parámetros de entrada en este algoritmo son los

extremos del intervalo de la integración a,b, la función de integral ( )f x y la tolerancia sugerida tol. El cálculo se inicia con un solo

intervalo (N=1) y el resultado del programa Trap (el pseudocódigo ver en el texto anterior) se guarda en la variable Iprev. Después

dentro un bucle el número de intervalos N cada vez se duplica y el nuevo resultado del programa se guarda en la variable Inext. Se

calcula el valor estimado del error err usando la fórmula de Runge (1.5.16) y si este error es mayor que la tolerancia sugerida tol el

proceso dentro el bucle se repitas. Un pseudocódigo del algoritmo correspondiente al diagrama de flujo de Fig.1.5.6 se presenta a

continuación.

( )

_ , , ,

* se calcula la integral de la función desde hasta con la tolerancia

  usandor método de trapecios yduplicandosucesivamenteel númerode divi

(

siones

d

Function Trap Automat fun a b tol

fun x a b tol

( )el inervalo , en segmemtos y estimando el error por método Runge

Parametrosdeentrada : ( ) función subintegral. , extremosdeintervalo,

- tolerancia sugerida

Parametro de salida : _ valor de

a b

fun x a b

tol

Trap Automat

− −

( )

( ) ( )

la integral con el error menor que *)

1; 2 ; , , , ;

2 ; , , , ;

3;

_

tol

N err tol Iprev Trap fun a b N

While err tol do N N Inext Trap fun a b N

err Inext Iprev Iprev Inext

Trap Automat Inext err

+

Un programa similar se puede confeccionar en la base de fórmula de cuadratura de Simpson va a funcionar mucho mas rápido debido a

la mayor orden de precisión que tiene esta cuadratura. Con este fin en el pseudocódigo anterior hay que hacer los siguientes cambios:

1) Reemplazar _Function Trap Automat por _Function Simps Automat ; 2) Reemplazar Trap por Simps ; 3) Reemplazar

3err Inext Iprev − por 15err Inext Iprev − . Este último cambio se debe al hecho que el orden del método Simpson es p=4, y

en este caso 2p-1=15.

1.5.3 Cuadraturas de Gauss (opcional)

Fig.1.5.6

Page 7: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

En este parte necesitaremos una información adicional sobre los polinomios ortogonales y particularmente sobre los polinomios de

Legendre. Estos polinomios aparecen cada vez en diferentes áreas de Física (las Mecánicas Clasica y Cuántica, Teoría

Electromagnética, Óptica, Acústica, etc,) en el estudios de las propiedades de sistemas con una simetría esférica. información

también será de mucha utilidad también en el estudio de varios cursos de Física (teoría electromagnética, óptica, mecánica

cuántica, etc.). Polinomios de Legendre además se utilizan en diferentes áreas de Matemáticas, Funciones Especiales, Física

Matemática, Métodos Numéricos, etc.

Apéndice Matemático. Información breve sobre Polinomios de Legendre

Los polinomios de Legendre son las soluciones a las Ecuaciones Diferenciales de Legendre:

Page 8: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir
Page 9: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

1.5.4 Algoritmos Autoadaptables para Fórmulas de Cuadraturas (opcional)

En los algoritmos autoadaptables, a cada subintervalo se le aplica la fórmula de cuadraturas, dos veces, para n y 2n divisiones.

Estos dos resultados se denotan, por In

i y I n

i

2 . Por ejemplo, el algoritmo autoadaptable, para las fórmulas de cuadraturas de Simpson

(Newton-Cotes de orden 3, programa QNC3), utilizan la fórmula principal (dos subintervalos):

Page 10: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

Ih

f x f xh

f x hn

i i

i i

i

i i= + +

+ +

64

2( ) ( ) (2.14)

y la fórmula combinada (cuatro subintervalos

Ih

f x f xh

f xh

f xh

f x hn

i i

i i

i

i

i

i

i

i i212

44

22

43

4= + +

+ +

+ +

+ +

( ) ( ) (2.15)

Las expresiones (2.14) y (2.15) dan valores aproximados de la integral

I f x dxi

x

x

i

i

=+

( )1

(2.16)

La idea principal de los algoritmos autoadaptables, consiste en comparar dos aproximaciones In

i y I n

i

2 y estimar sus precisiones. Si

en esta comparación, se encuentra que la precisión es aceptable, entonces uno de estos valores, se toma como el valor de la integral,

dentro del intervalo [xi, xi+1], en caso contrario, el proceso de bisección continúa.

El número total de accesos a la función, se disminuye debido a que las fórmulas (2.14) y (2.15), utilizan los valores de la función en

algunos puntos comunes. Por ejemplo, en el caso de la fórmula de Simpson, los I n

i

2 , necesitan cinco valores de la función, pero tres de

los cuales, se usan también en In

i. Por eso, el tratamiento del nuevo intervalo, necesita solo, dos cálculos adicionales de valores de la

función.

Denotando el valor exacto de la integral I i para cuadraturas de orden p, tenemos:

I Ich

nn

i i i

p= + I I

ch

nn

i i i

pi2

2= +

( ) (2.17)

Excluyendo de estas dos igualdades la constante c desconocida, se obtiene:

( )I I I In

i i

p n

i

n

i

2 2

1

2 1− =

−− (2.18)

es decir, el error de cálculo, I n

i

2 es 2p-1 veces menor, que la diferencia entre las dos aproximaciones sucesivas, In

i y I n

i

2 .

La operación principal de un programa autoadaptable, consiste en la bisección de cada subintervalo, hasta que cumpla la condición

1

2 12p n

i

n

i iI Ih

b a−−

− (2.19)

donde es la precisión deseada y definida por el usuario. Si todos los subintervalos satisfacen la condición (2.19), el programa da el

resultado

I In n

i

i

n

2 2

1

==

,

el cual se puede tomar como el valor de la integral ya que según, (2.18) y (2.19)

( )I f x dx I I I I I Ib a

hna

b

n

i i

i

n

n

i i

i

n

p n

i

n

i

i

n

p

p

i

i

n

2 2

1

2

1

2

1 1

1

2 1

1

2 1

2 1− = − −

−−

−=

= = = =

( )

Page 11: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir

Las fórmulas (2.17) permiten calcular la integral con una precisión mayor. Combinando las fórmulas (2.17) con la integral I n

i

2 , después

de excluir c, se obtiene la fórmula

I II I

i n

i n

i

n

i

p= +

−2

2

2 1 (2.20)

la cual es llamada Fórmula de Extrapolación de Richardson.

El algoritmo autoadaptable de cálculo, tiene una estructura recursiva en forma de árbol binario. Cada intervalo, se divide en dos partes

y la integral se calcula dos veces: la primera para todo el intervalo y la segunda como suma de dos integrales, para los subintervalos. Si

estos dos valores satisfacen la condición (2.18), entonces el proceso se detiene. En caso contrario, el procedimiento se repite, primero,

para el subintervalo izquierdo y después para el derecho.

La figura 2.1, presenta el funcionamiento típico de un programa autoadaptable, para la función

f xx x

( )( . ) . ( . ) .

=− +

+− +

−1

0 3 0 01

1

0 9 0 046

2 2

dentro del intervalo [0,1]. Al programa se le adicionaron subprogramas para graficar todos los puntos {xi, f(xi)} y {xi, 0}, i = 1, 2, ...,n

en los cuales se calculan los valores de la función para satisfacer la precisión deseada. La función bajo el signo de la integral, tiene un

máximo absoluto en x = 0.3 y otro máximo relativo en x = 0.9. La figura muestra que el programa hace los subintervalos pequeños cerca

a los máximos y grandes, lejos de éstos. Tal comportamiento es típico de todos los programas autoadaptables, los cuales alcanzan la

misma precisión de los no autoadaptables, pero en menos tiempo de computación.

Al final del capítulo presentamos textos de cuatro programas autoadaptables: QNC3, QNC7 y QNC9 para las fórmulas de cuadraturas

de Newton-Cotes con 3, 7 y 9 nodos y GAUS8 con fórmulas de cuadraturas de Gauss con 8 nodos. Los comentarios de los textos

explican su funcionamiento y significado de los parámetros de entrada y de salida. Nosotros realizamos una serie de simulaciones, que

demostraron las ventajas de los programas QNC7 y QNC9, los cuales alcanzan una precisión deseada con un mínimo de accesos al

subprograma. En el capítulo III usamos estos dos programas como base para calcular integrales múltiples.

Page 12: 1.5 Integración numérica Methods/APUNTES... · 2020. 6. 10. · 1 0) b a t ³³ (1.5.1) En acuerdo con esta fórmula cualquier integral dentro un intervalo finito se puede reducir