Está en la página 1de 7

INTEGRACIN NUMRICA

El principio de los mtodos de integracin numerica, basados en las frmulas de NewtonCotes, 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:
Zb
a

f (x) dx '

ba
[f (a) + f (b)]
2

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 identifique 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
Z2

ecos x dx

digitamos trapecio(exp(cos(x^2)),0,2) y obtenemos 3.23842892946396.

REGLA DEL TRAPECIO COMPUESTA


Para un entero n 1 la regla de Trapecio compuesta esta dada por:
Zb
a

donde h =

#
"
n1
X
h
f (x) dx '
f (xi ) + f (b)
f (a) + 2
2
i=1

ba
y xi = a + ih.
n

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 xi 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

Tenemos que las reglas de Simpson


Zb
a

f (x) dx '

y
Zb
a

f (x) dx '

1
3

simple y compuesta estn dadas por:

a+b
ba
f (a) + 4f
+ f (b)
6
2

f (a) + 4
3

n
2
X

f (x2i1 ) + 2

i=1

n
1
2X
i=1

f (x2i ) + f (b)

ba
, para n un entero par mayor igual a 2 y xi = a + ih. Los lmites de las
n
sumatorias y los subindices 2i 1 y 2i indican que xj con j par se evalua en f y se multiplica

donde h =

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 [x0 , x2 ] , [x2 , x4 ] , ..., [xn2 , xn ]). 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 coeficientes y/o nodos de frmulas de coeficientes indeterminados o de Cuadratura Gaussiana.
En el primer caso, simplemente se requiere formular el sistema de ecuaciones lineales y resolverlo mediante alguno de los mtodos explicados en guias anteriores. Por ejemplo, supongamos que deseamos encontrar los coeficientes A, B y C que hacen que la frmula:
Z

f (x)dx Af (0) + Bf (1/2) + Cf (1)

sea exacta para todos los polinomios de grado menor o igual que dos.

polinomios bsicos 1, x, x2 obtenemos el sistema:


1 = A+B+C
1
1
=
B+C
2
2
1
1
=
B+C
3
4
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

Trabajando con los

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

f (x)dx A0 f (x0 ) + A1 f (x1 )

Sabemos que para hallar los nodos y los coeficientes debemos resolver el sistema no lineal:
A0 + A1 = 2
A0 x0 + A1 x1 = 0
A0 x20 + A1 x21 = 2/3
A0 x30 + A1 x31 = 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 (definida como una
cadena de caracteres).

Para nuestro ejemplo no se puede usar pues la funcin con la

que estamos trabajando no tiene una integral indefinida, as que cambiemos de ejemplo:
Supongamos que queremos calcular:
Z

x2
dx
x6 8

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=

Zb Zd
a

f (x, y) dydx

empleando la regla se Simpson

1
3

compuesta.

2. Realizar una funcin que permita aproximar


d(x)
Zb Z
f (x, y) dydx
I=
a c(x)

empleando la regla se Simpson

1
3

compuesta.

3. Realizar una funcin que permita generar una tabla de aproximaciones (Mtodo de
Romberg) para
Zb

f (x) dx

4. Deducir la frmula de cuadratura gaussiana de orden tres y hacer un programa que permita usarla para calcular
Zb

f (x) dx

5. Encontrar los valores de A, B, C, D y E que hacen que la frmula:


Z1

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.

También podría gustarte