Está en la página 1de 62

Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales

Matemáticas de Especialidad
Ingeniería Eléctrica

Derivación e
Integración
de funciones

José Luis de la Fuente O’Connor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_derivación_integración_funciones_2014.pdf

1/62
Índice
 Introducción
 Derivación numérica de funciones
 Fórmulas centradas de segundo orden o superior
 Extrapolación de Richardson
 Fórmulas derivadas del polinomio de interpolación de
Newton
 Derivación simbólica con Matlab
 Integración de funciones
 Fórmulas de Newton-Cotes
 Fórmulas abiertas y cerradas
 Método de Romberg
 Cuadratura de Gauss-Legendre
 Cuadratura adaptativa
2/62
Derivación de funciones. Introducción
4 Como sabemos,

la derivada de una función en un punto es el valor del límite, 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 función
según cambie el valor de su variable independiente.

4 La derivación numérica evalúa numéricamente la derivada de una función a partir


de valores numéricos de dicha función, sin necesidad por tanto de conocer la
expresión analítica de dicha derivada.

4 La derivación numérica de funciones es muy sensible, por su definición, a


pequeñas perturbaciones en los datos o a la precisión de estos.

3/62
r example, two functions shown below ha
4 Mientras que la integración produce en los resultados un efecto de amortiguación
ry desimilar
los efectos dedefinite
las oscilaciones integrals but todo
en los datos, la derivación very differe
lo contrario.

.
.....................................................
.
. ................... ... ..........
... ...............
........
..
..
... ......
. .
... . ........
.... ............
........
... ......
. .
..
. . .......
..
. . ...........
. .
... . ....
. .
.
...
. . .....
. . ..
.......................................................................................................................................................................................

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

46
4/62
4 Si se necesita derivar funciones cuyos valores se conocen sólo en un conjunto
dado de puntos concretos, lo más aconsejable es ajustar alguna función continua
a esos puntos y derivar luego la función obtenida.

4 Si los datos de ese conjunto tienen un cierto patrón de continuidad, se puede


interpolar una función.

4 Si se sabe que tienen ruido, lo más probable es que se requiera una aproximación
mediante mínimos cuadrados o splines.

5/62
4 Para calcular numéricamente la derivada de f .x/ se puede considerar una
aproximación intuitiva de su definición:
df .x/ f .x C h/ f .x/
f 0.x/ D D lKım
dx h!0 h

f .x C h/ f .x/
 ,
h
es decir, la línea secante (o cuerda) en dos puntos próximos.

6/62
4 Geométricamente se pueden considerar tres variantes

f(x+h) f(x)
f(x+h)

f(x) f(xíh) f(xíh)


Aproximación
f(x)

x x+h xíh x xíh x x+h


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

Fórmula adelantada Fórmula atrasada Fórmula centrada

7/62
Derivación numérica de funciones
4 Dada una función continua, f W R ! R, se trata de aproximar numéricamente
sus derivada en un punto x.

4 Consideremos el desarrollo en serie de Taylor de


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

4 Si despejamos de la primera igualdad f 0.x/ se obtiene la fórmula hacia adelante


de su aproximación:

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


f .x/ D h C  
h 2 h
más un resto de primer orden: O.h/.
8/62
4 Si despejamos de la segunda igualdad, igualmente f 0.x/, se obtiene la fórmula
hacia atrás de su aproximación:

0 f .x/ f .x h/ f 00.x/ f .x/ f .x h/


f .x/ D C h C  
h 2 h
más un resto también de primer orden: O.h/.

4 Restando las dos desigualdades y despejando f 0.x/ se llega a la fórmula


centrada:
0 f .x C h/ f .x h/ f 000.x/ 2 f .x C h/ f .x h/
f .x/ D h C   :
2h 6 2h
El resto en este caso es de segundo orden, O.h2/.

9/62
4 Sumando las dos desigualdades y despejando f 00.x/ se obtiene la fórmula
centrada de la segunda derivada:

00 f .x C h/ 2f .x/ C f .x h/ f .4/.x/ 2
f .x/ D h C 
h2 12
f .x C h/ 2f .x/ C f .x h/
 ;
h2
con un resto de segundo orden, O.h2/.

