Вы находитесь на странице: 1из 61

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales

Matemticas de Especialidad
Ingeniera Elctrica

Derivacin e
Integracin
de funciones
Jos Luis de la Fuente OConnor
jld e laf uen te@etsii.upm.es
joseluis.dela fuente@upm.es
Clase_derivacin_integraci n_funciones_2013.pdf
1/61

ndice
Introduccin
Derivacin numrica de funciones
Frmulas centradas de segundo orden o superior
Extrapolacin de Richardson
Frmulas derivadas del polinomio de interpolacin de
Newton
Derivacin simblica con Matlab

Integracin de funciones

Frmulas de Newton-Cotes
Frmulas abiertas y cerradas
Mtodo de Romberg
Cuadratura de Gauss-Legendre
Cuadratura adaptativa
2/61

Derivacin de funciones. Introduccin


Como

sabemos,

la derivada de una funcin es el valor lmite de la relacin entre


el incremento del valor de esa funcin y el incremento de la
variable independiente, cuando ste tiende a cero
La

derivacin numrica evala numricamente la derivada de una


funcin a partir de valores numricos de dicha funcin, sin necesidad
por tanto de conocer la expresin analtica de dicha derivada.

La

derivacin numrica de funciones es muy sensible, por su


definicin, a pequeas perturbaciones en los datos o a la precisin
de estos.
3/61

raspqule,la itnw
tego
racifu
nn
prc
odtuico
en
enslossrh
eso
ulw
tadn
os ubneefleoctw
o
r eMxieantm
a mo rtig u c in d elo s
d a tosl a
deha
s
i
m
il
a
r
d
e
f
i
n
r y i ffere
y derivacin todo lo contrario.
ef e ctos de las o s cil a cio ne s en lo s
,
i t e in t e g r a l s b .u t . v e
d

..
..

..

..

..

..
.

. ..

...
.

..

Las

dos funciones de la figura tienen integrales muy parecidas


mientras que sus derivadas en distintos puntos pueden diferir
muchsimo.

46
4/61

Si

se necesita derivar funciones cuyos valores se conocen slo en un


conjunto dado de puntos concretos, lo ms aconsejable es ajustar
alguna funcin continua a esos puntos y derivar luego la funcin
obtenida.

Si

los datos de ese conjunto tienen un cierto patrn de continuidad,


se puede interpolar una funcin; si se sabe que tiene ruido, lo ms
probable es que se requiera una aproximacin mediante mnimos
cuadrados o splines.

5/61

Para

calcular numricamente la derivada de f .x / , como ya hemos


visto, se puede considerar una aproximacin intuitiva de la definicin
f

0.x /

df .x /
f .x C h/ f .x /
D
D lK
m
h! 0
dx
h

f .x C h/ f .x /
,
=
h
es decir, la funcin secante en dos puntos prximos.

6/61

Geomtricamente

se pueden considerar tres variantes

f(x+h)

f(x)
Aproximacin

f 0.x / D

x+h

f .x C h/ f .x /
h

Frmula adelantada

f(x)

f(x h)

f(x+h)

f(x h)
f(x)

x h

f 0.x / D

f .x / f .x h/
h

Frmula atrasada

x h

f 0.x / D

x+h

f .x C h/ f .x h/
2h

Frmula centrada

7/61

Derivacin numrica de funciones


Dada

una funcin continua, f WR ! R, se trata de aproximar


numricamente sus derivada en un punto x.

Consideremos

el desarrollo en serie de Taylor de

f .x C h/ D f .x / C f

0.x /h

00.x /

h C

000.x /

h3 C

2
6
000.x/
00.x /
f
f
2
f .x h/ D f .x / f 0.x /h C
h
h3 C
2
6

despejamos de la primera igualdad f 0.x / se obtiene la frmula


adelantada de su aproximacin:

Si

f .x C h/ f .x / f 00.x /
f .x C h/ f .x /

f .x / D
h C =
h
2
h
0

ms un resto de primer orden: O.h/.


8/61

despejamos de la segunda igualdad, igualmente f 0.x / , se


obtiene la frmula atrasada de su aproximacin:

Si

f .x / f .x h/
f 00.x /
f .x / f .x h/
C
f .x / D
h C =
h
2
h
0

ms un resto tambin de primer orden: O.h/.


las dos desigualdades y despejando f 0.x / se llega a la
frmula centrada:

Restando

0.x /

f .x C h/ f .x h/ f

D
2h

000.x /

h2 C =

f .x C h/ f .x h/
:
2h

El resto en este caso es de segundo orden,


O.h 2/.
9/61

Sumando

las dos desigualdades y despejando f


frmula centrada de la segunda derivada:
f

00.x /

00.x /

se obtiene la

f .x C h/ 2f .x / C f .x h/ f .4/ .x/ 2
D

h C
h2
12
f .x C h/ 2f .x / C f .x h/
=
;
h2

con un resto de segundo orden, O.h 2/ .

10/61

En

el clculo numrico de derivadas se cometen errores importantes.


Por ejemplo, la aproximacin de las derivadas de ex produce esto.
h

f .x / D ex; x D 1

1e-01 2.718281828459046
1e-02 2.718281828459046
1e-03 2.718281828459046
1e-04 2.718281828459046
1e-05 2.718281828459046
1e-06 2.718281828459046
1e-07 2.718281828459046
1e-08 2.718281828459046
1e-09 2.718281828459046
1e-10 2.718281828459046
1e-11 2.718281828459046
1e-12 2.718281828459046
1e-13 2.718281828459046
1e-14 2.718281828459046

