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

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
jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_derivacin_integracin_funciones_2014.pdf
1/62

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/62

Derivacin de funciones. Introduccin


4

Como sabemos,
la derivada de una funcin en un punto es el valor del lmite, si existe, de
un cociente incremental cuando el incremento de la variable tiende a cero.
Es una medida de la rapidez con la que cambia el valor de dicha funcin
segn cambie el valor de su variable independiente.

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/62

r example, two functions shown below ha


4 Mientras que la integracin produce en los resultados un efecto de amortiguacin
ry desimilar
but todo
very
differe
los efectos dedefinite
las oscilaciones integrals
en los datos, la derivacin
lo contrario.
...................................................
.
.
.
.
... ..........
...................
.
...............
.
..
......
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
........
.
.
...
.
............
....
......
.
.
.
.
.
.
.
.
.
.
.
.......
.
.
..
.
.
...........
.
..
.
....
.
.
...
.
.....
.
.
.
.
.
.
.
.
..
.
.
.......................................................................................................................................................................................
4

Las dos funciones de la figura tienen integrales muy parecidas mientras que sus
derivadas en distintos puntos pueden diferir muchsimo.

46
4/62

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 tienen ruido, lo ms probable es que se requiera una aproximacin


mediante mnimos cuadrados o splines.

5/62

Para calcular numricamente la derivada de f .x/ se puede considerar una


aproximacin intuitiva de su definicin:
f 0.x/ D

f .x C h/
df .x/
D lKm
h!0
dx
h

f .x C h/

h

f .x/

f .x/

es decir, la lnea secante (o cuerda) en dos puntos prximos.

6/62

Geomtricamente se pueden considerar tres variantes

f(x+h)

f(x)

f 0 .x/ D

Aproximacin

x+h

f .x C h/
h

f(x)

Frmula adelantada

f(xh)

f(xh)

f(x)

xh

f .x/

f(x+h)

f 0 .x/ D

f .x/

f .x
h

Frmula atrasada

xh

h/

f 0 .x/ D

x+h

f .x C h/

f .x

h/

2h

Frmula centrada

7/62

Derivacin numrica de funciones


4

Dada una funcin continua, f W R ! R, se trata de aproximar numricamente


sus derivada en un punto x.

Consideremos el desarrollo en serie de Taylor de


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

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


de su aproximacin:
f .x C h/
f .x/ D
h
0

f .x/

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

f .x/

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


8/62

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


hacia atrs de su aproximacin:
0

f .x/ D

f .x/

f .x
h

h/

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

f .x
h

h/

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


4

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


centrada:
0

f .x/ D

f .x C h/

f .x
2h

h/

f 000.x/ 2
f .x C h/ f .x
h C  
6
2h

h/

El resto en este caso es de segundo orden, O.h2/.

9/62

Sumando las dos desigualdades y despejando f 00.x/ se obtiene la frmula


centrada de la segunda derivada:
00

f .x/ D


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

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

f .4/.x/ 2
h C 
12

h/
h/

con un resto de segundo orden, O.h2/.

10/62

En el clculo numrico de derivadas se cometen errores importantes. Por ejemplo,


la aproximacin de las derivadas de e x produce estos resultados:
h

f .x/ D e x; x D 1

f .xCh/ f .x/
h

error

f .x/ f .x h/
h

f .xCh/ f .x h/
2h

error

f .xCh/ 2f .x/Cf .x h/
h2

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

2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046

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

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 vimos al hablar de errores, estos disminuyen a medida que aumenta h


desde valores prximos a la precisin de la mquina, 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/62

Un pequeo script de Matlab para calcular esa tabla y ver grficamente la


evolucin del error es este.
% Fichero Derivadas_ex_1.m para simular derivacin de e^x
h = 1; e=exp(1);
f=fopen(Salida_derivadas_1,w);
for i=1:14
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);
fprintf(f,%6.0e %18.15f %18.15f %18.15f %18.15f %18.15f %18.15f %18.15f\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(fd-e) abs(cd-e)];
h=h/2;
end
loglog(R(:,1),R(:,2),+,R(:,1),R(:,3),or)
legend(Derivadas avanzadas,Derivadas centradas,Location,NorthWest);
xlabel(h);
ylabel(error);

12/62

El grfico de los errores de las derivadas adelantadas y centradas que produce,


para diversos h, es el de la figura.
0

10