10/62
4 En el cálculo numérico de derivadas se cometen errores importantes. Por ejemplo,
la aproximación de las derivadas de e x produce estos resultados:
f .xCh/ f .x/ f .x/ f .x h/ f .xCh/ f .x h/ f .xCh/ 2f .x/Cf .x h/
h f .x/ D e x; x D 1 h error h 2h error h2
1e-01 2.718281828459046 2.858841954873879 0.140560126414833 2.586787173020957 2.722814563947418 0.004532735488372 2.720547818529218
1e-02 2.718281828459046 2.731918655787080 0.013636827328035 2.704735610978304 2.718327133382692 0.000045304923646 2.718304480877620
1e-03 2.718281828459046 2.719641422532781 0.001359594073736 2.716923140478667 2.718282281505724 0.000000453046678 2.718282054114951
1e-04 2.718281828459046 2.718417747078483 0.000135918619438 2.718145918900738 2.718281832989611 0.000000004530565 2.718281777447373
1e-05 2.718281828459046 2.718295419912308 0.000013591453263 2.718268237122956 2.718281828517632 0.000000000058586 2.718278935276430
1e-06 2.718281828459046 2.718283186986525 0.000001358527479 2.718280469604650 2.718281828295587 0.000000000163458 2.717381875072532
1e-07 2.718281828459046 2.718281963964841 0.000000135505795 2.718281693070423 2.718281828517632 0.000000000058586 2.708944180085381
1e-08 2.718281828459046 2.718281777447373 0.000000051011673 2.718281866265215 2.718281821856294 0.000000006602752 -8.881784197001249
1e-09 2.718281828459046 2.718281599811689 0.000000228647357 2.718282043900898 2.718281821856293 0.000000006602752 -444.0892098500623
1e-10 2.718281828459046 2.718278935276429 0.000002893182616 2.718283376168528 2.718281155722479 0.000000672736567 -44408.92098500623
1e-11 2.718281828459046 2.718270053492232 0.000011774966813 2.718314462413217 2.718292257952725 0.000010429493679 -4440892.098500623
1e-12 2.718281828459046 2.718270053492233 0.000011774966813 2.718714142702083 2.718492098097158 0.000210269638112 -444089209.8500624
1e-13 2.718281828459046 2.713385072183882 0.004896756275163 2.722266856380883 2.717825964282383 0.000455864176663 -88817841970.01249
1e-14 2.718281828459046 2.664535259100375 0.053746569358670 2.753353101070388 2.708944180085382 0.009337648373664 -8881784197001.250

4 Como vimos al hablar de errores, estos disminuyen a medida que aumenta h


desde valores próximos a la precisión de la máquina, alcanzan un mínimo,
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 precisión de la
máquina en las operaciones.

11/62
4 Un pequeño script de Matlab para calcular esa tabla y ver gráficamente la
evolución del error es este.

% Fichero Derivadas_ex_1.m para simular derivación 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
4 El gráfico de los errores de las derivadas adelantadas y centradas que produce,
para diversos h, es el de la figura.

0
10

Derivadas adelantadas
-2 Derivadas centradas
10

-4
10
error

-6
10

-8
10

-10
10

-12
10
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0
10 10 10 10 10 10 10 10 10 10 10
h

13/62
Fórmulas centradas de segundo orden
o superior
4 A la ya conocida de O.h2/ vamos añadir la de cuarto orden. Se desarrollan en
serie de Taylor f .x ˙ 2h/ y f .x ˙ h/:
2 3 4
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

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

C O.h5/
2 3 4
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/
2 3 4
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
4 Restando dos a dos:
3
f .x C 2h/ f .x 2h/Df 0.x/4h C f 000.x/ 16h

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

4 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 .x C 2h/ C 8f .x C h/ 8f .x h/ C f .x 2h/
f 0.x/ D C O.h4/:
12h

15/62
4 Otras fórmulas centradas de segundo y cuarto orden son las que siguen (notación
fk D f .x C kh/, k D 3, 2, 1, 0, 1, 2, 3).

Fórmulas centradas de orden O.h2 /


f1 f 1
f 0 .x/  2h
f1 2f0 Cf 1
f 00 .x/  h2
f2 2f1 C2f 1 f 2
f 000 .x/  2h3
f2 4f1 C6f0 4f 1 f 2
f .4/ .x/  h4

