practica 7-integracionnumerica

Anuncio
Integración numérica. Práctica con Mathematica
Cuando solamente se conocen algunos valores particulares de una función f (x), o cuando
siendo ésta conocida, no se dispone de una primitiva expresada convenientemente,
se utilizan
Rb
métodos numéricos para obtener un valor aproximado de la integral a f (x)dx .
Supondremos dividido el intervalo [a, b] en n partes iguales de longitud h = b−a
mediante
n
los puntos a = x0 < x1 < x2 < ...... < xn−1 < xn = b , y supondremos conocidos los valores
y0 = f (x0 ), y1 = f (x1 ), .... ......, yn = f (xn ) .
Método de los trapecios
a) Determinamos la función de interpolación lineal l(x) que cumple l(x0 ) = y0 , l(x1 ) = y1
. Según la fórmula que conocemos la expresión de esta función es
l(x) =
x − x0
x − x1
y0 +
y1
x0 − x1
x1 − x0
También puede verse del siguiente modo: Por pasar por los puntos (x0 , y0 ), (x1 , y1 ), la gráfica
0
0
de l(x) es una recta de pendiente xy11 −y
. Por lo tanto es l(x) = y0 + xy11 −y
(x − x0 ) .
−x0
−x0
b) Calculamos:
Zx1
h
(y0 + y1 )
2
l(x)dx =
x0
Nota.- Si y0 , y1 ≥ 0,
Rx1
l(x)dx coincide con el área del trapecio rectángulo de bases
x0
paralelas al eje OY de longitudes y0 , y1 , y altura situada en el eje OX coincidente con el
intervalo [x0 , x1 ] de longitud h .
c) Consideramos ahora la integral
Rb
a
f (x)dx =
Rx1
x0
Rb
a
f (x)dx que queremos aproximar.
f (x)dx +
Rx2
f (x)dx + .... +
x1
Rxn
f (x)dx
xn−1
En cada una de las integrales sumandos reemplazamos f (x) por la función de interpolación lineal correspondiente a (x0 , y0 ), (x1 , y1 ) en la primera, a (x1 , y1 ), (x2 , y2 ) en la segunda,
.... , a (xn−1 , yn−1 ), (xn , yn ) en la última, obteniendo la suma h2 (y0 + y1 ) + h2 (y1 + y2 ) + .... +
h
(y
+ yn ) =
2 n−1
=
h
[y0 + 2y1 + 2y2 + ... + 2yn−1 + yn ]
2
1
Nota.- Si f (x) ≥ 0, ∀x ∈ [a, b], el método de los trapecios consiste en aproximar el área
bajo la curva por la suma de las áreas de los trapecios rectángulos con altura de longitud h
coincidente con el intervalo [xi−1 , xi ] del eje OX, con las dos bases paralelas al eje OY de
longitudes yi−1 , yi , y con lado oblicuo igual a la cuerda que une los puntos de la gráfica de
coordenadas (xi−1 , y−i1 ), (xi , yi ).
Ejemplo.- Aproximar
:
R3
1
ex
dx
x
con el método de los trapecios dividiendo el intervalo [1, 3]
a) En 5 partes iguales.
b) En 10 partes iguales.
c) En 50 partes iguales.
Comparar el resultado de cada apartado, con el que se obtiene con el comando NIntegrate
de Mathematica.
A continuación se reproducen las sentencias utilizadas para resolver el apartado b) del
ejemplo. Notar que para los demás apartados basta cambiar en la línea primera el valor de
n y activar a continuación todas las demás. Para cualquier otro ejemplo o ejercicio, será
suficiente con modificar las líneas en las que se introducen los valores de n, a, b, f (x) y
activar las demás instrucciones.
In[1]: n = 10
In[2] a = 1
In[3] b = 3
In[4]: h=(b-a)/n
In[5]: x[j_] = a+j*h
In[6]: f[t_] = E^t/t
In[7]: y[j_] = f[x[j]]
In[8]: N[h/2*(y[0]+2Sum[y[j],{j,1,n-1}]+y[n]),20]
Out[8]= 8.0535744837047745276
In[9]: NIntegrate[f[x], {x, 1, 3}]
Out[9]= 8.0387147542694798025
Ejercicio.- Aproximar
R2 √
x3 + 1.dx con el método de los trapecios dividiendo el inter-
−1
valo [−1, 2] :
a) En 8 partes iguales.
b) En 15 partes iguales.
c) En 30 partes iguales.
Comparar el resultado de cada apartado, con el que se obtiene con el comando NIntegrate
de Mathematica.
Método de Simpson
2
a) Determinaremos la función de interpolación cuadrática c(x) que cumple c(x0 ) = y0 ,
c(x1 ) = y1 , c(x2 ) = y2 . c(x) puede expresarse en la forma:
c(x) = α + β(x − x0 ) + γ(x − x0 )(x − x1 )
para ciertos números reales α, β, γ , por ser {1, (x − x0 ), (x − x0 )(x − x1 )} una base del
espacio vectorial real P2 de los polinomios con coeficientes reales de grado menor o igual que
dos. Determinemos α, β y γ :
c(x0 ) = α = y0
0
0
c(x1 ) = α + β(x1 − x0 ) = y1 ⇒ β = xy11 −y
= y1 −y
−x0
h
0
0
c(x2 ) = y0 + y1 −y
(x2 − x0 ) + γ(x2 − x0 )(x2 − x1 ) = y2 ⇒ y2 − y0 = y1 −y
.2h + γ.2h2 ⇒
h
h
1 +y0
. Y así es:
y2 − 2y1 + y0 = = 2γh2 ⇒ γ = y2 −2y
2h2
c(x) = y0 +
b) Calculemos
Rx2
y1 − y0
y2 − 2y1 + y0
(x − x0 )(x − x1 )
(x − x0 ) +
h
2h2
c(x)dx
x0
Zx2
c(x)dx =
h
[y0 + 4y1 + y2 ]
3
x0
c) Supondremos que n es par, y sea
Rb
f (x)dx la integral que queremos aproximar.
a
Zb
a
f (x)dx =
Zx2
x0
f (x)dx +
Zx4
f (x)dx + ..... +
x2
Zxn
f (x)dx
xn−2
En cada una de las integrales sumando, reemplazamos f (x) por la función de interpolación cuadrática correspondiente a los puntos (x0 , y0 ), (x1 , y1 ), (x2 , y2 ) en la primera, a
(x2 , y2 ), (x3 , y3 ), (x4 , y4 ) en la segunda, .... , a (xn−2 , yn−2 ), (xn−1 , yn−1 ), (xn , yn ) en la última.
Obteniendo así la suma:
h
h
h
[y0 + 4y1 + y2 ] + [y2 + 4y3 + y4 ] + .... + [yn−2 + 4yn−1 + yn ] =
3
3
3
=
h
[y0 + 4y1 + 2y2 + 4y3 + 2y4 + 4y5 + 2y6 + ... + 2yn−2 + 4yn−1 + yn ] =
3
n
n
2
2
X
X
h
h
y2k−1 + 2
y2k + yn ] = [E + 4I + 2P ]
= [y0 + 4
3
3
k=1
k=1
donde E representa la suma de los valores extremos, es decir, y0 e yn , I representa la
suma de los valores de índice impar, es decir, y1 , y3 ....., yn−1 (que son los valores de lugar par
3
por ser 0 el primer subíndice), y P representa la suma de los valores de índice par, es decir,
y2 , y4 ....., yn−2 (que son los valores de lugar impar).
Ejemplo.- Aproximar
R3
1
ex
dx
x
con el método de Simpson dividiendo el intervalo [1, 3] :
a) En 10 partes iguales.
b) En 50 partes iguales.
Comparar el resultado de cada apartado, con el que se obtiene con el comando NIntegrate
de Mathematica.
A continuación se reproducen las sentencias utilizadas para resolver el apartado a) del
ejemplo. Notar que para el apartado b) basta cambiar en la línea primera el valor de n y
activar a continuación todas las demás. Para cualquier otro ejemplo o ejercicio, será suficiente
con modificar las líneas en las que se introducen los valores de n, a, b, f (x) y activar las
demás instrucciones.
In[1]: n = 10
In[2] a = 1
In[3] b = 3
In[4]: h=(b-a)/n
In[5]: x[j_] = a+j*h
In[6]: Table[x[j],{j,0,n}]
Out[6]= {1, 6/5, 7/5, 8/5, 9/5, 2, 11/5, 12/5, 13/5, 14/5, 3}
In[7]: f[t_] = E^t/t
In[8]: y[j_] = f[x[j]]
In[9]: N[h/3*(y[0]+4Sum[y[2j-1],{j,1,n/2}]+2Sum[y[2j],{j,1,n/2}]+y[n]),20]
Out[9]= 8.0387850835535905025
In[10]: NIntegrate[f[x], {x, 1, 3}]
Out[10]= 8.0387147542694798025
Ejercicio.- Aproximar
R2 √
x3 + 1.dx con el método de Simpson dividiendo el intervalo
−1
[−1, 2] :
a) En 10 partes iguales.
b) En 50 partes iguales.
Comparar el resultado de cada apartado, con el que se obtiene con el comando NIntegrate
de Mathematica.
4
Descargar