Derivadas adelantadas
Derivadas centradas

-2

10

-4

10

error

-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/62

Frmulas centradas de segundo orden


o superior
4

A la ya conocida de O.h2/ vamos aadir la de cuarto orden. Se desarrollan en


serie de Taylor f .x 2h/ y f .x h/:
3

C O.h5/
f .x C 2h/Df .x/ C f 0.x/2h C f 00.x/ 4h2 C f 000.x/ 8h3 C f .4/.x/ 16h
4
f .x

2h/ Df .x/

f 0.x/2h C f 00.x/ 4h2


2

f 000.x/ 8h3 C f .4/.x/ 16h


C O.h5/
4
3

f .x C h/ Df .x/ C f 0.x/h C f 00.x/ h2 C f 000.x/ h3 C f .4/.x/ h4 C O.h5/


f .x

h/ Df .x/

f 0.x/h C f 00.x/ h2

f 000.x/ h3 C f .4/.x/ h4 C O.h5/

14/62

Restando dos a dos:


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

f .x
f .x

5
2h/Df 0.x/4h C f 000.x/ 16h
C
O.h
/
3

h/

Df 0.x/2h C f 000.x/ 2h3 C O.h5/:

Restando 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.h5/;

y de aqu a
f 0.x/ D

f .x C 2h/ C 8f .x C h/ 8f .x
12h

h/ C f .x

2h/

C O.h4/:

15/62

Otras frmulas centradas de segundo y cuarto orden son las que siguen (notacin
fk D f .x C kh/, k D 3, 2, 1, 0, 1, 2, 3).
Frmulas centradas de orden O.h2 /


f 00 .x/ 
f 000 .x/ 
f .4/ .x/ 
f 0 .x/

f1 f 1
2h
f1 2f0 Cf 1
h2
f2 2f1 C2f 1 f
2h3
f2 4f1 C6f0 4f
h4

2
1

Frmulas centradas de orden O.h4 /


f 00 .x/ 
f 000 .x/ 
f .4/ .x/ 
f 0 .x/

f2 C8f1 8f 1 Cf 2
12h
f2 C16f1 30f0 C16f 1 f 2
12h2
f3 C8f2 13f1 C13f 1 8f 2 Cf 3
8h3
f3 C12f2 39f1 C56f0 39f 1 C12f
6h4

Se pueden tambin obtener frmulas parecidas para las derivadas adelantadas y


atrasadas.
16/62

Extrapolacin de Richardson
4

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/62

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.

Si 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.

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/62

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 a1q

p p

h C O.hr /:

ste es una sistema de dos ecuaciones lineales con dos incgnitas, a0 y a1. Si se
resuelve, se obtiene que
a0 D F .h/ C

F .h/
q

F .h=q/
r
C
O.h
/;
p
1

cuya precisin ahora es O.hr /, mejor que la anterior O.hp /, pues r > p.

19/62

Ejemplo.
4

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.h2/
por lo que aqu p D 1 y r D 2.

Si se usan los valores h D 0;5 y h D 0;25 (es decir q D 2), se tiene que
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/62

= 2F (h/2) F (h) = 0.548061

El valor extrapolado es entonces

F .h/ F .h=2/
D 2F .h=2/ F .h/ D 0;548061;
.1=2/
1
comparison, correctly rounded result is given

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

For
frente
que =
es cos.1/
D 0;540302.
byal exacto
cos(1)
0.540302
F.

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

.
.
.
........
0.5 ..
.
...................
...................
..
..

..
..
..
...........................................................................................
h

0.25

0.5

21/62

Frmulas basadas en el polinomio


de interpolacin de Newton
4

Se utiliza cuando se trata de derivar una funcin de la que se conocen slo unos
datos. En especial cuando esos datos estn desigualmente espaciados.

A esos datos, .x0; f .x0//, .x1; f .x1// ; : : :, se les interpola el polinomio de


Newton
p.x/ D b0 C b1.x x0/ C b2.x x0/.x x1/
donde
b0 D f .x0/;

f .x1/
b1 D
x1

f .x0/
;
x0

b2 D

f .x2 / f .x1 /
x2 x1

x2

f .x1 / f .x0 /
x1 x0

x0

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



p 0.x/Db1 Cb2 .x x0/C.x x1/ que para xDx0, p 0.x0/Db1 Cb2.x0

x1/.
22/62