Fórmulas centradas de orden O.h4 /


f2 C8f1 8f 1 Cf 2
f 0 .x/  12h
f2 C16f1 30f0 C16f 1 f 2
f 00 .x/  12h2
f3 C8f2 13f1 C13f 1 8f 2 Cf 3
f 000 .x/  8h3
f3 C12f2 39f1 C56f0 39f 1 C12f 2 f 3
f .4/ .x/  6h4

4 Se pueden también obtener fórmulas parecidas para las derivadas adelantadas y


atrasadas.
16/62
Extrapolación de Richardson
4 En muchos problemas, como la derivación o integración numéricas, el valor
aproximado de una función en un punto se calcula de acuerdo con un incremento
—un paso, o un pequeño diferencial— desde otro punto.

4 Lo ideal es obtener el valor de la función en el nuevo punto al tender a cero ese


incremento, paso, o diferencial.

4 Evidentemente el error de redondeo de la máquina impide que esos pasos o


diferenciales se escojan arbitrariamente pequeños.

4 No obstante, basándose en incrementos previos no cero que han funcionado, se


puede estimar cuál será el valor de la función cuando ese incremento o paso
tienda a cero.

17/62
4 La idea de Richardson a este respecto es la que sigue. Supongamos que F .h/
designa el valor de la función con un paso h.

4 Si se calcula el valor de F para varios incrementos h no cero y se conoce


teóricamente el comportamiento de F .h/ cuando h ! 0, se puede extrapolar el
valor de F .0/ a partir de los de esos incrementos.

4 Supongamos que
F .h/ D a0 C a1hp C O.hr /
según tiende h ! 0 para algún p y r tales que r > p.

18/62
4 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.

4 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 incógnitas, a0 y a1. Si se
resuelve, se obtiene que
F .h/ F .h=q/ r
a0 D F .h/ C p
C O.h /;
q 1
cuya precisión ahora es O.hr /, mejor que la anterior O.hp /, pues r > p.

19/62
Ejemplo.

4 Usaremos la extrapolación de Richardson para mejorar la precisión con la que se


calcula la derivada de sen.x/ en x D 1.

4 Utilizando la fórmula adelantada de derivación se tiene que

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

por lo que aquí p D 1 y r D 2.

4 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/
F .h/ D D 0;312048
0;5
sen.1;25/ sen.1/
F .h=2/ D D 0;430055:
0;25

20/62
= 2F (h/2) − F (h) = 0.548061
4 El valor extrapolado es entonces
F .h/ F .h=2/
F .0/ D a0 D F .h/ C D 2F .h=2/ F .h/ D 0;548061;
For comparison, correctly rounded result is given
.1=2/ 1

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

F.
......
..
1.0 ....
.. Valor extrapolado
.. ..
.. ....
.. ....
.......
• .. ................... ...............Valores ... calculados
0.5 .. . ..........•
................... .
.. ...................
.. •
..
..
..
...........................................................................................
h
0 0.25 0.5

21/62
Fórmulas basadas en el polinomio
de interpolación de Newton
4 Se utiliza cuando se trata de derivar una función de la que se conocen sólo unos
datos. En especial cuando esos datos están desigualmente espaciados.

4 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
f .x2 / f .x1 / f .x1 / f .x0 /
f .x1/ f .x0/ x2 x1 x1 x0
b0 D f .x0/; b1 D ; b2 D .
x1 x0 x2 x0

4 Luego se deriva el polinomio y se evalúa 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
4 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 notación abreviada,
f2 f1 f1 f0
f1 f0 h h f0 2f1 Cf2
b1 D h
; b2 D 2h
D h2
:

A partir de ahí,
f0 2f1 Cf2
p 0.x0/ D b1 Cb2.x0 x1/ D b1 b2h D 2 f12hf0 2h2
h D 3f0C4f
2h
1 f2
;

que es la fórmula adelantada.

4 Para x1 D x0 C h y x2 D x0 h se tendría la fórmula centrada y con


x1 D x0 h y x2 D x0 2h la atrasada.

23/62
Derivación simbólica con Matlab
4 Con las utilidades simbólicas de Matlab se pueden obtener las fórmulas
simbólicas de las derivadas de diversas funciones.