f . x C h / f . x /
h

error

f . x / f . x h /
h

f . x C h / f . x h /
2h

error

2.858841954873879
2.731918655787080
2.719641422532781
2.718417747078483
2.718295419912308
2.718283186986525
2.718281963964841
2.718281777447373
2.718281599811689
2.718278935276429
2.718270053492232
2.718270053492233
2.713385072183882
2.664535259100375

0.140560126414833
0.013636827328035
0.001359594073736
0.000135918619438
0.000013591453263
0.000001358527479
0.000000135505795
0.000000051011673
0.000000228647357
0.000002893182616
0.000011774966813
0.000011774966813
0.004896756275163
0.053746569358670

2.586787173020957
2.704735610978304
2.716923140478667
2.718145918900738
2.718268237122956
2.718280469604650
2.718281693070423
2.718281866265215
2.718282043900898
2.718283376168528
2.718314462413217
2.718714142702083
2.722266856380883
2.753353101070388

2.722814563947418
2.718327133382692
2.718282281505724
2.718281832989611
2.718281828517632
2.718281828295587
2.718281828517632
2.718281821856294
2.718281821856293
2.718281155722479
2.718292257952725
2.718492098097158
2.717825964282383
2.708944180085382

0.004532735488372
0.000045304923646
0.000000453046678
0.000000004530565
0.000000000058586
0.000000000163458
0.000000000058586
0.000000006602752
0.000000006602752
0.000000672736567
0.000010429493679
0.000210269638112
0.000455864176663
0.009337648373664

f . x C h / 2f . x / C f . x h /
h2

2.720547818529218
2.718304480877620
2.718282054114951
2.718281777447373
2.718278935276430
2.717381875072532
2.708944180085381
-8.881784197001249
-444.0892098500623
-44408.92098500623
-4440892.098500623
-444089209.8500624
-88817841970.01249
-8881784197001.250

Como

ya vimos al hablar de errores, estos disminuyen a medida que


aumenta h, alcanzan un mnimo, aproximadamente en
h D log10.eps/=2 para la derivada adelantada y atrasada, y
luego
aumentan otra vez debido a los errores de redondeo y la precisin
de la mquina en las operaciones.

11/61

Un

pequeo s c ript de Matlab para calcular esa tabla y ver


grficamente la evolucin es este.
% Fichero Derivadas_ex_1.m para simular derivacin de e^x
h = 1; e=exp(1);
f=fopen(Salida_der i v a d a s _ 1 , w ) ;
for i = 1 : 1 4
h=h/10;
der1 = (exp(1+h)-e)/h; err1=abs(der1-e); der2=(e-exp(1-h))/h;
der3 = (exp(1+h)-exp(1-h))/2/h; err2=abs(der3-e) ;
der4 = (exp(1+h)-2*e+exp(1-h))/(h*h);
f p r i n t f ( f , % 6 . 0 e %18.15f %18.15f %18.15f %18.15f %18.15f %18.15f %18.15 f \ n , . . .
h,e,der1,err1,der2,der3,err2,der4);
end
fclose(all);
h=0.5; R=zeros(32,3) ;
for i=1:32 fd=(exp(1+h)-e)/h;
cd=(exp(1+h)-exp(1-h) ) / ( 2 * h ) ;
R(i,:)=[h abs ( f d -e) abs ( c d- e) ];
h=h/2; end
l o g l o g ( R ( : , 1 ) , R ( : ,2 ) , + , R ( : , 1 ) , R ( : , 3 ) , o r )
legend(Derivadas avanzadas,Derivadas centradas , L o c a t i o n , N o r t hW e s t ) ;
xlabel(h);
ylabe l ( e r r o r ) ;

12/61

El

grfico de los errores de las derivadas adelantadas y centradas


que produce, para diversos h, es el de la figura.
0

10

Derivadas avanzadas
Derivadas centradas

-2

10

-4

error

10

-6

10

-8

10

-10

10

-12

10

-10

10

-9

10

-8

10

-7

10

-6

10

-5

10
h

-4

10

-3

10

-2

10

-1

10

10

13/61

Frmulas centradas de segundo orden


o superior
la ya conocida de O.h2 / vamos
la de cuarto orden. Se
aadir
y f .x h/:
desarrollan en serie 0de Taylor f00 .x 4h 2 2h/ 000 8h3
16h 4
.4/

C f .x/ 3 C f .x/ 4 C O.h 5/


2
2
3
4
.4/ .x/ 16h C O.h 5/
f 00.x/ 4h2 f 000.x/ 8h
C
f
3
4
2
3
4
00.x/ h
C f 000.x/ h3 C f .4/ .x/ h4 C O.h 5/
2
00.x/ h 2 f 000.x/ h3 C f .4/ .x/ h 4 C O.h 5/
2
3
4

f .x C 2h/D f .x/ C f .x/2h C f .x/


f .x 2h/ D f .x/ f 0.x/2h C
f .x C h/ D f .x / C f 0.x/h C f

f .x h/ D f .x / f 0.x/h C f

14/61

Restando

dos a dos:

f .x C 2h/ f .x 2h/D f 0.x/4h C f

f .x C h/ f .x h/
Restando

D f 0.x/2h C f

000.x/ 16h 3 C O.h 5/


3
000.x/ 2h 3 C O.h 5/:
3

a la primera diferencia la segunda multiplicada por 8

