You are on page 1of 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 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 Z2
0

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

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


i=1

donde h =

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) 100 subintervalos empleamos la instruccin >> tracom(0exp(cos(x2))0, 0, 2, 100) y obtenemos 3.22335846450614. y obtenemos 3.22843406783607, al emplear

REGLA DE SIMPSON

1 3

SIMPLE Y COMPUESTA

Tenemos que las reglas de Simpson Zb


a

1 3

simple y compuesta estn dadas por:

f (x) dx '

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


i=1

y Zb
a

f (x) dx '

donde h =

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 Simpson
1 3

h f (a) + 4 3

f (x2i1 ) + 2

n 1 2 X
i=1

f (x2i ) + f (b)

por dos, y si j es impar se evalua en f y se multiplica por 4. (esto se obtiene al aplicar regla de 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 coecientes y/o nodos de frmulas de coecientes 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 coecientes A, B y C que hacen que la frmula: Z
1

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

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

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

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

Sabemos que para hallar los nodos y los coecientes debemos resolver el sistema no lineal: A0 + A1 = 2 A0 x0 + A1 x1 = 0 A0 x2 + A1 x2 = 2/3 0 1 A0 x3 + A1 x3 = 0 0 1 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 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 Zb Zd


a c

I=

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) 1 3

empleando la regla se Simpson

compuesta.

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

f (x) dx

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

f (x) dx

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


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.

You might also like