integraciÓn numÉrica con...
TRANSCRIPT
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle
Sesión10ª INTEGRACIÓN NUMÉRICA
CON MATLAB
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 2
PRIMER OBJETIVO: Utilizar fórmulas numéricas, de las que se conocen sus coeficientes y las abscisas del soporte que utilizan, para evaluar integrales en un intervalo dado
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 3
Las fórmulas de integración numérica que aproximan derivadas de orden k en una abscisa x* son de la forma:
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
n(k
J JJ 1
f (x*) c·f(s )=
≈ ∑donde cJ son los coeficientes de la fórmula y sJ las abscisas del soporte sobre el que se construye la fórmula Si {c} es el vector de coeficientes y {s} el de abscisas del soporte, el uso de la fórmula se reduce a realizar el producto escalar del vector {c} por el vector {f(s)}. Esto en MATLAB se puede realizar de distintas maneras, como se ilustra en el siguiente ejemplo
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 4
Prográmese en MATLAB el cálculo del valor aproximado de siendo f(x) = sen(x·π/2), mediante la fórmula del trapecio compuesta, para el caso a=0, b=1, y subdividiendo (a, b) en 20 subintervalos de idéntica longitud.
EJERCICIO (P8_EJ1)
Solución: Si dividimos (0,1) en 20 subintervalos de la misma longitud, cada uno tiene una longitud de 0.05. Si en cada uno de ellos integramos mediante la regla del trapecio ….
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
b
a
f(x)·dx∫
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 5
con h =0.05 y sJ = (J-1)·0.05.
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
f(si-1) f(si)
si-1 si J 1
J
sJ J 1
s
f(s ) f(s )f(x)·dx h· (J 1,2,...,20)2
+
++ ≈ = ∫
( )J 1
J
s1 20 201 21
JJ 1 J 20 s
f(s ) f(s )f(x)·dx f(x)·dx h· f s2
+
= =
+ = ≈ +
∑ ∑∫ ∫
h h si+1
f(si+1)
si+2
f(si+2)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 6
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
En resumen:
f(x)= sin(x·π/2)
s={0, 0.05, 0.1, 0.15, …., (J-1)·0.05, ….0.90, 0.95, 1.00}
c={0.025, 0.05, 0.05, …., 0.05, ….0.05, 0.05, 0.025}
DATOS
Función:
RESULTADOS:
( ) ( ) ( )1 1 2 2 21 21VAP c ·f s c ·f s ... c ·f s= + + +
1
0
VEX f(x)·dx= ∫ (Comando int)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 7
clear syms x N=20; h=1/N; s=[0:1:N]*h; c(1,2:1:N)=h; c(1,1)=h/2; c(1,N+1)=h/2; funcion(x)= sin(pi*x./2); vex=eval(int(funcion(x),0, 1)); f=eval(funcion(s)); vap=0; for J=1:1:N+1 vap=vap+f(J)*c(J); end disp(['Valor exacto = ', num2str(vex),... ' Valor aproximado = ', num2str(vap)])
Con un bucle
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 8
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
En resumen:
f(x)= sin(x·π/2)
s={0, 0.05, 0.1, 0.15, …., (J-1)·0.05, ….0.90, 0.95, 1.00}
c={0.025, 0.05, 0.05, …., 0.05, ….0.05, 0.05, 0.025}
DATOS
Función:
RESULTADOS:
( )21
J JJ 1
VAP c ·f s=
= ∑1
0
VEX f(x)·dx= ∫
(Sumatorio; comando sum)
(Comando int)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 9
clear syms x N=20; h=1/N; s=[0:1:N]*h; c(1,2:1:N)=h; c(1,1)=h/2; c(1,N+1)=h/2; funcion(x)= sin(pi*x./2); vex=eval(int(funcion(x),0, 1)); f=eval(funcion(s));
vap=sum(c.*f); disp(['Valor exacto = ', num2str(vex),... ' Valor aproximado = ', num2str(vap)])
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
Sumando elementos del vector obtenido multiplicando elemento a elemento
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 10
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
En resumen:
f(x)= sin(x·π/2)
s={0, 0.05, 0.1, 0.15, …., (J-1)·0.05, ….0.90, 0.95, 1.00}
c={0.025, 0.05, 0.05, …., 0.05, ….0.05, 0.05, 0.025}
DATOS
Función:
RESULTADOS:
c f(s)VAP = •1
0
VEX f(x)·dx= ∫
(Producto escalar; comando dot)
(Comando int)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 11
clear syms x N=20; h=1/N; s=[0:1:N]*h; c(1,2:1:N)=h; c(1,1)=h/2; c(1,N+1)=h/2; funcion(x)= sin(pi*x./2); vex=eval(int(funcion(x),0, 1)); f=eval(funcion(s));
vap=dot(c,f); disp(['Valor exacto = ', num2str(vex),... ' Valor aproximado = ', num2str(vap)])
Usando el comando dot( )
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 12
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
En resumen:
f(x)= sin(x·π/2)
s={0, 0.05, 0.1, 0.15, …., (J-1)·0.05, ….0.90, 0.95, 1.00}
c={0.025, 0.05, 0.05, …., 0.05, ….0.05, 0.05, 0.025}
DATOS
Función:
RESULTADOS:
{ }{ }·c f(s) TVAP =
1
0
VEX f(x)·dx= ∫
(Producto matricial; operador *)
(Comando int)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 13
clear syms x N=20; h=1/N; s=[0:1:N]*h; c(1,2:1:N)=h; c(1,1)=h/2; c(1,N+1)=h/2; funcion(x)= sin(pi*x./2); vex=eval(int(funcion(x),0, 1)); f=eval(funcion(s));
vap=c*f.’; disp(['Valor exacto = ', num2str(vex),... ' Valor aproximado = ', num2str(vap)])
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
Producto de vector fila por vector columna
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 14
EN TODOS LOS CASOS
>> P8_EJ1 Valor exacto = 0.63662 Valor aproximado = 0.63629
USO DE FÓRMULAS DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 15
EJERCICIO PROPUESTO P10_EP1
Prográmese en MATLAB el cálculo del valor aproximado de siendo f(x) = sen(x·π/2) para el caso a = 0, b=1, y subdividiendo (a, b) en 20 subintervalos de idéntica longitud (s2J-1, s2J+1), e integrando en cada uno de ellos mediante la fórmula de Simpson:
b
a
f(x)·dx∫
( ) ( ) ( )( )2J 1
2J 1
s2J 1 2J 1
2J 1 2J 2J 1s
s sf(x)·dx f (s 4·f (s f (s6
+
−
+ −− +
−≈ + +∫
C={ h/6, 2h/3, h/3, 2h/3,h/3, 2h/3, ……,2h/3, h/6}
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 16
EJERCICIO PROPUESTO P10_EP1
( ) ( ) ( )( )2J 1
2J 1
s
2J 1 2J 2J 1s
hf(x)·dx f (s 4·f (s f (s (J 1,...,20)6
+
−
− +≈ + + =∫
f(s2J-1) f(s2J+1) f(s2J)
h
s2J-1 s2J+1 s2J
( )2J 1
2J 1
s1 20 40 39
1 41 J JJ 1 J 2 J 30 s
J 2 J 2
0.05f(x)·dx f(x)·dx f (s f(s ) 4· f(s ) 2· f(s )6
+
−= = =
∆ = ∆ =
= ≈ + + +
∑ ∑ ∑∫ ∫
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 17
EJERCICIO PROPUESTO P10_EP1 clear syms x f(x) N=20; h=1/N; s=[0:1:2*N]*h/2; c(1,1)=h/6;c(1,3:2:2*N-1)=1*h/3; c(1,2:2:2*N)=2*h/3;c(1,2*N+1)=h/6; funcion(x)= sin(pi*x./2); vex=eval(int(funcion(x),0, 1)); f=eval(funcion(s)); vap=dot(c,f); disp(['Valor exacto = ', num2str(vex),... ' Valor aproximado = ', num2str(vap)]) >> P7_EP1 Valor exacto = 0.63662 Valor aproximado = 0.63662
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 18
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
SEGUNDO OBJETIVO: Analizar la evolución del error entre el valor exacto y los valores aproximados por fórmulas numéricas al aplicarlas para estimar integrales cuando se varía la distancia entre puntos del soporte
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 19
2-1º) Escribir una función MATLAB llamada WEDDLE_S, en la que tomando como argumentos de entrada: a (extremo izqdo. del intervalo de integr.) b (extremo dcho. del intervalo de integr.) F= {F1, F2, … ,F7} (valores en el soporte) calcule el valor aproximado de la integral de f(x) en el intervalo [a, b] mediante la fórmula de Weddle:
( )b 7
J JJ 1a
f(x)dx VAPROX (b a)· c ·F x=
≈ = − ∑∫
donde c={41/840, 216/840, 27/840, 272/840, 27/840, 216/840, 41/840}
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 20
2-2º) La fórmula de Weddle utiliza un soporte equidistante de 7 puntos en [a, b], con s1 = a y s7 = b. Usando la función anterior, escríbase un script que permita evaluar aproximadamente:
hx
h
e ·dx−∫
para los siguientes valores de h: 1., 0.5, 0.25, 0.125, 0.0625, 0.03125 y 0.0150625 Sabiendo que el valor exacto de la integral es: VEXAC = eh – e-h represéntese en escala logarítmica la evolución del error y obténgase el factor de reducción de error al utilizar un tamaño de h respecto al anterior.
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 21
function [valor]=weddleS(a,b,F) c=[41,216,27,272,27,216,41]*(b-a)/840; valor=dot(c,F); end
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 22
clear syms x h=1; funcion(x)= exp(x); for J=1:1:7 vex(J)=eval(int(funcion(x),-h, h)); h7=2*h/6; s=[-h:h7:h]; F=eval(funcion(s)); [vap(J)]=weddleS(-h,h,F); disp(['2^',num2str(1-J),... ' Valor exacto = ', num2str(vex(J)),... ' Valor aproximado = ', num2str(vap(J))]) errtr(J)=vex(J)-vap(J); h=h/2; end
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 23
errtr plot([0:-1:-6],log10(abs(errtr)),'-sb')
>> P10_EJ2 2^0 Valor exacto = 2.3504 Valor aproximado = 2.3504 2^-1 Valor exacto = 1.0422 Valor aproximado = 1.0422 2^-2 Valor exacto = 0.50522 Valor aproximado = 0.50522 2^-3 Valor exacto = 0.25065 Valor aproximado = 0.25065 2^-4 Valor exacto = 0.12508 Valor aproximado = 0.12508 2^-5 Valor exacto = 0.06251 Valor aproximado = 0.06251 2^-6 Valor exacto = 0.031251 Valor aproximado = 0.031251
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 24
errtr plot([0:-1:-6],log10(abs(errtr)),'-sb')
errtr = 1.0e-06 * Columns 1 through 3 -0.335323150579825 -0.000642119468708 -0.000001248001702 Columns 4 through 6 -0.000000002498002 0.000000000083267 0.000000000041633 Column 7 -0.000000000062450
Reducciones de 2-9
Los errores de redondeo
impiden la reducción del
error
EVOLUCIÓN DEL ERROR EN F. INT. NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 25
Una fórmula que permite aproximar la integral entre a=1 y b= 1+3h es la siguiente: donde h es un valor real positivo. Se pide: 1º) Escríbase una función MATLAB, en la que tomando como argumentos de entrada: h (valor real estrictamente positivo) F (valores de una función en {1, 1+h, 1+2h, 1+3h}. se calcule un valor aproximado de la integral de la función entre 1 y 1+3h.
EJERCICIO PROPUESTO P10_EP2
( )1 3
1
3( )· (1) 3 (1 ) 3· (1 2 ) (1 3 )8
+
≈ + + + + + +∫h hf x dx f f h f h f h
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 26
2º) Escríbase un programa en el que usando la función desarrollada en el apartado anterior se evalúen las aproximaciones de las integrales de la función f(x)=ex·cos(x) en el punto x*=0, utilizando los valores de h = 1, 0.5, 0.25, 0.125, 0.0625, …, 2-20. Además, el programa debe obtener para cada valor de h el error cometido y representar la evolución del error en una gráfica logarítmica.
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 27
function [valor]=fP10_EP2(h,F) c=[1,3,3,1]*3*h/8; valor=dot(c,F); end
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 28
clear syms x f(x) h=1; funcion(x)= exp(x)*cos(x); for J=1:1:21 vex(J)=eval(int(funcion(x),1, 1+3*h)); s=[1:h:1+3*h]; F=eval(funcion(s)); [vap(J)]=fP10_EP2(h,F); disp(['2^',num2str(1-J),... ' Valor exacto = ', num2str(vex(J)),... ' Valor aproximado = ', num2str(vap(J))]) errtr(J)=vex(J)-vap(J); h=h/2; end (…)
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 29
errtr plot([0:-1:-20],log10(abs(errtr)),'-sb') xlabel('2^p (POTENCIA)') ylabel('log10(|ERROR|)')
>> P10_EP2 2^0 Valor exacto = -40.3819 Valor aproximado = -38.6615 2^-1 Valor exacto = -3.1125 Valor aproximado = -3.1059 2^-2 Valor exacto = 0.44033 Valor aproximado = 0.44023 2^-3 Valor exacto = 0.44645 Valor aproximado = 0.44645 2^-4 Valor exacto = 0.25557 Valor aproximado = 0.25557 2^-5 Valor exacto = 0.13344 Valor aproximado = 0.13344 2^-6 Valor exacto = 0.067866 Valor aproximado = 0.067866 2^-7 Valor exacto = 0.034188 Valor aproximado = 0.034188 2^-8 Valor exacto = 0.017154 Valor aproximado = 0.017154 2^-9 Valor exacto = 0.0085914 Valor aproximado = 0.0085914 2^-10 Valor exacto = 0.0042993 Valor aproximado = 0.0042993 2^-11 Valor exacto = 0.0021505 Valor aproximado = 0.0021505 2^-12 Valor exacto = 0.0010755 Valor aproximado = 0.0010755
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 30
2^-13 Valor exacto=0.0005378 Valor aproximado = 0.0005378 2^-14 Valor exacto=0.00026891 Valor aproximado = 0.00026891 2^-15 Valor exacto=0.00013446 Valor aproximado = 0.00013446 2^-16 Valor exacto=6.7231e-05 Valor aproximado = 6.7231e-05 2^-17 Valor exacto=3.3616e-05 Valor aproximado = 3.3616e-05 2^-18 Valor exacto=1.6808e-05 Valor aproximado = 1.6808e-05 2^-19 Valor exacto=8.4039e-06 Valor aproximado = 8.4039e-06 2^-20 Valor exacto=4.202e-06 Valor aproximado = 4.202e-06
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 31
errtr = Columns 1 through 3 -1.720363432786186 -0.006615880230806 0.000102975188247 Columns 4 through 6 0.000005553650871 0.000000195687271 0.000000006368027 Columns 7 through 9 0.000000000202294 0.000000000006368 0.000000000000200 Columns 10 through 12 0.000000000000006 0.000000000000000 -0.000000000000000 Columns 13 through 15 -0.000000000000000 -0.000000000000000 -0.000000000000000 Columns 16 through 18 -0.000000000000000 -0.000000000000000 -0.000000000000000 Columns 19 through 21 -0.000000000000000 0.000000000000000 -0.000000000000000
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 32
EJERCICIO PROPUESTO P10_EP2
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 33
CÁLCULO DE FÓRM. DE DERIVACIÓN NUMÉRICA
TERCER OBJETIVO: Utilizar las capacidades de CÁLCULO SIMBÓLICO de MATLAB para determinar fórmulas de integración numérica sobre un soporte dado, integrando el polinomio interpolador de Lagrange.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 34
3º) Para los siguientes valores de h: 1., 0.5, 0.25, 0.125, 0.0625, 0.03125 y 0.0150625, se quiere obtener el valor aproximado de: Escribe una función que calcule la tabla de diferencias divididas a partir del soporte y de los valores de una función en él, y un script que calcule el valor aproximado de la integral de la función a través de la integración del polinomio interpolador de Lagrange evaluado mediante la fórmula de Newton. Se utilizará como soporte: {x1=-h, x2 = 0, x3 = h/2, x4 = h, x5 =3h/2, x6 = 2h}
2·hx
h
e ·sin(x)·dx−
−∫
CÁLCULO DE FÓRM. DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 35
function [A]=difdiv(s,F) N=length(s); A=zeros(N); for I=1:1:N A(I,1)=F(I); end for J=2:1:N mfil=N-J+1; for I=1:1:mfil A(I,J)=(A(I+1,J-1)-A(I,J-1))/... (s(I+J-1)-s(I)); end end
% Inicializo la tabla de diferencias % 1ª columna con valores nodales
% Fórmula de Newton de Dif. Div.
% mfil: último elemento que se % calculará en la columna J
CÁLCULO DE FÓRM. DE INTEGRACIÓN NUMÉRICA
% Nº de abscisas del soporte
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 36
clear all % Declaramos la variable independiente(x) % y definimos la función syms x f=@(x) exp(-x).*sin(x); % Asignamos valores al nº de puntos (N=6) % y al nº de casos con distintos valores % del parámetro h (NCASOS = 7), iniciali- % zando h al doble de su mayor valor. N=6; NCASOS=7; h=2; (continúa)
CÁLCULO DE FÓRM. DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 37
% La variable de control del siguiente % bucle (ICASO) representa el “caso de % valor distinto de h” tratado. for ICASO=1:1:NCASOS % Comenzamos cada caso dividiendo h a la % mitad, definiendo los extremos del in- % tervalo de integración (a = -h, b = 2h), % los 6 puntos del soporte de integración %(vector s) y los 6 valores que toma la % función a integrar en cada abscisa del % soporte (vector f)... h=h/2; a=-h; b=2*h; S=[a; 0; h/2; h; 3*h/2; b]; F=f(S); (continúa)
CÁLCULO DE FÓRM. DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 38
% ... Calculamos la tabla de diferencias % divididas(almacenadas en la matriz DD).. DD=difdiv(S,F); %... y usamos la fórmula de Lagrange para % calcular el polinomio interpolador ... p(x)=DD(1,1)+x-x; for I=2:1:N aux=1; for K=1:1:I-1 aux=aux*(x-S(K)); end p(x)=simplify(p(x)+DD(1,I)*aux); end
(continúa)
CÁLCULO DE FÓRM. DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 39
% ... que integrado entre a y b nos % proporciona el valor aproximado de % la integral. VAPR(ICASO)=eval(int(p(x),x,a,b)); VEX(ICASO)=eval(int(f(x),x,a,b)); end
Save as P10_EJ3.m
>> P10_EJ3 >> format short >> VAPR VAPR=-0.4336 0.0742 0.0517 0.0179 0.0051 0.0014 0.0004 >> VEX VEX =-0.4427 0.0741 0.0517 0.0179 0.0051 0.0014 0.0004
CÁLCULO DE FÓRM. DE INTEGRACIÓN NUMÉRICA
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 40
(continúa)
EJERCICIO PROPUESTO P10_EP3 3º) a) Escribe una función que calcule las integrales en el intervalo (a, b) de los n polinomios de base de Lagrange asociados a un soporte de n abscisas . Se considerarán argumentos de entrada de la función: s Vector de n abscisas distintas a extremo izquierdo del intervalo de integración b Extremo derecho del intervalo de integración. Y el argumento de salida será un vector c conteniendo los n coeficientes de la fórmula.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 41
EJERCICIO PROPUESTO P10_EP3 b) Escríbase un programa MATLAB que utilice la función anterior para calcular los valores aproximados de la integral en el intervalo (-h/2, 3h/2) de la función f(x) = sen(x)·e1-cos(x), sobre el soporte: {s1=-h, s2 = 0, s3 = h/2, s4 = h, s5 =3h/2, s6 = 2h} asignándole sucesivamente a h los valores:10, 5, 2.5 y 1.25. El programa deberá representar en una gráfica la evolución del del error cometido.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 42
INICIO Datos: s, a,b n longitud de s
1º) Para I, desde 1, con paso 1, hasta n, hacer:
2º) Para I, desde 1 , con paso 1, hasta n, hacer:
Integrar entre a y b:
Fin bucle en I.
Fin bucle en I.
Resultados: c FIN
← ∫b
I Ia
c L (x)·dx
EJERCICIO PROPUESTO P10_EP3
( )( )=
≠
−←
−∏n
JI
J 1 I JJ I
x sL (x)
s s
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 43
INICIO Datos: s, a,b n longitud de s
Para I, desde 1, con paso 1, hasta n, hacer: aux 1 Para J, desde 1, con paso 1 , hasta n, hacer: Si (I ≠ J) entonces hacer: aux aux·((x-sj)/(si-sj)) Fin condición. Fin bucle en J. Li aux Fin bucle en I.
(Detalles de la “1ª Parte”)
….
EJERCICIO PROPUESTO P10_EP3
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 44
Para I, desde 1, con paso 1, hasta n, hacer:
Fin bucle en I.
(Detalles de la “2ª Parte”)
….
Resultados: c FIN
EJERCICIO PROPUESTO P8_EP3
← ∫b
I Ia
c L (x)·dx
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 45
function [c]=fP10_EP3(s,a,b) syms aux x L % PARTE 1ª: Cálculo de los polinomios de % base de Lagrange asociados al soporte n=length(s); for I=1:1:n aux=1; for J=1:1:n if (J~=I) aux=aux*(x-s(J))/(s(I)-s(J)); end end L(I)=aux; end (…)
EJERCICIO PROPUESTO P10_EP3
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 46
% PARTE 2ª: Integramos entre a y b cada una % de las expresiones de los polinomios de % base. for I=1:1:n c(I)=eval(int(L(I),a,b)); end end
(…)
ARCHIVAMOS ESTA FUNCIÓN EN EL FICHERO: fP10_EP3.m
EJERCICIO PROPUESTO P10_EP3
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 47
clear % DEFINO LA FUNCIÓN SIMBÓLICA syms x f(x)=sin(x).*exp(1-cos(x)); % DEFINO LOS VALORES DE h Y EL Nº DE CASOS h=[10,5,2.5,1.25,0.625]; NCASOS=length(h); for ICASO=1:1:NCASOS % PARA CADA CASO .... % ... SELECCIONO EL VALOR DE h A USAR H=h(ICASO); % ... DEFINO EL SOPORTE Y LOS EXTREMOS % DEL INTERVALO s=[-H, 0,H/2,H,3*H/2,2*H]; a=-H/2; b=3*H/2;
EJERCICIO PROPUESTO P10_EP3
(…)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 48
% ... CALCULO LOS COEFICIENTES [c]=fP10_EP3(s,a,b); % ... EVALÚO f(x)EN EL SOPORTE... F=eval(f(s)); % ... EVALÚO VALOR APROXIMADO Y EXACTO VAPR(ICASO)=sum(c.*F); VEX(ICASO)=eval(int(f(x),a,b)); % ... Y EL ERROR COMETIDO ERRT(ICASO)=... abs(VEX(ICASO)- VAPR(ICASO)); end % DIBUJO LOS ERRORES (EN ESCALA LOG) plot(log(h),log(ERRT),'-or')
EJERCICIO PROPUESTO P10_EP3
SALVO EN EL FICHERO: P10_EP3.m
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 49
EJERCICIO PROPUESTO P8_EP3
>> P10_EP3
-0.5 0 0.5 1 1.5 2 2.5-10
-8
-6
-4
-2
0
2
4
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 50
CÁLCULO DE FÓRM. DE DERIVACIÓN NUMÉRICA
CUARTO OBJETIVO: Utilizar el Método de Coeficientes Indeterminados para encontrar fórmulas de integración numérica de tipo interpolatorio y la expresión de su error de truncamiento
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle
P10-EJ4: Mét. de Coefs. Indeterminados
51
4º) a) Dado un soporte de n abscisas sobre el que se quiere calcular una Fórmula de Integración Numérica de Tipo Interpolatorio que aproxime integrales sobre el intervalo (a, b), escríbase una función MATLAB que calcule las abscisas equivalentes en un intervalo (α, β ) utilizando la expresión de la transformación que proceda entre las que se recogen en la figura siguiente.
α β
ξ1 ξ2 ξJ ξn
a b
s1 s2 sJ sn
· ·a b b x·a− −+
β αξ
β α β α=
− −
· ·b a xb
·a b a
− −= +
−β α−
α βξ
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 52
La función pedida consiste en programar:
JJ· ·b a sb a b a
·− −= +
−α
−α β β
ξ (J = 1, 2, …, n)
function [xi]=fP10_EJ4(s,a, b, alpha, beta)
A= (alpha*b - beta*a)/(b-a);
B= (beta-alpha)/(b-a);
xi= A+B*s;
end
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 53
b) Dado un soporte ξ de n abscisas con las que se quiere calcular una F.I.N.T.I. para aproximar el valor de integrales definidas sobre el intervalo (-1, 1), utilícese el Método de Coeficientes Indeterminados para calcular los coeficientes de dicha fórmula y la expresión del error de truncatura de la misma.
Solución: La fórmula buscada será de la forma:
Error Soporte
Coeficientes
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 54
Obligamos a que la fórmula sea exacta para g(ξ)=1:
Obligamos a que la fórmula sea exacta para g(ξ)=ξ :
Obligamos a que la fórmula sea exacta para g(ξ)=ξk (k=2,…n-1):
... ... ... ... ... ... ... ... ... ... ... ...
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 55
En resumen debemos resolver el sistema:
con:
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 56
En cuanto al error, buscaremos el menor entero m > n para el que se verifique:
siendo la expresión del error: Rg(-1,1)=K·g(m(ξ*)
con:
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 57
function [omega,K,m]=fP10_MCIREF(xi) n=length(xi); % CÁLCULO DE LOS COEFICIENTES M=ones(n,n); b=zeros(n,1); for J=2:1:n M(J,1:n)=M(J-1,1:n).*xi(1:n); end for J=1:2:n b(J,1)=2/J; end omega=inv(M)*b;
(cont.)
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 58
% CÁLCULO DEL ORDEN DE EXACTITUD Y % DE LA CONSTANTE DE ERROR xip=M(n,1:n).*xi(1:n); Vap=dot(omega,xip); m=n; if(m~=2*floor(m/2)) Vex=0; else Vex=2/(m+1); end
(cont.)
(cont.) P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 59
while ((Vex==Vap)&(m<2*n)) m=m+1; if(m~=2*floor(m/2)) Vex=0; else Vex=2/(m+1); end xipp=xip; xip(1:n)=xipp(1:n).*xi(1:n); Vap=dot(omega,xip); end K=(Vex-Vap)/factorial(m); end
(cont.) P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 60
c) Escríbase una función que tomando como argumentos de entrada: ξ un vector conteniendo las n abscisas para una fórmula que aproxime integrales en (-1, 1) ω un vector conteniendo los n pesos para una fórmula que aproxime integrales en (-1, 1) K Escalar que contiene la constante del error de la fórmula m Entero representando el orden de exactitud de la fórmula. a Extremo izquierdo de un intervalo b Extremo derecho de un intervalo obtenga la fórmula equivalente en el intervalo (a, b) así como la expresión del error de truncatura
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 61
function [s, c, OEX, CTE]= ...
fP10_EJ4c(xi,omega, K, m, a, b)
A= (a+b)/2;
B= (b-a)/2;
s= A+B*xi; % Abscisas de la fórmula
c= B*omega; % Pesos de la fórmula
OEX= m-1; % Orden de exactitud
% Constante de la expresión del error
CTE= (K/2^(m+1))*(b-a)^(m+1);
end
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 62
d) Utilícense las funciones anteriores en un programa que nos permita obtener la fórmula de tipo interpolatorio y su expresión del error, para integrar en el intervalo (a=2, b=5), una función f(x) sobre el soporte {1.8, 2.5, 3.2, 3.9, 4.6, 5.3}. Utilícese la fórmula anterior para calcular los valores aproximados de las integrales sobre (2, 5) de las funciones (x-a)p con p = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y 10. Compárese con el valor exacto y confírmese que no se contradice el orden de exactitud determinado por el programa.
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 63
clear syms x f(x) a=2; b=5; sop=[1.8, 2.5, 3.2, 3.9, 4.6, 5.3]; [xi]=fP10_EJ4(sop,a, b, -1, 1); [omega,K,m]=fP10_MCIREF(xi); [s, c, OEX, CTE]= ... fP10_EJ4c(xi,omega, K, m, a, b) vfs=f(s); Vapr=vfs*c
(cont.)
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 64
for p=0:1:10 vf=(s-a).^p; VA(p+1)=dot(c,vf); VE(p+1)=((b-a)^(p+1))/(p+1); ErrorT(p+1)=abs(VE(p+1)-VA(p+1)); end plot([0:1:10],ErrorT,'-sr')
(cont.)
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 65
>> P10_EJ4d s = 1.8000 2.5000 3.2000 3.9000 4.6000 5.3000 c = 0.0800 0.8431 0.5904 0.7278 0.7153 0.0434 OEX = 5 CTE = -8.8755e-04 Vapr = (8097*f(5/2))/9604 + (192*f(9/5))/2401 + (405*f(16/5))/686 + (3435*f(23/5))/4802 + (3495*f(39/10))/4802+(417*f(53/10))/9604
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 66
>> ErrorT ErrorT = 1.0e+03 * Columns 1 through 6 0.0000 0.0000 0.0000 0 0 0.0000 Columns 7 through 11 0.0006 0.0066 0.0436 0.2320 1.0937
0 1 2 3 4 5 6 7 8 9 10
int((x-a)p
,2..5), (Potencia)
0
200
400
600
800
1000
1200
Err
or
P10-EJ4: Mét. de Coefs. Indeterminados
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 67
EJERCICIO PROPUESTO (P10_EP4) P10_EP4. a) Escribir una función llamada fP10_TaylorR, en la que dado un soporte ξ de n abscisas con las que se quiere calcular una F.I.N.T.I. para aproximar el valor de integrales definidas sobre el intervalo (-1, 1), se combinen desarrollos en serie de Taylor para calcular los coeficientes de dicha fórmula así como la expresión del error de truncatura de la misma.
b) Utilícese la función anterior, así como las funciones fP10_EJ4 y fP10_EJ4c en un programa que nos permita obtener la fórmula de tipo interpolatorio y su expresión del error, para integrar en el intervalo (a= -π/2, b= π/2), una función f(x) sobre el soporte {-π/2, -π/4, 0, π/4, π/2}.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 68
P10_EP4. c) Utilícese la fórmula anterior para calcular los valores aproximados de las integrales de las funciones xp con p = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y 10 sobre el intervalo (a= -π/2, b= π/2) Compárense con el valor exacto y confírmese que no se contradice el orden de exactitud determinado por el programa.
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 69
SOLUCIÓN: -1 1
ξ1 ξ2 ξJ ξn
Siendo G(ξ) una primitiva de g(ξ):
exact1
o
1
g G 1V ( )d ( ) ( )G 1 G 0 1 G 0 )1( ) (−
= = − −ξ = + −ξ =∫(iv (v (viG 0 G 0 G 0 G 0 G1 1 1 1 1( ) '( ) · "( ) · '''( ) · ( ) · ( ) · ( ) ...
2 6 24 1200
720G 0 G 0= + + + + + + + −
(iv (v (viG 0 G 0 G 0 G 0 G1 1 1 1 1( ) '( ) · "( ) · '''( ) · ( ) · ( ) · ( ) ...2 6 24 120
0720
G 0 G 0− + − + − + − + =
(v (vii1 1 12 '( ) · '''( ) · ( ) · ( ) ...3 60 2520
G 0 G 0 G 0 G 0= + + + + =
(iv (vig 0 g 0 g 01 1 12 ( ) · ''( ) · ( ) · ( ) ...3 60 25
g20
0= + + + +
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 70
-1 1
ξ1 ξ2 ξJ ξn Por otra parte, la fórmula nos conduce a:
n n
aprox J J J JJ 1 J 1
V · ( ) · ( )g g 0= =
γ ξ γ ξ= = + =∑ ∑n
2 3 4 (ivJ J J J J
J 1
1 1 1· ( ) · '( ) · "( ) ·g 0 g 0 g 0 g 0 g'''( ) · ( )2 6 24
0=
= + + + + + γ ξ ξ ξ ξ∑
5 (v 6 (viJ J
1 1· ( ) · ( ) ...120 720
g 0 g 0 + +ξ +
ξ =
n n n n2 3
J J J J J J JJ 1 J 1 J 1 J 1
1 1· ( ) · · '( ) · · "(g 0 g 0 g 0 g) · · 0'''( )2 6= = = =
= + + + +
ξ
γ ξ γ γ ξ γ∑ ∑ ∑ ∑n n n
4 (iv 5 (v 6 (viJ J J J J J
J 1 J 1 J 1
1 1 1· · ( ) · · ( ) · · ( ) ...24 1
g 0 g 0 g 020 720= = =
+ + + +
ξ γ ξ γ
ξ γ∑ ∑ ∑
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 71
-1 1
ξ1 ξ2 ξJ ξn Obligando a coincidir los coeficientes de g(0), g’(0), …, g(n-1(0) en los desarrollos de Vexacto y Vaprox se tiene:
Coef. de g(0): n
J 1 2 nJ 1
2 ... 2=
= → + +γ γ +γ γ =∑n
J J 1 1 2 2 n nJ 1
· 0 · · ... · 0=
= → +ξ γ ξ γ + ξ+ξ γ γ =∑Coef. de g‘(0): n
2 2 2 2J J 1 1 2 2 n n
J 1
2 2· · · ... ·3 3=
= → +ξ γ ξ γ ξ ξ+ γ+ =γ∑Coef. de g”(0):
nn 1 (n 1) (n 1) (n 1)J J n 1 1 2 2 n n n
J 1· b · · ... · b− − − −
=
ξ γ ξ γ ξ γ ξ γ= → + + + =∑
Coef. de g(n-1(0): ……………………………………………………..
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 72
-1 1
ξ1 ξ2 ξJ ξn En resumen debemos resolver el sistema:
1 1
1 2 3 n 2 22 2 2 21 2 3 n 3 3
n 1 n 1 n 1 n 11 2 3 n n n
1 1 1 ... 1...
·.
bbb
b
..
...− − − −
γ ξ ξ ξ ξ γ ξ ξ ξ ξ γ ξ
= ξ ξ ξ γ
con: 2 si J es imparb JJ
0 si J es par
=
El mismo que en la función fP8_MCIREF
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 73
-1 1
ξ1 ξ2 ξJ ξn Como hemos obligado a que coincidan los términos con derivadas anteriores a g(n(0) el error estará dado por :
(mexacto aprox mg
m nR ( ) V V r · (1,1 g 0)
∞
=
− =− = ∑donde: n
mJ J
J 1
m nm
J JJ 1
·si m es impar
m!r·
2 si m es par(m 1)! m!
=
=
γ ξ
−= γ ξ − +
∑
∑
Y todo consiste en buscar el primer valor de m > n para el que rm NO es nulo
El mismo que en la función fP108_MCIREF
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 74
EN CONCLUSIÓN: La función fP10_Taylor_R coincide con la función fP10_MCIREF antes escrita.
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 75
function [gamma,K,m]=fP10_TaylorR(xi) % DETERMINACIÓN COEFICIENTES FÓRMULA n=length(xi); M=ones(n,n); b=zeros(n,1); for J=2:1:n M(J,1:n)=M(J-1,1:n).*xi(1:n); end for J=1:2:n b(J,1)=2/J; end gamma=inv(M)*b;
(cont.)
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 76
% CÁLCULO DE EXPRESÓN DEL ERROR xip=M(n,1:n).*xi(1:n); Vap=dot(gamma,xip); % Valor con fórmula m=n; if(m~=2*floor(m/2)) % Valor exacto Vex=0; else Vex=2/(m+1); end
(cont.)
(cont.)
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 77
% SI DIFIEREN MENOS QUE EL epsilon DE % MATLAB SE INCREMENTA ORDEN Y SE % RECALCULAN VALOR EXACTO Y APROXIMADO while ((abs(Vex-Vap)<eps)&(m<2*n)) m=m+1; if(m~=2*floor(m/2)) Vex=0; else Vex=2/(m+1); end xipp=xip; xip(1:n)=xipp(1:n).*xi(1:n); Vap=dot(gamma,xip); end
(cont.)
(cont.)
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 78
% CONSTANTE DE EXPRESIÓN DE ERROR K=(Vex-Vap)/factorial(m); end
(cont.) EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 79
b) clear syms x f(x) a=-pi/2; b=pi/2; sop=[a, -pi/4, 0, pi/4, b]; [xi]=fP10_EJ4(sop,a, b, -1, 1); [gamma,K,m]=fP10_TaylorR(xi); [s, c, OEX, CTE]=fP10_EJ4c(xi,gamma, K,... m, a, b) vfs=f(s); Vapr=vfs*c
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 80
>> P10_EP4 s = Columns 1 through 3 -1.570796326794897 -0.785398163397448 0 Columns 4 through 5 0.785398163397448 1.570796326794897 c = 0.244346095279207 1.117010721276370 0.418879020478640 1.117010721276372 0.244346095279206 OEX = 5 CTE = -0.001560584711773 ...
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 81
... OEX = 5 CTE = -0.001560584711773 (-14/8971) Vapr = (2*pi*f(0))/15 + (7*pi*f(-pi/2))/90 + (7*pi*f(pi/2))/90 + (16*pi*f(-pi/4))/45 + (16*pi*f(pi/4))/45
( ) ( ) ( ) ( ) ( )( )2
2
f(x)·dx · 7·f 32·f 12·f 0 32·f 7·f2 4 4 290
π
π−
π π π π π= − + − + + + −∫
( )6 (v14 ·f z8971
− π
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 82
% COMPLETAMOS P10_EP4 con lo que sigue: for p=0:1:10 vf=(s-a).^p; VA(p+1)=dot(c,vf); VE(p+1)=((b-a)^(p+1))/(p+1); ErrorT(p+1)=abs(VE(p+1)-VA(p+1)); end plot([0:1:10],ErrorT,'-sr') xlabel(... 'int((x-a)^p,-pi/2..pi/2), (Potencia)') ylabel('Error')
c) EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 83
0 1 2 3 4 5 6 7
int((x-a)p
,-pi/2..pi/2), (Potencia)
0
2
4
6
8
10
12
14
Err
or
Detalle con potencias 0 a 7ª
EJERCICIO PROPUESTO (P10_EP4)
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 84
FÓRMULAS COMPUESTAS
QUINTO OBJETIVO: Construir fórmulas de intergación numérica de tipo interpolatorio COMPUESTAS a partir de fórmulas simples.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 85
Se denominan fórmulas de integración numérica COMPUESTAS a aquellas que se resultan de subdividir el intervalo de integración en N subintervalos y aplicando en cada uno de ellos una fórmula de integración numérica simple
a b
a1 b1≡a2 bJ-1≡aJ bJ≡aJ+1 bN-1≡aN bN≡aN+1
J
J
bb N
J 1a a
f(x)·dx f(x)·dx=
=
∑∫ ∫
I1 IJ IN
FÓRMULAS COMPUESTAS
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 86
a b
a1 b1≡a2 bJ-1≡aJ bJ≡aJ+1 bN-1≡aN bN≡aN+1
( )J J
J
bb nN N(J) (J)k k
J 1 J 1 k 1a a
f(x)·dx f(x)·dx c ·f s= = =
= ≈ ∑ ∑ ∑∫ ∫
I1 IJ IN
bJ-1≡aJ bJ≡aJ+1 s1
(J) sk(J) snJ
(J)
FÓRMULAS COMPUESTAS
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 87
Caso más frecuente: Todos los subintervalos tienen la misma longitud y en todos ellos se usa la misma fórmula simple. EJERCICIO P10_EJ4: a) Escríbase un subprograma que calcule una aproximación del valor de la integral sobre (a, b) de una función f(x), subdividiendo el intervalo en N subintervalos y utilizando en cada uno de ellos la fórmula de Simpson. Serán argumentos de entrada N, a, b y la función f(x).
FÓRMULAS COMPUESTAS
b) Utilícese la función anterior para evaluar la aproximación de la integral sobre (-π, π ) de la función f(x) =x6- x4 + x , con N = 2, 4, 8, 16, ….,1024.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 88
FÓRMULAS COMPUESTAS
J
J
bb N
J 1a a
f(x)·dx f(x)·dx=
= ≈
∑∫ ∫
( ) ( )N
J J 1J J 1
J 1
a aH· f a 4·f f a6 2
++
=
+ = + + = ∑
( ) ( )N N
J J 1J
J 1 J 2
a aH· f a f(b) 4· f 2· f a6 2
+
= =
+ = + + + ∑ ∑
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 89
FÓRMULAS COMPUESTAS function vapr=SimpsonC(a, b, N,f) % Definimos la longitud de cada intervalo % n=2N+1 abscisas que se utilizan H=(b-a)/N; s=[a:H/2:b]; n=length(s); % Sumamos el valor de la función en los % extremos del intervalo .... vapr=f(s(1))+f(s(n)); % ... más 4 veces el valor de la función % en los puntos medios de cada % subintervalo ... vapr=vapr+4*sum(f(s(2:2:n-1)));
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 90
FÓRMULAS COMPUESTAS
% ... más 2 veces el valor de la función % en los extremos de cada subintervalo % (con excepción del 1º y del último)... vapr=vapr+2*sum(f(s(3:2:n-2))); % ... y multiplicamos la suma por H/6 vapr=H*vapr/6; end
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 91
FÓRMULAS COMPUESTAS
clear % Declaramos simbólica la variable x % y la función f(x) syms x f(x) % Definimos los extremos del intervalo % de integración y la función a integrar a=0; b=10; f(x)= x^6-x^4+x; % Para N=2,4,8,16,32,64,128, 256, 512 y % 1024 usamos la función simpsonC para % aproximar el valor aproximado % de la integral en cada caso
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 92
FÓRMULAS COMPUESTAS
N=1; for J=1:1:11 N=N*2; H(J)=(b-a)/N; s=[a:H(J)/2:b]; valor=SimpsonC(a,b,N,f); vapr(J)=valor; H(J)=(b-a)/N; end % Calculamos el valor exacto y % el valor absoluto del error % cometido vex =eval(int(f(x),x,a,b)); ErrT=abs(vex-vapr);
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 93
FÓRMULAS COMPUESTAS
% Dibujamos la evolución del error plot(log10(H),log10(ErrT),'-sr') xlabel('Tamaño de los subintervalos') ylabel('log10(Error)')
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 94
EJERCICIO PROPUESTO P10_EP5
EJERCICIO P10_EP5: a) Escríbase un subprograma que calcule una aproximación del valor de la integral sobre (a, b) de una función f(x), subdividiendo el intervalo en N subintervalos y utilizando en cada uno de ellos la fórmula de 3/8. Serán argumentos de entrada N, a, b y la función f(x).
b) Utilícese la función anterior para evaluar la aproximación de la integral sobre (2, 12 ) de la función f(x) =x6-x4+x , con N = 2, 4, 8, 16, ….,1024.
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 95
J
J
bb N
J 1a a
f(x)·dx f(x)·dx=
= ≈
∑∫ ∫
( ) ( )N
J J 1 J J 1J J 1
J 1
2a a a 2aH· f a 3·f 3·f f a8 3 3
+ ++
=
+ + = + + = ∑
( )N
J J 1 J J 1
J 1
2a a a 2aH· f a f(b) 3· f f8 3 3
+ +
=
+ + = + + + + ∑
( )N
JJ 2
2· f a=
+
∑
EJERCICIO PROPUESTO P10_EP5
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 96
SEXTO OBJETIVO: Conocer algunos comandos utilizados por MATLAB para evaluar numéricamente integrales (los comandos trapz( ) e integral( )).
Comandos de integración numérica en MATLAB
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 97
v = trapz(Y,X,dim)
Evalúa mediante la fórmula del trapecio compuesta una función que en las abscisas especificadas en el vector X toma los valores indicados en el vector Y. Si no se especifica X se considera que todas las abscisas distanuna de otra el valor 1. En otros términos, este comando realiza la operación: ( )
N 1 N 1J 1 J 1i 1 i 2 1 N N 1
i i 1 1 J NJ 1 J 2
X XX X X X X Xv · Y Y Y · Y · Y ·2 2 2 2
− −+ −+ −
+= =
−− − − = + = + +
∑ ∑ X e Y pueden ser una matrices y en ese caso se integra cada columna de Y sobre cada fila o columna de X. El argumento dim se utiliza para indicar si se actúa sobre filas (dim=1) o sobre columnas (dim = 2) de X.
Comandos de integración numérica en MATLAB
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 98
v = integral(f,a,b,nombre,valor)
Evalúa numéricamente la integral entre a y b de la función handle (on line) f. Utiliza un método compuesto, en el que va intoduciendo cada vez más subintervalos hasta obtener dos valores aproximados suficientemente precisos (por defecto, subdivide hasta que coincidan los 10 primeros decimales). Los pares de argumentos nombre y valor son opcionales y pueden ser alguno de los siguientes:
Comandos de integración numérica en MATLAB
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 99
v = integral(f,a,b,nombre,valor)
'AbsTol' nombre
número>0 valor
Asegura error absoluto me- nor o igual al valor especifi-cado. Por defecto es 10-10
'RelTol' Número>0 Idem. con error relativo
'Waypoints' Vector Integra utilizando, entre otras, las abscisas que se escriban como elementos del Vector
'ArrayValued' 0 o 1 false o true
Si se elige 1 o True se indica que f es una función vectorial.
Comandos de integración numérica en MATLAB
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 100
>> syms x f(x) >> f(x)= x.^3.*sin(x); >> vex=eval(int(f(x),1.,2.93)) vex = 11.3766 >> XX=[1.,1.43, 1.87,2.16,2.93]; FF=f(XX); >> vtrap= eval(trapz(XX,FF)) vtrap = 10.1955 >>vint=integral(@(x) x.^3.*sin(x),... XX(1),XX(end)) vint = 11.3766
Comandos de integración numérica en MATLAB
Dep
to. d
e In
geni
ería
Geo
lógi
ca y
Min
era
E.T
.S. d
e In
geni
eros
de
Min
as y
Ene
rgía
U
nive
rsid
ad P
olité
cnic
a de
Mad
rid
Informática y Programación. Curso 2018-19
C. Conde, A. Fidalgo, R. Gómez, A. López, M. Pilar Martínez de la Calle 101