Anda di halaman 1dari 6

Anlisis Numrico

Universidad Nacional de Misiones

Integracin numrica con MatLab


Matlab cuenta con las siguientes comandos para calcular la integral de
una serie de datos en numrica:
quad

Mtodo Simpson 1/3, recursivo* y adaptativo**

quadl

Mtodo Gauss-Lobatto recursivo* y adaptativo**

dblquad

Evala numricamente la integral doble

triplequad Evala numricamente la integral triple

quad8

Mtodo de Newton-Cotes 8 panel rule


Mtodo de Simpson 3/8? y adaptativo**.

trapz

Mtodo del trapecio.

Comandos utilizados
en esta gua
quad
quadl
dbquad
inline
polyint
int
@

La palabra inglesa quadrature se usa para designar el clculo de un rea encerrada por una
funcin y los ejes de coordenadas, es decir, el valor de la integral definida. De all el nombre de estos
comandos. Quadrature es los que nosotros llamamos integracin numrica.
De la lista el comando quad8 se considera obsoleto y se recomienda emplear el mtodo quadl.
Trapz es el nico comando que acepta datos sueltos, los dems trabajan con funciones
declaradas en forma simblica.
* Recursividad implica que la funcin realiza una referencia a si misma para calcular nuevos valores de
la imagen.
** Adaptativo indica que el tamao de los intervalos vara para minimizar el error de la aproximacin.

El comando trapz
El formato de este comando se describe en el esiguiente esquema:

trapz ( X , Y )
espaciado de los datos

datos a integrar

Donde:
X es una vector columna que indica los valores de abscisas de los datos cuya integral se quiere
calcular.
Y es un vector o matriz donde cada columna es una serie de datos a integrar.
Algunos ejemplos de implementacin:
>> trapz([ 1 1 1 1])
ans =
3
>> trapz([0 1 2 6],[ 1 1 1 1])
ans =
6
>> trapz([0 1 2 6]',[ 1 1 1 1])
ans =
Mario R. ROSENBERGER

1 de 6

Integracin numrica con MatLab

2 de 6

6
>> trapz([0 1 2 6]',[ 1 1 1 1; 2 2 2 2 ]')
ans =
6 12

El comando quad
El formato del comando quad admite los argumentos, tal como se muestra en el siguiente esquema:

quad ( funcin , a, b)
funcin a integrar

lmite inferior
del intervalo

lmite superior
del intervalo

La funcin a integra debe definirse en forma simblica mediante el comando inline o a travs de
un archivo m. Por ejemplo, para integrar la funcin y = x2+5, entre los lmites [0,1], puede escribirse:
>> quad('x.^2+5',0,1)
ans =
5.3333
y utilizando un archivo m, llamado fun.m y definido como :
function y=fun(x)
y= x.^2+5;
>> quad('fun',0,1)
ans =
5.3333
o
q = quad(@fun,0,1)
q=
5.3333
Este comando admite ms argumentos, tales como, tolerancia del clculo(tol), la posibilidad de
imprimir los resultados de las iteraciones (trace) e incluir parmetros adicionales para la funcin (p1
p2,...)tal como se muestra a continuacin:

q = quad( fun , a , b , tol , trace , p1 , p2 , ...)


Para quadl, quad8 rigen las mismas recomendaciones.

Integrales dobles:
En Matlab pueden calcularse numricamente integrales dobles, para ello se usa el comando
dblquad, el formato de dicho comando es como sigue:

q = dblquad ( fun, xmin, xmax, ymin, ymax, tol, method, p1, p2, ...)

Mario R. ROSENBERGER

Integracin numrica con MatLab

3 de 6

donde:
fun es una funcin declarada del tipo inline o a travs de un archivo m.
xmin ; xmax : son los valores extremos de la variable x
ymin; ymax : son los valores extremos de la variable y
tol : es la tolerancia para el clculo numrico
method: especifica el mtodo de clculo
p1, p2 ,...: son parmetros adicionales que se pueden utilizar en el clculo.

Ejemplos:
1). usando un funcin definica con inline:
>>dblquad(inline('y*sin(x) + x*cos(y)'),0, 1, 0,1)
ans =
0.65058433794530
2). usando una funcin definida en un archivo_m.
function out = esta(x,y)
out = y*sin(x) + x*cos(y);
>> dblquad(@esta,0, 1, 0,1)
ans =
0.65058433794530
3). otra manera de invocar una funcin definida en un archivo_m.
>> dblquad(esta,0, 1, 0,1, [], @quadl)
ans =
0.65058433946982
En el ejemplo n 3 los corchetes vacos [] indican que no se modifica el parmetro tolerancia,
emplendose el valor predeterminado