f .x C2h/ 8f .x Ch/ C 8f .x h/ f .x 2h/ Df 0.x / .4h 16h/ C O.h 5/ ;

y de aqu a
f 0.x/ D

f .x C 2h/ C 8f .x C h/ 8f .x h/ C f .x 2h/
C O.h 4/ :
12h

15/61

Otras

frmulas centradas de segundo y cuarto orden son las que


siguen (notacin f k D f .x C kh/, k D 3, 2, 1, 0, 1, 2, 3).
Frmulas centradas de orden O .h 2/

f 0.x/

00.x /

000.x /

.4/ .x /

f 1 f 1
2h
f 1 2f 0 Cf 1
h2
f 2 2f 1 C2f 1 f 2
2h3
f 2 4f 1 C6f 0 4f 1 f 2
h4

Frmulas centradas de orden O.h4/

f 0.x/

00.x /

000.x /

.4/ .x /

f 2 C8f 1 8f 1 Cf 2
12h
f 2 C16f 1 30f 0 C16f 1 f 2
12h2
f 3 C8f 2 13f 1 C13f 1 8f 2 Cf 3
8h3
f 3 C12f 2 39f 1 C56f 0 39f 1 C12f 2 f 3
6h4

Se pueden tambin

obtener frmulas parecidas para las derivadas


adelantadas y atrasadas.

16/61

Extrapolacin de Richardson
En

muchos problemas, como la derivacin o integracin numricas,


el valor aproximado de una funcin en un punto se calcula de
acuerdo con un incremento un paso, o un pequeo diferencial
desde otro punto.

Lo ideal

es obtener el valor de la funcin en el nuevo punto al


tender a cero ese incremento, paso, o diferencial.

Evidentemente

el error de redondeo de la mquina impide que esos


pasos o diferenciales se escojan arbitrariamente pequeos.

No

obstante, basndose en incrementos previos no cero que han


funcionado, se puede estimar cul ser el valor de la funcin cuando
ese incremento o paso tienda a cero.
17/61

La

idea de Richardson a este respecto es la que sigue. Supongamos


que F .h/ designa el valor de la funcin con un paso h.
se calcula el valor de F para varios incrementos h no cero y se
conoce tericamente el comportamiento de F .h/ cuando h ! 0,
se puede extrapolar el valor de F .0/ a partir de los de esos
incrementos.

Si

Supongamos

que
F .h/ D a0 C a1hp C O.hr /

segn tiende h !

0 para algn p y r tales que r > p .

18/61

Supongamos

que se conocen los valores de p y r , pero no los de a0


y a1 (precisamente F .0/ D a0 es lo que se quiere
obtener).
Igualmente, que se ha calculado ya F para dos pasos h y h=q,

siendo q cualquier entero positivo.


Se tendr que
F .h/ D a0 C a1hp C O.hr /
F .h=q/ D a0 C a1.h=q/ p C O.hr / D a0 C a1qp hp C O.hr /:
ste es una sistema de dos ecuaciones lineales con dos incgnitas,
a0 y a1. Si se resuelve, se obtiene que

F .h/ F .h=q/
r
a0 D F .h/ C
C
O.h
/;
qp 1
cuya precisin ahora es O.hr /, mejor que anterior O.hp / , pues
r > pla.
19/61

Ejemplo.
Usaremos

la extrapolacin de Richardson para mejorar la precisin


con la que se calcula la derivada de sen.x / en x D 1.

Utilizando

la frmula adelantada de derivacin se tiene que

F .h/ D a0 C a1h C O.h 2/


por lo que aqu p D 1 y r D 2.
se usan los valores h D 0;5 y h D 0;25 (es decir q D 2), se
tiene que

Si

sen.1;5/ sen.1/
D 0;312048
0;5
sen.1;25/ sen.1/
F .h=2/ D
D 0;430055:
0;25
F .h/ D

20/61

(1/ 2) 1
El

= 2F ( h / 2 ) F ( h ) = 0.548061
valor extrapolado es entonces

F .h/ F .h=2/
D 2F .h=2/ F .h/ D 0;548061;
.1=2/
1

comp arison, cor rectly rounded result is given

F .0/ D a0 D F .h/ C

For
frenbtey a eoxsa(ct1o) q=e0s.5co4s0.13/ 0D2 0;5403
02.
ue
cl
F.

....
.
1.0 ..
.
. .Valor extrapolado
.
...
..
. Valores calculados
..

..
0.5 .
. .
.
.
.
.
.
.
.h

0.25

0.5

21/61

Frmulas basadas en el polinomio


de interpolacin de Newton
Se utiliza

cuando se trata de derivar una funcin, mediante


interpolacin previa, de la que se conocen slo unos datos.

En

especial cuando esos datos estn desigualmente espaciados.

un conjunto de puntos .x0 ; f .x 0//, .x1 ; f .x 1// ; : : : se


interpola
el polinomio de Newton
p .x / D b0 C b1.x x0 / C b2.x x0/.x x 1/

donde
b0 D f .x 0/;

f .x 1/ f .x 0/
b1 D
;
x1 x0

b2 D

f .x 2/f .x 1/
x2x1

.x 0/
f .xx1/f
1x0

x2 x0

.
22/61

Luego

se deriva el polinomio y se evala para los distintos puntos:

.
.
p 0.x /Db1 C b2 .x x 0/ C .x x 1/ que para xDx0, p 0.x 0/Db1 Cb2.x0 x 1/.
Las

derivadas adelantadas, centradas y atrasadas, en x0 por