Las derivadas adelantadas, centradas y atrasadas, en x0 por ejemplo, se pueden


calcular haciendo en ese polinomio x1 D x0 C h y x2 D x0 C 2h, por lo que, con
la notacin abreviada,

b1 D

f1 f0
;
h

b2 D

f2 f1
h

f1 f0
h

2h

f0 2f1 Cf2
:
h2

A partir de ah,
p 0.x0/ D b1 Cb2.x0

x1/ D b1

b2h D 2 f12hf0

f0 2f1 Cf2
1 f2
h D 3f0C4f
;
2h
2h2

que es la frmula adelantada.


4

Para 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.

23/62

Derivacin simblica con Matlab


4

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);
>> f1=diff(f)
f1 =
3*cos(3*x)
>> f2=sin(x)^7
f2 =
sin(x)^7
>> f3=diff(f2)
f3 =
7*cos(x)*sin(x)^6
>>

24/62

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]=meshgrid(-2:.1:0, 1:.1:3); z=g(x,y);
figure, mesh(x,y,z)
[gx,gy]=gradient(z,0.25);
figure
cs=contour(x,y,z); clabel(cs); hold on
quiver(x,y,-gx,-gy);
hold off

-5
-3

2.8
-4
2.6
2.4
-2
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/62

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/62

Integracin de funciones
4

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


intervalo a; b,
I.f / D

f .x/ dx;

como el lmite de las sumas de Riemann


Rn D

n
i

.xi C1

xi / f .ti /

iD1

donde xi  ti  xi C1 y x1 D a, xnC1 D b, cuando la particin en intervalos se


hace muy fina.

27/62

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


aproximado posible, de esa integral.

Ese clculo numrico 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/.
1

Z
3. La primitiva no es calculable, como por ejemplo
Z =2 p
1 C cos2.x/ dx.

x2

dx, o

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.

28/62

Para calcular la integral se recurre a un sumatorio de valores de la funcin en


ciertos puntos llamados nodos, multiplicados por unos coeficientes de
ponderacin denominados pesos:
l

f .x/ dx D

n
i

wi f .xi /:

iD1

Esta sustitucin supone cambiar un sumatorio infinito (la integral) por un


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

29/62

Para deducir las frmulas que utilizar, la funcin f .x/ se sustituye por un
polinomio pn.x/ que interpola puntos concretos de aquella 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/62

Frmulas de Newton-Cotes
4

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
.f0 C f1 /
2

error D

h3 00
f ./
12

f .x/dx 

h
.f0 C 4f1 C f2 /
3

error D

h5 .4/
f ./
90

f .x/dx 

3h
.f0 C 3f1 C 3f2 C f3 /
8

error D

3h5 .4/
f ./
80

f .x/dx 

2h
.7f0 C 32f1 C 12f2 C 32f3 C 7f4 / error D
45

x0

x1

Regla de Simpson
x0

Regla de Simpson

3
8

x1
x0

x1

Regla de Boole
x0

8h7 .6
f ./
945

donde fk indica f .x0 C kh/.


31/62

El clculo de los errores de las restantes frmulas de New


es bastante del
laborioso
y no se incluye en estas trasparenci
Frmula compuesta
trapecio
Interpretacin grfica de la regla trapezoidal y las dos reg
4 Resulta de aplicar
la regla o frmula del trapecio a los m subintervalos en el que
Simpson:

se divide el original a; b.

m l
i

f .x/dxD

i D1
D h2 .f0

xi

f .x/dx 

xi 1

h
h
.f0 Cf1/ C    C .fm 1 Cfm/
2
2

C 2f1 C 2f2 C    C 2fm

C fm/ :
32/62

El error que se comete es


b

f .x/ dx D
a

h
2

m
i

.fi

C fi /

a
12

h2f 00./:

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 =
T =
for
T
end
T =

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

% subintervalos
% comienzo y final

T*(b-a)/m;

% multiplica por h

% interior intervalo

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

Hagamos sobre la marcha alguna prueba. El valor exacto es log 2.


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

34/62

ETSII-UPM

los errores de las restantes frmulas de Newton-Cotes


borioso
y nocompuesta
se incluye endel
estasSimpson
trasparencias.
Frmula
n grfica de la regla trapezoidal y las dos reglas de
4 Sigue
mismadeestrategia
la frmula del trapecio, pero ajustando a tres
Error
de la regla
Simpsonde
compuesta:
puntos de cada subintervalo una parbola.