>> syms x;
>> f=sin(3*x);
>> f1=diff(f)
f1 =
3*cos(3*x)
>> f2=sin(x)^7
4 Por ejemplo: f2 =
sin(x)^7
>> f3=diff(f2)
f3 =
7*cos(x)*sin(x)^6
>>

24/62
4 Otras asociadas, numéricas, 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

3 -5

-3
2.8

-4
2.6

2.4

-2
2.2

2
-1

1.8

1.6
0
1
1.4

1.2 0
-1
1
-2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0

25/62
Índice
 Introducción
 Derivación numérica de funciones
 Fórmulas centradas de segundo orden o superior
 Extrapolación de Richardson
 Fórmulas derivadas del polinomio de interpolación de
Newton
 Derivación simbólica con Matlab
 Integración de funciones
 Fórmulas de Newton-Cotes
 Fórmulas abiertas y cerradas
 Método de Romberg
 Cuadratura de Gauss-Legendre
 Cuadratura adaptativa
26/62
Integración de funciones
4 Dada una función f W R ! R, se define la integral definida de esta función en el
intervalo Œa; b,
ˇ b

I.f / D f .x/ dx;


a
como el límite de las sumas de Riemann
n
i
Rn D .xi C1 xi / f .ti /
iD1

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


hace muy fina.

27/62
4 La integración numérica, o cuadratura, se refiere al cálculo numérico, lo más
aproximado posible, de esa integral.

4 Ese cálculo numérico se necesita cuando:

1. La función f .x/ sólo se conoce en punto concretos.


2. No se conoce la primitiva de la función f .x/.
Z 1
x2
3. La primitiva no es calculable, como por ejemplo e dx, o
Z =2 p 0

1 C cos2.x/ dx.
0
4. Aunque se conozca la primitiva de la función, su cálculo es tan costoso que es
mejor usar un método aproximado para calcularla.
5. Otras causas.

28/62
4 Para calcular la integral se recurre a un sumatorio de valores de la función en
ciertos puntos llamados nodos, multiplicados por unos coeficientes de
ponderación denominados pesos:
l b n
i
f .x/ dx D wi f .xi /:
a
iD1

4 Esta sustitución supone cambiar un sumatorio infinito (la integral) por un


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

29/62
4 Para deducir las fórmulas que utilizar, la función f .x/ se sustituye por un
polinomio pn.x/ que interpola puntos concretos de aquella en el intervalo dado y
luego se realiza la integración exacta de este polinomio.

4 Se llama grado de precisión de la fórmula de integración al máximo grado de los


polinomios que son integrados exactamente por dicha fórmula.

4 La integración numérica es un proceso bastante más estable y preciso que la


derivación numérica vista previamente.

30/62
Fórmulas de Newton-Cotes
4 Se basan en el polinomio de interpolación de Newton con argumentos igualmente
espaciados (fórmula de diferencias finitas).

4 Algunas fórmulas:
x1
h
Z
h3 00
Regla del trapecio f .x/dx  .f0 C f1 / error D 12
f ./
x0 2
x1
h
Z
h5 .4/
Regla de Simpson f .x/dx  .f0 C 4f1 C f2 / error D 90
f ./
x0 3
x1
3h
Z
3 3h5 .4/
Regla de Simpson 8
f .x/dx  .f0 C 3f1 C 3f2 C f3 / error D 80
f ./
x0 8
x1
2h
Z
8h7 .6
Regla de Boole f .x/dx  .7f0 C 32f1 C 12f2 C 32f3 C 7f4 / error D 945
f ./
x0 45

donde fk indica f .x0 C kh/.

31/62
El cálculo de los errores de las restantes fórmulas de New
‰

Fórmula compuestaes bastante dellaborioso y no se incluye en estas trasparenci


trapecio
‰ Interpretación gráfica de la regla trapezoidal y las dos reg
4 Resulta de aplicar la regla o fórmula del trapecio a los m subintervalos en el que
Simpson:
se divide el original Œa; b.

l b m l
i xi
h h
f .x/dxD f .x/dx  .f0 Cf1/ C    C .fm 1 Cfm/
a xi 1
2 2
i D1
D h2 .f0 C 2f1 C 2f2 C    C 2fm 1 C fm/ :