ejemplo, se pueden calcular haciendo en ese polinomio D x0 C h
x1
y x2 D x0 C 2h, por lo que, conf 2f
la1notacin
abreviada,
f 1f 0

f 02f 1Cf 2
0
h
h
b1 D f 1f
b
D
D
;
:
2
h
2h
h2

A partir de ah,
1f 0
1Cf 2 h D 3f 0C4f 1f 2 ;
p 0.x 0/ D b1 Cb2.x0 x1/ D b1 b2h D 2 f 2h
f 02f
2h
2h2

que es la frmula adelantada.


x1 D x0 C h y x2 D x0 h se tendra la frmula centrada y
con x1 D x0 h y x2 D x0 2h la atrasada.

Para

23/61

Derivacin simblica con Matlab


Con

las utilidades simblicas de Matlab se pueden obtener las


frmulas simblicas de las derivadas de diversas funciones.

Por

ejemplo:

>> syms x ;
>> f=sin(3*x);
>> f 1 = d i f f ( f )
f1 =
3*cos(3*x)
>> f2=sin(x)^7
f2 =
sin(x)^7
>> f 3 = d i ff ( f 2 )
f3 =
7*cos(x)*sin(x)^6
>>
24/61

Otras

asociadas, numricas, se pueden ver aqu.


% Fichero Derivada_quiver_1.m
g=@(x,y) y- x - 2 *x .^2- 2 .*x .* y - y. ^2;
[x ,y]=m es hgrid( -2:.1:0, 1 : . 1 : 3 ) ;
z=g(x,y); figu re, m es h(x ,y,z)
[gx,gy]=gradient( z, 0 . 2 5 ) ;
figure
cs=contour(x,y,z) ;clabel(cs);hold on
quiver ( x ,y, - gx ,- gy );hold o f f

-5
-3

2.8
-4
2.6

2.4
-2
2.2

-1

1.8

1.6
0
1
1.4
0

1.2
-1
1
-2

-1.8

-1.6

-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

25/61

ndice
Introduccin
Derivacin numrica de funciones
Frmulas centradas de segundo orden o superior
Extrapolacin de Richardson
Frmulas derivadas del polinomio de interpolacin de
Newton
Derivacin simblica con Matlab

Integracin de funciones
Frmulas de Newton-Cotes
Frmulas abiertas y cerradas
Mtodo de Romberg
Cuadratura de Gauss-Legendre
Cuadratura adaptativa
26/61

Integracin de funciones
Dada

una funcin f W ! R, se define la integral definida de esta


funcin en el intervaloRab], o a; b],

f .x / dx;

I .f / D
a

como el lmite de las sumas de Riemann


i n

.x i C1 x i / f .t i /

Rn D
i D1

donde x i ti x i C1 y x1 D a, x nC1 D b, cuando la particin en


intervalos se hace muy fina.
27/61

La

integracin numrica, o cuadratura, se refiere al clculo, lo ms


aproximado posible, de esa integral numricamente.

Ese clculo

se necesita cuando:

1. La funcin f .x / slo se conoce en punto concretos.

2. No se conoce la primitiva de la funcin f .x / .


3. La primitiva no es calculable, como por ejemplo0
R p
dx,0v=2 1 C cos2.x/ dx.

R1

ex

4. Aunque se conozca la primitiva de la funcin, su clculo es tan


costoso que es mejor usar un mtodo aproximado para calcularla.

5. Otras causas afines.


28/61

Para

calcular la integral se recurre por lo general a un sumatorio de


valores de la funcin en ciertos puntos llamados nodos,
multiplicados por unos coeficientes de ponderacin denominados
pesos:
l

in

f .x / dx D
a

wi f .x i /:
i D1

sustitucin supone cambiar un sumatorio infinito (la integral)


por un sumatorio finito, por lo que se producir un error de
truncamiento.

Esta

29/61

Para

deducir las frmulas que utilizar en la integracin numrica, la


funcin f .x / se suele sustituir por un polinomio p n .x / que
interpola puntos concretos de la misma en el intervalo dado y luego
se realiza la integracin exacta de este polinomio.

Se llama

grado de precisin de la frmula de integracin al mximo


grado de los polinomios que son integrados exactamente por dicha
frmula.

La

integracin numrica es un proceso bastante ms estable y


preciso que la derivacin numrica vista previamente.

30/61

Frmulas de Newton-Cotes
Se basan en

el polinomio de interpolacin de Newton con


argumentos igualmente espaciados (frmula de diferencias finitas).

Algunas

frmulas:
Z

x1

Regla del trapecio

f .x/dx =

h
.f 0 C f 1/
2

error D 12 f

f .x/dx =

h
.f C 4f 1 C f 2/
3 0

error D 90 f

f .x/dx =

3h
.f 0 C 3f 1 C 3f 2 C f 3/
8

error D 3h
f
80

f .x/dx =

2h
.7f C 32f 1 C 12f 2 C 32f 3 C 7f 4/
45 0

.6
error D 8h
945 f .$/

x0

x1

Regla de Simpson
x0

Z
Regla de Simpson

3
8

x1

x0

x1

Regla de Boole
x0

h3

00.$/

h5

.4/ .$/

.4/ .$/

donde f k indica f .x0 C kh/.


31/61

se incluye en estas traspa


Frmula
ecsobmasQptuaInterpretacin
sopeycniode
o la regla trapezoidal y las d
enstetaladbeolritoragrfica
Resulta de aplicar la regla o frmula del trapecio a los m
Simpson:
subintervalos en el que se divide el original a; b].

i ml