Interpretacin geomtrica:

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


xi D a C ih, i D 0; 1; : : : ; 2m. La distancia entre los puntos ser
h D .b a/=2m.
35/62

La integral es
l

m l
i

xi

f .x/dxD

i D1

f .x/dx 

xi 1

h
.f0 C4f1 Cf2/ C
3

h
h
C .f2 C4f3 Cf4/ C    C .f2m 2 C4f2m 1 Cf2m/
3
3
h
D .f0 C 4f1 C 2f2 C 4f3 C 2f4    C 2f2m 2 C 4f2m
3

C f2m/ :

El error que se comete,

f .x/ dx D

h
3

m
i

.f2i

2 C 4f2i

1 C f2i /

b a 4 .4/
h f ./:
180

iD1

36/62

Z
4

1=.1 C x/dx.

Hagmoslo en Matlab para


0

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

37/62

Si lo probamos:
>> 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/62

cepto de frmula de integracin abierta

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


uncin integrando en uno o en los dos extremos del intervalo.
Frmulas
abiertas
y cerradas
Las
frmulas abiertas
son tiles cuando
no se conoce la funcin en un extremo
tiene un valor infinito (integrales impropias).
Se llama
abierta
a una
frmulason
de las
integracin
que que
no evala
la nfuncin
Un4caso
de gran
inters
prctico
frmulasnumrica
de Adams,
utilizan
integrando
en desean
uno o en
los doslaextremos
intervalo.
untos,
pero slo
calcular
integral del
en el
ltimo tramo (ver figuras)
Newton-Cotes abierta

NewtonCotes cerrada

on-Cotes

ms4 Las frmulas abiertas son tiles cuando no se conoce la funcin en un extremo o
tiene un valor infinito (integrales impropias).

39/62

La regla del punto medio, aplicable a funciones cuya segunda derivada es


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

x0

x1

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

donde h D .x1 x0/, w es el punto medio, es decir x0 C h=2 y c est entre x0


y x1. Su versin compuesta es
l

f .x/dx D h

m
i

f .wi / C

.b

a/h2 00
f .c/:
24

i D1

40/62

Ejemplo
R1

sen.x=x/ dx, con m D 10, usando la regla del

Aproximemos la integral
punto medio compuesta.

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


l

f .x/dx  0;1

10
i

f .mi / D 0;94620858:

La cifra correcta con 9 dgitos es 0;94608307.

41/62

Otra regla til aplicable a las frmulas de Newton-Cotes es


x4


4h
f .x/ dx D
2f .x1/
3


14h5 .4/
f .x2/ C 2f .x3/ C
f .c/;
45

x0

donde h D .x4
x0 < c < x 4 .
4

x0/=4, x1 D x0 C h, x2 D x0 C 2h, x3 D x0 C 3h y

Existen bastantes otras, por ejemplo,

x6



6h
41h7 .6/
11f .x1 / 14f .x2 /C26f .x3 / 14f .x4 /C11f .x5 / C
f .c/;
f .x/ dx D
20
140

x0

donde x0 < c < x6.

42/62

o tiene un valor infinito (integrales impropias).


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

4 Un caso de apreciable inters prctico son las frmulas de Adams, que utilizan n
on-Cotes
puntos, pero slo desean calcular la integral en el ltimo tramo (como se aprecia
en la figura).
Adams abierta

Adams cerrada

ms

43/62

Mtodo de Romberg
4

Est basado en la extrapolacin de Richardson. Permite mejorar recursivamente


la aproximacin de las frmulas compuestas con poco trabajo adicional.

Se divide a; b en un nmero de subintervalos potencia de 2: 1, 2, 4, 8; : : : y se


calculan las integrales con la frmula del trapecio.
Los resultados se denominan R11, R21, R31; : : : Ri1.

A partir de estas integrales, mediante extrapolacin de Richardson, se calculan


otras R22, R32; : : : ; Ri2, de error menor: O.h4/.

44/62

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


f .a/ D f1, f2, f3, f4, f5, f6, f7, f8, f9 D f .b/, se tendr que
R11 D

b a
2

R21 D

h2
2

.f .a/ C f .b// D

h1
2

.f1 C f9/
 h2
aCb
f .a/ C f .b/ C 2f 2
D 2 .f1 C 2f5 C f9/

1
R
2 11

C h2f5

R31 D

h3
.f1
2

