Está en la página 1de 7

INTEGRACIN NUMRICA

El principio de los mtodos de integracin numerica, basados en las frmulas de Newton-


Cotes, consiste en ajustar una un polinomio a un conjunto de puntos y luego integrarlo. Al
realizar dichas integrales obtenemos, entre otras, las reglas de trapecio y de Simpson
1
3
las cuales
dan lugar a reglas de integracin compuestas que buscan que el error sea cada vez menor.
Usemos MATLAB para programar las reglas mencionadas anteriormente.
REGLA DEL TRAPECIO
La regla del trapecio est dada por:
b
Z
a
f (x) dx '
b a
2
[f (a) + f (b)]
si queremos programar esta regla slo debemos tener en cuenta que los datos de entrada son a, b,
f y el dato de salida es la aproximacin. En MATLAB creamos una funcin que nos permita
realizarlo. El cdigo puede ser:
function aprox=trapecio(f,a,b)
f=inline(f);
aprox=((b-a)/2)*(f(a)+f(b))
Recordemos que la segunda instruccin permite que MATLAB identique a f como una
funcin que depende de la variable x. Para ejecutar la funcin en la ventana de comandos de
Matlab digitamos trapecio(f,a,b); por ejemplo, si queremos aproximar
2
Z
0
e
cos x
2
dx
digitamos trapecio(exp(cos(x^2)),0,2) y obtenemos 3.23842892946396.
1
REGLA DEL TRAPECIO COMPUESTA
Para un entero n 1 la regla de Trapecio compuesta esta dada por:
b
Z
a
f (x) dx '
h
2
"
f (a) + 2
n1
X
i=1
f (x
i
) + f (b)
#
donde h =
b a
n
y x
i
= a + ih.
Si queremos programar esta regla debemos tener en cuenta que los datos de entrada son
a, b, n,f, el dato de salida es la aproximacin, es necesario utilizar un ciclo interno que permita
generar x
i
para evaluarlo en f, multiplicarlo por dos y sumarlos. Creamos una funcin en
matlab que me permita realizarlo, el cdigo ser:
function aprox=tracom(f,a,b,n)
f=inline(f);
h=(b-a)/n;
aprox=f(a)+f(b);
for i=1:n-1
x=a+i*h;
aprox=aprox+2*f(x);
end
aprox=(h/2)*aprox;
Para aproximar la integral anterior empleando 10 subintervalos digitamos:
>> tracom(0exp(cos(x2))0, 0, 2, 10) y obtenemos 3.22843406783607, al emplear
100 subintervalos empleamos la instruccin
>> tracom(0exp(cos(x2))0, 0, 2, 100) y obtenemos 3.22335846450614.
REGLA DE SIMPSON
1
3
SIMPLE Y COMPUESTA
2
Tenemos que las reglas de Simpson
1
3
simple y compuesta estn dadas por:
b
Z
a
f (x) dx '
b a
6

f (a) + 4f

a + b
2

+ f (b)

y
b
Z
a
f (x) dx '
h
3

f (a) + 4
n
2
X
i=1
f (x
2i1
) + 2
n
2
1
X
i=1
f (x
2i
) + f (b)

donde h =
b a
n
, para n un entero par mayor igual a 2 y x
i
= a + ih. Los lmites de las
sumatorias y los subindices 2i 1 y 2i indican que x
j
con j par se evalua en f y se multiplica
por dos, y si j es impar se evalua en f y se multiplica por 4. (esto se obtiene al aplicar regla de
Simpson
1
3
simple sobre los subintervalos [x
0
, x
2
] , [x
2
, x
4
] , ..., [x
n2
, x
n
]). Los programas Matlab
que permiten encontrar la aproximacin a la integral son:
function aprox=simpson(f,a,b)
f=inline(f);
aprox=((b-a)/6)*(f(a)+4*f((a+b)/2)+f(b));
y la compuesta est dada por
function aprox=simcom(f,a,b,n)
f=inline(f);
h=(b-a)/n;
aprox=f(a)+f(b);
for i=1:n/2
x=a+(2*i+1)*h;
aprox=aprox+4*f(x);
end
for i=1:(n/2)-1
x=a+2*i*h;
3
aprox=aprox+2*f(x);
end
aprox=(h/3)*aprox;
Al aproximar la integral anterior digitamos simpson(exp(cos(x^2)),0,2) y obtenemos
3.36817724255319, empleando 100 subintervalos obtenemos 3.16558949594821 al digitar
simcom(exp(cos(x^2)),0,2,100).
COEFICIENTES INDETERMINADOS Y CUADRATURA GAUSSIANA:
En MATLAB tambin podemos encontrar los coecientes y/o nodos de frmulas de coe-
cientes indeterminados o de Cuadratura Gaussiana.
En el primer caso, simplemente se requiere formular el sistema de ecuaciones lineales y re-
solverlo mediante alguno de los mtodos explicados en guias anteriores. Por ejemplo, supong-
amos que deseamos encontrar los coecientes A, B y C que hacen que la frmula:
Z
1
0
f(x)dx Af(0) + Bf(1/2) + Cf(1)
sea exacta para todos los polinomios de grado menor o igual que dos. Trabajando con los
polinomios bsicos