f .x/dx D
a

xi

f .x/dx =
i D1
h
2 .f 0

xi 1

h
h
.f m1 C f m/
.f 0 C f 1/ C C
2
2

C 2f 1 C 2f 2 C C 2f m1 C f m/ :
32/61

El

error que se comete es

h
f .x / dx D
2

im

b a 2 00
h f .$/:
.f i 1 C f i /
12

i D1

Implementemos

todo en Matlab para

R1
0

1=.1 C x/dx.

function T = trapezrule(f,a,b,m)
% Integracin trapecio compuesto

x = linspace(a,b,m+1);
T = (f(a)+f(b ))/2;
f o r i = 1:m-1
T = T + f(x(i+1));
end
T = T*(b-a)/m;

% subintervalos
% comienzo y f i n a l
% i n t e r i o r i n tervalo

% multiplica por h

function f = intfun_1(x)
% Funcin que se integra
f = 1./(1+x);
end
33/61

Hagamos

sobre la marcha alguna prueba.


>> for k=0:8
disp(trapezrule(@intfun_1,0,1,2^k ) )
end
0.750000000000000
0.708333333333333
0.697023809523809
0.694121850371850
0.693391202207527
0.693208208269249
0.693162438883403
0.693150995228108
0.693148134232443
>> log(2)
ans =
0.693147180559945
>>

El

valor exacto es el log 2.


34/61

rrores de las restantes frmulas de Newton-Cotes


oF
so rmulay no secompuestaincluye en estasdel
Simpson
trasparencias.
fica
de la regla trapezoidal y las dos reglas de
de
la regla de Simpson compuesta:

Sigue la misma estrategia de la frmula del trapecio, pero


ajustando
una parbola en cada subintervalo a tres puntos del mismo.

pretacin geomtrica:

a; b] se subdivide en m intervalos, habr 2m C 1 puntos de


abscisas x i D a C i h, i D 0; 1; : : : ; 2m. La distancia entre los
puntos ser h D .b a/=2m.

Si

35/61

i ml

xi

f .x /d x =

f .x/dx D
a

i D1

xi 1

h
.f C 4f 1 C f 2/ C
3 0

h
h
C .f 2 C 4f 3 C f 4/ C C .f 2m2 C 4f 2m1 C f 2m/
3
3
h
D .f 0 C 4f 1 C 2f 2 C 4f 3 C 2f 4 C 2f 2m2 C 4f 2m1 C f 2m/ :
3

El

error que se comete es


b

f .x / dx D
a

h
3

im

.f 2i 2 C 4f 2i 1 C f 2i /

b a 4
hf
180

.4/

.$/:

i D1

36/61

Hagmoslo

en Matlab para

R1
0

1=.1 C x/dx.

function I = simpson_1(f, a , b , n )
% Integracin de f en [ a,b] con l a regla de Simpson en n+1
%
puntos igualmente espaciados
h = (b-a)/n;
x i = a:h:b;
I = (h / 3 )* (f (xi(1 )) +2 * s um(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi ( e n d ) ) ) ;
end
function f = intfun_1(x)
% Funcin que se integra
f = 1./(1+x);
end

37/61

Si

lo probamos como antes:


>> for k=0:8
disp(simpsons(@intfun_1,0,1,2^k))
end
1.166666666666667
0.694444444444444
0.693253968253968
0.693154530654531
0.693147652819419
0.693147210289823
0.693147182421455
0.693147180676343
0.693147180567221
>> log(2)
ans =
0.693147180559945
>>

La

precisin es apreciablemente superior.


38/61

epto de frmula de integracin abierta

e llama abierta a una frmula de integracin numrica que no evala la


Frmulas
uncin
integrando abiertas
en uno o en losydoscerradas
extremos del intervalo.
as frmulas abiertas son tiles cuando no se conoce la funcin en un extremo
Seun
llama
una frmula
de integracin numrica que no
tiene
valorabierta
infinito a
(integrales
impropias).
evala
la funcin
integrando
enfrmulas
uno o endelos
dos extremos
deln
n caso
de gran
inters prctico
son las
Adams,
que utilizan
untos,
pero slo desean calcular la integral en el ltimo tramo (ver figuras)
intervalo.
Newton-Cotes abierta

NewtonCotes cerrada

on-Cotes

Las frmulas abiertas son tiles cuando no se conoce la funcin en


un extremo o tiene un valor infinito (integrales impropias).
39/61

La

regla del punto medio, aplicable a funciones cuya segunda


derivada es continua en a; b], es muy til en estos casos.
l

x1

x0

h3
f .x/dx D hf .w / C f 00.c/;
24

donde h D .x 1 x 0/, w es el punto medio, es decir x0 C h=2 y c


est entre x0 y x1. Su versin compuesta es
l

i m

f .x /d x D h
a

.b a/h 2
f .w i / C
f
24

00

.c/:

i D1

40/61

Ejemplo
Aproximemos

R1

la integral 0 sen.x=x/ dx, con m D 10,


regla
del punto medio compuesta.
usando

Los puntos

la

medios son 0;05, 0;15; : : : ; 0;95 y la formula da

10
i

f .mi / D 0;94620858:

f .x /d x = 0;1
0

La cifra correcta con 9 dgitos es 0;94608307.

41/61

Otra

x0

regla til aplicable a las frmulas de Newton-Cotes es


.
.
x4
4h
14h5
2f .x 1/ f .x 2/ C 2f .x 3/ C
f
f .x / dx D
3
45

.4/

.c/;