Atencin al orden de las variables de integracin: estas siguen el orden alfabtico. Para los
2
ejemplos siguientes se define la funcin: f(x,y) = y *x de tres diferentes maneras.
>> a=inline('y^2.*x')
a=
Inline function:
a(x,y) = y^2.*x
>> a2=inline('x*y^2);
>> a3=inline(y*x.^2);

>> a, dblquad(a,1.3,1.4,2.1,2.2)
a=
Inline function:
a(x,y) = y^2.*x
ans =
0.062415

Mario R. ROSENBERGER

Integracin numrica con MatLab

4 de 6

>> a2, dblquad(a2,1.3,1.4,2.1,2.2)


a2 =
Inline function:
a2(x,y) = x*y^2
ans =
0.062415
Pero si cambiamos y por x, tambin debemos cambiar los lmites de integracin, ya que sino
darn valores diferentes. Comparar los dos ejemplos que siguen:
>> a3, dblquad(a3,1.3,1.4,2.1,2.2) % se invirtieron las variables pero no los lmites de integracin
a3 =
Inline function:
a3(x,y) = y*x.^2
ans =
0.039202
>> a3, dblquad(a4,2.1,2.2, 1.3,1.4) % aqu se invirtieron las variables y los lmites de integracin
a3 =
Inline function:
a3(x,y) = y*x.^2
ans =
0.062415
Posibles mensajes de error:
'Minimum step size reached' indicates that the recursive interval subdivision has produced a
subinterval whose length is on the order of roundoff error in the length of the original interval. A
nonintegrable singularity is possible.
'Maximum function count exceeded' indicates that the integrand has been evaluated more than
10,000 times. A nonintegrable singularity is likely.
'Infinite or Not-a-Number function value encountered' indicates a floating point overflow or division
by zero during the evaluation of the integrand in the interior of the interval.

Integracin de Polinomios:
Un comando especfico, polyint, permite calcular la integral analtica de polinomios, el formato se
indica a continuacin:

polyint (p , k)
donde:
p es el polinomio definido como vector fila y k es una constante de integracin, cuyo valor
predeterminado es 0 (cero).
>> p = [1 3 4];
polyint(p)
ans =
0.33333

1.5

eso se interpreta como:

Mario R. ROSENBERGER

Integracin numrica con MatLab

5 de 6

p = 1*x2 + 3*x + 4
y

ans = 0.3333*x3 + 1.5*x2 + 4*x + 0

Integracin simblica:
El comando int permite calcular la integral de funciones en forma simblica, su formato es el siguiente:

int (fun , v)
donde:
fun: es la funcin que se desea integrar.
v: es la variable sobre la que se quiere integrar
Una variable:
>> syms x
>> int(x^2)
ans =
1/3*x^3
ms de una variable:
>> syms v x
>> int(v*x^2)
ans =
1/3*v*x^3
>> int(v*x^2,x)
ans =
1/3*v*x^3
>> int(v*x^2,v)
ans =
1/2*v^2*x^2
>> int(v*x^2,v)+int(v*x^2,x)
ans =
1/2*v^2*x^2+1/3*v*x^3

Integral definida resuelta simblicamente


El comando int adems
una funcin, tal como:

permite calcular la integral definida de

b
a

f ( v ) dv

y el formato es:

int (f,v,a,b)
Mario R. ROSENBERGER

Integracin numrica con MatLab

6 de 6

donde:
fun: es la funcin que se desea integrar.
v: es la variable sobre la que se quiere integrar
a y b son los lmites de integracin

El programa asume de forma predeterminada la variable x como incgnita, entonces puede usarse:

int ( f, a, b)
por ejemplo:
>> int(x^2,1,3)
ans =
26/3

integrales dobles empleando funciones int anidadas:


Si anidamos dos comandos int podremos calcular integrales doble. Por anidar se entiende poner un
comando como elemento sobre el que se aplica otro comando del mismo tipo, es decir, un comando
dentro de otro.
por ejemplo:
>> syms x y
>> int ( int (x.^2 * y, x, 1.3, 1.4) , y, 2.1, 2.2 )
ans =
23521/600000
>> eval (ans)
ans =
0.03920166666667

Mario R. ROSENBERGER

Anda mungkin juga menyukai