C 2f3 C 2f5 C 2f7 C f9/

1
R
2 21

C h3 .f3 C f7/

R41 D
D

h4
2

f1 C 2f2 C 2f3 C 2f4 C 2f5 C 2f6 C 2f7 C f9

1
R
2 31

C h4 .f2 C f4 C f6 C f8/

45/62

Las extrapolaciones que se hacen son, a partir de Richardson,


R22
R32
R42

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

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


Rj k

4k 1Rj;k
D
4k

1
1

Rj
1

1;k 1

46/62

Al final se llega a una tabla general

R11
R21 R22
R31 R32 R33
R41 R42 R43 R44
::
:::

47/62

Este programa implementa el mtodo de Romberg.


function R = romberg(f, a, b, n)
% Calcula una integral definida en el intervalo [a,b] mediante la
%
tabla de n filas segn la frmula de Romberg
R = zeros(n,n);
h = (b-a)./(2.^(0:n-1));
R(1,1) = (b-a)*(f(a)+f(b))/2;
for i = 2:n
subtotal = 0;
for j=1:2^(i-2)
subtotal = subtotal + 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

48/62

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

49/62

Mtodo de Gauss-Legendre (1/6)


Cuadratura
de Gauss-Legendre
Caractersticas del mtodo de Gauss-Legendre

ETSII-UPM

Se permite variar la posicin de los nodos para mejorar el orden del mtodo.
4 En este procedimiento
permite
variar la posicin
de[1,
los1].nodos para mejorar la
intervalo
de integracin
normalizado
Se trabaja en unse
n puntos de integracin y n pesos por determinar se pueden satisfacer 2n
precisin delCon
resultado.
condiciones, como por ejemplo integrar exactamente las 2n primeras potencias
de x (desde x0 a x2n1). Con esto el mtodo ser de orden 2n1 pues integrar
cualquier
dicho grado.
4 En la figuraexactamente
se muestra
cmopolinomio
se puededeobtener
una mejor aproximacin con slo
Las siguientes
muestran
se puede
mejor aproximacin
dos nodos haciendo
quefiguras
no sean
los cmo
extremos
delobtener
intervalo.
con dos nodos haciendo que no sean los extremos del intervalo.

-1

-1

Se trabaja en un intervalo de integracin normalizado: 1; 1.


50/62

La frmula general de la cuadratura de Gauss-Legendre es

f .x/ dx 
1

n
i

ci f .xi /;

i D1

donde los nodos, xi , son las races de los polinomios de Legendre de grado n en
el intervalo 1; 1.
4

Los coeficientes, o pesos, ci , estn tabulados para integrar exactamente


polinomios de hasta grado 2n 1.

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 2n 1. Con esto el mtodo ser de orden 2n 1 de precisin pues
integrar exactamente cualquier polinomio de dicho grado.
51/62

nodos xi
p
-p1=3 =-0,57735026918963
2
1=3 = 0,57735026918963
p
- 3=5 =-0,77459666924148
0 = 0,00000000000000
3
p
3=5 =-0,77459666924148
q
p
15C2 30
=-0,86113631159405
q 35p
2 30
- 15 35
=-0,33998104358486
p
4 q
15 2 30
= 0,33998104358486
q 35p
15C2 30
= 0,86113631159405
35

p
90 5 3
= 0,34785484513745
180
p
90C5 3
= 0,65214515486255
180
p
90C5 3
= 0,65214515486255
180
p
90 5 3
= 0,34785484513745
180

-0,93246951420315
-0,66120938646626
-0,23861918608320
0,23861918608320
0,66120938646626
0,93246951420315

0,17132449237917
0,36076157304814
0,46791393457269
0,46791393457269
0,36076157304814
0,17132449237917

coeficientes ci
1 = 1,00000000000000
1 = 1,00000000000000
5=9 = 1,55555555555555
8=9 = 1,88888888888888
5=9 = 1,55555555555555

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


52/62

Ejemplo
4

Aproximemos la integral

x2
2

dx

usando cuadratura de Gauss-Legendre.


4

El valor exacto con 14 dgitos es 1;71124878378430. Con dos nodos, la


aproximacin es
l

x2
2

dx  c1 f .x1 / C c2 f .x2 / D 1  f .

1/3/ C 1  f .

1/3/

 1,69296344978123:

Con tres nodos 59 f .

3/5/ C 9 f .0/ C 9 f .