donde h D .x4 x0/=4, x1 D x0 C h, x 2 D x0 C 2h,


x3 D x0 C 3h y x0 < c < x 4.
Existen

bastantes otras, por ejemplo,

x6

.
.
6h
41h7
11f .x 1/14f .x 2/C26f .x 3/14f .x 4/C11f .x 5/ C
f .x / dx D
f
140
20

.6/

.c/;

x0

donde x0 < c < x 6.


42/61

tiene un valor infinito (integrales impropias).


n caso de gran inters prctico son las frmulas de Adams, que utilizan n
untos, pero slo desean calcular la integral en el ltimo tramo (ver figuras)

Un

caso de apreciable inters prctico son las frmulas de Adams,


que utilizan n puntos, pero slo desean calcular la integral en el
ltimo tramo (como se aprecia en la figura).

on-Cotes

Adams abierta

Adams cerrada

43/61

Mtodo de Romberg
Est

basado en la extrapolacin de Richardson. Permite mejorar


recursivamente la aproximacin de las frmulas compuestas con
poco trabajo adicional.
de dividir a; b] en un nmero de subintervalos potencia de
2. Se requieren 2m C 1 valores de la funcin.

Se parte

Se calculan

luego las integrales con la frmula del trapecio con 1,


2; : : :, 2m subintervalos, o "paneles", de longitudes h1 D b
h2 D h1=2a,D .b a/=2, en general hi D hi
1=2.
Los resultados se denominan R11, R21; : : :, Ri1.
A partir de estas integrales, mediante extrapolacin de Richardson,
se calculan otras R22, R32; : : : ; Ri 2, de error menor: O.h 4/.
44/61

Por

ejemplo, si se desea trabajar con i D 4, y el valor de la funcin


en f .a/ D f 1, f 2, f 3, f 4, f 5, f 6, f 7, f 8, f 9 D f .b/, se tendr
que
R11 D
R21 D
D
R31 D
D

R41 D
D

ba
.f
2

.a / C f .b // D

h2 .
f .a/ C f
2
1
2 R11 C h2f 5
h3
.f 1 C
2
1
2 R21 C

.b/ C 2f

h1
2

.f 1 C f 9/
. aCb ..
h2
D
.f 1 C 2f 5 C f 9/
2
2

2f 3 C 2f 5 C 2f 7 C f 9/
h3 .f 3 C f 7/

h4 .
f 1 C 2f 2 C 2f 3 C 2f 4 C
2
1
C h4 . f 2 C f 4 C f 6 C
2 R31

.
2f 5 C 2f 6 C 2f 7 C f 9
f 8/
45/61

Las

extrapolaciones que se hacen son, a partir de Richardson,


R22
R32
R42

Al

22R21 R11
D
3
22R31 R21
D
3
22R41 R31
D
3

final se llega a una tabla general

R11
R21 R22
R31 R32 R33
R41 R42 R43 R44
:::
:
46/61

Con

una frmula de recurrencia para cada coeficiente j k, k > 1,


Rj k

Este

4k1Rj ;k 1 Rj 1;k1
D
:
k1
4 1

programa implementa el mtodo de Romberg.


function R = romberg(f, a, b, n)
% Calcula una integral def inida en el i n t e r va l o [ a , b ] mediante l a
%
tabla de n f i l a s segn la f rmula de Romberg
R = zeros(n,n ) ;
h = ( b - a ) . / ( 2 . ^( 0 : n - 1 ) ) ;
R(1,1) = (b a ) * ( f ( a ) + f ( b ) ) / 2 ; f o r i = 2:n
subtotal = 0;
f o r j = 1 : 2 ^( i - 2 )
subtotal = sub t o t a l + f (a +(2 *j -1 )*h (i ) ) ;
end
R(i, 1 ) = R(i-1,1)/2+h(i)*subtotal;
for k=2:i
R ( i , k ) = (4^(k-1)*R(i,k -1)-R(i -1,k -1 ) ) / ( 4 ^ ( k - 1 ) - 1 ) ;
end
end

47/61

Si

lo probamos para integrar la funcin

R2
1

ln dx se tiene

>> romberg(@log,1,2,4)
ans =
0.346573590279973
0
0
0
0.376019349194069 0.385834602165434
0
0
0.383699509409442 0.386259562814567 0.386287893524509
0
0.385643909952095 0.386292043466313 0.386294208843096 0.386294309086248
>> 2*log(2)-1
ans =
0.386294361119891
>> format short e
>> romberg(@log,1,2,5)
ans =
3.4657e-001
0
0
0
0
3.7602e-001 3.8583e-001
0
0
0
3.8370e-001 3.8626e-001 3.8629e-001
0
0
3.8564e-001 3.8629e-001 3.8629e-001 3.8629e-001
0
3.8613e-001 3.8629e-001 3.8629e-001 3.8629e-001 3.8629e-001
>> 2*log(2)-1-ans(5,5)
ans =
1.8772e-010

% Comprobacin del resultado

48/61

Se permite variar la posicin de los nodos para mejorar el orden del mtodo
Se trabaja en unde
intervalo
de integracin normalizado [1, 1].
Cuadratura
Gauss-Legendre
Con n puntos de integracin y n pesos por determinar se pueden satisfacer 2
condiciones, como por ejemplo integrar exactamente las 2n primeras potenc
En este procedimiento
se permite variar la posicin de los nodos
de x (desde x0 a x2n1). Con esto el mtodo ser de orden 2n1 pues integrar
para
mejorar elcualquier
orden opolinomio
precisindedel
resultado.
exactamente
dicho
grado. En la figura se
muestra
cmo se
puede
obtenercmo
unasemejor
con slo
Las siguientes
figuras
muestran
puedeaproximacin
obtener mejor aproximacin