32/62
4 El error que se comete es
ˇ b m
i
h b a
f .x/ dx D .fi 1 C fi / h2f 00./:
2 12
a i D1

R1
4 Implementemos todo en Matlab para 0 1=.1 C x/dx.

function T = trapezrule(f,a,b,m)
% Integración trapecio compuesto

x = linspace(a,b,m+1); % subintervalos
T = (f(a)+f(b))/2; % comienzo y final
for i = 1:m-1
T = T + f(x(i+1)); % interior intervalo
end
T = T*(b-a)/m; % multiplica por h

function f = intfun_1(x)
% Función que se integra

f = 1./(1+x);
end

33/62
4 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 fórmulas de Newton-Cotes
borioso
Fórmulay nocompuesta
se incluye endel
estasSimpson
trasparencias.
n gráfica de la regla trapezoidal y las dos reglas de
4 Sigue
Error mismadeestrategia
de la regla Simpsonde la fórmula del trapecio, pero ajustando a tres
compuesta:
puntos de cada subintervalo una parábola.

Interpretación geométrica:

4 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
4 La integral es
l b m l
i xi
h
f .x/dxD f .x/dx  .f0 C4f1 Cf2/ C
a xi 1
3
i D1
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 1 C f2m/ :
3

4 El error que se comete,


ˇ b m
i
h b a 4 .4/
f .x/ dx D .f2i 2 C 4f2i 1 C f2i / h f ./:
3 180
a iD1

36/62
Z 1
4 Hagámoslo en Matlab para 1=.1 C x/dx.
0

function I = simpson_1(f,a,b,n)
% Integración 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)
% Función que se integra

f = 1./(1+x);
end

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

4 La precisión es apreciablemente superior.

38/62
cepto de fórmula de integración abierta
Se llama abierta a una fórmula de integración numérica que no evalúa la
unción integrando en uno o en los dos extremos del intervalo.
LasFórmulas abiertas
fórmulas abiertas y cerradas
son útiles cuando no se conoce la función en un extremo
tiene un valor infinito (integrales impropias).
Un4caso de gran
Se llama interés
abierta práctico
a una fórmulason
de las
integración
fórmulasnumérica que que
de Adams, utilizan
no evalúa la nfunción
untos, pero sólo
integrando en desean calcular
uno o en los doslaextremos
integral del
en el último tramo (ver figuras)
intervalo.
Newton-Cotes abierta NewtonCotes cerrada

on-Cotes

ms4 Las fórmulas abiertas son útiles cuando no se conoce la función en un extremo o
tiene un valor infinito (integrales impropias).

39/62
4 La regla del punto medio, aplicable a funciones cuya segunda derivada es
continua en Œa; b, es muy útil en estos casos.
l x1
h3 00
f .x/dx D hf .w/ C f .c/;
x0
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 versión compuesta es
l b m
a/h2 00
i
.b
f .x/dx D h f .wi / C f .c/:
a
24
i D1

40/62
Ejemplo
R1
4 Aproximemos la integral 0 sen.x=x/ dx, con m D 10, usando la regla del
punto medio compuesta.

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


l 1 10
i
f .x/dx  0;1 f .mi / D 0;94620858:
0
1

La cifra correcta con 9 dígitos es 0;94608307.

41/62
4 Otra regla útil aplicable a las fórmulas de Newton-Cotes es
ˇ x4
14h5 .4/
 
4h
f .x/ dx D 2f .x1/ f .x2/ C 2f .x3/ C f .c/;
3 45
x0

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


x0 < c < x 4 .

4 Existen bastantes otras, por ejemplo,


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

donde x0 < c < x6.

42/62
o tiene un valor infinito (integrales impropias).
Un caso de gran interés práctico son las fórmulas de Adams, que utilizan n
puntos, pero sólo desean calcular la integral en el último tramo (ver figuras)

4 Un caso de apreciable interés práctico son las fórmulas de Adams, que utilizan n
on-Cotes
puntos, pero sólo desean calcular la integral en el último tramo (como se aprecia
en la figura).
Adams abierta Adams cerrada

ms

