Derivación e integración de funciones

Transcripción

Derivación e integración de funciones
Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales
Grado en Ingeniería en Tecnologías Industriales. Curso 2015-2016-3º
Matemáticas de Especialidad–Ingeniería Eléctrica
1/49
Derivación e integración de funciones
José Luis de la Fuente O’Connor
[email protected]
[email protected]
Clase_derivación_integración_funciones_2016.pdf
Índice
2/49
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
3/49
Introducción
Como sabemos:
La derivada de una función en un punto es el valor del límite, si existe, del
cociente incremental de dicha función en el punto cuando el incremento de
la variable tiende a cero.
f 0 .x/ D
df .x/
f .x C h/
D lKım
h!0
dx
h
f .x/
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.
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. Es muy sensible a pequeñas perturbaciones
en los datos o a la precisión de estos.
fect
For example, two functions shown below have
Mientras que la integración produce un efecto
very similar definite integrals but very different
4/49
de amortiguación de las
oscilaciones en los......datos,
la derivación evidencia esas oscilaciones.
....................
............ ..... .......
.................. .. ..............................
. .......
....... .
.
.
.
.
.
.... .
...........
..............
......
.
.
.
.....
.
.
.
.
.
.
.
.
.
.
.
.
.....
.....
.
.
...........
.
.
.
.......
.....
.
.
.....
.
.
.
.
.
.
.
.
.
............................................................................................................................................................................................
Las dos funciones de la figura tienen integrales
muy parecidas mientras que sus derivadas en
distintos puntos pueden diferir bastante.
Si se necesita derivar funciones cuyos 46
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.
Si los datos presentan un cierto patrón de continuidad, se puede interpolar una
función.
Si se sabe que tienen ruido, lo más probable es que se requiera una aproximación
mediante mínimos cuadrados o splines.
Derivación numérica de funciones
5/49
Para calcular numéricamente la derivada de f W R ! R se puede considerar una
aproximación intuitiva de su definición:
f 0.x/ D
df .x/
f .x C h/
D lKım
h!0
dx
h
f .x/
D f .x C h/
h
f .x/
es decir, la línea secante (o cuerda) en dos puntos próximos.
Geométricamente se pueden considerar tres variantes
Geométricamente se pueden considerar tres variantes
f(x+h)
f(x)
x
f 0 .x/ D
Aproximación
x+h
f .x C h/
h
f(x)
Fórmula adelantada
f(xíh)
f(xíh)
f(x)
xíh
f .x/
f(x+h)
f 0 .x/ D
x
f .x/
f .x
h
Fórmula atrasada
xíh
h/
f 0 .x/ D
x
f .x C h/
x+h
f .x
2h
Fórmula centrada
h/
,
Consideremos el desarrollo en serie de Taylor,
6/49
f 00 .x/ 2 f 000 .x/ 3
f .x C h/ D f .x/ C f .x/h C
h C
h C 2
6
f 00 .x/ 2 f 000 .x/ 3
0
f .x h/ D f .x/ f .x/h C
h
h C 2
6
0
Si despejamos de la primera igualdad f 0.x/ se obtiene la fórmula hacia adelante
de su aproximación:
f 0 .x/ D
f .x C h/
h
f 00 .x/
f .x C h/
h C 2
h
f .x/
f .x/
más un resto de primer orden: O.h/.
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/ D
f .x/
f .x
h
h/
f 00 .x/
f .x/
C
h C 2
más un resto también de primer orden: O.h/.
f .x
h
h/
7/49
Restando las dos desigualdades y despejando f 0.x/ se llega a la fórmula 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/.
Sumando las dos desigualdades y despejando f 00.x/ se obtiene la fórmula
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
con un resto de segundo orden, O.h2/.
f .4/ .x/ 2
h C 12
h/
h/
;
8/49
En el cálculo numérico de derivadas en entornos de precisión finita se cometen
errores significativos. Por ejemplo, la aproximación 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 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.
9/49
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’); %axis([0 1 0.95 2]);
100
Derivadas avanzadas
Derivadas centradas
10
-2
10-4
error
10-6
10-8
10-10
10-12
10-10
10-8
10-6
10-4
h
10-2
100
Fórmulas centradas de segundo orden o superior
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/ D f .x/ C f 0 .x/2h C f 00 .x/ 4h2Š C f 000 .x/ 8h3Š C f .4/ .x/ 16h
C O.h5 /
4Š
f .x
2
2h/ D f .x/
f 0 .x/2h C f 00 .x/ 4h2Š
h/ D f .x/
f 0 .x/h C f 00 .x/ h2Š
2
3
4
f 000 .x/ 8h3Š C f .4/ .x/ 16h
C O.h5 /
4Š
3
4
f .x C h/ D f .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
2
3
4
f 000 .x/ h3Š C f .4/ .x/ h4Š C O.h5 /
Restando dos a dos:
f .x C 2h/
f .x C h/
f .x
f .x
3
C O.h5 /
2h/ D f 0 .x/4h C f 000 .x/ 16h
3Š
h/
3
D f 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 /:
10/49
11/49
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 /
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
f
2
Fórmulas 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
2
f
3
Se pueden también obtener fórmulas parecidas para las derivadas adelantadas y
atrasadas.
12/49
Extrapolación de Richardson
Lewis Fry Richardson, Reino
Unido, 1881-1953.
Su idea es extrapolar el valor de f .0/ calculando el valor de f a varios pasos h
de distancia de f .0/ de cara conocer el comportamiento de esa función cuando
h ! 0.
Supongamos que para algún p y r, r > p, es f .h/ D a0 C a1hp C O.hr /
según tiende h ! 0 .
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).
También supondremos que se ha calculado ya f para dos pasos h y h=q, siendo
q cualquier entero positivo.
13/49
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
a0 D f .h/ C
f .h/
q
f .h=q/
r
C
O.h
/;
p
1
cuya precisión ahora es O.hr /, mejor que la anterior O.hp /, pues r > p.
14/49
Ejemplo 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.
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.
Si se usan los valores h D 0;5 y h D 0;25 (es decir q D 2), se tiene que
F .h/ D
F .h=2/ D
sen.1 C h/
h
sen.1/
D
sen.1;5/ sen.1/
D 0;312048
0;5
sen.1;25/ sen.1/
D 0;430055:
0;25
Extrapolated value is then given by
15/49
F (0) = a0 = F (h) +
F (h) − F (h/2)
(1/2) − 1
El valor extrapolado es=
entonces
2F (h/2) − F (h) = 0.548061
4
El valor extrapolado es entonces
FF.h/
.h/ F
F .h=2/
.h=2/ D 2F .h=2/ F .h/ D 0;548061;
F .0/
D
a
D
F
.h/
C
0
2F .h=2/ F .h/ D 0;548061;
F .0/ D a0 D F .h/ C .1=2/ 1 D
.1=2/ 1
For comparison, correctly rounded result is given
frente
exacto
es cos.1/
0;540302.
frente al exacto
esquecos.1/
DD0;540302.
byal que
cos(1)
=
0.540302
F.
......
.
1.0 ...
.. Valor extrapolado
.. ...
.. ......
.........
..... Valores
... calculados
0.5•... .............................•.........................
.
.
.....................
..
•.
..
..
..
........................................................................................... h
0
0.25
0.5
21/63
57
Fórmulas basadas en el polinomio de interpolación de
Newton
16/49
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.
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/
y b2 D
x0
f .x2 / f .x1 /
x2 x1
x2
f .x1 / f .x0 /
x1 x0
x0
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 /:
:
17/49
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. Con la
notación abreviada,
b1 D
f1
f0
h
;
b2 D
f2 f1
h
f1 f0
h
2h
D
f0
2f1 C f2
:
h2
A partir de ahí,
p 0.x0/ D b1 Cb2.x0
D
3f0 C4f1 f2
;
2h
x1 / D b 1
b2h D 2 f12hf0
f0 2f1 Cf2
h
2h2
D
que es la fórmula adelantada.
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.
18/49
Derivación simbólica con Matlab
Con las utilidades simbólicas de Matlab se pueden obtener las fórmulas
simbólicas 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
19/49
Aquí se pueden ver gradient y lo que permite obtener.
% 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
0
1.2
-1
1
-2
-1.8
-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
0
20/49
Índice
Introducción
Derivación numérica de funciones
Integración de funciones
Fórmulas de Newton-Cotes
Fórmulas abiertas y cerradas
Método de Romberg
Cuadratura de Gauss-Legendre
Cuadratura adaptativa
Integración de funciones
21/49
Dada una función f W R ! R su integral definida en Œa b,
I.f / D
l
b
f .x/ dx;
a
se define como el límite de las sumas de Riemann,
Rn D
n
X
i D1
.xi C1
xi / f .ti /;
Georg Friedrich Bernhard
Riemann, Alemania, 18261866.
x1 D a; xnC1 D b; xi ti xi C1
cuando la partición en subintervalos de Œa; b se hace muy fina.
La integral de Lebesgue generaliza la noción de la integral de Riemann para
extender el concepto de área bajo una curva e incluir funciones discontinuas.
Henrí Léon Lebesgue, Francia 1875-1941
La integración numérica, o cuadratura, se refiere al cálculo numérico de esa
integral. Es necesaria cuando:
22/49
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/.
R =2 p
R 1 x2
3. La primitiva no es calculable: 0 e dx o 0
1 C cos2.x/ dx.
4. Aunque se conozca la primitiva de la función, su cálculo es tan costoso que es
mejor usar un método aproximado o más sencillo para calcularla.
5. Otras causas : : :
Para integrar una función f .x/ complicada, se puede sustituir 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.
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.
23/49
Para calcular numéricamente el valor de una integral se recurre por lo general a
un sumatorio de ciertos valores de la función, o de una aproximación, en unos
puntos llamados nodos, xi , multiplicados por unos coeficientes de ponderación
denominados pesos, wi :
ˇ
a
b
f .x/ dx D
n
i
wi f .xi /:
iD1
Esta sustitución supone cambiar un sumatorio infinito (la integral) por un
sumatorio finito, por lo que se producirá un error de truncamiento.
Fórmulas de Newton-Cotes
Roger Cotes, Inglaterra, 16821716.
24/49
Obtenidas a partir del polinomio de interpolación de Newton de la función a
integrar con argumentos igualmente espaciados (fórmula de diferencias finitas).
Regla del trapecio
pol. primer grado
Z
Regla de Simpson
pol. segundo grado
Z
Regla de Simpson 83
pol. tercer grado
Z
Regla de Boole
pol. cuarto grado
Z
x1
x0
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
x1
x0
x1
x0
x1
x0
donde fk indica f .x0 C kh/.
8h7 .6
f ./
945
El cálculo de los errores de las restantes fórmulas de New
Fórmula compuesta
del trapecio
es bastante
laborioso y no se incluye en estas trasparenci
‰ Interpretación gráfica de la regla trapezoidal y las dos reg
Resulta de aplicar
la regla o fórmula del trapecio —polinomio de primer grado—
Simpson:
‰
25/49
a los m subintervalos en el que se divide el original Œa; b.
ˇ
a
b
m
l
i
f .x/ dxD
i D1
xi
xi
f .x/ dx h
h
.f0 Cf1 / C C .fm 1 Cfm /
2
2
1
h
D .f0 C 2f1 C 2f2 C C 2fm
2
1
C fm / :
Fórmulas abiertas y cerradas
El error que se comete es
ˇ
a
b
26/49
0
f .x/ dx D
hB
@
2
m
i
1
.fi
1
C
C fi /A
b
a
12
h2 f 00 ./:
iD1
Pongamos todo en un script de Matlab para calcular
solución es ln.2/.
function T = trapezrule(f,a,b,m)
% Integración trapecio compuesto
x = linspace(a,b,m+1);
% subintervalos
function f = intfun_1(x)
T = (f(a)+f(b))/2;
% comienzo y final
% Función que se integra
for i = 1:m-1
f = 1./(1+x);
T = T + f(x(i+1));
% interior intervalo
end
end
T = T*(b-a)/m;
% multiplica por h
end
1
Z
0
1
dx cuya
.1 C x/
>> 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
de Newton-Cotes (4/4)
Distancia entre puntos h=(ba)/2M
k
ETSII-UPM
27/49
los
errorescompuesta
de las restantes
fórmulas de Newton-Cotes
Thomas Simpson, Inglaterra,
Fórmula
del Simpson
borioso y no se incluye en estas trasparencias. 1710-1761.
n gráfica de la regla trapezoidal y las dos reglas de
Sigue
estrategia
la fórmula del trapecio, pero ajustando una parábola
Error
de la
la misma
regla de
Simpsondecompuesta:
a tres puntos de cada subintervalo.
Interpretación geométrica:
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.
28/49
La integral es
l
m l
i
b
f .x/ dxD
a
i D1
xi
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
3
El error que se comete,
0
ˇ
b
a
f .x/ dx D
m
i
hB
@
3
i D1
2
C 4f2m
1
C f2m/ :
1
.f2i
2
C 4f2i
1
C
C f2i /A
b a 4 .4/
h f ./:
180
Hagámoslo en Matlab para
1
Z
0
1
dx.
1Cx
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
>> 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
Si lo probamos:
La precisión es apreciablemente superior.
29/49
function f = intfun_1(x)
% Función que se integra
f = 1./(1+x);
end
cepto de fórmula de integración abierta
30/49
Se llama abierta a una fórmula de integración numérica que no evalúa la
unción
integrando
en uno o y
en cerradas
los dos extremos del intervalo.
Fórmulas
abiertas
Las fórmulas abiertas son útiles cuando no se conoce la función en un extremo
tiene un valor infinito (integrales impropias).
Se llama abierta a una fórmula de integración numérica que no evalúa la función
Un caso de gran interés práctico son las fórmulas de Adams, que utilizan n
integrando en uno o en los dos extremos del intervalo.
untos, pero sólo desean calcular la integral en el último tramo (ver figuras)
Newton-Cotes abierta
NewtonCotes cerrada
on-Cotes
ms Las fórmulas abiertas son útiles cuando no se conoce la función en un extremo o
tiene un valor infinito (integrales impropias).
31/49
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 versión compuesta es
1
0
l
a
b
B
f .x/ dx D h @
m
i
i D1
C .b
f .wi /A C
a/h2 00
f .c/:
24
Ejemplo Aproximemos
compuesta; m D 10.
l
0
1
sen.x/
dx con la regla del punto medio
x
Los puntos medios son 0;05, 0;15; : : : ; 0;95 y la formula daría lo que sigue:
ˇ 1
!
10
X
f .x/ dx 0;1
f .mi / D 0;94620858:
0
1
No está mal; la cifra correcta con 15 dígitos es
>> syms x;
>> f = sin(x)/x
f =
sin(x)/x
>> F = int(f, x)
F =
sinint(x)
>> int(f, x, 0, 1)
ans =
sinint(1)
>> format long
>> sinint(1)
ans =
0.946083070367183
0;946083070367183.
32/49
33/49
Otra regla útil aplicable a las fórmulas de Newton-Cotes es
x4
ˇ
x0
4h
2f .x1/
f .x/ dx D
3
donde h D .x4
x0 < c < x 4 .
14h5 .4/
f .x2/ C 2f .x3/ C
f .c/;
45
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/
f .x/ dx D
11f .x1 / 14f .x2 /C26f .x3 / 14f .x4 /C11f .x5 / C
f .c/;
20
140
x0
donde x0 < c < x6.
unción integrando en uno o en los dos extremos del intervalo.
Las fórmulas abiertas son útiles cuando no se conoce la función en un extremo
o tiene un valor infinito (integrales impropias).
Un caso de gran interés práctico son lasJohn
fórmulas
de Adams, que utilizan n
Couch Adams, Reino
puntos, pero sólo desean calcular la integral
el último tramo (ver figuras)
Unido, en
1819-1892.
34/49
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).
ms
Adams abierta
Adams cerrada
35/49
Método de Romberg
Werner Romberg, Alemania,
1909-2003.
Está basado en la extrapolación de Richardson. Permite mejorar recursivamente la
aproximación de las fórmulas compuestas con poco trabajo adicional.
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.
A partir de estas integrales, mediante extrapolación de Richardson, se calculan
otras R22, R32; : : : ; Ri2, de error menor: O.h4/.
36/49
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
R11 D
b a
2
.f .a/ C f .b// D
R21 D
h2
2
f .a/ C f .b/ C 2f
h1
2
.f1 C f9 /
aCb
2
D
D
1
R
2 11
C h2 f5
R31 D
h3
.f1
2
C 2f3 C 2f5 C 2f7 C f9 /
D
1
R
2 21
C h3 .f3 C f7 /
R41 D
D
h4
2
h2
2
.f1 C 2f5 C f9 /
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 /
Las extrapolaciones que se hacen son, a partir de Richardson,
R22
R32
R42
22 R21 R11
D
3
22 R31 R21
D
3
22 R41 R31
D
3
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
Al final se llega a una tabla general
R11
R21 R22
R31 R32 R33
R41 R42 R43 R44
:::
:::
37/49
Programa con el método de Romberg y su uso para
2
Z
ln.x/ dx:
38/49
1
function R = romberg(f, a, b, n)
% Calcula una integral definida en el intervalo [a,b]
% con la tabla de n filas de 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
end
>> 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
>> syms x;
>> f = log(x)
f =
log(x)
>> F = int(f, x)
F =
x*(log(x) - 1)
>> int(f, x, 1, 2)
ans =
log(4) - 1
>> format long
>> log(4)-1
ans =
0.386294361119891
% Comprobación del resultado numérico
% Hagamos todo de forma simbólica
% Primitiva de la integral
Método
Gauss-Legendre
Cuadratura
dede
Gauss-Legendre