dos nodos
haciendo
sean
extremosdel
del intervalo.
intervalo.
doscon
nodos
haciendo
queque
no no
sean
loslosextremos

-1

Se trabaja

-1

en un intervalo de integracin normalizado, el


1; 1].
49/61

Con

n puntos de integracin y n pesos por determinar se pueden


satisfacer 2n condiciones, como por ejemplo integrar exactamente
las 2n primeras potencias de x, desde x 0 a x 2n1. Con esto el
mtodo ser de orden 2n 1 de precisin pues integrar
exactamente cualquier polinomio de dicho grado.

La

frmula general de la cuadratura de Gauss-Legendre es

in

ci f .x i /;

f .x / dx =
1

i D1

donde los nodos, x i , son las races de los polinomios de Legendre


de grado n en el intervalo
1; 1].
Los coeficientes, o pesos, ci , estn tabulados para integrar
exactamente polinomios de hasta grado 2n 1.
50/61

n
2

q
q
q
q

nodos x i
p
-p 1=3 = -0,57735026918963
1=3 = 0,57735026918963
p
- 3=5 = -0,77459666924148
0 = 0,00000000000000
p
3=5 = -0,77459666924148
p
15C2 30
35
p
152 30
35
p
152 30
35
p
15C2 30
35

= -0,86113631159405
= -0,33998104358486

= 0,33998104358486
= 0,86113631159405
-0,93246951420315
-0,66120938646626
-0,23861918608320
0,23861918608320
0,66120938646626
0,93246951420315

coeficientes ci

1
1
5=9
8=9
5=9
p
905
180
p
90C5
180
p
90C5
180
p
905
180

=
=
=
=
=

1,00000000000000
1,00000000000000
1,55555555555555
1,88888888888888
1,55555555555555

= 0,34785484513745

= 0,65214515486255

= 0,65214515486255

= 0,34785484513745
0,17132449237917
0,36076157304814
0,46791393457269
0,46791393457269
0,36076157304814
0,17132449237917

Nodos y pesos, n D 2; : : : 5, para la cuadratura de Gauss-Legendre

51/61

Ejemplo
Aproximemos

la integral

x2

dx

usando cuadratura de Gauss-Legendre.


El

valor exacto con 14 dgitos es 1;71124878378430. Con dos


nodos, la aproximacin es
l

x2

e 2

p
p
dx = c1f .x 1/ C c2f .x 2/ D 1 f . 1/3/ C 1 f . 1/3/ =

1,69296344978123:

Con tres nodos 59f


Con cuatro c1f

p
p
. 3/5/ C 8 f . 0/ C 5 f . 3/5/ =
9

1,71202024520191

.x 1/ C c2f .x 2/ C c3f .x 3/ C c4f .x 4/ =

1,71122450459949:
52/61

Para

calcular en a; b] los n nodos y pesos de Gauss-Legendre.


function [x,w]= lgwt(N,a,b)
%
% Calcula los N nodos y pesos de Gauss-Legendre en e l i n t e r v a l o [ a , b ]
% para el c l c u l o de integrales definidas.
% Si se qui e r e c a l c u l a r l a i n t e g r a l de f ( x ) es ese i n t e r valo
%
c alc ular el v a l o r de f ( x ) en todos los puntos del vector x .
%
La i n t e g r a l es sum(f.*w);
N=N-1; N1=N+1; N2=N+2; xu=linspace(-1,1,N1);
y =cos((2*(0:N)+1)*pi/(2*N+2))+(0.27/N1)*sin(pi*xu*N /N2);
L =zeros(N1,N2);
% Legendre-Gauss Vandermonde Ma t r i x
Lp=zeros(N1,N2);
% De r i v a t i v e of LGVM
% Calcular ceros del Polinomio de Legendre de orden N+1
% mediate Newton-Raphson
y0=2;
while max(abs(y-y0))>eps
% Tolerancia de nuevos puntos: eps
L ( : , 1 ) =1; Lp( : , 1 ) = 0 ;
L ( : , 2 ) =y; Lp( : , 2 ) = 1 ;
f o r k=2:N1
L(:,k +1)=( (2*k -1)* y . * L ( : , k ) - ( k - 1 ) * L ( : , k - 1 ) ) / k ;
end
Lp = (N2)*( L(:,N1)-y.*L(:,N2) ) . / ( 1 - y . ^ 2 ) ;
y0 = y ; y = y0- L( :,N2) ./Lp;
end
x=(a*(1-y)+b*(1+y))/2 ;
% Pasar de [ - 1 , 1 ] to [ a , b ]
w=(b-a)./((1-y.^2).*L p.^2)*( N2/N1)^2; % Clculos de pesos

53/61

Calculemos

la integral del ejemplo anterior,

R1
1

x2

e 2

dx.

>> [x,w]=lgwt(6,-1,1);
>> f=exp(-(x.^2)/2);
>> sum(f.*w)
ans =
1.711248771041351
>>
Con

8 nodos y con quad de Matlab:


dos
>> [x,w]=lgwt(8,-1,1);
>> sum(exp(-(x.^2)/2).*w)
ans =
1.711248783780728
>> quad(exp(-(x.^2)/2) ,-1, 1 ,1 .e -1 4)
ans =
1.711248783784298
54/61