43/62
Método de Romberg
4 Está basado en la extrapolación de Richardson. Permite mejorar recursivamente
la aproximación de las fórmulas compuestas con poco trabajo adicional.

4 Se divide Œa; b en un número de subintervalos potencia de 2: 1, 2, 4, 8; : : : y se


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

4 A partir de estas integrales, mediante extrapolación de Richardson, se calculan


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

44/62
4 Por ejemplo, si se desea trabajar con i D 4, y el valor de la función en
f .a/ D f1, f2, f3, f4, f5, f6, f7, f8, f9 D f .b/, se tendrá que
b a h1
R11 D 2
.f .a/ C f .b// D .f1 C f9/
2

h2 aCb
 h2
R21 D 2
f .a/ C f .b/ C 2f 2 D 2 .f1 C 2f5 C f9/
1
D R
2 11
C h2f5
h3
R31 D 2
.f1 C 2f3 C 2f5 C 2f7 C f9/
1
D R
2 21
C h3 .f3 C f7/
h4

R41 D 2
f1 C 2f2 C 2f3 C 2f4 C 2f5 C 2f6 C 2f7 C f9
1
D R
2 31
C h4 .f2 C f4 C f6 C f8/

45/62
4 Las extrapolaciones que se hacen son, a partir de Richardson,
22R21 R11
R22 D
3
22R31 R21
R32 D
3
22R41 R31
R42 D
3

4 Con una fórmula de recurrencia para cada coeficiente j k, k > 1,


4k 1Rj;k 1 Rj 1;k 1
Rj k D :
4k 1 1

46/62
4 Al final se llega a una tabla general

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

47/62
4 Este programa implementa el método de Romberg.

function R = romberg(f, a, b, n)
% Calcula una integral definida en el intervalo [a,b] mediante la
% tabla de n filas según 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;
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
R2
4 Si lo probamos para integrar la función 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) % Comprobación del resultado


ans =
1.8772e-010

49/62
Método de Gauss-Legendre (1/6)
Cuadratura de Gauss-Legendre
Características del método de Gauss-Legendre

ETSII-UPM

 Se permite variar la posición de los nodos para mejorar el orden del método.
4 En este procedimiento
 Se trabaja en unse permite
intervalo variar la posición
de integración normalizadode[−1,
los1].nodos para mejorar la
precisión delCon n puntos de integración y n pesos por determinar se pueden satisfacer 2n
resultado.
condiciones, como por ejemplo integrar exactamente las 2n primeras potencias
de x (desde x0 a x2n−1). Con esto el método será de orden 2n−1 pues integrará
4 En la figuraexactamente
se muestra cualquier
cómopolinomio
se puededeobtener
dicho grado.
una mejor aproximación con sólo
Las siguientes
dos nodos haciendo quefiguras muestran
no sean los cómo se puede
extremos delobtener mejor aproximación
intervalo.
con dos nodos haciendo que no sean los extremos del intervalo.

-1 1 -1   1

4 Se trabaja en un intervalo de integración normalizado: Œ 1; 1.


50/62
4 La fórmula general de la cuadratura de Gauss-Legendre es
ˇ 1 n
i
f .x/ dx  ci f .xi /;
1 i D1

donde los nodos, xi , son las raíces de los polinomios de Legendre de grado n en
el intervalo Œ 1; 1.

4 Los coeficientes, o pesos, ci , están tabulados para integrar exactamente


polinomios de hasta grado 2n 1.

4 Con n puntos de integración, 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 método será de orden 2n 1 de precisión pues
integrará exactamente cualquier polinomio de dicho grado.

51/62
n nodos xi coeficientes ci
p
-p1=3 =-0,57735026918963 1 = 1,00000000000000
2
1=3 = 0,57735026918963 1 = 1,00000000000000
p
- 3=5 =-0,77459666924148 5=9 = 1,55555555555555
3 0 = 0,00000000000000 8=9 = 1,88888888888888
p
3=5 =-0,77459666924148 5=9 = 1,55555555555555
q p p
15C2 30 90 5 3
- =-0,86113631159405 = 0,34785484513745
q 35p 180
p
- 15 352 30
=-0,33998104358486 90C5 3
180
= 0,65214515486255
4 q p p
15 2 30 90C5 3
= 0,33998104358486 = 0,65214515486255
q 35p 180
p
15C2 30 90 5 3
35
= 0,86113631159405 180
= 0,34785484513745
-0,93246951420315 0,17132449237917
-0,66120938646626 0,36076157304814
5
-0,23861918608320 0,46791393457269
0,23861918608320 0,46791393457269
0,66120938646626 0,36076157304814
0,93246951420315 0,17132449237917
Nodos y pesos, n D 2; : : : 5, para la cuadratura de Gauss-Legendre
52/62
Ejemplo