(1/6) Andrien-Marie
39/49
Legendre,
Francia, 1752-1833.
ETSII-UPM
Características del método de Gauss-Legendre
Se permite variar la posición de los nodos para mejorar el orden del método.
 Se trabaja en un intervalo de integración normalizado [−1, 1].
En este procedimiento
se permite variar la posición de los nodos para mejorar la
 Con n puntos de integración y n pesos por determinar se pueden satisfacer 2n
precisión delcondiciones,
resultado.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á
exactamente cualquier polinomio de dicho grado.
cómo
se puedeuna
obtener
mejor
aproximación con sólo
 Las
En la figura
se siguientes
muestrafiguras
cómomuestran
se puede
obtener
mejor
aproximación
con dos nodos haciendo que no sean los extremos del intervalo.

dos nodos haciendo que no sean los extremos del intervalo.
-1
1
-1


Se trabaja en un intervalo de integración normalizado: Œ 1; 1.
1
40/49
La fórmula general de la cuadratura de Gauss-Legendre es
ˇ
1
1
f .x/ dx n
i
ci f .xi /;
i D1
donde los nodos, xi , son las raíces de los polinomios de Legendre de grado n en
el intervalo Œ 1; 1.
Los coeficientes, o pesos, ci , están tabulados para integrar exactamente
polinomios de hasta grado 2n 1.
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.
41/49
n
2
3
15C2 30
q 35p
2 30
- 15 35
q
p
15 2 30
q 35p
15C2 30
35
4
5
p
- 1=3
p
1=3
p
- 3=5
0
p
3=5
q
p
nodos xi
= -0,57735026918963
= 0,57735026918963
= -0,77459666924148
= 0,00000000000000
= -0,77459666924148
= -0,86113631159405
= -0,33998104358486
= 0,33998104358486
= 0,86113631159405
-0,93246951420315
-0,66120938646626
-0,23861918608320
0,23861918608320
0,66120938646626
0,93246951420315
coeficientes ci
1
= 1,00000000000000
1
= 1,00000000000000
5=9 = 1,55555555555555
8=9 = 1,88888888888888
5=9 = 1,55555555555555
p
90 5 3
180
p
90C5 3
180
p
90C5 3
180
p
90 5 3
180
= 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
Ejemplo Aproximemos con cuadratura de Gauss-Legendre la integral
l
El valor exacto con 14 dígitos es
1
e
x2
2
42/49
dx:
1
1,71124878378430.
>> format long
>> syms x;
>> f = exp(-x^2/2)
f =
exp(-x^2/2)
>> int(f, x, -1, 1)
ans =
2^(1/2)*pi^(1/2)*erf(2^(1/2)/2)
>> double(ans)
ans =
1.711248783784298
Con dos nodos, la aproximación es
l
1
e
1
x2
2
dx c1 f .x1 / C c2 f .x2 / D 1 f .
Con tres nodos 59 f .
p
8
5
3/5/ C 9 f .0/ C 9 f .
p
1/3/ C 1 f .
p
3/5/
p
1/3/
1,69296344978123:
1,71202024520191.
Con cuatro c1f .x1/ C c2f .x2/ C c3f .x3/ C c4f .x4/ 1,71122450459949:
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);
% Matriz Legendre-Gauss Vandermonde
Lp=zeros(N1,N2);
% Derivada de LGVM
% Calcula ceros del Polinomio de Legendre de orden N+1 (Newt.-Rap)
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
end
Calculemos la integral del ejemplo anterior,
>> [x,w]=lgwt(6,-1,1);
>> f=exp(-(x.^2)/2);
>> sum(f.*w)
ans =
1.711248771041351
l
Con 8 nodos y con la rutina de
integración quad de Matlab:
1
e
x2
2
dx.
1
>> [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
43/49
44/49
Para aproximar una integral en un intervalo cualquiera Œa; b se tiene que
!
l b
n
.b a/ zi C .b C a/
b a X
:
ci f
f .x/ dx 2
2
a
iD1
Aproximemos por ejemplo 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:
2
2
1
1
Con cuatro nodos, la aproximación es 0,38629449693871.
Comparada con la exacta, 2 ln 2 1, es decir 0,38629436111989, no está nada mal.
45/49
Integrales múltiples
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 1
Z 1X
n
n
X
ci f .i ; / d D ci f .i ; / d
f .; / d d D
1
1
1 i D1
i D1
1
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
46/49
Cuadratura adaptativa
La idea es utilizar una táctica “divide y vencerás” subdividiendo el intervalo de
integración según los tramos de variabilidad de la función.
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
Se hace lo mismo con h=2 para obtener IL donde m D .a C b/=2.
Luego, por extrapolación de Richardson, se calcula I2 D IL C IR e
I3 D I2 C I215I1 .
a
f .x/dx y IR Rb
m
f .x/dx,
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/;
3
90
a
para dos subintervalos
b
Z
a
f .x/dx D IL
h5 f .4/ .c1 /
32 90
D IL C IR
C IR
47/49
h5 f .4/ .c2 /
32 90
h5 f .4/ .c3 /
:
16 90
Restando este resultado de la expresión anterior queda
I1
.IL C IR / D h5 f
.4/
.c0 /
90
h5 f .4/ .c3 /
16 90
15 3 f .4/ .c3 /
h 90 :
16
Como el error de I1 .IL C IR / es 15 veces el de la aproximación IL C IR de la
integral, se comprueba 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.
48/49
Pasemos a Matlab esta forma de operar.
function [q fnct] = quadadapt(f,a,b,tol)
% Evalua la integral de f(x) en [a,b]
global fnct
% Veces que se evalúa la función
if nargin<4 || isempty(tol), tol=1.e-6; end
fnct = 0;
c = (a+b)/2;
fa = f(a);
fc = f(c);
fb = f(b);
fnct = fnct+3;
q = quadstep(f,a,b,tol,fa,fc,fb);
end
function q = quadstep(f,a,b,tol,fa,fc,fb)
% Subfunction recurrente de quadadapt
global fnct
h = b-a; c = (a+b)/2;
fd = f((a+c)/2);
fe = f((c+b)/2);
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);
qb = quadstep(f,c,b,tol,fc,fe,fb);
q = qa + qb;
end
end
Si lo utilizamos para integrar
2
ˇ
2
7
>> f1_Heath_2=@(x)sin(1./x)+3/2;
>> [q fnct]=quadadapt(f1_Heath_2,2/(7*pi),2/pi,1.e-14)
q =
0.984511912667507
fnct =
3949
%% Comprobación con cuadratura adaptativa de Simpson de MATLAB
>> [q2 fnct1]=quad(f1_Heath_2,2/(7*pi),2/pi,1.e-14)
q2 =
0.984511912667507
fnct1 =
2069
%% Cuadratura adaptativa de Lobatto de MATLAB
>> [q2 fnct1]=quadl(f1_Heath_2,2/(7*pi),2/pi,1.e-14)
q2 =
0.984511912667507
fnct1 =
1308
%% Con syms de Matlab
>>syms x a b
>> f=sin(1./x)+3/2;
>> I=int(f,2/(7*pi),2/pi);
>> double(I)
ans =
0.984511912667507
49/49
3
1
C dx, se obtiene esto:
sen
x
2
sin(1/x)+3/2
2.5
2
1.5
1
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
El número de veces que se evalúa la función es sensiblemente diferente con los
métodos probados.

Documentos relacionados