3/5/

 1,71202024520191.

Con cuatro c1f .x1/ C c2f .x2/ C c3f .x3/ C c4f .x4/  1,71122450459949:
53/62

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 el intervalo [a,b]
%
para el clculo de integrales definidas.
% Si se quiere calcular la integral de f(x) es ese intervalo
%
calcular el valor de f(x) en todos los puntos del vector x.
%
La integral 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 Matrix
Lp=zeros(N1,N2);
% Derivative 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;
for 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).*Lp.^2)*(N2/N1)^2; % Clculos de pesos

54/62

Calculemos la integral del ejemplo anterior,

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:


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

55/62

Para aproximar una integral en un intervalo cualquiera a; b, no el normalizado,


se tiene que
l

f .x/ dx 

a
2

n
i


ci f

.b


a/ zi C .b C a/
:
2

iD1

Ejemplo
4

Aproximemos la integral
l

ln x dx

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.
56/62

Integrales mltiples
4

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
Z 1
Z 1X
n
n
X

ci f .i ; / d D ci f .i ; / d
f .; / d d D
1

1 i D1

i D1

n
n
n X
n
X
X
X
D
ci
cj f .i ; j / D
ci cj f .i ; j /:
iD1

j D1

iD1 j D1

57/62

Cuadratura adaptativa
4

La idea es utilizar una tctica del tipo divide y vencers, subdividiendo el


intervalo de integracin segn la variabilidad de la funcin en ste e irse
adaptando a ella.

Se comienza dividiendo a; b en dos subintervalos iguales y se utilizaR la frmula


b
de Simpson con h D .b a/=2 para calcular una aproximacin I1  a f .x/dx.

Se hace lo mismo con h=2 para obtener IL 


donde m D .a C b/=2.

Rm
a

f .x/dx y IR 

Rb
m

f .x/dx,

Se calcula despus I2 D IL C IR y I3 D I2 C I215I1 , por extrapolacin de


Richardson.

58/62

Si recordamos los errores que se cometan con la frmula de Simpson,


Z b
h5 .4/
h
f .c0/;
f .x/dx D .f0 C 4f1 C f2/
3
90
a
para dos subintervalos
Z b
f .x/dx D IL
a

h5 f .4/ .c1 /
32 90

D IL C IR

C IR

h5 f .4/ .c2 /
32 90

h5 f .4/ .c3 /
:
16 90

Restando este resultado de la expresin anterior queda


I1

.IL C IR / D h5 f


.4/ .c /
0

90

h5 f .4/ .c3 /
16 90

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

59/62

Como el error de I1 .IL C IR / es 15 veces el de la aproximacin IL C IR de la


integral, se puede comprobar si

I1 .IL C IR / < 15  t ol
y si no lo es, se dividen los dos subintervalos a; m y m; b en dos cada uno
hasta que se llegue a la precisin adecuada.

60/62

Pasemos a Matlab esta forma de integrar.


function [q fnct] = quadadapt(f,a,b,tol,varargin)
% Evalua la integral de f(x) en [a,b]
global fnct
if nargin < 4 || isempty(tol), tol = 1.e-6; end, fnct=0;
c = (a + b)/2;
fa = f(a,varargin{:});
fc = f(c,varargin{:});
fb = f(b,varargin{:}); fnct=fnct+3;
q = quadstep(f, a, b, tol, fa, fc, fb, varargin{:});
end
function q = quadstep(f,a,b,tol,fa,fc,fb,varargin)
% Subfunction recurrente de quadadapt
global fnct
h = b - a; c = (a + b)/2;
fd = f((a+c)/2,varargin{:});
fe = f((c+b)/2,varargin{:}); fnct=fnct+2;
q1 = h/6 * (fa + 4*fc + fb);
q2 = h/12 * (fa + 4*fd + 2*fc + 4*fe + fb);
if abs(q2 - q1) <= tol
q = q2 + (q2 - q1)/15;
else
qa = quadstep(f, a, c, tol, fa, fd, fc, varargin{:});
qb = quadstep(f, c, b, tol, fc, fe, fb, varargin{:});
q = qa + qb;
end
end
61/62

Si lo utilizamos para integrar

2


sen
2
7

1
x

C 23 dx, se tiene esto:

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 =
Cuadratura adaptativa
0.984511912667507
de Lobatto
fnct1 =
1308

62/62

Вам также может понравиться