4 Aproximemos la integral ˇ 1
x2
e 2 dx
1
usando cuadratura de Gauss-Legendre.

4 El valor exacto con 14 dígitos es 1;71124878378430. Con dos nodos, la


aproximación es
l 1
x2 p p
e 2 dx  c1 f .x1 / C c2 f .x2 / D 1  f . 1/3/ C 1  f . 1/3/  1,69296344978123:
1
p p
Con tres nodos 59 f . 8 5
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
4 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 cálculo 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; % Cálculos de pesos

54/62
l 1 x2
4 Calculemos la integral del ejemplo anterior, e 2 dx.
1

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

4 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
4 Para aproximar una integral en un intervalo cualquiera Œa; b, no el normalizado,
se tiene que
l b n
i  
b a .b a/ zi C .b C a/
f .x/ dx  ci f :
a
2 2
iD1

Ejemplo

4 Aproximemos la integral l 2
ln x dx
1
usando cuadratura de Gauss-Legendre. De la ecuación anterior,
l 2 l 1  
zC3 1
ln x dx D ln dz:
1 1
2 2

Con cuatro nodos, la aproximación es 0;38629449693871, que, comparada con


2 ln 2 1 D 0;38629436111989, no está muy mal.
56/62
Integrales múltiples

4 La cuadratura de Gauss se puede utilizar para realizar integrales múltiples


aplicándola sucesivamente a cada una de las variables, como por ejemplo:
Z 1Z 1 Z 1Xn X n Z 1

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

Xn n
X Xn X
n
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 táctica del tipo “divide y vencerás”, subdividiendo el
intervalo de integración según la variabilidad de la función en éste e irse
adaptando a ella.

4 Se comienza dividiendo Œa; b en dos subintervalos iguales y se utilizaR la fórmula


b
de Simpson con h D .b a/=2 para calcular una aproximación I1  a f .x/dx.
Rm Rb
4 Se hace lo mismo con h=2 para obtener IL  a f .x/dx y IR  m f .x/dx,
donde m D .a C b/=2.

4 Se calcula después I2 D IL C IR y I3 D I2 C I215I1 , por extrapolación de


Richardson.

58/62
4 Si recordamos los errores que se cometían con la fórmula de Simpson,
Z b
h h5 .4/
f .x/dx D .f0 C 4f1 C f2/ f .c0/;
a 3 90
para dos subintervalos
Z b
h5 f .4/ .c1 / h5 f .4/ .c2 /
f .x/dx D IL 32 90
C IR 32 90
a
h5 f .4/ .c3 /
D IL C IR 16 90
:
Restando este resultado de la expresión anterior queda
.4/ .c /
h5 f .4/ .c3 /
I1 .IL C IR / D h5 f 90
0
16 90
15 3 f .4/ .c3 /
 16
h 90 :

59/62
4 Como el error de I1 .IL C IR / es 15 veces el de la aproximación 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 precisión adecuada.

60/62
4 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
l 2

1
C 23 dx, se tiene esto:

4 Si lo utilizamos para integrar sen x
2
7
sin(1/x)+3/2

2.5

1.5

>> [q fnct]=quadadapt(@f1_Heath,2/(7*pi),2/pi,1.e-14)
1
q =
0.984511912667507
fnct =
0.5
3949
>> [q2 fnct1]=quad(@f1_Heath,2/(7*pi),2/pi,1.e-14)
0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 q2 =
x
0.984511912667507
Cuadratura adaptativa
fnct1 = de Simpson de Matlab
2069
>> [q2 fnct1]=quadl(@f1_Heath,2/(7*pi),2/pi,1.e-14)
q2 =
0.984511912667507 Cuadratura adaptativa
fnct1 = de Lobatto
1308

62/62

También podría gustarte