Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase Derivacion Integracion Funciones 2014 PDF
Clase Derivacion Integracion Funciones 2014 PDF
Matemáticas de Especialidad
Ingeniería Eléctrica
Derivación e
Integración
de funciones
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,
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 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)
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.
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
11/62
4 Un pequeño script de Matlab para calcular esa tabla y ver gráficamente la
evolución del error es este.
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
4Š
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
4Š
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
3Š
C O.h 5
/
3
f .x C h/ f .x h/ Df 0.x/2h C f 000.x/ 2h3Š 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).
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 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 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.
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
;
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
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.
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
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.
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
31/62
El cálculo de los errores de las restantes fórmulas de New
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.
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:
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
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:
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
40/62
Ejemplo
R1
4 Aproximemos la integral 0 sen.x=x/ dx, con m D 10, usando la regla del
punto medio compuesta.
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
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.
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
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
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
donde los nodos, xi , son las raíces de los polinomios de Legendre de grado n en
el intervalo Œ 1; 1.
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.
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);
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
>> [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
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.
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 = 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