INTEGRACIÓN NUMÉRICA.

1.- El paquete NumericalMath`NewtonCotes`

Cuando se trata de integrar una función que viene dada en forma de tabla en abscisas igualmente espaciadas la mejor solución es utilizar las fórmulas de cuadratura de Newton-Cotes.
Básicamente la utilización de las fórmulas de Newton-Cotes permite obtener un valor aproximado de la integral de f(x) en el intervalo [a,b], como una combinación lineal de los valores del integrando en abscisas igualmente espaciadas:
(∫_a^b)f(x)dx=(∑_(i=1)^n)(Subscript[w, i])f((Subscript[x, i]))
Los extremos del intervalo pueden estar incluidos, en este caso se dice que la fórmula es cerrada, o no, y entonces se dice que la fórmula es abierta. Aunque no las utilizaremos, cabe señalar que las fórmulas abiertas que proporciona este paquete tienen la primera abscisa a una distancia de h/2 del extremo inferior del intervalo.
Existen n grados de libertad, los n pesos, y  como la integración y la suma son operaciones lineales se puede esperar que el resultado obtenido sea exacto para polinomios de grado menor que n. Mathematica nos permite obtener también la expresión del término de error. 
En primer lugar debemos cargar el paquete:
<<NumericalMath`NewtonCotes`
Los comandos que dentro de este paquete permiten utilizar las fórmulas de Neton-Cotes y obtener los correspondientes términos de error son:
NewtonCotesWeights[n,a,b], y NewtonCotesError[n,f,a,b] donde:
n : número de puntos
[a , b]  : es el intervalo de integración
f : integrando

Ejemplo : Evaluar (∫_1^2)(1/(x^2))dx , por medio de :
a) La regla del trapecio
b) La primera regla de Simpson
c) La segunda regla de Simpson.
Acotar el error de truncamiento en cada caso y calcular el error cometido comprobando que es menor que la cota.

En primer lugar cargamos el paquete

<<NumericalMath`NewtonCotes`

er1=NewtonCotesError[2, f, 1, 2]

er2=NewtonCotesError[3, f, 1, 2]

er3=NewtonCotesError[4, f, 1, 2]

f[x_]=1/x^2;

El valor exacto de la integral es :

exact=(∫_1^2)(1/(x^2))\[DifferentialD]x//N

a)

lista1=NewtonCotesWeights[2, 1, 2]

abs1=Table[lista1[[k,1]],{k,2}];pesos1=Table[lista1[[k,2]],{k,2}];

aprox1=(∑_(k=1)^2)f[abs1[[k]]]*pesos1[[k]]

f''[x]

La derivada segunda será máxima en x=1

cota1=Abs[er1[[1]]*f''[1]]//N

error1=Abs[exact-aprox1]

b)

lista2=NewtonCotesWeights[3, 1, 2]

abs2=Table[lista2[[k,1]],{k,3}];pesos2=Table[lista2[[k,2]],{k,3}];

aprox2=(∑_(k=1)^3)f[abs2[[k]]]*pesos2[[k]]

f''''[x]

La derivada cuarta será máxima en x=1

cota2=Abs[er2[[1]]*f''''[1]]//N

error2=Abs[exact-aprox2]

c)

lista3=NewtonCotesWeights[4, 1, 2]

abs3=Table[lista3[[k,1]],{k,4}];pesos3=Table[lista3[[k,2]],{k,4}];

aprox3=(∑_(k=1)^4)f[abs3[[k]]]*pesos3[[k]]

f''''[x]

La derivada cuarta será máxima en x=1

cota3=Abs[er3[[1]]*f''''[1]]//N

error3=Abs[exact-aprox3]

Ejercicios

1º.- Utilizando la segunda fórmula de Simpson y la fórmula de Newton-Cotes de cinco puntos calcular 
(∫_1^3)((x^3)-2(x^2)+7x-5)dx
Obtener una cota del error cometido

2º.- Calcular : (∫_2^3)(1/(5-x))dx con un error menor que (10^(-6)) y utilizando la primera regla de Simpson. ¿Cuantas veces es necsario componer la fórmula?

1º- Una vez h=0.5

2º.- Dos veces. h=0.25

2º.- Tres veces. h=0.3333

3º.- Se dispone de los valores de la función en abscisas igualmente espaciadas dados en la siguiente tabla :
({{"\!\(x\_i\)", 0.`, 0.1`, 0.3`, 0.5`, 0.7`, 0.95`, 1.2`}, {"\!\(y\_i\)", 10.`, 6.84`, 4.`, 4.2`, 5.51`, 5.77`, 1.`}})

Obtener el valor aproximado de (∫_0^1.2)f(x)dx utilizando una combinación adecuada de la fórmula del trapecio, y  primera y segunda fórmulas de Simpson.

4º.- Se desea obtener (∫_0^π)(1/(sen(x)+1))dx. Calcular los valores aproximados dados por :
a) La primera fórmula de Simpson con 9 nodos.
b) La segunda fórmula de Simpson con 4 nodos.