aproximar una integral en el intervalo a; b], se tiene que


.
.
l b
in
b a
. b a/ zi C .b C a/
c
f
f .x / dx =
:
i
2
2
a

Para

i D1

Ejemplo
Aproximemos

la integral
l

ln x dx
1

usando cuadratura de Gauss-Legendre. De la ecuacin anterior,


l 2
l 1 .
.
zC3 1
dz:
ln x dx D
ln
2
2
1
1
Con cuatro nodos, la aproximacin es 0;38629449693871, que,
comparada con 2 ln 2 1 D 0;38629436111989, no est muy mal.
55/61

Integrales mltiples
La

cuadratura de Gauss se puede utilizar para realizar integrales


mltiples aplicndola sucesivamente a cada una de las variables,
como por ejemplo:
Z 1Z 1
Z1 n
Xn Z 1
X .
.
ci f .$i ; y/ dy D
ci f .$i ; y/ dy
f .$; y/ d $dy D
1 1

1 i D1

Xn

Xn
D

ci
i D1

j D1

cj f .$i ; yj / D

i D1

Xn X n

ci cj f .$i ; yj /:

i D1 j D 1

56/61

Cuadratura adaptativa
idea es utilizar una tctica del tipo divide y vencers, como la
compuesta ya presentada, pero esta vez subdividiendo el intervalo
de integracin segn la variabilidad de la funcin en ste e irse
adaptando a ella.

La

dividiendo a; b] en dos subintervalos iguales y se


utiliza la frmula de Simpson con h D .b a/=2 para calcular una
Rb
aproximacin I 1 = a f .x /d x.

Se comienza

Se hace lo

IR

mismo con h=2 para obtener I L =


R
= mb f .x/dx, donde m D .a C b/=2.

despus I 2 D I L C I R y I 3 D I 2 C
extrapolacin de Richardson.

Se calcula

Rm
a

f .x/dx y

I 2I 1
,
15

por
57/61

Si

recordamos los errores que se cometan con la frmula de


Simpson,
Zb
h
h5 .4/
f .x/dx D .f 0 C 4f 1 C f 2/ f .c0/;
90
3
a

se tiene en dos subintervalos


Zb
5
f .x/dx D I L h32 f
a

.4/.c /
1

90
5

D I L C I R h16 f

C I R h32 f
.4/.c /
3

90

.4/.c /
2

90

Restando este resultado de la expresin anterior queda


I 1 .I L C I R / D

f .4/ .c0/
5
h 90

h5 f .4/.c3/
16 90

15 3 f .4/ .c3/
:
16 h
90
58/61

el error de I 1 .I L C I R / es 15 veces el de la
aproximacin

I L C I R de la integral,
se puede comprobar
si
I 1 .I L C I R / < 15 t ol
Como

y si no se dividen los dos subintervalos a; m] y m; b] en dos cada


uno hasta que se llegue a la precisin adecuada.
Pasemos

a Matlab esta forma de integrar.

59/61

function [q f n c t ] = quadadapt(f,a,b,tol,v arargin)


% Evalua l a i n t e g r a l de f ( x ) en [ a , b ]
global fnct
i f nargin < 4 | | i s e m p t y( t o l ) , t o l = 1.e- 6; end, fnct=0;
c = (a + b ) / 2 ;
fa = f ( a,va r a r g i n { : } ) ;
f c = f(c,va r a r g in { : } ) ;
fb = f ( b , v a r a r g i n { : } ) ; f n c t = f n c t + 3 ;
q = quadstep ( f , a, b, t o l , f a , f c , f b , v a r a r g i n { : } ) ;
end
function q = q u a d s t e p ( f ,a , b ,t o l , f a, f c , f b ,v a r a r g i n )
% Subfunction recurrente de quadadapt
global fnct
h = b - a; c = (a + b)/ 2 ;
fd = f((a+c ) / 2 , v a r a r g i n { : } ) ;
fe = f ( ( c + b ) / 2 , v a r a r gi n { : } ); f n c t = f n c t + 2 ;
q1 = h/6 * ( f a + 4*fc + f b ) ;
q2 = h/12 * ( f a + 4*fd + 2* f c + 4*fe + f b ) ;
i f abs(q2 - q1) <= t o l
q = q2 + (q2 - q1)/15;
else
qa = quadstep ( f , a, c , t o l , f a , f d , f c , v a r a r g i n { : } ) ;
qb = quadstep ( f ,
c , b,
tol,
fc, fe, fb,
v a r a r g i n { : } ) ; q = qa + qb;
end
end

60/61

sen x C 2 dx, se tiene lo que


. .
sigue.
Si lo utilizamos para integrar sen x1 C 23 dx, se tiene esto:

Si

lo utilizamos para integrarl

2
v
7v

2
7v

sin(1/x)+3/2
2.5

1.5

0.5
0.1

0.15

0.2

0.25

0.3

0.35
x

0.4

0.45

0.5

0.55

0.6

>> [q fnct]=quadadapt(@f1_Heath,2/(7*pi),2/pi,1.e -14)


q =
0.984511912667507
fnct =
3949
>> [q2 fnct1]=quad(@f1_Heath,2/(7*pi),2/pi,1.e-14)
q2 =
Cuadratura adaptativa
0.984511912667507
de Simpson de Matlab
fnct1 =
2069
>> [q2 fnct1]=quadl(@f1_Heath,2/(7*pi),2/pi,1.e -14)
q2 =
0.984511912667507
fnct1 =
1308

61/61