1, x, x
2

obtenemos el sistema:
1 = A + B + C
1
2
=
1
2
B + C
1
3
=
1
4
B + C
que puede ser resuelto en MATLAB mediante las instrucciones:
>> M = [1 1 1; 0 1/2 1; 0 1/4 1];
>> b = [1 1/2 1/3];
>> X = inv(M)*b
4
se obtiene: X = [1/6 2/3 1/6] (utilizando el formato: format rat)
En el caso de la cuadratura adaptativa la ayuda es mayor, pues en este caso se obtiene un
sistema no lineal de ecuaciones que en la mayora de los casos es difcil de resolver sin la ayuda
de un computador. Por ejemplo consideremos la frmula de cuadratura de orden dos:
Z
1
1
f(x)dx A
0
f(x
0
) + A
1
f(x
1
)
Sabemos que para hallar los nodos y los coecientes debemos resolver el sistema no lineal:
A
0
+ A
1
= 2
A
0
x
0
+ A
1
x
1
= 0
A
0
x
2
0
+ A
1
x
2
1
= 2/3
A
0
x
3
0
+ A
1
x
3
1
= 0
Podemos usar MATLAB con la instruccin solve, de la siguiente forma:
>> [a0,a1,x0,x1]=solve(ao+a1=2,ao*x0+a1*x1=0,ao*x0^2+a1*x1^2=2/3,ao*x0^3+a1*x1^3=0)
y obtenemos:
a0=[1 1], a1=[1 1], x0 = [-1/3*3^(1/2) 1/3*3^(1/2)], x1 = [1/3*3^(1/2) -1/3*3^(1/2)].
De donde se deduce inmediatamente la frmula buscada (se pueden tomar bien sea los primeros
o los segundos valores de cada solucin y se llega a la misma frmula)
COMANDOS MATLAB PARA INTEGRACIN
Matlab cuanta con varias funciones incorporadas para integracin numrica y simblica.
Algunas de estas son:
quad= Utiliza el mtodo de cuadratura adaptativa de Simpson. La sintaxis de quad
incluye las formas:
quad(funcion,a,b): aproxima la integrar de la funcin entre a y b tomando como
tolerancia 1.e-6.
5
quad(funcion,a,b,tol): aproxima la integrar de la funcin entre a y b tomando como
tolerancia tol.
Para nuestro ejemplo digitamos quad(exp(cos(x.^2)),0,2) y obtenemos 3.22330605352029.
trapz= Utiliza la regla trapezoidal para calcular la integral de una funcin. Se puede
utilizar de la siguiente forma:
trapz(X,Y): Aproxima el valor de la integral de Y con respecto a X.
Para nuestro ejemplo digitamos:
>> X=0:0.001:2;
>> Y=exp((cos(X)).^2);
>> aprox= trapz(X,Y)
Se obtiene 3.21021121961247
int(f) = Calcula de manera simblica la integral de la funcin f (denida como una
cadena de caracteres). Para nuestro ejemplo no se puede usar pues la funcin con la
que estamos trabajando no tiene una integral indenida, as que cambiemos de ejemplo:
Supongamos que queremos calcular:
Z
x
2
x
6
8
dx
en MATLAB digitamos: int(x^2/(x^6-8)) y obtenemos:
1/12 2(1/2) atanh(1/4 x3 2(1/2))
EJERCICIOS PROPUESTOS:
1. Realizar una funcin que permita aproximar
I =
b
Z
a
d
Z
c
f (x, y) dydx
6
empleando la regla se Simpson
1
3
compuesta.
2. Realizar una funcin que permita aproximar
I =
b
Z
a
d(x)
Z
c(x)
f (x, y) dydx
empleando la regla se Simpson
1
3
compuesta.
3. Realizar una funcin que permita generar una tabla de aproximaciones (Mtodo de
Romberg) para
b
Z
a
f (x) dx
4. Deducir la frmula de cuadratura gaussiana de orden tres y hacer un programa que per-
mita usarla para calcular
b
Z
a
f (x) dx
5. Encontrar los valores de A, B, C, D y E que hacen que la frmula:
1
Z
0
f (x) dx Af(0) + Bf(1/4) + Cf(1/2) + Df(3/4) + Ef(1)
sea exacta para todos los polinomio de grado menor o igual a cuatro.
7

También podría gustarte