Académique Documents
Professionnel Documents
Culture Documents
Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS
Marzo, 2007
ÍNDICE
Pág.
1. INTRODUCCIÓN. ……………………….…………………………… 1
BIBLIOGRAFÍA. ……………………………………………………………… 67
ii
Programación y Métodos Numéricos Errores de redondeo
1. INTRODUCCIÓN
1
Existen programas de cálculo simbólico (MAPLE, Mathematica, DERIVE, ...) que permiten realizar
operaciones con números “exactos”. Pero su uso en grandes procesos de cálculo acaba conduciendo a
expresiones “inmanejables” que en un momento dado deben evaluarse ... con un número finito de dígitos.
1
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo 1º: Por ilustrar los dos últimos tipos de error a los que nos hemos
referido anteriormente, consideremos el proceso de cálculo que, a “grandes
rasgos”, se sigue en una máquina para evaluar eπ / 2 . La transformación de este
cálculo en un algoritmo que sólo realice operaciones aritméticas elementales se
basa en considerar el desarrollo en serie de Taylor:
x2 x n (n ∞
xi
f(x) = f(0) + x ⋅ f '(0) + ⋅ f "(0) + ... + ⋅ f (0) + ... = ∑ ⋅ f (i (0)
2! n! i=0 i!
∞
xi
ex = ∑
i=0 i!
2
Programación y Métodos Numéricos Errores de redondeo
∞
x(i) x (n+1)
R(e x ) = ∑ = ⋅ ec donde, para x > 0, c ∈ ]0,x[
i=n +1 i! (n + 1)!
x (n+1)
R(e ) ≤
x
⋅ e x < 10 −4
(n + 1)!
10
( π / 2)i
eπ / 2 ≈ ∑
i= 0 i!
3
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
por redondear tomando entonces π / 2 ≈ 1.5708. Sea cual sea la opción elegida
estaremos cometiendo un error en la representación del número π / 2 .
10
(1.5707)i (1.5707)2 (1.5707)3 (1.5707)10
eπ / 2 ≈ ∑ = 1 + 1.5707 + + + .... +
i= 0 i! 2 3! 10!
( π / 2)
2
(1.5707)2
≈ = 1.23354.... ≈ 1.2335
2 2
mientras que:
( π / 2)
2
= 1.2337005...
2
( π / 2)
3
(1.5707)2 1.5707 1.5707
≈ ⋅ ≈ 1.2335 ⋅ = 0.645819... ≈ 0.6458
3! 2 3 3
en tanto que:
( π / 2)
3
= 0.64596...
3!
Todos los sumandos de nuestro procedimiento de cálculo se ven
afectados de esta manera por un error debido al truncamiento de los resultados
a tan sólo 4 decimales. La tabla siguiente recoge los valores exactos y
aproximados de estos sumandos:
4
Programación y Métodos Numéricos Errores de redondeo
( π / 2)
i
1.5707i
i ( )i
i! i!
0 1.0000 1.0000
1 1.5707 1.57079...
2 1.2335 1.23370...
3 0.6458 0.64596...
4 0.2535 0.25366...
5 0.0796 0.07969...
6 0.0208 0.02086...
7 0.0046 0.00468...
8 0.0009 0.00091...
9 0.0001 0.00016...
10 0.0000 0.00001...
5
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1
In = ∫ xn ⋅ sen(x) ⋅ dx (n = 1, 2, .....)
0
y, como a su vez:
1
u = x (n−1) → du = (n − 1)·x n−2
∫x
(n −1)
⋅ cos(x) ⋅ dx = =
0 dv = cos(x)·dx → v = sen(x)
1
1
= x (n−1) ⋅ sen(x)⎤⎦ − (n − 1)·∫ x (n−2) ⋅ sen(x) ⋅ dx = sen(1) + (n − 1)·In−2
0
0
resulta que:
In = -cos(1) + n·sen(1) – n·(n-1)·In-2
= 0.30116867893975....
y del valor::
1 1
I2 = ∫ x ⋅ sen(x) ⋅ dx = − cos(1) + 2·sen(1) − 2·∫ sin(x) ⋅ dx = cos(1) + 2·sen(1) − 2·=
2
0 0
= 0.22324427548393…
2
En la tabla el cálculo de los valores exactos In se realizó con 15 dígitos, de los que se
muestran sólo los 10 primeros. En cuanto a los valores Aproximados, A1 y A2 se obtuvieron
como la aproximación redondeada a 10 dígitos de I1 e I2 respectivamente. Para los demás An
(n = 3, 4, …) se utilizó la fórmula de recurrencia anterior, evaluando con 15 dígitos
significativos el valor de (-cos(1) + n·sen(1)) y sustrayendo a este resultado el valor de
n·(n-1)·An-2 y aproximando el resultado así obtenido con 10 dígitos.
6
Programación y Métodos Numéricos Errores de redondeo
7
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
8
Programación y Métodos Numéricos Errores de redondeo
Ejercicio propuesto 3: Otra forma de calcular los valores de las integrales del
ejemplo anterior consiste en, partiendo del valor de In obtener los valores de
las integrales precedentes. Más concretamente, si se conociera el valor de In se
tendría que:
n·sen(1) − cos(1) − In
In = -cos(1) + n·sen(1) – n ⋅ (n-1)·In-2 ⇒ In−2 =
n·(n − 1)
9
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
verificará que 0 < In. Además como en [0, 1] se verifica que 0 < sen(x) < 1 se
tiene que:
1
1
0 < In < ∫ x n ⋅ dx =
0
n +1
10
Programación y Métodos Numéricos Errores de redondeo
⇓
⎧98.000 ⋅ x1 + 293.970 ⋅ x 2 = −195.970
⎨
⎩ 0 ⋅ x1 + (2.010 − 0.007 ⋅ 293.970) ⋅ x 2 = ( −1.343 + 0.007 ⋅ 195.970)
⇓
⎧98.000 ⋅ x1 + 293.970 ⋅ x 2 = −195.970
⎨
⎩ 0 ⋅ x1 + (2.010 − 2.058) ⋅ x 2 = ( −1.343 + 1.372)
⇓
⎧98.000 ⋅ x1 + 293.970 ⋅ x 2 = −195.970
⎨
⎩ 0 ⋅ x1 + ( −0.048) ⋅ x 2 = 0.029
11
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
0.029
x2 = − = −0.604
0.048
Es por ello que para tener una mayor información sobre la importancia
del error cometido en cualquier proceso de cálculo, junto al error absoluto, debe
contemplarse el error relativo (o en “tanto por uno”). En lo que a errores en la
representación de números se refiere, denotando por z al valor exacto de un
número y por z a la aproximación que de él se tenga, definiremos estos dos
tipos de error como sigue:
Error absoluto: Ea = z - z
y:
z−z
Error relativo: E= ∀z ≠ 0
z
12
Programación y Métodos Numéricos Errores de redondeo
Ejemplos:
1º) El número 17/3 es 5.66666..... Su expresión en notación científica es:
0.56666666666... ⋅ 101, siendo la mantisa +0.56666666666... y siendo el
exponente 1.
13
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
3
Decimos “hipotética” pues las máquinas no utilizan la base 10 para representar los números
que manejan.
14
Programación y Métodos Numéricos Errores de redondeo
NOTAS:
1ª. A estos conjuntos de números se les denomina también sistemas de
representación científica decimal normalizada o conjunto de números
máquina F(s+1, m, M, 10).
4
En la notación del sistema F(s+1, m, M, 10) hemos escrito “s+1” pues en la práctica se
almacenarían los s decimales de la mantisa más, en otra posición adicional, el signo de la
misma.
15
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
± 0.1 ⋅ 10-1, ± 0.2 ⋅ 10-1, ± 0.3 ⋅ 10-1, ......, ± 0.8 ⋅ 10-1, ± 0.9 ⋅ 10-1,
± 0.1 ⋅ 100, ± 0.2 ⋅ 100, ± 0.3 ⋅ 100, ......, ± 0.8 ⋅ 100, ± 0.9 ⋅ 100,
± 0.1 ⋅ 101, ± 0.2 ⋅ 101, ± 0.3 ⋅ 101 , ......, ± 0.8 ⋅ 101, ± 0.9 ⋅ 101
Ejemplo:
Si se trabaja en el sistema F(5, 5, -5, 10), con s = 4 dígitos decimales en
las mantisas y se sigue un procedimiento de truncado, todos los números
z ∈ [0.1001, 0.1002[ se representan como z = 0.1001·100. Así, serían
aproximados por el mismo número máquina tanto 0.1001798 como 0.1001025.
16
Programación y Métodos Numéricos Errores de redondeo
s
CM = ∑ 9·10M−i , cm = 1·10m
i=1
Propiedad 1.
Siendo z un número máquina estrictamente positivo del sistema F(s+1, m, M,
10) cuya representación en coma flotante sea:
z = 0.d1...ds·10e y denotando por
l al menor número máquina superior a
w z se verifica que:
l
w − z = 10e-s
Demostración:
Siendo l es:
z = 0.d1...ds·10e el siguiente número máquina w
por lo que:
l −
w z = 0.0...01·10e = 1·10e−s = 10e−s
c.q.d.
17
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) Si se utilizan 4 dígitos para representar la mantisa, el número decimal dado
por 17/3 = 0.56666666666... ⋅ 101 puede representarse:
Propiedad 2.
Siendo z la representación decimal en coma flotante normalizada con “s”
dígitos de mantisa obtenida por truncamiento del número real z, y denotando
por “e” al exponente obtenido al expresar z en notación científica, se verifica
que:
| Ea | = z − z ≤ 10e−s
z−z
E= ≤ 101−s ∀z ≠ 0
z
18
Programación y Métodos Numéricos Errores de redondeo
Demostración:
Sea z = ± 0.d1d2....dsds+1.... ⋅ 10e y sea z = ± 0.d1d2....ds ⋅ 10e . Se
tiene que:
y, si z ≠ 0 :
Propiedad 3.
Siendo z la representación decimal en coma flotante con “s” dígitos de
mantisa obtenida por redondeo del número real z, y denotando por “e” al
exponente obtenido al expresar z en notación científica, se verifica que:
1
| Ea | = z − z ≤ ⋅ 10e−s
2
z−z 1
E= ≤ ⋅ 101−s ∀z ≠ 0
z 2
Demostración:
a) Examinemos en primer lugar los errores absolutos. Y consideremos primero
el caso en que z = ± 0.d1d2....dsds+1.... ⋅ 10e , es un número tal que el dígito ds+1
de su mantisa verifica que ds+1 < 5 . En esta situación z = ± 0.d1d2....ds ⋅ 10e por
lo que:
1
= 0.ds +1..... ⋅ 10e −s ≤ 0.5 ⋅ 10e−s = ⋅ 10e−s
2
19
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1
= (1 − 0.ds+1...) ⋅ 10− s ⋅ 10e = 1 − 0.ds+1... ⋅ 10e−s ≤ 0.5 ⋅ 10e −s = ⋅ 10e −s
2
20
Programación y Métodos Numéricos Errores de redondeo
21
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
(s+1) decimales
5
Tal máquina no es una máquina real pues los ordenadores actuales no operan en base 10
sino que lo hacen en aritmética binaria, octal o hexadecimal.
22
Programación y Métodos Numéricos Errores de redondeo
(s+1) decimales
6
Insistimos en que se trataría de una máquina hipotética que trabajase en base 10, cosa que
no es lo que sucede en los ordenadores actuales.
23
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) El número z10 = 6 se representa en binario por z2 = 110 ya que:
6 = 1 ⋅ 22 + 1 ⋅ 21 + 0 ⋅ 20
24
Programación y Métodos Numéricos Errores de redondeo
Ejemplo:
Para representar en binario el número z10 = -172 se puede proceder
como sigue:
• b0 ← 1
25
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎛ 10 ⎞
i ← 4, x ← Parte entera de ⎜ ⎟ = 5 , b3 = 10 – 2 ⋅ 5 = 0,
⎝ 2 ⎠
y ← 5
⎛5⎞
i ← 5, x ← Parte entera de ⎜ ⎟ = 2 , b2 = 5 – 2 ⋅ 2 = 1,
⎝2⎠
y ← 2
⎛2⎞
i ← 6, x ← Parte entera de ⎜ ⎟ = 1, b1 = 2 – 2 ⋅ 1 = 0,
⎝2⎠
y ← 1
En resumen: z2 = -10101100.
•
Ejemplo:
Codifiquemos el número z10 = 222. La figura siguiente recoge las sucesivas
divisiones entre 2 del número considerado.
26
Programación y Métodos Numéricos Errores de redondeo
222 2
0 111 2
↑
1 55 2
b7
↑
1 27 2
b6
↑
1 13 2
b5
↑
1 6 2
b4
↑
0 3 2
b3
↑
1 1
b2
↑
b1
27
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) El número 0.8125 puede expresarse como: 1 ⋅ 2-1 +1 ⋅ 2-2 + 0 ⋅ 2-3 + 1 ⋅ 2-4 por
lo que su expresión binaria es: 0.1101.
0.37 = 0 ⋅ 2-1 +1 ⋅ 2-2 + 0 ⋅ 2-3 + 1 ⋅ 2-4 + 1 ⋅ 2-5 +1 ⋅ 2-6 + 1 ⋅ 2-7 +0 ⋅ 2-8 +1 ⋅ 2-9 +.......
posición r
tal que:
|z10 | = (1+ c1 ⋅ 2-1 + c2 ⋅ 2-2 + …..+ cp ⋅ 2-p + ….) ⋅ 2-r
28
Programación y Métodos Numéricos Errores de redondeo
Ejemplos:
1º. Obtengamos la expresión binaria, con 8 (= 7 + 1) dígitos significativos, del
número decimal -0.8125. Para ello fácilmente se comprueba que r = 1 ya que
2-1 = 0.5 < 0.8125. Por tanto tomaremos c0 ← 1 e y ← 0.8125 ⋅ 21-1 = 0.625.
Tras ello, de forma iterativa, realizaremos las siguientes operaciones:
- 0.1101000
C0 C1 C2 ..... C7
29
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
0.0001110010101....
C0 C1 C2 ..... C10
Ejercicio propuesto 7º: Determina la expresión binaria del número –1/30 con
12 dígitos significativos. •
Ejemplo:
Determinemos la expresión binaria del número z10 = –0.174. Por ser el
número dado negativo su expresión binaria comenzará en la forma –0....... .
Para determinar el primer dígito decimal multipliquemos |z10| = 0.174 por 2,
obteniendo: 0.174 × 2 = 0.348
30
Programación y Métodos Numéricos Errores de redondeo
Ejemplo:
La expresión binaria del número –172.112 puede obtenerse expresando en
base 2 la parte entera, -172, como se hizo en el ejemplo con el que se ilustró el
algoritmo 1º y añadiendo como parte decimal la expresión binaria de 0.112
obtenida en el segundo de los ejemplos con que se ilustró el algoritmo 2º.
Concretamente:
Base 10 Base 2
-172 ↔ -10101100
-0.112 ↔ -0.0001110010101....
-172 + (-0.112) = -117.112 ↔ -10101100. 0001110010101.....
•
7
En el ejercicio resuelto nº 5 puede encontrarse un algoritmo y un programa en MAPLE que codifica en
binario números decimales según lo que se expondrá en este apartado.
31
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) Según se detalló en el ejemplo anterior, el número decimal –172.112 se
escribía en base 2 en la forma -10101100. 0001110010101...... Su
representación en coma flotante será:
-1.101100 0001110010101..... ⋅ 27 =
8
Obsérvese que, a diferencia de lo que se citó en el caso de trabajar en base 10, cuando se trabaja en
binario las mantisas tienen el dígito a la izquierda del punto decimal no nulo. Este hecho se justifica
porque, como se detallará posteriormente, en los ordenadores sólo se almacenará la parte decimal de la
mantisa y de esta forma se puede “ahorrar” el espacio de memoria que ocuparía el “1” que precede al
punto decimal.
32
Programación y Métodos Numéricos Errores de redondeo
s dígitos decimales
9
Algunos fabricantes de máquinas de computación utilizan técnicas de aproximación de números binarios
diferentes al truncado o al redondeo que aquí se consideran.
33
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 4.
Siendo z = ± 1.d1d2...ds ⋅ 2e el número binario en coma flotante con s decimales
de mantisa que aproxima mediante la técnica de truncado al número
binario z = ± 1.d1d2...dsds+1... ⋅ 2e, se verifica que:
| Ea | = z − z ≤ 2e −s
z−z
E= ≤ 2− s ∀z ≠ 0
z
Demostración:
Sea z = ± 1.d1d2....dsds+1.... ⋅ 2e y sea z = ± 1.d1d2....ds ⋅ 2e . Se tiene que:
34
Programación y Métodos Numéricos Errores de redondeo
= 0.ds+1..... ⋅ 2e −s ≤ 2e −s
y, si z ≠ 0 :
z−z 2e − s 2− s
E= ≤ = ≤ 2− s
z 1.d1d2 ...ds ds+1... ⋅ 2 e
1.d1d2 ...ds ds+1...
c.q.d.
Propiedad 5.
Siendo z la representación binaria en coma flotante con s decimales de
mantisa obtenida por redondeo del número binario z = ± 1.d1d2...dsds+1... ⋅ 2e, se
verifica que:
1
|Ea| = z − z ≤ ⋅ 2e −s = 2e−s−1
2
z−z 1 −s
E= ≤ ⋅ 2 = 2− s−1 ∀z ≠ 0
z 2
Demostración:
a) Examinemos en primer lugar los errores absolutos. Y consideremos primero
el caso en que z = ± 1.d1d2....dsds+1.... ⋅ 2e , es un número tal que el dígito ds+1
de su mantisa verifica que ds+1 = 0. En esta situación z = ± 1.d1d2....ds ⋅ 2e por
lo que:
|Ea| = z − z = 1.d1d2 ....ds 0ds+ 2 .... − 1.d1d2 ....ds ⋅ 2e = 0.0ds + 2 .... ⋅ 2− s ⋅ 2e =
= (1 − 0.1ds+ 2 ...) ⋅ 2− s ⋅ 2e = 1 − 0.1 − 0.0ds+ 2 ... ⋅ 2e−s = 0.1 − 0.0ds+ 2 ... ⋅ 2e−s ≤
35
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
36
Programación y Métodos Numéricos Errores de redondeo
M = 1.2s-1+1.2s-1+1.2s-3+……+1.22+1.21+1.20 =2s–1
10
Son valores frecuentes para el número de bits en este caso s = 8, s = 16 ó s = 32.
37
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Dado que la mantisa de todos los reales no nulos comienza por un “1” este
dígito no se almacena y los (s+1) bits de la mantisa se destinan para:
• El primer bit almacena el indicador del signo (un 0 si es positivo y un
1 si es negativo).
Ejemplo:
Si se utilizan (t+1) = 8 bits para codificar los exponentes y se toma como
factor de escala n = 27 – 1 = 127 un código de exponente que fuese de la
forma 0000000 correspondería en base 10 al número entero 0 y por tanto al
exponente m = emin = 0 – 127 = -127. Análogamente un código de exponente
que fuese de la forma 11111111 correspondería al entero 255 y por tanto al
exponente M = emax = 255 – 127 = 128. El código 01111111 se correspondería
en base 10 con el número entero 127 y, según la técnica de escalado, con el
11
Son valores habituales s = 23 y t = 7 (simple precisión con palabras de 32 bits) o s = 52 y t = 10 (doble
precisión con palabras de 64 bits).
38
Programación y Métodos Numéricos Errores de redondeo
exponente nulo ya que enulo = 127 – 127 = 0. Se observa de esta forma que los
exponentes de los números codificados con t = 8 bits y factor de escala n =
127 pueden variar entre los valores m = –127 y M = 128.
•
NOTA: No todos los fabricantes de máquinas de cálculo utilizan el mismo factor
de escala en el escalado de los exponentes. Utilizando (t+1) bits para la
representación binaria de los exponentes es frecuente considerar n = 2t-1 ó n =
2t). Es más, algunos fabricantes introducen otras manipulaciones en este
proceso de escalado vinculadas al tratamiento de las mantisas que modifican el
rango de valores que se permite tomar a los exponentes. Ello conduce a que
con un mismo número de bits para la codificación del exponente distintas
máquinas tengan rangos de variación de exponentes “ligeramente” diferentes.
Por ejemplo, con (t+1) = 8 bits para codificar exponentes las máquinas VAX
permiten codificar números con exponentes variando en el rango mVAX = -128 a
MVAX = 127 mientras que el estándar IEEE (el más extendido en la actualidad)
tiene el rango mIEEE = -125 a MIEEE = 128.
Codificación de la mantisa
39
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1 00000000000101111010111
Expresión binaria del exponente:
+ 10 ≡ +(1⋅ 23 + 0 ⋅ 22 + 1⋅ 21 + 0 ⋅ 20 ) ↔ +1010
0 0001010 1 00000000000101111010111
EXPONENTE MANTISA •
Los números reales no nulos codificados con menor valor absoluto que
se pueden codificar serían: c = ± (1.00....0) ⋅ 2m = ± 2m
40
Programación y Métodos Numéricos Errores de redondeo
y el menor: m = -1023.
41
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
C = +(1+1 ⋅ 2-1 + 1 ⋅ 2-2 + 1 ⋅ 2-3 + ...... + 1 ⋅ 2-52) ⋅ 21023 (del orden de 1 ⋅ 10308)
y el menor será –C.
42
Programación y Métodos Numéricos Errores de redondeo
mantisa (el primero de ellos para su signo). Obtén la expresión pedida tanto
mediante truncado como mediante redondeo. Determina además el valor de la
unidad de redondeo de tal sistema de codificación, el valor en base 10 del
mayor número número codificado así como el del menor positivo y el del menor
negativo.
( )
± 1 + d1 ⋅ 2−1 + d2 ⋅ 2−2 + .... + ds ⋅ 2− s ⋅ 2e , m ≤ e ≤ M , di ∈ {0,1} (i = 1,...,s)
Ejemplo:
En un sistema de codificación binaria en coma flotante con (s+1) = 3 y
−2 ≤ e ≤ 2 , el conjunto F(3, -2, 2, 2), formado por todos los números que
pueden representarse sin error, es:
12
Obsérvese que el sistema lo hemos representado usando “(s+1)” en lugar de “s”. Ello es
debido a que, como se explicó anteriormente, en las máquinas de cálculo se almacenan los s
dígitos decimales de la mantisa más su signo ocupándose así (s+1) posiciones elementales de
memoria (bits).
43
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
F(3, -2, 2, 2) = { 0., ± (2-2), ± (2-2 + 2-4), ± (2-2 + 2-3), ± (2-2 + 2-3 +2-4),
± (2-1), ± (2-1 + 2-3), ± (2-1 + 2-2), ± (2-1 + 2-2 +2-3),
± (20), ± (20 + 2-2), ± (20 + 2-1), ± (20 + 2-1 +2-2),
± (21), ± (21 + 2-1), ± (21 + 20), ± (21 + 20 +2-1),
± (22), ± (22 + 20), ± (20 + 21), ± (22 + 21 +20) } =
2(s+1) ⋅ (M-m+1) + 1
números reales distintos.
Demostración:
El número de mantisas que pueden obtenerse combinando s dígitos
decimales que sólo pueden tomar los valores 0 ó 1 es 2s. Como cada mantisa
puede ir precedida por el signo “+” o por el signo “–“, habrá 2(s+1) mantisas
distintas. Como a su vez existen (M – m + 1) exponentes distintos, se podrán
formar 2(s+1) ⋅ ( M-m+1) números no nulos. A ellos se les debe añadir el número
0. para obtener el resultado dado en el enunciado. c.q.d.
Propiedad 7.
El número máquina mayor de F(s+1, m, M, 2) es: C = 2M-s ⋅ (2(s+1)-1). El
menor número máquina de F(s+1, m, M, 2) es –C.
Demostración:
El número máquina mayor está dado en binario por: 1.111...1⋅ 2M que
se corresponde con el número en base 10 dado por:
( )
C = 1 + 2−1 + 2−2 + .... + 2− s ⋅ 2M = (2s+....+20) ⋅ 2M-s
44
Programación y Métodos Numéricos Errores de redondeo
C = 2M-s ⋅ (2(s+1)-1).
Propiedad 8.
El número máquina estrictamente positivo de menor valor absoluto en el
sistema de codificación F(s+1, m, M, 2) es c = 2m. El número máquina
estrictamente negativo de menor valor absoluto en el sistema F(s, m, M, 2)
es –c.
Demostración:
El menor número máquina estrictamente positivo será 1.0...0 ⋅ 2m que en
base 10 se corresponde con el número:
c = 2m
Ejemplo:
En el ejemplo antes desarrollado con (s+1) = 3, m = -2, M = 2 puede
comprobarse que:
C = 22-2 ⋅ (23-1) = 1 ⋅ ( 8 − 1) = 7
Y el número menor es –7.
45
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 9.
Sea F(s+1, m, M, 2) el conjunto de números máquina formados con s bits para
almacenar la mantisa (el primero de ellos para el signo de la misma) y con
exponentes pertenecientes a [m, M]. La distancia entre un número máquina
con exponente “e” y el menor número máquina que es mayor que él, está dada
por 2e-s.
Demostración:
Sea ni un número máquina positivo y tal que su exponente sea “e”. El
menor número máquina ni+1 positivo superior a ni se obtendrá mediante:
ni+1 = ni + 0.0....01⋅ 2e
donde el dígito “1” de la mantisa del segundo sumando ocupa la posición del
decimal s. Por tanto:
|ni+1 – ni| = 0.0....01⋅ 2e = 1⋅ 2− s ⋅ 2e = 2e−s
c.q.d.
Ejemplo:
En el sistema F(3, -2, 2, 2) detallado en ejemplos anteriores fácilmente
se comprueba que la distancia entre números máquina consecutivos del
subconjunto:
{1.00 ⋅ 2-2 , 1.01 ⋅ 2-2 , 1.10 ⋅ 2-2 , 1.11 ⋅ 2-2 , 1.00 ⋅ 2-1} ≡
≡ { 0.25, 0.3125, 0.375, 0.4375, 0.5 }
46
Programación y Métodos Numéricos Errores de redondeo
Propiedad 10.
Si los números reales se aproximan mediante redondeo por un número
máquina del sistema F(s+1, m, M, 2), se produce error de overflow para todo
número real con valor absoluto mayor o igual que: 2M-s-1 ⋅ (2s+2-1)
Demostración:
Puesto que el mayor número máquina es N = 1.1....1 ⋅ 2M el error de
overflow, aproximando por redondeo, se producirá para todo número real
mayor o igual a aquel cuya expresión binaria en coma flotante tenga los s
primeros dígitos binarios decimales de su mantisa iguales que los de N y el
dígito decimal ds+1 igual a 1 siendo nulos todos los demás dígitos de la mantisa.
Por tanto dicho número será:
( )
20 + 2−1 + 2−2 + .... + 2− s−1 ⋅ 2M = 2M-s-1 ⋅ (2s+2-1)
c.q.d.
47
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
En el sistema F(3, -2, 2, 2) considerado en ejemplos anteriores, el menor
número real positivo que produce error de overflow (aproximando por
redondeo) es:
22-3 ⋅ (23+1-1) = 2-1 ⋅ (16-1) = 7.5
lo que nos indica que su expresión binaria en coma flotante será: 1.111 ⋅22
Sin embargo cualquier número del intervalo [7, 7.5[ tendría el tercer
dígito decimal de su mantisa binaria igual a 0 por lo que sí se redondearía a
1.11 ⋅ 22.
Ejercicio propuesto 11º: Determina el número real positivo a partir del cual se
produce error de overflow en un sistema F(s+1, m, M, 2) si los números reales
se aproximan por números máquina mediante truncado.
•
48
Programación y Métodos Numéricos Errores de redondeo
4. PROPAGACIÓN DE ERRORES
Los errores que se cometen en la representación de los datos numéricos
con los que se quiera inicializar un algoritmo (por ejemplo al redondear o
truncar los números π , e, 2/3, ...) pueden amplificarse al redondear los
resultados de las operaciones aritméticas que a partir de ellos se realicen en el
proceso de cálculo (véanse en este sentido los ejemplos de motivación que se
incluyeron en el primer apartado de este tema). Si se quiere analizar
rigurosamente la forma en que se propagan los errores es necesario trabajar
en la base numérica con la que opere la máquina de cálculo concreta
(habitualmente 2, 8 ó 16). No obstante resulta más sencillo para quien se
enfrenta por primera vez a este tipo de análisis poner de manifiesto estos
aspectos trabajando en base 10 y, dado que ello no limita la validez cualitativa
de los resultados que se obtengan, será en la base 10 en la que ilustraremos el
efecto de las operaciones aritméticas sobre los errores de redondeo.
Ejemplo:
En un sistema F(5,-5, 5, 10) son números (decimales) máquina los
números 0.9713 ⋅ 10-2 y -0.2345 ⋅ 10-2 . El producto (exacto) de estos dos
números sería: -0.22776985 ⋅10 −4 . La mantisa de este número tiene 8 dígitos
decimales y por ello se redondearía al número máquina: -0.2278 ⋅10−4 ,
49
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Consideremos un sistema de codificación F(5, -99, 99, 10) y los números
máquina de este sistema 0.2577 ⋅ 10-3 y 0.1983 ⋅ 101. El producto de estos
números se estimaría:
a) Multiplicando mantisas:
0.2577 ⋅ 0.1983 = 0.05110191 = 0.51101910 ⋅10 −1
50
Programación y Métodos Numéricos Errores de redondeo
a : b = a ⋅ b ⋅ (1 + δ1 )
(a : b) : c = ( a ⋅ b ⋅ (1 + δ1 ) ) ⋅ c ⋅ (1 + δ2 ) = a ⋅ b ⋅ c ⋅ (1 + δ1 ) ⋅ (1 + δ2 ) =
= a ⋅ b ⋅ c ⋅ (1 + δ1 + δ2 + δ1 ⋅ δ2 )
(a : b) : c ≈ a ⋅ b ⋅ c ⋅ (1 + δ1 + δ2 )
Ejemplo:
Trabajemos, redondeando, en el sistema de codificación F(5, -99, 99,
10) y consideremos los números máquina: a = 0.1234, b = 0.4321 y c =
0.6311. Multiplicando a y b se tiene que:
a ⋅ b = 0.53321140 ⋅ 10-1
por lo que:
a : b = 0.5332 ⋅ 10 −1
cometiéndose un error relativo en esta primera multiplicación:
(a ⋅ b) − (a : b)
δ1 = = 0.2138 ⋅ 10 −4
(a ⋅ b)
51
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
( a : b ) : c = 0.3365 ⋅ 10−1
cometiéndose en esta segunda multiplicación un error relativo:
(a : b) ⋅ c − (a : b) : c
δ2 = = 0.7489 ⋅ 10 −5
(a : b) ⋅ c
Propiedad 11.
Trabajando en un sistema F(s, m, M, 10) y denotando por δi el error relativo
que se comete al aproximar por un número máquina el resultado de multiplicar
el número máquina ( ((a0 : a1 ) : a2 ) : .......ai−1 ) por el número máquina ai, y por
“u” a la unidad de redondeo, se verifica que:
52
Programación y Métodos Numéricos Errores de redondeo
Ejemplo:
Trabajando en el sistema F(5, -99, 99, 10) consideremos los números
máquina: a = 0.2334, b = 0.8764 y c = 0.1230 ⋅ 10-4. Puede comprobarse que,
utilizando la técnica de redondeo para aproximar los números:
a ⋅ b = 0.20455176 ⇒ a : b = 0.2046
b ⋅ c = 0.107797200 ⋅ 10 −4 ⇒ b : c = 0.1078 ⋅ 10 −4
por lo que:
(a : b) ⋅ c = 0.25165800 ⋅ 10−5 ⇒ (a : b) : c = 0.2517 ⋅ 10 −5
53
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Sean los números a = 0.2500 ⋅100 y b = 0.1234 ⋅10 −4 . Ambos son
números máquina del sistema F(5, -99, 99, 10). Se tiene que:
0.2500
Cociente de mantisas (en 8 bits de mantisa): = 0.20259319 ⋅ 101
0.1234
Ajuste de exponentes: 101 ⋅ 100 / 10-4 = 105.
Aproximación (por redondeo) mediante un nuevo número máquina:
a ÷ b = 0.2026 ⋅ 105
El valor exacto de este cociente es: a / b = 0.2025931929 ⋅ 105 por lo que el
error (relativo) que se comete está dado por:
54
Programación y Métodos Numéricos Errores de redondeo
(a / b) − (a ÷ b)
= 0.3360 ⋅ 10 −4
(a / b)
•
NOTA: Al tratar los errores nos hemos referido a los errores relativos. En este
sentido debe observarse que siendo una estimación de la cota del error relativo
de n productos (o de n divisiones) el valor (n.u), si el resultado de dichas
operaciones es un número de gran valor absoluto, el error absoluto puede ser
también elevado.
Ejemplos:
1º. Para sumar: a = 0.9874 ⋅101 y b = 0.4325 ⋅101 se procede como sigue:
55
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
(a + b) − (a ⊕ b)
= 0.7042 ⋅ 10−4
(a + b)
2º. Para sumar a = 0.9874 ⋅101 y b = 0.4325 ⋅10 −2 se procede como sigue:
3º. Para sumar a = 0.9874 ⋅101 y b = 0.4325 ⋅10 −5 se procede como sigue:
(a + b) − (a ⊕ b)
= 0.4380 ⋅ 10−6
(a + b)
•
56
Programación y Métodos Numéricos Errores de redondeo
Propiedad 12.
Sean a y b dos números máquina positivos del sistema F(s+1, m, M, 10) tales
que a > b y sean ea y eb los exponentes de a y b respectivamente. Si se
verifica que (ea – eb – 1) >0 entonces en el número máquina a ⊕ b no
influyen los (ea – eb –1) últimos dígitos de la mantisa del número b.
Demostración:
Basta considerar que en el ajuste de exponentes previo a la suma el
dígito i-ésimo de la mantisa de “b” pasa a la posición i + (ea – eb). Por lo tanto,
una vez ajustado el exponente, el dígito que ocupe la posición (s+1) (que es el
último en influir si el resultado se redondea) será el que inicialmente ocupaba la
posición [s – (ea – eb – 1)].
c.q.d.13
Ejemplo:
En el sistema F(5, -99, 99, 10) consideremos el número máquina
a = 0.4000 ⋅101 y sumémosle “n” veces el número b = 0.5000 ⋅ 10-3. Para
sucesivos valores del índice n, la suma exacta tomaría los siguientes valores:
13
La propiedad que acaba de ser demostrada podría precisarse más indicando que el dígito
decimal (s – ea + eb + 1) del número más pequeño, “b”,sólo influye en el proceso de redondeo
(y en el caso de actuar mediante trucado no influye) del resultado.
57
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Si repetimos el ejemplo anterior pero sumando n veces los números “b” y
a su resultado añadiéndole el número “a” se tiene que:
n = 1: s1 = b ⊕ a = 0.4000 ⋅ 101
n = 2: s2 = (b ⊕ b) ⊕ a = 0.1000 ⋅ 10−3 ⊕ 0.4000 ⋅ 101 = 0.4001⋅ 101 (= S2)
n = 3: s3 = ((b ⊕ b) ⊕ b) ⊕ a = 0.1500 ⋅ 10−3 ⊕ 0.4000 ⋅ 101 = 0.4001⋅ 101
n = 4: s4 = (((b ⊕ b) ⊕ b) ⊕ b) ⊕ a = 0.2000 ⋅ 10−3 ⊕ 0.4000 ⋅ 101 =
= 0.4002 ⋅ 101 ( = S4)
.......
obteniéndose en general que:
⎧S si n es impar
sn = ⎨ n−1
⎩ Sn si n es par
•
58
Programación y Métodos Numéricos Errores de redondeo
Ejemplo:9
Una forma de aproximar el valor de la derivada de una función f(x) en un
punto x* consiste en sustituir:
f(x * +h) − f(x*)
f '(x*) = lim
h →0 h
por el cociente incremental:
f(x * +ε) − f(x*)
f '(x*) ≈
ε
donde ε es un valor a seleccionar por el usuario y que cuanto menor sea su
valor absoluto más hará que se parezca la fórmula numérica (cociente
incremental) a la fórmula exacta (la que involucra el cálculo del límite).
con lo que, denotando por ε ' = 0.1000 ⋅ 10−3 , en lugar de utilizar la fórmula
numérica de la derivada en la práctica se estaría utilizando:
f(x * +ε ') − f(x*)
f '(x*) ≈
ε
que es incorrecta para determinar el valor aproximado de una derivada.
59
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Δ = ( x * ⊕ε ) ⊕ ( − x*)
y utilizar la fórmula:
f(x * +Δ ) − f(x*)
f '(x*) ≈
Δ
60
Programación y Métodos Numéricos Errores de redondeo
(1 + δa ) ⋅ (1 + δb ) ⋅ (1 + δab ) =
= 1 + δa + δb + δab + δa ⋅ δb + δa ⋅ δab + δb ⋅ δab + δa ⋅ δb ⋅ δab ≤
≤ 1 + 3.u + 3.u2 + u3
Ejemplo:
Sea a = 2 / 3 y b = 141 / 212. Se tiene que:
2 141 1
a−b = − = = 0.001572327.... = 0.1572327... ⋅ 10 −2
3 212 636
61
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
y tras ello se realiza (en este caso de forma exacta al ser los números de la
misma magnitud) la operación:
a − b = 0.15800 ⋅ 10−2
( )
La diferencia entre a − b y a − b es: -0.00077 ⋅ 10-2 = -0.77 ⋅ 10-5. Es un
error (absoluto) “pequeño”, del mismo orden que los errores absolutos que se
cometieron al aproximar “a” y “b”. Pero ahora este error absoluto afecta a un
número también “pequeño” en valor absoluto ya que se han anulado ( al
cancelarse en la resta) los primeros dígitos de las mantisas de a y b que eran
iguales. Por ello el error relativo es ahora:
a − b − (a − b) −0.77 ⋅ 10−5
δa −b = = −2
= -0.488 ⋅ 10−2
a−b 0.15723 ⋅ 10
es decir un error relativo de un orden mil veces mayor que los que afectaban a
las aproximaciones de “a” y “b” mediante números máquina.
•
Propiedad 13.
Sean a y b son dos números positivos expresados en coma flotante decimal y
tales que a > b. Sean además α y γ dos enteros positivos tales que α ≥ γ y:
b
10−α ≤ 1 − < 10−γ
a
En estas condiciones en la operación (a – b) se anulan un número de primeros
dígitos mayor o igual que γ y menor o igual que α .
Demostración:
Sea a = 0.a1a2 ...as ... ⋅ 10p y b = 0.b1b2 ...bs ... ⋅ 10q con p ≥ q. Para restar
ambos números expresemos b en la forma: b = (0.b1b2 ...bs ... ⋅ 10q−p ) ⋅ 10p . Con
ello:
62
Programación y Métodos Numéricos Errores de redondeo
⎛ 141 212 ⎞
0.001 = 10 −3 ≤ ⎜ 1 − ⎟ < 0.01 = 10−2
⎝ 2/3 ⎠
por lo que la propiedad anterior nos indicaría que al restar las mantisas de “a” y
“b” se anularán entre 2 y 3 decimales. En este caso el número de decimales
que se anulan es de 2:
2 141
a−b = − = (0.666666.... − 0.6650943...) ⋅ 100 = 0.0015713... ⋅ 100
3 212
⎛ 0.66599 ⎞
⎜ 1 − 2 / 3 ⎟ = 0.001015...
⎝ ⎠
verificándose que:
⎛ 0.66599 ⎞
0.001 = 10 −3 ≤ ⎜ 1 − ⎟ < 0.01 = 10
−2
⎝ 2 / 3 ⎠
63
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
por lo que la propiedad anterior nos indicaría que al restar las mantisas de “a” y
“b” se anularán entre 1 y 3 decimales. En este caso el número de decimales
que se anulan es de 3:
2
a − b = − 0.66599 = (0.666666.... − 0.66599) ⋅ 100 = 0.000676... ⋅ 100
3
•
Una forma de expresar el error relativo de la resta de dos números
puede ser la siguiente:
(a − b) − (a − b) (a − a) − (b − b) εa − εb
= =
(a − b) (a − b) (a − b)
Si los números “a” y “b” (con a > b > 0) son muy “parecidos” y al
expresarlos en coma flotante tienen el mismo exponente “e”, según se
demostró en las propiedades 1ª y 3ª, se tiene que:
εa ≤ ξ ⋅ 10e−s y εb ≤ ς ⋅ 10e −s
(a − b) − (a − b) ε a − εb μ ⋅ 10e−s μ
= ≤ e −η
= ⋅ 10η−s
(a − b) (a − b) σ ⋅ 10 σ
64
Programación y Métodos Numéricos Errores de redondeo
Ejemplo:
Sean a = 2/3 y b = 0.66599 y trabajemos en el sistema F(6, -99, 99,
10). Se tiene que:
a = 0.66666666.... ⋅ 100, a = 0.66667 ⋅ 100 , εa = −0.33333 ⋅ 10−5
65
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
66
Programación y Métodos Numéricos Errores de redondeo
BIBLIOGRAFÍA
• Gerald, C.F. y Wheatley, P. O. (2000). Análisis numérico con aplicaciones
(6ª edición). Ed. Prentice Hall.
67
UNIVERSIDAD POLITÉCNICA DE MADRID
Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS
Marzo, 2007
ÍNDICE
Pág.
i
Programación y Métodos Numéricos Interpolación polinómica
1. Introducción histórica
1
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
11
Consúltense los apuntes sobre los métodos de resolución de ecuaciones no lineales.
12
Así por ejemplo, Arquímedes de Siracusa (287 a.C – 212 a.C) encontró una fórmula que
permitía calcular el área encerrada bajo un tramo de parábola.
2
Programación y Métodos Numéricos Interpolación polinómica
Dadas (n+1) abscisas x0 < x1 < ....< xn y conocidos los valores f0, f1,
...., fn que en ellas toma una cierta función f(x), determinar un
polinomio pn(x) de grado menor o igual que n cuyo grafo pase por los
(n+1) puntos (x0, f0), (x1, f1), ...., (xn, fn).
los (n+1) coeficientes {α0, α1, ...., αn} son la solución del sistema de (n+1)
ecuaciones:
1.α0 + x0·α1 + (x0)2·α2 + ...... + (x0)n·αn = f0
1.α0 + x1·α1 + (x1)2·α2 + ...... + (x1)n·αn = f1
……………………………….. ....
2 n
1.α0 + xn·α1 + (xn) ·α2 + ...... + (xn) ·αn = fn
Pero existen otras formas más cómodas de calcular este polinomio. Una de
ellas es la desarrollada por los matemáticos ingleses del siglo XVII y a la cual
nos referiremos a continuación.
3
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
con lo que se pueden calcular los coeficientes {a0 , a1, a2, ..., an} mediante:
pn(x0) = f0 ⇔ a0 = f0 (= f[x0] )
f1 − f0
pn(x1) = f1 ⇔ a0 + a1·(x1-x0) = f1 ⇒ a1 = (= f[x0 , x1])
x1 − x 0
f2 − f1 f −f
− 1 0
x − x1 x1 − x 0
⇒ a2 = 2 (= f[x0, x1, x2] )
x2 − x0
……..
4
Programación y Métodos Numéricos Interpolación polinómica
n (i−1)
pn (x) = f [ x 0 ] + ∑ f [ x 0 ,..,xi ]·∏ (x − x j )
i=1 j= 0
•
Nótese que, a fin de cuentas, la fluxión f de una función –terminología con la
que Newton introdujo el cálculo infinitesimal- no deja de ser más que la
diferencia dividida de primer orden:
Incluso métodos diseñados para otros fines en esa época pueden interpretarse
de alguna forma como métodos basados en interpolación. Así, de forma
independiente, Sir Isaac Newton y Joseph Raphson utilizaban un método de
resolución de ecuaciones no lineales de la forma f(x) = 0 que hoy es conocido
con el nombre de ambos. En cada iteración del método de Newton-Raphson13,
se determina una aproximación xi+1 de la raíz a partir de la aproximación
precedente xi mediante la fórmula:
13
Consúltense los apuntes sobre los métodos de resolución de ecuaciones no lineales
5
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
por lo que x+1 puede considerarse el punto de corte con el eje de abscisas de la
recta (polinomio de primer grado) que en xi tiene el mismo valor que la función
f(x) y cuya primera derivada tiene el valor f’(xi). Ello constituye uno de los
primeros ejemplos de lo que después sería conocido con el nombre de
interpolación de Hermite.
f(x)
xi
6
Programación y Métodos Numéricos Interpolación polinómica
7
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n
(x − x*)i (i
f(x) ≈ pn (x) = f(x*) + ∑ ·f (x*)
i=1 i!
8
Programación y Métodos Numéricos Interpolación polinómica
n n
+an·(x-x0)·(x-x1)· ..... ·(x-xn-1) = ∑ ai·∏ (x − x j )
i=0 j= 0
j≠ i
n
1
p(x0) = f0 ⇔ a0 ·∏ (x 0 − x j ) = f0 ⇒ a0 = f0 · n
j=1
∏ (x
j=1
0 − xj )
n
1
p(x1) = f1 ⇔ a1·∏ (x1 − x j ) = f1 ⇒ a1 = f1· n
j=0
j≠1 ∏ (x
j=0
1 − xj)
j≠1
……. …………………………………..
n −1
1
p(xn) = fn ⇔ an ·∏ (xn − x j ) = fn ⇒ an = fn · n−1
j= 0
∏ (x
j=0
n − xj )
⎛ n ⎞
n
⎜ (x − x j ) ⎟
pn (x) = ∑ fi ·∏
⎜ j=0 (xi − x j ) ⎟⎟
i= 0 ⎜
⎝ j≠ i ⎠
9
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
j=0 (x i − x j )
j≠i
10
Programación y Métodos Numéricos Interpolación polinómica
p2·n+1(xi) = f(xi) (i = 0, 1, …, n)
p'2·n+1(xi ) = f '(xi ) (i = 0, 1, …, n)
Dicho polinomio, que también puede demostrarse que es único, fue obtenido
por Hermite expresándolo como una combinación lineal de polinomios en la
forma:
n n
p2·n+1(x) = ∑ f(xi )·Hi,0 (x) + ∑ f '(xi )·Hi,1(x)
i= 0 i=0
donde los polinomios {H0,0(x), H1,0(x), ..., Hn,0(x), H0,1(x), Hn,1(x), ...., Hn,1(x)}
forman una base del espacio formado por todos los polinomios de grado menor
o igual que (2·n+1) y son denominados polinomios de base de Hermite (y cuya
expresión se obtendrá en apartados posteriores). A la fórmula que proporciona
p2·n+1(x) en función de esta base se la conoce con el nombre de fórmula de
interpolación de Hermite.
11
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
En el tintero se nos han quedado muchos otros matemáticos de los siglos XVII,
XVIII y XIX que obtuvieron resultados que conformaron una sólida teoría sobre
los métodos de interpolación.
12
Programación y Métodos Numéricos Interpolación polinómica
Ejemplos:
30 − 24· 2 2 16· 2 − 23
1º) El polinomio p2(x) = ·x + ·x + 1 es el polinomio
π2 2·π
interpolador de Lagrange de la función f(x) = cos(x) sobre el soporte14
⎧ π π⎫
⎨0, , ⎬ . En efecto, es un polinomio de grado menor o igual que 2 verificando:
⎩ 4 3⎭
⎛π⎞ 1 ⎛ ⎛ π ⎞⎞ ⎛π⎞ 1 ⎛ ⎛ π ⎞⎞
p2(0) = 1 (=cos(0)), p2 ⎜ ⎟ = ⎜ =cos ⎜ ⎟ ⎟ , p2 ⎜ ⎟ = ⎜ =cos ⎜ ⎟ ⎟
⎝4⎠ 2 ⎝ ⎝ 4 ⎠⎠ ⎝3⎠ 2 ⎝ ⎝ 3 ⎠⎠
14
Adoptaremos en todo cuanto sigue el convenio de que, salvo que se especifique lo contrario,
los argumentos de las funciones trigonométricas se consideran dados siempre en radianes.
13
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎡1 x0 x 02 ... x n0 ⎤ ⎧α 0 ⎫ ⎧ f0 ⎫
⎢ ⎥⎪ ⎪ ⎪ ⎪
⎢1 x1 x12 ... x1n ⎥ ⎪ α1 ⎪ ⎪ f1 ⎪
⎢1 ⎪ ⎪ ⎪ ⎪
x2 x 22 ... xn2 ⎥·⎨α 2 ⎬ = ⎨ f2 ⎬
⎢ ⎥
⎢... ... ... ... ... ⎥ ⎪ ... ⎪ ⎪...⎪
⎪ ⎪ ⎪ ⎪
⎢1 xn x n2 ... xnn ⎥⎦ ⎪⎩αn ⎭⎪ ⎩⎪ fn ⎭⎪
⎣
Si, como se ha supuesto, los puntos del soporte son distintos entre sí, la matriz
del sistema anterior es una matriz regular y por tanto el sistema anterior admite
una única15 solución (es decir que el polinomio buscado queda definido de
forma única a través de sus coeficientes obtenidos como solución del sistema
planteado).
15
No nos detenemos a demostrar esta afirmación pues la existencia y unicidad del polinomio
interpolador de Lagrange será demostrada posteriormente.
14
Programación y Métodos Numéricos Interpolación polinómica
Ejemplo:
Determinemos la expresión del polinomio interpolador de Lagrange de la
función f(x) = x4 – 3·x3 + x2 – x + 2 sobre el soporte {-1, 0, 1, 2}. En estos
puntos se tiene que: f0 = f(-1) = 8, f1 = f(0) = 2, f2 = f(1) = 0 y f3 = f(2) = -4.
f(x)
p3(x)
15
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejercicio propuesto:
Plantéese el sistema de ecuaciones que permite calcular el polinomio
⎧ π π⎫
interpolador de Lagrange de la función f(x) = sen(x) sobre el soporte ⎨0, , ⎬ .
⎩ 4 2⎭
Resuélvase dicho sistema y escríbase la expresión del polinomio interpolador.
•
Pero además, esta forma de proceder tiene menos interés que otras que
analizaremos a continuación cuando se piensa en aplicarlas a los métodos de
resolución numérica de problemas de contorno (y en concreto al método de
elementos finitos) que se aborda en otras asignaturas.
16
Programación y Métodos Numéricos Interpolación polinómica
Demostración:
Como se ha visto en el apartado anterior, el sistema (1) puede escribirse con
notación matricial en la forma:
⎡1 x0 x 02 ... xn0 ⎤ ⎧α 0 ⎫ ⎧ f0 ⎫
⎢ ⎥⎪ ⎪ ⎪ ⎪
⎢1 x1 x12 ... x1n ⎥ ⎪ α1 ⎪ ⎪ f1 ⎪
⎢1 ⎪ ⎪ ⎪ ⎪
x2 x 22 ... xn2 ⎥·⎨α 2 ⎬ = ⎨ f2 ⎬
⎢ ⎥
⎢... ... ... ... ... ⎥ ⎪ ... ⎪ ⎪...⎪
⎪ ⎪ ⎪ ⎪
⎢1 xn x n2 ... xnn ⎥⎦ ⎩⎪αn ⎭⎪ ⎩⎪ fn ⎭⎪
⎣
[X]·{α} = {f}
La matriz del sistema, habida cuenta de que las abscisas x0, x1, …., xn son
todas ellas distintas, tiene su determinante del tipo Vandermonde y por ello
distinto de 0. En otros téminos es una matriz regular que admitirá inversa [X]-1 .
Por ello existirá un único juego de coeficientes, dado por la expresión:
{α} = [X]-1·{f}
Que identifique al polinomio interpolador pn(x). c.q.d.
Definición
Se denominan polinomios de base de Lagrange asociados al soporte
formado por las (n+1) abscisas distintas {x0, x1, ... , xi, ..., xn}, y los
denotaremos por Li(x) (i= 0, …, n) , a los (n+1) polinomios de grado menor o
igual a n definidos por las expresiones:
Si n = 0: L0(x) = 1
Si n > 0:
n ⎛ x−x ⎞
Li (x) = ∏ ⎜ j
⎟⎟ (i = 0, 1, 2, ..., n) (2)
⎜
j=0 ⎝ x i − x j ⎠
j≠i
17
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Demostración:
Basta con observar que los polinomios de base de Lagrange dados por la
expresión (1) son polinomios de grado n verificando, sobre los puntos del
soporte, que verifican:
⎧0 si i ≠ k
Li (xk ) = δik = ⎨
⎩ 1 si i = k
Corolario 1
Si p(x) es una función polinómica de grado m, y n es un entero estrictamente
positivo tal que m < n, el polinomio interpolador de Lagrange pn(x) de la función
p(x) sobre cualquier soporte formado por (n+1) puntos es la propia función p(x).
18
Programación y Métodos Numéricos Interpolación polinómica
Demostración:
El grado del polinomio interpolador de Lagrange sobre un soporte
formado por (n+1) puntos debe ser menor o igual que n. La función p(x)
se ha supuesto que es un polinomio de grado m < n por lo que verifica la
condición sobre el grado exigido al polinomio interpolador de Lagrange.
Puesto que obviamente el valor de la función p(x) en los puntos del
soporte coincide con el valor p(xi) se puede concluir que p(x) es el
polinomio interpolador de Lagrange de ella misma. Y como en virtud del
teorema anterior el polinomio interpolador de Lagrange es único, puede
concluirse que pn(x) ≡ p(x).
c.q.d.
Ejemplo:
Utilicemos la fórmula de Lagrange para determinar el polinomio interpolador de
⎧ π π⎫
Lagrange de la función f(x) = sen(x) sobre el soporte ⎨0, , ⎬ .
⎩ 4 2⎭
En primer lugar calculemos los valores de la función f(x) en los puntos del
soporte:
⎛π⎞ ⎛π⎞ 1 ⎛π⎞ ⎛π⎞
f0 =f(0) = sen(0) = 0, f1 = f ⎜ ⎟ = sen ⎜ ⎟ = , f2 = f ⎜ ⎟ = sen ⎜ ⎟ = 1
⎝4⎠ ⎝4⎠ 2 ⎝2⎠ ⎝2⎠
⎛ π⎞⎛ π⎞
⎜ x − 4 ⎟·⎜ x − 2 ⎟ 8·x 2 − 6·π·x + π2
L0 (x) = ⎝ ⎠⎝ ⎠=
⎛ π ⎞⎛ π ⎞ π2
⎜ 0 − · 0 −
⎝ 4 ⎟⎠ ⎜⎝ 2 ⎟⎠
π⎞
( x − 0 )·⎛⎜ x −
⎝ 2 ⎟⎠ −16·x 2 + 8·π·x
L1(x) = =
⎛π ⎞⎛ π π⎞ π2
⎜4 − 0 ·
⎟⎜ 4 2⎟ −
⎝ ⎠⎝ ⎠
π
( x − 0 )·⎛⎜ x − ⎞⎟ 8·x 2 − 2·π·x
⎝ 4⎠
L 2 (x) = =
⎛π ⎞⎛ π π⎞ π2
⎜2 − 0 ·
⎟⎜2 4⎟ −
⎝ ⎠⎝ ⎠
19
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
π/4
π/2
π/4
π/2
20
Programación y Métodos Numéricos Interpolación polinómica
Puede compararse esta aproximación del valor de sen(1) con el valor exacto
que es 0.841470984.....
•
Propiedad 1
Dado el soporte {x0, x1, ... , xi, ..., xn}, el i-ésimo polinomio de base de
Lagrange:
n ⎛ x−x ⎞
Li (x) = ∏ ⎜ j
⎟⎟ (i = 0, 1, ....,n)
⎜
j= 0 ⎝ x i − x j ⎠
j≠ i
⎧0 si i ≠ k
Li (xk ) = δik = ⎨ (i, k = 0, 1, ..., n)
⎩ 1 si i = k
Demostración:
Es evidente -sin más que sustituir en la expresión del polinomio Li(x) la
variable x por la abscisa xk (k = 0, 1, ...., i, .., n) - que Li(x) es un polinomio de
grado menor o igual que n que se anula en todos los puntos del soporte salvo
en el punto xi en el que toma el valor unidad.
21
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 2
Dado el soporte {x0, x1, ..., xi, ..., xn}, los polinomios de base de Lagrange
asociados a dicho soporte:
n ⎛ x−x ⎞
Li (x) = ∏ ⎜ j
⎟⎟ (i = 0, 1, ...., n)
⎜
j=0 ⎝ x i − x j ⎠
j≠i
verifican que:
n
∑ L (x) = 1
i=0
i ∀x
Demostración:
La función unidad, p(x) = 1, es un polinomio de grado 0. Por tanto pertenece al
conjunto de polinomios de grado menor o igual que n para cualquier elección
del número natural n que se haga. Puesto que, en virtud del corolario 1, el
polinomio interpolador de Lagrange pn(x) de esta función p(x) sobre el soporte
de abscisas distintas {x0, x1, ..., xi, ... , xn} ha de coincidir con p(x), se verificará
que:
n n n
1 = p(x) = pn(x) = ∑ p(xi )·Li (x) = ∑1·Li (x) = ∑ Li (x)
i=0 i= 0 i=0
c.q.d.
Ejercicios propuestos:
22
Programación y Métodos Numéricos Interpolación polinómica
1º) Demostrar que siendo Π(x) el polinomio de grado (n+1) dado por la
n
expresión: Π(x) = ∏ (x − x j ) , se puede escribir el i-ésimo polinomio de base de
j=0
Lagrange sobre el soporte {x0, x1, ..., xi, ..., xn} como:
Π(x)
Li (x) =
(x − xi )·Π '(xi )
2º) Demostrar que siendo L0(x), L1(x), ...., Ln(x) los (n+1) polinomios de base
asociados al soporte {x0, x1, ..., xi, ..., xn} se verifica que:
∑x
i=0
m
i ·Li (x) = xm ∀m ≤ n
n ⎛ x−x ⎞
6º) Demuéstrese que los polinomios Li (x) = ∏ ⎜ j
⎟⎟ (i = 0, 1, ..., n)
⎜
j= 0 ⎝ x i − x j ⎠
j≠ i
asociados al soporte {x0, x1, ..., xi, ..., xn} forman una base del espacio vectorial
Pn formado por todos los polinomios (de variable y coeficientes reales) de
grado menor o igual que n.
23
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Definición
Siendo pn(x) el polinomio interpolador de Lagrange de la función f(x) sobre el
soporte {x0 , x1, .... , xn}, se denomina error de interpolación (de Lagrange) a la
función E(x) que a todo punto x le asocia el valor E(x) = f(x) – pn(x).
f(x)
p2(x)
p2(x*)
E(x*)
f(x*)
x0 x1 x* x2
24
Programación y Métodos Numéricos Interpolación polinómica
Teorema 3
Siendo f(x) una función continua de clase C(n+1)((a, b)) y denotando por pn(x) al
polinomio interpolador de Lagrange de la función f(x) sobre el soporte {x0, x1, ...,
xn}, formado por (n+1) puntos distintos de (a, b), para todo punto x*∈(a, b) se
puede encontrar algún punto ξ * ∈(a, b), dependiente del punto x* que se
escoja, verificando que:
f (n+1 ( ξ * ) n
E(x*) = f(x*) − pn (x*) = ·∏ (x * − xi )
(n + 1)! i= 0
Demostración:
Si el punto x* coincidiera con alguno de los puntos del soporte la igualdad
anterior es evidente pues el error sería nulo y el productorio que aparece en la
expresión del error también se anularía.
f(x*) − pn (x*)
n
.
∏ (x * − x )
i=0
i
f(x*) − pn (x*) n
q(xk) = pn(xk) + n
·∏ (x k − x i ) = pn(xk) = f(xk) (k = 0, 1, ..., n)
∏ (x * − xi ) i=0
i=0
f(x*) − pn (x*) n
q(x*) = pn(x*) + n
·∏ (x * − xi ) = pn(x*)+ f(x*) - pn(x*) = f(x*)
∏ (x * − xi ) i=0
i=0
25
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Definimos entonces la función F(x) = f(x) – q(x). Esta función es continua y será
de clase C(n+1)((a, b)) pues es la diferencia de dos funciones de dicho espacio.
Además la función F(x) se anula en los (n+2) puntos distintos {x0, x1,..., xn, x*}.
Aplicando sucesivamente el teorema de Rolle16 se tiene entonces que F’(x) se
anulará en al menos (n+1) puntos de (a, b), F”(x) lo hará en al menos n puntos
de (a, b), F’’’(x) será nula en al menos (n-1) puntos de (a, b), ...... y F(n+1(x) se
anulará en al menos un punto del intervalo (a, b). Denotemos por ξ * a alguno
de los puntos de (a, b) en los que se anula F(n+1(x). Se tiene así que:
(n +1
f(x*) − pn (x*) ⎛ n ⎞
=f (n+1
(ξ *) – p (n +1
n (ξ*) − n ·⎜ ∏ (x − xi ) ⎟ =
∏ (x * − xi ) ⎝ i=0
i= 0
⎠
f(x*) − pn (x*)
= f(n+1( ξ * ) – 0 – n
·(n + 1)! ⇒
∏ (x * −xi )
i=0
f (n+1(ξ*) n
⇒ f(x*) – pn(x*) = ·∏ (x * − x i )
(n + 1)! i=0
c.q.d.
Pero el teorema anterior, tal cual está formulado, tiene una aplicación práctica
escasa pues su uso en la determinación del error de interpolación de Lagrange
cometido en un punto x* exige el conocimiento previo de la (n+1)-ésima
derivada de la función f(x) (cuando lo habitual es que ni tan siquiera se conozca
la expresión de f(x)) y además la abscisa ξ * en la que evaluar dicha derivada.
Pero sin embargo sí que nos ofrece información cualitativa sobre el proceso de
16
Teorema de Rolle: “Si una función g(x) continua en el intervalo [a, b] es derivable en (a, b) y
además verifica que f(a) = f(b), entonces existe al menos un punto c∈(a, b) en el que se verifica
que f’(c) = 0”.
26
Programación y Métodos Numéricos Interpolación polinómica
se verificará que:
n
M
∀x ∈ (a,b) : |E(x)| = |f(x) – pn(x)| ≤ · ∏ (x − xi )
(n + 1)! i=0
de donde:
n
M
∀x ∈ (a,b) : |E(x)| = |f(x) – pn(x)| ≤ · Sup ∏ (x − xi )
(n + 1)! x∈( x0 ,xn ) i=0
Si se denota por h a la longitud del intervalo (a,b) es evidente que, para todo
punto x interior a dicho intervalo se verificará que: |x-xi| < h. Ello nos permite
expresar la cota de error en la forma:
M
∀x ∈ (a,b) : |E(x)| = |f(x) – pn(x)| ≤ ·h(n+1)
(n + 1)!
Las desigualdades anteriores recogen cotas superiores del máximo del valor
absoluto de la función de error de interpolación. Tales cotas pueden ser
alcanzadas o no por la función de error (siendo frecuente que el error real de
interpolación sea ostensiblemente menor que la cota así calculada). Por ello el
interés de estas acotaciones se encuentra cuando la cota calculada es
suficientemente pequeña, pues en ese caso se pueden asegurar errores de
interpolación pequeños. Cuando la cota tiene un valor alto poco se puede
asegurar sobre el error de interpolación.
Por otra parte debe señalarse que las desigualdades antes obtenidas pueden
inducir al lector que aborda por primera vez el estudio de la interpolación de
Lagrange a sacar conclusiones erróneas. Por ejemplo es frecuente que a la
vista de esta expresión se piense (erróneamente) que un incremento en el
número de puntos del soporte, sin incrementar la longitud del intervalo,
conduce a un menor error de interpolación ya que al aumentar n crece el valor
de (n+1)!. Ello no siempre sucede así pues, aunque es cierto que el factorial
(n+1)! acaba creciendo con n más rápidamente que el valor de hn , debe
tenerse en cuenta que el valor de M = Sup f (n+1(x) no es independiente de n.
x∈( x0 ,xn )
27
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Sea f la función definida mediante f(x) = sen(π·x2). Si, en el intervalo [0, 4] se
considera un soporte equidistante formado por los (n+1) puntos:
xi = 4·i/n (i = 0, 1, …, n)
4(n+1)
∀x ∈ [0,4 ] : E(x) ≤ (
· sup f (n+1(x)
(n + 1)! x∈( 0,4 )
)
En la tabla siguiente se recogen, para algunos valores de n, el valor de
4(n+1)
α=
(n + 1)!
, y los órdenes de magnitud de los valores de M = sup f (n+1(x)
x∈( 0,4 )
y ( )
4(n+1)
Cota= (
· sup f (n+1(x) .
(n + 1)! x∈(0,4 )
)
n α O(M) O(Cota)
32
2 15875 169335
3
128
4 1 · 107 8 · 107
15
1024
6 6 · 109 2 · 1010
315
28
Programación y Métodos Numéricos Interpolación polinómica
f3 = sen(9·π) = 0 , f4 = sen(16·π) = 0
29
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
verificar que también ahora la cota de error obtenida supera con mucho
el máximo valor absoluto del error de interpolación.
No obstante, a pesar de que en los casos anteriores las cotas de error son muy
elevadas, nada hace pensar que un incremento del número de puntos pueda
mejorar la calidad de la interpolación. Para ilustrar este hecho, los dibujos
siguientes recogen las gráficas obtenidas con 13 y con 14 puntos de soporte
para esta función. En la segunda de ellas, los tramos no dibujados del
polinomio interpolador exceden la escala de las ordenadas consideradas y por
ello se recoge en otra figura la gráfica del polinomio interpolador aumentando el
rango de las ordenadas representadas.
30
Programación y Métodos Numéricos Interpolación polinómica
NOTAS:
(b − a)
xi = a + i· (i = 0, 1, ..., n)
n
se verifica17 que:
17
Para una demostración detallada puede consultarse M. Crouzeix & A.L. Mignot (1983)
“Analyse numérique des équations différentielles”, Ed. Masson.
31
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n
e −n
Sup ∏ (x − xi ) ≤ C·
x∈( x0 ,xn ) i=0 n·ln(n)
·(b − a)(n+1)
n
(b − a)(n+1)
Sup ∏ (x − xi ) =
x∈( x0 ,xn ) i=0 2(2·n+1)
M·(b − a)(n+1)
E(x) ≤
(n + 1)!·2(2·n+1)
18
En la determinación de los puntos de este tipo de soportes juegan un papel esencial los
denominados polinomios de Chebyshev: {T0(x) = 1, T1(x) = x, Ti = 2·x·Ti-1(x) – Ti-2(x) (i = 2,
...,n) }. A partir de ellos pueden construirse los polinomios t0(x) = 1, t1(x) = x, ti(x) = (1/2(i-1))·Ti (i
= 2, ..., n), pudiéndose demostrar fácilmente que, en el intervalo [-1, 1], estos polinomios
forman una base del espacio de polinomios de grado menor o igual que n y que ademas ti(x) es
el polinomio de grado i con coeficiente director unitario con menor norma ||·||∞.. Es por ello que
este tipo de soportes se denomina soporte de Chebyshev en honor al matemático ruso Pafnuty
Lvovich Chebyshev (16 de mayo de 1821, Okatovo (Rusia) – 8 de diciembre de 1894, San
Petersburgo (Rusia)). Para un mayor detalle del proceso de construcción de los soportes de
Chebyshev, puede consusltarse F. Michavila & C. Conde (1987) “Métodos de Aproximación”,
Ed. Depto. de Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad
Politécnica de Madrid.
32
Programación y Métodos Numéricos Interpolación polinómica
Ejemplos:
1º. Sea f la función f(x) = ex. Si se desea interpolar esta función en un intervalo
[a, b] utilizándose un soporte formado por (n+1) puntos, una cota del error de
interpolación es:
1 ⎛ n ⎞ (b − a)(n+1) b
∀x ∈ [a,b] : |E(x)| ≤ ( )
·Sup e x ·Sup ⎜ ∏ (x − x i ) ⎟ =
(n + 1)! x∈(a,b) x∈(a,b) ⎝ i= 0 (n + 1)!
·e
⎠
Puesto que la función factorial presenta un crecimiento mayor que la función
potencial, el error de interpolación, en este caso, tenderá a cero cuando n
tienda a infinito. En otros términos, los polinomios interpoladores de Lagrange
pn(x) de la función ex obtenidos para soportes con n puntos cada vez serán
más próximos a ex (dicho más correctamente, la sucesión de polinomios pn(x)
converge a ex cuando n tiende a infinito).
e
∀x ∈ [0,1] : E(x) ≤ ·Sup((x − x 0 )·(x − x1 ))
2 x∈(0,1)
1 1 ⎛1 ⎞ 1 1
ξ0 = + ·cos ⎜ ·π ⎟ = +
2 2 ⎝ 4 ⎠ 2 2· 2
1 1 ⎛3 ⎞ 1 1
ξ1 = + ·cos ⎜ ·π ⎟ = −
2 2 ⎝ 4 ⎠ 2 2· 2
33
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
L0(x) L1(x)
34
Programación y Métodos Numéricos Interpolación polinómica
f(x)
p1(x)
⎡ π⎤ 25·sen(5·ξ * +2) ⎛ π ⎞
∀x* ∈ ⎢0, ⎥ , ∃ξ* = ξ(x*) / E(x*)=f(x*)-p1(x*) = − ·x *·⎜ x * − ⎟
⎣ 10 ⎦ 2 ⎝ 10 ⎠
Como en este caso hemos partido de una función f(x) de la que se conoce su
expresión analítica, el error de interpolación también se podría obtener
mediante:
10
E(x*) = f(x*) – p1(x*) = sen(5·x*+2) - sen(2) − ·( cos(2) − sen(2))·x
π
Ello nos permitiría, para cada punto x*, encontrar algún punto ξ * en el que se
satisfaga la expresión del error obtenida mediante el teorema. Así por ejemplo,
para el punto x* = π/20 se tendrá que utilizando la primera expresión del error:
π 25·sen(5·ξ * +2) π ⎛ π π ⎞ π2
E( )=− · ·⎜ − ⎟ = ·sen(5·ξ * +2)
20 2 20 ⎝ 20 10 ⎠ 32
y de la segunda:
π π π ⎛ π⎞ 1
E( ) = f( ) − p1( ) = sen ⎜ 2 + ⎟ −sen(2) − ·( cos ( 2 ) − sen(2) )
20 20 20 ⎝ 4⎠ 2
35
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Identificando las dos expresiones del error se tiene que en este caso el punto
ξ * estará dado por la solución de:
π2 ⎛ π⎞ 1
·sen(5·ξ * +2) = sen ⎜ 2 + ⎟ −sen(2) − ·( cos ( 2 ) − sen(2) )
32 ⎝ 4⎠ 2
por lo que:
2 1 ⎛ 16 ⎛ ⎛π ⎞ ⎞⎞
ξ* = − + ·arcsen ⎜ 2 ·⎜ 2·sen ⎜ + 2 ⎟ − sen(2) − cos(2) ⎟ ⎟
5 5 ⎝π ⎝ ⎝4 ⎠ ⎠⎠
Puede verificarse que para este valor ambas expresiones del error conducen a
que: E(π/20) = 0.10213483....
αi = 2
α
π
2≤ α ≤ 2+
2
αf = 2+π/2
36
Programación y Métodos Numéricos Interpolación polinómica
Por otra parte el valor extremo de q(x) = x·(x-π/10) en el intervalo (0, π/10) se
alcanza en el punto en que se anule q’(x) (pues en los extremos del intervalo
[0, π/10] el polinomio se anula), es decir en el punto obtenido mediante:
π π
2·xm − = 0 ⇒ xm =
10 20
en el que q(x) toma el valor:
π2
q(xm ) = − = -0.024674011...
400
q(x)
Todo lo anterior nos permite tomar como cota del error de interpolación:
⎡ π⎤ 25
∀x ∈ ⎢0, ⎥ : E(x) ≤ ·(0.909298)·(0.024675) = 0.280461...
⎣ 10 ⎦ 2
En este caso puede verificarse fácilmente el carácter de cota superior del error
del valor que se acaba de hallar. En efecto el máximo de la función error de
interpolación se produce en el punto en que se anule la expresión:
2 1 ⎛2 ⎞
c=− + ·arccos ⎜ ·( cos(2) − sen(2) ) ⎟ ≈ 0.115025797
5 5 ⎝π ⎠
37
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Las figura siguiente recoge el grafo de f(x) en el intervalo [-6, 6] y el grafo del
polinomio interpolador de Lagrange obtenido con el soporte formado por los 7
puntos {-6, -4, -2, 0, 2, 4, 6}. Puede observarse el “alto” valor del error de
interpolación máximo.
⎛ 2·i + 1 ⎞
xi = 6·cos ⎜ ·π ⎟ (i=0, 1, 2, 3, 4, 5, 6)
⎝ 14 ⎠
38
Programación y Métodos Numéricos Interpolación polinómica
⎛ (2·i + 1) ⎞
xi = 6·cos ⎜ ·π ⎟
⎝ 26 ⎠
39
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejercicios propuestos:
1º) Siendo f(x) = 2·x·e-(4·x+2) y considerando el soporte formado por los tres
puntos siguientes {x0 = 0.2, x1 = 0.5, x2 = 0.8}, se pide:
40
Programación y Métodos Numéricos Interpolación polinómica
41
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n ⎛ i−1 ⎞
= a0 + ∑ ⎜ ai ∏ (x − x j ) ⎟
i=1 ⎝ j =0 ⎠
Con esta expresión, y denotando por fi a los valores f(xi), las (n+1) igualdades
que debe verificar el polinomio interpolador de Lagrange, p(xi) = fi, conducen a
un sistema de ecuaciones triangular inferior del que es sencillo despejar el
valor de los coeficientes a0, a1, ..., an.
42
Programación y Métodos Numéricos Interpolación polinómica
f1 − f0
a0 = f0 y a1 =
x1 − x 0
Ello nos permite expresar p1(x) en la forma:
f1 − p0 (x1 )
p1(x) = p0(x) + a1·(x-x0) = p0(x) + ·(x-x0)
x1 − x 0
f1 − f0 f2 − (a0 + a1 ( x 2 − x 0 ))
a0 = f0 , a1 = y a2 =
x1 − x 0 ( x 2 − x0 )·(x 2 − x1 )
f1 − f0 f − (a0 + a1 ( x 2 − x 0 ))
p2(x) = f0 + ·(x-x0) + 2 ·(x-x0)·(x-x1) =
x1 − x 0 ( x 2 − x0 )·(x 2 − x1 )
f2 − p1(x 2 )
= p1(x) + ·(x-x0)·(x-x1)
( x 2 − x0 )·(x 2 − x1 )
donde p1(x) es el polinomio interpolador de Lagrange en el soporte {x0, x1}.
k −2 k −1
pk (x) = a0 + a1·(x − x 0 ) + ... + ak −1·∏ (x − x j ) +ak ·∏ (x − x j ) =
j=0 j=0
k −1
= pk-1(x) + ak ·∏ (x − x j )
j= 0
19
Esta afirmación se demostrará con mayor detalle un poco más adelante.
43
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
fk − pk −1(xk )
ak = k −1
∏ (x
j= 0
k − xj )
Ello tiene especial interés si se observa que el orden en el que se han ido
tomando los puntos del soporte ( {x0}, {x0, x1}, ..., {x0, x1, ..., xk}, ...) podría haber
sido diferente. En efecto, observemos que, siendo único el polinomio
interpolador, podemos expresarlo de múltiples maneras dependiendo de la
ordenación del soporte de interpolación. En efecto, si denotamos por {i0, i1, ...,
in} a una permutación cualquiera de los índices { 0, 1, ..., n} y consideramos el
mismo soporte que antes pero reordenado en la forma xi0 ,xi1 ,...,x in el { }
polinomio interpolador de Lagrange se podría expresar como:
pn (x) = a0* + a1* ·(x − x i0 ) + a2* ·(x − x i0 )·(x − xi1 ) + .... + an* ·(x − xi0 )·(x − xi1 )·...·(x − xin −1 ) =
n ⎛ i−1 ⎞
= a'0 + ∑ ⎜ ai' ·∏ (x − xij ) ⎟
i=1 ⎝ j= 0 ⎠
Obviamente los coeficientes {a0, a1, ...,an-1} y {a0* ,a1* ,...,an* −1} no tienen por qué
coincidir y ahora se tendrá que:
a0* = f ⎣⎡ xi0 ⎦⎤ = fi0 ,
.....,
ik − x ij
j= 0
donde pk* −1(x) es el polinomio de Lagrange sobre el soporte xi0 ,xi1 ,...,xik −1 . { }
44
Programación y Métodos Numéricos Interpolación polinómica
k −1 ⎛ i−1 ⎞
pk(x) = a0 + ∑ ⎜ ai ∏ (x − x j ) ⎟
i=1 ⎝ j= 0 ⎠
k −1
pk(x) = pk-1(x) + ak· ∏ (x − x j )
j=0
Supongamos dado un soporte de n puntos distintos {x0, x1, ...., xn-1} y conocidos
los valores fi (i = 0, ..., n-1) que toma una función f(x) en dichos puntos. El
polinomio interpolador de Lagrange, pn-1(x), de f(x) en este soporte verificará:
45
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Se tiene así que {x0, ..., x(n-1)} son n raíces del polinomio de grado qn(x). Ello
nos permite escribir este polinomio en la forma:
(n −1)
qn(x) = an·(x-x0)·(x-x1)·…·(x-x(n-1)) = an· ∏ (x − x j )
j=0
(n −1)
∀x ∈ {x0 ,...,xn−1} : pn(x) – pn-1(x) = an· ∏ (x − x j ) ⇒
j=0
pn (x) − pn−1(x)
⇒ an = (n −1)
∀x ∉ {x 0 ,...,xn−1}
∏ (x − x )
j=0
j
∏ (x
j =0
n − xj )
46
Programación y Métodos Numéricos Interpolación polinómica
Añadiendo ahora al soporte el punto x2 para tener {x0, x1, x2} resultará que:
n ⎛ (i−1)
⎞
= f[x 0 ] + ∑ ⎜ f [ x 0 ,...,xi ]·∏ (x − x j ) ⎟
i=1 ⎝ j= 0 ⎠
Propiedad 1.
Sea {i0, i1, ..., im-1, im} un conjunto de (m+1) índices diferentes del conjunto de
(n+1) índices {0, 1, ...., n} y sea {j0, j1, ... , jm-1, jm} cualquier otro conjunto de m
índices obtenido como una permutación del conjunto de índices {i0, i1, ..., im-1,
im}. Se verifica que:
f ⎡⎣ xi1 ,xi2 ,...,xim −1 ,xim ⎤⎦ = f ⎡⎣ x j1 ,x j2 ,....,x jm −1 ,x jm ⎤⎦
Demostración:
Según el proceso antes descrito, el cálculo del polinomio
interpolador de Lagrange mediante la fórmula de Newton se puede ir
{ }
realizando, sobre el soporte xi0 ,xi1 ,...,xim , de la forma siguiente:
47
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
{ }
Sobre xi0 : p0(x) = fi0 = f ⎡⎣ xi0 ⎤⎦
{
Sobre xi0 ,xi1 : } ( )
p1(x)=p0+ f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0 = f ⎡⎣ xi0 ⎤⎦ + f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0 ( )
{
Sobre xi0 ,xi1 ,xi2 : } p2(x) = p1(x) + f ⎡⎣ xi0 ,xi1 ,xi2 ⎤⎦· x − xi0 ·( x − xi1 ) =
( )
= f ⎡⎣ xi0 ⎤⎦ + f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0 + f ⎡⎣ xi0 ,xi1 ,xi2 ⎤⎦· x − xi0 ·( x − xi1 )
( ) ( )
........
{ }
Sobre xi0 ,xi1 ,...,xim : pm(x) = f ⎡⎣ xi0 ⎤⎦ + f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0 (+ )
+ f ⎡⎣ xi0 ,xi1 ,xi2 ⎤⎦· x − xi0 ·( x − xi1 ) +
( )
+....+ f ⎡⎣ xi0 ,xi1 ,...,x im ⎤⎦· x − x i0 ·( x − xi1 )·...·( x − xim −1 )
( )
{ }
Sobre x j0 : q0(x) = f j0 = f ⎡⎣ x j0 ⎤⎦
{
Sobre x j0 ,x j1 :} ( ) (
q1(x)=q0+ f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0 = f ⎡⎣ x j0 ⎤⎦ + f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0 )
{ }
Sobre x j0 ,x j1 ,x j2 : q2(x) = q1(x) + f ⎡⎣ x j0 ,x j1 ,x j2 ⎤⎦· x − x j0 ·( x − x j1 ) =
( )
= f ⎡⎣ x j0 ⎤⎦ + f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0 + f ⎡⎣ x j0 ,x j1 ,x j2 ⎤⎦· x − x j0 ·( x − x j1 )
( ) ( )
........
{ } (
Sobre x j0 ,x j1 ,...,x jm : qm(x) = f ⎡⎣ x j0 ⎤⎦ + f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0 + )
+ f ⎡⎣ x j0 ,x j1 ,x j2 ⎤⎦· x − x j0 ·( x − x j1 ) +
( )
+....+ f ⎡⎣ x j0 ,x j1 ,...,x jm ⎤⎦· x − x j0 ·( x − x j1 )·...·( x − x jm −1 )
( )
48
Programación y Métodos Numéricos Interpolación polinómica
Propiedad 2
Sea {i0, i1, ..., im-1, im} un conjunto de m índices diferentes del conjunto de (n+1)
índices {0, 1, ...., n}. Se verifica que:
Demostración:
Según los desarrollos realizados para obtener la fórmula de Newton, si se
{ }
considera el soporte xi 0 ,xi1 ,...,x im −1 ,x im se tendrá que el polinomio interpolador
= f ⎣⎡ xi0 ⎦⎤ + f ⎣⎡ xi0 ,xi1 ⎦⎤·(x − xi0 ) + f ⎣⎡ xi0 ,xi1 ,xi2 ⎦⎤·(x − xi0 )·(x − xi1 ) + ….+
{
Si el soporte se considera en orden inverso, xi m ,xim −1 ,...,x i1 ,xi0 , los sucesivos }
polinomios interpoladores que se irán obteniendo serán:
49
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Sobre {xim ,xim −1 ,,xim − 2 } :q2(x) = q1(x)+ f ⎡⎣ xim ,xim −1 ,xim − 2 ⎤⎦·( x − xim )(
· x − xim −1 ) =
= f ⎡⎣ xim ⎤⎦ + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim ) + f ⎡⎣ xim ,xim −1 ,xim − 2 ⎤⎦·( x − xim )(
· x − xim −1 )
........
{
Sobre xim ,xim−1 ,,xim − 2 ,...,xi0 : }
qm(x)= f ⎡⎣ xim ⎤⎦ + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim ) + f ⎡⎣ xim ,xim −1 ,xim − 2 ⎤⎦·( x − xim )(
· x − xim −1 ) +
( )
f ⎡⎣ xi0 ,xi1 ,...,xim −1 ,xim ⎤⎦· − xi0 − xi1 − ... − xim −1 + f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦ =
= f ⎡⎣ xim ,xim −1 ,...,x i1 ,xi0 ⎤⎦·( − xim − xim −1 − ... − xi1 ) + f ⎡⎣ xim ,xim −1 ,...,xi1 ⎤⎦
50
Programación y Métodos Numéricos Interpolación polinómica
de donde:
f ⎡ x i ,...,xim −1 ,xim ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦
f ⎡⎣ x i 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ = ⎣ 1
xim − x i0
c.q.d.
Fin algoritmo.
20
En la programación de este algoritmo es habitual almacenar los valores de las diferencias
divididas en una matriz de dimensiones (n+1, n+1) en las que los elementos Ai,1 almacenan los
valores f[xi-1] (i= 1, ..., n+1) y los elementos Ai,j almacenan los valores de f[xi-1, ..., xi+j-2] (j = 2,
..., n+1; i = 1, ...., n+2-j).
51
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) Utilícese la fórmula de Newton para obtener la expresión del polinomio
interpolador de Lagrange de la función f(x) = 2·x·e-(4·x+2) sobre el soporte
{x0 = 0, x1 = 1/3, x2 = ½, x3 = 1}.
Se tiene que:
f0 = f(0) = 0 = f[x0], f1 = f(1/3) ≈ 0.02378266 = f[x1],
3 1 0.00495750
+ 0.21742906·(x-0)·(x-1/3)·(x-1/2) =
52
Programación y Métodos Numéricos Interpolación polinómica
f(x)
p3(x)
3 1 0.00495750 -0.02274174
4 2/3 0.01253808
por lo que f[x0, x1,x2, x3, x4] = - 0.25991085 y el nuevo polinomio interpolador
estará dado por:
53
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
-0.25991085 · (x-0)·(x-1/3)·(x-1/2)·(x-1) =
f(x)
p4(x)
Propiedad 3
Si f ∈ Cn ( ( a,b ) ) , para todo soporte de (n+1) puntos distintos {x0, x1, ..., xn}
pertenecientes al intervalo [a, b] existe un punto ξ ∈ ( a,b ) verificando que:
f (n (ξ)
f [ x 0 ,x1,...,xn ] =
n!
Demostración:
Consideremos el soporte {x0, x1, ..., xn-1} y designemos por pn-1(x) al polinomio
interpolador de f(x) sobre él. Según la fórmula del error de interpolación de
Lagrange (proporcionada en el teorema 2 del apartado 2.2.) si f ∈ Cn ((a,b)) se
verifica que:
f (n (ξ) n−1
∀x ∈ (a,b) ∃ξ=ξ(x) / f(x)-pn-1(x) = ·∏ (x − x j )
n! j=0
En particular, si con esta fórmula se evalúa el error en el punto xn se tendrá
que:
f (n (ξ) n−1
∃ξ=ξ(xn ) / f(x n )-pn-1(xn ) = ·∏ (xn − x j )
n! j=0
de donde:
54
Programación y Métodos Numéricos Interpolación polinómica
f (n (ξ)
∃ξ / f [ x 0 ,x1,...,xn−1,xn ] =
n!
c.q.d.
Teorema 4
Siendo f ∈ C(n+1) ((a,b)) y denotando por pn(x) al polinomio interpolador de
Lagrange de f(x) construido sobre un soporte genérico de (n+1) puntos distintos
{x0, ..., xn} pertenecientes al intervalo (a, b), se verifica que:
n
∀x* ∈ (a,b) / x* ∉ {x 0 ,...,xn } : E(x*) = f(x*) - pn (x*) = f[x 0 ,x1,...,xn ,x*]·∏ (x * − x j )
j=0
Demostración:
Por definición de la diferencia dividida en {x0, ..., xn, x*} se tiene que:
f(x*) − pn (x*)
f [ x 0 ,...,xn ,x * ] = n
∏ (x * − x )
j= 0
j
21
A la misma conclusión podría haberse llegado considerando que el polinomio interpolador de
una función polinómica de grado m es ella misma y que por tanto, si se usa la fórmula de
Newton para expresar el polinomio interpolador deben ser nulas todas las diferencias divididas
construidas sobre (m+1) puntos o más ya que multiplican a productos de más de m binomios.
55
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
de donde:
n
f(x*) − pn (x*) = f [ x 0 ,...,x n ,x * ]·∏ (x * − x j )
j=0
c.q.d.
Ejemplo:
Una de las aplicaciones de las técnicas de interpolación polinomial es la
búsqueda de expresiones simplificadas de sumatorios (obviamente cuando
dichas expresiones sean polinómicas). Ilustraremos este proceso con la
n
determinación de la expresión del sumatorio: ∑ i·(i − 1)·(i − 2) .
i= 2
La forma de
n
f(n) = ∑ i·(i − 1)·(i − 2) = a0 + a1·n + ... + am·nm
i= 2
El problema “a priori” es conocer cuál es el valor de “m”22. Para ello, puesto que
en el sumatorio aparecen tres productos en los que interviene “i” es razonable
pensar que el polinomio resultante al menos será de grado 3 por lo que
actuaremos en principio con 4 puntos. Tomemos, por ejemplo el soporte {2, 3,
4, 5} y construyamos la tabla de diferencias divididas.
22
En el subapartado siguiente veremos la forma en que se puede determinar el valor de “m” sin
necesidad de realizar pruebas con distintos valores como aquí se hace.
56
Programación y Métodos Numéricos Interpolación polinómica
57
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Para verificar esta expresión se calcularán los valores del sumatorio y de f(n)
para diferentes valores de “n”. En la gráfica siguiente se recogen los valores
2·x − x 2 − 2·x 3 + x 4
calculados y el grafo de f(x) = observándose que en las
4
abscisas enteras la función coincide con los valores del sumatorio
correspondientes
Ejercicios propuestos:
1º) Demostrar que se verifica que:
⎛ ⎞
⎜ ⎟
n ⎜ ⎟
fi
f [ x 0 ,x1,....,xn−1,xn ] = ∑ ⎜ n ⎟
⎜⎜ ∏
i= 0 ⎜ ⎟
(x − x )
j =0
i j
⎟⎟
⎝ j ≠i ⎠
58
Programación y Métodos Numéricos Interpolación polinómica
∑ i ·(i − 2)
i=1
2 3
(n −1) (n −1)
∑ (i2 + i) +
i=1
∑ (n − i) sumas,
i=1
(n −1) (n −1)
∑ (i
i=1
2
+ i) + ∑ (n − i) productos
i=1
y
(n −1)
n+ ∑ i divisiones
i=1
(n −1) (n −1)
∑ i·(n − i) + 2· ∑ (n − i) sumas,
i=1 i=1
(n −1) (n −1)
∑ i·(n − i) + 2· ∑ (n − i) productos
i=1 i=1
(n −1)
2·n+ ∑ i divisiones y
i=1
n raíces cuadradas
59
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n
⎛ (i−1) ⎞ n
∑ ⎜∑
i=1 ⎝ j=1
( j − 1) ⎟ + ∑ (i − 1) sumas,
⎠ i=1
n
⎛ (i−1) ⎞ n
2·∑ ⎜ ∑ ( j − 1) ⎟ + 2·∑ (i − 1) productos y
i=1 ⎝ j=1 ⎠ i=1
(n −1)
∑ i divisiones
i=1
60
Programación y Métodos Numéricos Interpolación polinómica
61
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Al igual que sucedía para las diferencias divididas, el cálculo de las diferencias
finitas (progresivas o regresivas) puede realizarse de forma cómoda mediante
tablas como las que se ilustran a continuación (para el caso de soportes con 7
puntos). En ambas tablas los cálculos se desarrollan columna a columna.
x0 f0 Δf0 Δ 2 f0 Δ 3 f0 Δ 4 f0 Δ 5 f0 Δ 6 f0
x1 f1 Δf1 Δ 2 f1 Δ 3 f1 Δ 4 f1 Δ 5 f1
x2 f2 Δf2 Δ 2 f2 Δ 3 f2 Δ 4 f2
x3 f3 Δf3 Δ 2 f3 Δ 3 f3
x4 f4 Δf4 Δ 2 f4
x5 f5 Δf5
x6 f6
62
Programación y Métodos Numéricos Interpolación polinómica
x0 f0
x1 f1 ∇f1
x2 f2 ∇f2 ∇ 2 f2
x3 f3 ∇f3 ∇ 2 f3 ∇3 f3
x4 f4 ∇f4 ∇ 2 f4 ∇3 f4 ∇ 4 f4
x5 f5 ∇f5 ∇ 2 f5 ∇3 f5 ∇ 4 f5 ∇5 f5
x6 f6 ∇f6 ∇ 2 f6 ∇3 f6 ∇ 4 f6 ∇5 f6 ∇ 6 f6
Ejemplo:
Consideremos la función f(x) = x2 + x3 – 2·x4 y calculemos la tabla de
diferencias finitas progresivas de esta función en el soporte {0, 1, 2, 3, 4, 5}.
xi fi ∇fi ∇ 2f i ∇ 3f i ∇ 4f i ∇ 5f i
0 0
1 0 0
2 –20 -20 -20
3 –126 -106 -86 -66
4 –432 -306 -200 -114 -48
5 –1100 -668 -362 -162 -48 0
•
Como puede apreciarse en las tablas del ejemplo anterior, los valores de las
diferencias finitas progresivas y regresivas son los mismos pero colocados de
forma diferente. Esto no es una casualidad ya que:
63
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 1
Entre las diferencias finitas progresivas y las diferencias finitas regresivas de
una función f(x) en un soporte equidistante {x0, x1, ...., xn} se verifican las
igualdades:
Δfi = ∇fi+1 (i = 0, 1, …., (n-1))
Demostración:
Demostremos en primer lugar la primera igualdad. Según las definiciones de
diferencia progresiva y regresiva de primer orden se verifica que:
Con esta hipótesis se tiene que para todo entero i tal que 0 < i < (n-k) se
verifica:
64
Programación y Métodos Numéricos Interpolación polinómica
Propiedad 2
Dado el soporte equidistante {x0, x1, ..., xn} y denotando por h a la distancia
entre puntos consecutivos del soporte, se verifica que la diferencia progresiva
de orden k en el punto xi y la diferencia dividida f[xi, xi+1, …, xi+k] se relacionan
mediante la igualdad:
Demostración:
Procedamos por inducción. Para k = 0 la igualdad anterior queda en la forma:
Δ0fi = 0!·h0·f[xi] = fi (i = 0, 1, …, n)
y por tanto, para cualquier valor del índice i tal que 0 < i < (n-k), se tendrá que:
Δkfi = Δ (k-1)fi+1 - Δ (k-1)fi = (k-1)!·h(k-1)·f[xi+1, …,xi+k] - (k-1)!·h(k-1)·f[xi, …, xi+k-1] =
= (k-1)!·h(k-1)· (f[xi+1, …,xi+k] - f[xi, …, xi+k-1]) =
= (k-1)!·h(k-1)·f[xi,xi+1, …,xi+k]·(xi+k – xi) =
= (k-1)!·h(k-1)·f[xi,xi+1, …,xi+k]·k·h =
= k!·hk· f[xi,xi+1, …,xi+k]
c.q.d.
65
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 3
Dado el soporte equidistante {x0, x1, ..., xn} y denotando por h a la distancia
entre puntos consecutivos del soporte, se verifica que la diferencia progresiva
de orden k en el punto xi y la diferencia dividida f[xi, xi+1, …, xi+k] se relacionan
mediante la igualdad:
Demostración:
Combinando las dos propiedades anteriores se tiene que:
∇kfi = Δkfi-k = k!·hk·f[xi-k, xi-k+1, …, xi] (0 < k < n), (i = k, k+1, .., n)
c.q.d.
⎧ 1 si i = 0
⎛t⎞ ⎪
=
⎜ ⎟ ⎨ t·(t − 1)·(t − 2)·....·(t − i + 1)
⎝i⎠ ⎪ si i > 0
⎩ i!
66
Programación y Métodos Numéricos Interpolación polinómica
Ejemplo:
Determinemos el valor del polinomio interpolador de Lagrange de la función
⎧ π π⎫
f(x) = sen(x) sobre el soporte ⎨0, , ⎬ en el punto x = π/3. En este soporte se
⎩ 4 2⎭
1
tiene que h = π/4 y f0 = 0, f1 = y f2 = 1. Por tanto la tabla de diferencias
2
finitas progresivas será:
i xi Δ0fi Δfi Δ2fi
1
0 0 0 (1 - 2 )
2
1 1
1 π/4 (1 - )
2 2
2 π/2 1
67
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎛t⎞
donde nuevamente se utiliza el número combinatorio ⎜ ⎟ dado por:
⎝i⎠
⎧ 1 si i = 0
⎛t⎞ ⎪
⎜ ⎟ = ⎨ t·(t − 1)·(t − 2)·....·(t − i + 1)
⎝i⎠ ⎪ si i > 0
⎩ i!
Ejemplo:
De una función f(x) se conoce la siguiente tabla de valores:
i 0 1 2 3 4 5
xi 0 2 4 6 8 10
fi 0 5 30 91 204 385
68
Programación y Métodos Numéricos Interpolación polinómica
xi ∇ 0f i ∇fi ∇ 2f i ∇ 3f i ∇ 4f i ∇ 5f i
0 0
2 5 5
4 30 25 20
6 91 61 36 16
8 204 113 52 16 0
10 385 181 68 16 0 0
por lo que:
⎛ 1.5 ⎞ ⎛ 1.5 ⎞ ⎛ 1.5 ⎞ ⎛ 1.5 ⎞ ⎛ 1.5 ⎞ ⎛ 1.5 ⎞
p(5) = 0·⎜ ⎟ + 5·⎜ ⎟ + 20·⎜ ⎟ + 16·⎜ ⎟ + 0·⎜ ⎟ + 0·⎜ ⎟ =
⎝ 0 ⎠ ⎝ 1 ⎠ ⎝ 2 ⎠ ⎝ 3 ⎠ ⎝ 4 ⎠ ⎝ 5 ⎠
⎛ 1.5 ⎞ ⎛ 1.5 ⎞ ⎛ 1.5 ⎞
= 5·⎜ ⎟ + 20·⎜ ⎟ + 16·⎜ ⎟=
⎝ 1 ⎠ ⎝ 2 ⎠ ⎝ 3 ⎠
1.5 1.5·(1.5 − 1) 1.5·(1.5 − 1)·(1.5 − 2)
= 5· + 20· + 16· =
1! 2! 3!
8
= 7.5 + 7.5 + ·(1.5)·(0.5)·( −0.5) = 7.5 + 7.5 – 1 = 14
3
•
Una consecuencia de las propiedades 2 y 3 (junto con la propiedad 3 del
subapartado anterior) es que si f(x) es una función polinómica de grado m
serán nulas las diferencias finitas progresivas o regresivas de orden m y
superior, cualquiera que sea el soporte equidistante sobre el que se evalúen.
Ejemplo:
Calcúlese la expresión polinómica en “n” que proporciona el valor de:
∑ i·(n − i)
i=0
69
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
(m +1) (m +1)
= m2 + m + ∑
i= 0
i − m2 − 2·m − 1 = ∑ i − m −1
i=0
(m + 2)
Sustituyendo m por (m+1) se tendrá que: Δfm+1 = ∑ i − m − 2 , y por tanto:
i= 0
(m + 2) (m +1)
Δ 2 fm = Δfm+1 − Δfm = ∑
i=0
i−m−2− ∑ i + m + 1 = (m + 2) − 1 = m + 1
i= 0
Luego, en un soporte formado por los números naturales, todas las diferencias
finitas progresivas de orden 3 toman valor 1. Ello nos indica que las de orden
mayor o igual a 4 serán todas nulas. Por tanto la expresión polinómica buscada
es de grado 3 y con cuatro puntos de soporte será suficiente para determinarla.
n
Consideremos por ello el soporte {0, 1, 2, 3}. Los valores de f(n) = ∑ i·(n − i)
i=0
70
Programación y Métodos Numéricos Interpolación polinómica
Cuando se trabaja con este tipo de soportes puede tener ventajas utilizar un
tercer tipo de diferencias finitas, llamado diferencias finitas centradas, que
definimos a continuación.
•
La definición de las diferencias finitas centradas de mayor orden se realiza a
continuación.
71
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
La tabla de diferencias finitas centradas de la función f(x) = x7 –2·x3 +x2 – 1 en
el soporte {-2, -1, 0, 1, 2} es la siguiente
-2 -109
110
-1 1 -112
-2 114
0 -1 2 0
0 114
1 -1 116
116
2 115
72
Programación y Métodos Numéricos Interpolación polinómica
Los valores de las diferencias finitas centradas son los mismos que los que se
obtendrían en las tablas de diferencias finitas progresivas o regresivas (aunque
ordenados y denotados de diferente manera). Más concretamente:
Propiedad 4
Entre las diferencias finitas progresivas y las diferencias finitas centradas de
una misma función f(x) sobre un soporte equidistante centrado de la forma {x-n,
...., x0, ..., xn} se verifica la relación:
δkfi+k/2 = Δkfi (0 < k < 2·n) ,(i = -n, ..., n-k)
Demostración:
Según las definiciones de diferencia finita progresiva y centrada de orden 0,
para k = 0 se tiene que:
δ0fi = fi =Δ0fi (i = - n, ….., n)
por lo que la propiedad es cierta para k = 0.
Procedamos entonces por inducción suponiendo que para algún valor entero
(k-1), no negativo y menor que 2·n, se verifica la igualdad que queremos
demostrar y comprobemos que en ese caso también es cierta para el entero k.
En efecto, si la igualdad es cierta para (k-1) se tendrá que:
δ(k-1)fi+(k-1)/2 = Δ(k-1)fi (i = -n, ..., n-k+1)
y, para cualquier valor del índice i comprendido entre –n y (n-k) se tendrá que:
Δkfi = Δ(k-1)fi+1 - Δ(k-1)fi = δ(k-1)fi+1+(k-1)/2 - δ(k-1)fi+(k-1)/2 =
Por tanto, al ser cierta la igualdad para k = 0, también lo será para k = 1. Y ello
implica que también lo será para k =2. Y ello a su vez implica que lo sea para el
valor k = 3, ..... y para k = 2·n.
c.q.d.
73
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 5
Entre las diferencias finitas regresivas y las diferencias finitas centradas de una
misma función f(x) sobre un soporte equidistante centrado de la forma {x-n, ....,
x0, ..., xn} se verifica la relación:
δκφι+κ/2 = ∇kfi+k (0 < k < 2·n) ,(i = -n, ..., n-k)
Demostración:
Evidente pues es una combinación de las propiedades 1ª y 4ª demostradas en
este subapartado.
c.q.d.
La propiedad 4ª (o si se prefiere la 5ª) puede utilizarse para, junto a la
propiedad 2ª (respectivamente la propiedad 3ª), determinar la relación entre
las diferencias finitas centradas y las diferencias divididas. Dicha relación es la
que se detalla a continuación
Propiedad 6
Entre las diferencias divididas y las diferencias finitas centradas de una misma
función f(x) sobre un soporte equidistante centrado de la forma {x-n, ...., x0, ...,
xn} se verifica la relación:
δkfi+k/2 = k!·hk·f[xi, …, xi+k ] (0 < k < 2·n) ,(i = -n, ..., n-k)
Demostración:
Es una consecuencia inmediata de las propiedades 2ª y 4ª demostradas
anteriormente en este subapartado.
c.q.d.
La relación anterior nos permite, a partir de la fórmula de interpolación de
Newton, obtener distintas fórmulas de interpolación utilizando diferencias finitas
centradas. La más típica es la que se obtiene si la fórmula de interpolación de
Newton se utiliza sobre el soporte: {x0, x1, x-1, x2, x-2, ..., xn., x-n}. En ese caso:
p2·n(x) = f[x0] + f[x0, x1]·(x-x0) + f[x0, x1,x-1]·(x-x0)·(x-x1) +
+ f[x0, x1,x-1,x2]·(x-x0)·(x-x1)·(x-x-1) + …. +
74
Programación y Métodos Numéricos Interpolación polinómica
δf1/ 2 δ2 f1/ 2
f[x0] =δ0f0 , f[x0, x1] = , f[x0, x1,x-1] = f[x-1,x0, x1] = , …..
h 2!·h2
δ2·n f0
f[x0, x1,x-1,x2, …, xn, x-n] = f[x-n,…,x-2,x-1,x0, x1,x2, …, xn] =
(2·n)!·h2·n
se tiene que:
p2·n(x) = δ0 f0 + δf1/ 2 ·
( x − x 0 ) + δ2 f ·( x − x0 )·( x − x1 ) +
0
1!·h 2!·h2
+ δ3 f1/ 2 ·
( x − x0 )·( x − x1 )·( x − x −1 ) + .........+
3!·h3
+ δ2·n f0 ·
( x − x0 )·( x − x1 )·( x − x −1 )·...·(x − x −n )
(2·n)!·h2·n
+ f[x0, x-1,x1,x-2]·(x-x0)·(x-x-1)·(x-x1) + …. +
p2·n(x) = δ0 f0 + δf−1/ 2 ·
( x − x0 ) + δ2 f ·( x − x0 )·( x − x −1 ) +
0
1!·h 2!·h2
+ δ3 f−1/ 2 ·
( x − x0 )·( x − x −1 )·( x − x1 ) + .........+
3!·h3
+ δ2·n f0 ·
( x − x0 )·( x − x −1 )·( x − x1 )·...·(x − xn )
(2·n)!·h2·n
75
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Calculemos mediante la fórmula de interpolación de Stirling el polinomio
interpolador de la función f(x) = x7 –2·x3 +x2 – 1 en el soporte {-2, -1, 0, 1, 2}.
La tabla de diferencias finitas centradas de esta función fue calculada en uno
de los ejemplos anteriores y es la que se recoge a continuación (resaltándose
los valores a utilizar en la fórmula de interpolación de Stirling):
-2 -109
110
-1 1 -112
-2 114
0 -1 2 0
0 114
1 -1 116
116
2 115
Por tanto:
x −0 (x − 0)·(x − ( −1)) (x − 0)·(x − ( −1))·(x − 1)
p4(x) = -1 + (-2) · + (2) · 2
+ 114· =
1!·1 2!·1 3!·13
= 19·x3 + x2 –20·x –1
El mismo polinomio sería calculado mediante la fórmula de interpolación de
Gauss progresiva utilizando los valores resaltados en la tabla siguiente:
-2 -109
110
-1 1 -112
-2 114
0 -1 2 0
0 114
1 -1 116
116
2 115
76
Programación y Métodos Numéricos Interpolación polinómica
= 19·x3 + x2 –20·x –1
La figura siguiente recoge los grafos de f(x) = = x7 –2·x3 +x2 – 1 (en trazo
discontinuo) y de su polinomio interpolador p4(x) = 19·x3 + x2 –20·x –1 en trazo
continuo.
f(x)
p4(x)
Ejercicios propuestos:
1º) Sea f(m) la función definida sobre el conjunto de números enteros no
negativos mediante la expresión:
m
f (m) = ∑ i2 .(m − i)2
i=0
Hállese el polinomio interpolador de Lagrange de dicha función:
77
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
78
Programación y Métodos Numéricos Interpolación polinómica
{f(0
0 ,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1 ,...,fn( αn }
(k
pm (xi ) = fi(k (i = 0, 1, ...., n) , (k = 0, …, αi) “
79
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
6 2 4 3
1º) El polinomio p4(x) = 1 − ·x + 3 ·x es el polinomio interpolador de Hermite
π2 π
⎧ π ⎫
de la función f(x) = cos(x) sobre el soporte ⎨0, , π ⎬ para los enteros {1, 0, 1}.
⎩ 2 ⎭
En efecto, es un polinomio de grado menor o igual que 4 verificando:
80
Programación y Métodos Numéricos Interpolación polinómica
Si, como se ha supuesto, los puntos del soporte son distintos entre sí, la matriz
del sistema anterior es una matriz regular y por tanto el sistema anterior admite
una única23 solución (es decir que el polinomio buscado queda definido de
forma única a través de sus coeficientes obtenidos como solución del sistema
planteado).
Ejemplo:
Determinemos la expresión del polinomio interpolador de Hermite de la función
⎧ π ⎫
f(x) = cos(x) sobre el soporte ⎨0, , π ⎬ para los enteros {1, 0, 1}.
⎩ 2 ⎭
p4(x0) = f0(0 ⇔ β0 =1
p’4(x0) = f0(1 ⇔ β1 =0
2 3 4
π ⎛π⎞ ⎛π⎞ ⎛π⎞
p4(x1) = f(0
1 ⇔ β0 + β1· + β 2· ⎜ ⎟ + β 3· ⎜ ⎟ + β 4· ⎜ ⎟ =0
2 ⎝2⎠ ⎝2⎠ ⎝2⎠
23
No nos detenemos a demostrar esta afirmación pues la existencia y unicidad del polinomio
interpolador de Hermite será demostrada posteriormente por otros métodos. No obstante el
lector interesado en conocer esta demostración puede encontrarla, por ejemplo, en la
referencia F. Michavila & C. Conde (1987) “Métodos de Aproximación”, Ed. Depto. de
Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad Politécnica de Madrid
81
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
−6 4
Del sistema anterior se obtiene que: β0 = 1, β1 = 0, β2 = , β3 = 3 , β3 = 0.
π 2
π
6 2 4 3
Por tanto: p4(x) = 1 − ·x + 3 ·x
π2 π
f(x)
p4(x)
•
Ejercicio propuesto:
Plantéese el sistema de ecuaciones que permite calcular el polinomio
⎧ π π⎫
interpolador de Hermite de la función f(x) = sen(x) sobre el soporte ⎨0, , ⎬ y
⎩ 4 2⎭
para los enteros {0, 1, 2}. Resuélvase dicho sistema y escríbase la expresión
del polinomio interpolador.
•
Pero además, esta forma de proceder tiene menos interés que otras que
analizaremos a continuación cuando se piensa en aplicarlas a los métodos de
resolución numérica de problemas de contorno (y en concreto al método de
elementos finitos) que se aborda en otras asignaturas. Por ello, en los
subapartados que siguen, se estudiarán otras técnicas de cálculo del
polinomio interpolador de Hermite.
82
Programación y Métodos Numéricos Interpolación polinómica
{ }
donde f0(0 ,f0(1,f1(0 ,f1(1,...,fn(0 ,fn(1 son valores conocidos (y que supondremos que
los que tienen superíndice “(0” se corresponden con los valores de una cierta
función f(x) en los puntos del soporte y los que tienen superíndice “(1” son los
valores de la primera derivada de esta función, f’(x), en los puntos del soporte).
El problema anterior se denomina problema de interpolación polinómica de
Hermite de primer orden y podemos resumirlo en la búsqueda de un polinomio
de grado menor o igual a (2·n+1) que tanto él como su primera derivada tome
valores predeterminados en los puntos del soporte. Este problema admite una
solución única, hecho este que, junto a una forma de determinar el polinomio
buscado, se demuestra en el teorema siguiente:
Teorema 5
Siendo {x0, x1, ... , xi, ..., xn} un soporte formado por (n+1) puntos distintos y
{ }
dados (2n+2) valores f0(0 ,f0(1,f1(0 ,f1(1,...,fn(0 ,fn(1 , existe un único polinomio p2·n+1(x)
de grado menor o igual que (2·n+1) verificando las (2·n+2) igualdades:
p2·n+1(xi) = fi(0 , p'2·n+1(xi ) = fi(1 (i = 0, 1, 2, ..., n) (1)
Además dicho polinomio puede calcularse mediante la fórmula de
interpolación de Hermite:
n n n
⎛ 1 ⎞
p2·n+1(x) = ∑ fi(0 ·H0,i (x) + ∑ fi(1·H1,i (x) = ∑ ⎜ ∑ fi(k ·Hk,i (x) ⎟ (2)
i= 0 i=0 i= 0 ⎝ k = 0 ⎠
donde los polinomios H0,i(x) y H1,i(x) se denominan polinomios de base de
Hermite y están dados por las expresiones:
H0,i (x) = (1 − 2·(x − x i )·L'i (x i ) )·(Li (x) )
2
(i = 0, 1, ..., n) (3)
H1,i (x) = (x − xi )·(Li (x))
2
(i = 0, 1, ..., n) (4)
siendo Li(x) el i-ésimo polinomio de base de Lagrange:
Li (x) = ∏
n
(x − xj )
j=0 ( x i − x j )
j≠i
83
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Demostración:
a) Comencemos demostrando que el polinomio dado por la expresión (2) es el
polinomio interpolador de Hermite de f(x).
Para ello, en primer lugar, observemos que puesto que los polinomios de base
de Lagrange, Li(x), son polinomios de grado n, los polinomios de base de
Hermite, H0,i(x) y H1,i(x), son todos ellos polinomios de grado (2·n+1). Por tanto
el polinomio p2·n+1(x) dado por la expresión (2) es un polinomio de grado menor
o igual que (2·n+1) ya que es una combinación lineal de los anteriores.
Por otra parte, remplazando en (3) y (4) “x” por “xk” y recordando que:
⎧0 si i ≠ k
Li(xk) = δik = ⎨ (i, k = 0, 1, …, n),
⎩ 1 si i = k
( )
⇒ H'0,i (x k ) = −2·L'i (xi )·(Li (x k ) ) + 2· 1 − 2·(x k − xi )·L'i (x i ) ·Li (x k )·L'i (x) ⇒
2
( )
⇒ H'0,i (x k ) = −2·L'i (x i )·(Li (xk ) ) + 2· 1 − 2·(xk − x i )·L'i (xi ) ·Li (xk )·L'i (xk ) ⇒
2
⇒ H'0,i (xk ) = 0
y:
H1,i' (x) = (Li (x) ) + 2·(x − xi )·Li (x)·L'i (x) ⇒
2
⎧0 si i ≠ k
⇒ H1,i' (xk ) = δik = ⎨
⎩ 1 si i = k
84
Programación y Métodos Numéricos Interpolación polinómica
por lo que:
n n
p'2·n+1(xk ) = ∑ fi(0 ·H0,i
'
(xk ) + ∑ fi(1·H1,i' (xk ) = fk(1
i=0 i=0
lo que nos indica que cada punto del soporte es una raíz, al menos de
multiplicidad doble, del polinomio r(x). Contando cada raíz tantas veces como
su multiplicidad, lo anterior nos indica que r(x) tiene, al menos, (2·n+2) raíces.
Pero el único polinomio de grado menor o igual a (2·n+1) que posee más de
(2·n+1) raíces es el polinomio idénticamente nulo. Ello nos conduce a que:
85
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Calculemos el polinomio interpolador de Hermite de una función f(x) de la que
se sabe que:
f(0) = 0, f(1) = 1, f(2) = 8
3 3
f’(0) = 0, f’(1) = , f’(2) =
2 2
Con estos valores podemos calcular los polinomios de base de Hermite como
sigue:
3·x 5 − 17·x 4 + 33·x 3 − 23·x 2 + 4
H0,0 (x) = (1 − 2·(x − 0)·L0 (0))·(L0 (x)) =
' 2
4
H0,1(x) = (1 − 2·(x − 1)·L1(1))·(L1(x)) = x − 4·x + 4·x 2
' 2 4 3
86
Programación y Métodos Numéricos Interpolación polinómica
Hermite.
H0,0(x)
H0,1(x)
H0,2(x)
H1,1(x)
H1,2(x)
n n
p5 (x) = ∑ fi(0 ·H0,i (x) + ∑ fi(1·H1,i (x) = 0·H00 (x) + 1·H01(x) + 8·H02 (x) +
i=0 i=0
3 3
+0·H10 (x) + ·H11(x) + ·H12 (x) =
2 2
⎛3 9 ⎞ 5 ⎛ 13 ⎞ ⎛ 52 ⎞ 3 ⎛ 11 ⎞
=⎜ − ⎟·x + ⎜ 5· 2 − ⎟·x 4 + ⎜ 8 − ⎟·x + ⎜ − 2 ⎟·x 2
⎝ 2 4· 2 ⎠ ⎝ 2 ⎠ ⎝ 4· 2 ⎠ ⎝ 2· 2 ⎠
87
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Una función f(x) para la que se toman los valores de los que se ha partido en
este ejercicio es la función f(x) = x3/2 .La figura siguiente recoge esta función
f(x) junto al polinomio interpolador p5(x).
f(x)
p5(x)
•
Demostremos algunas propiedades del los polinomios de base de Hermite
Propiedad 1
• El polinomio de base H0,i(x) definido sobre el soporte {x0, ..., xi, ... ,xn} es
el único polinomio de grado menor o igual que (2·n+1) que verifica:
⎧0 si i ≠ k
H0,i(xk) = δik = ⎨ , H'0,i (xk ) = 0 (k = 0, .., n)
⎩ 1 si i = k
• El polinomio de base H1,i(x) definido sobre el soporte {x0, ..., xi, ... ,xn} es
el único polinomio de grado menor o igual que (2·n+1) que verifica:
⎧0 si i ≠ k
H1,i(xk) = 0 , H1,i' (xk ) = δik = ⎨ (k = 0, .., n)
⎩ 1 si i = k
Demostración:
Es una consecuencia inmediata del teorema anterior, pues sólo habrá un
polinomio interpolador de Hermite (H0,i(x)) de grado menor o igual a (2·n+1) que
en el soporte {x0, ..., xi, ... ,xn} tome los valores:
88
Programación y Métodos Numéricos Interpolación polinómica
Propiedad 2
Si p(x) es una función polinómica de grado m, y n es un entero estrictamente
positivo tal que m < (2·n+1), el polinomio interpolador de Hermite p2·n+1(x) de la
función p(x) sobre cualquier soporte formado por (n+1) puntos distintos es la
propia función p(x).
Demostración:
El grado del polinomio interpolador de Hermite sobre un soporte formado por
(n+1) puntos debe ser menor o igual que (2·n+1). La función p(x) se ha
supuesto que es un polinomio de grado m < (2·n+1) por lo que verifica la
condición sobre el grado exigido al polinomio interpolador de Hermite. Puesto
que obviamente el valor de la función p(x) en los puntos del soporte coincide
con el valor p(xi) y el valor de la primera derivada p’(x) en los puntos del
soporte también coincide con p’(xi) se puede concluir que p(x) es el polinomio
interpolador de Hermite de ella misma. Y como, en virtud del teorema anterior,
el polinomio interpolador de Hermite es único puede concluirse que
p2·n+1(x) ≡ p(x).
c.q.d.
Propiedad 3
Dado el soporte {x0, x1, ..., xi, ..., xn}, los polinomios de base de Hermite
asociados a dicho soporte:
( )
H0,i (x) = 1 − 2·(x − x i )·L'i (x i ) ·(Li (x) )
2
(i = 0, 1, ...., n)
verifican que:
n
∑H
i=0
i,0 (x) = 1 ∀x
Demostración:
89
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
c.q.d.
Ejercicios propuestos:
1º) Demostrar que siendo H0,i(x) y H1,i(x) (i = 0, 1, ..., n) los polinomios de base
de Hermite asociados al soporte {x0, ..., xn} se verifica que:
n n
2º) Demostrar que siendo H0,i(x) y H1,i(x) (i = 0, 1, ..., n) los polinomios de base
de Hermite asociados al soporte {x0, ..., xn} y dado el entero m cumpliendo la
condición 0 < m < 2·n+1, se verifica que:
n n
∑x
i=0
m
i ·H0,i (x) + m·∑ xi(m−1) ·H1,i (x) = xm
i= 0
90
Programación y Métodos Numéricos Interpolación polinómica
{f(0
0 ,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1 ,...,fn( αn }
(k
pm (xi ) = fi(k (i = 0, 1, ...., n) , (k = 0, …, αi) “
Teorema 6
Dados:
• Un soporte formado por (n+1) puntos distintos {x0, x1, ..., xn}
• Los (n+1) enteros no negativos {α0, α1, ..., αn}
n
• Los (m+1) valores, con m = n + ∑ α , {f
i=0
i
(0
0 ,...,f0( α0 ,f1(0 ,...,f1( α1 ,...,fn(0 ,...,fn( αn }
existe un único polinomio de grado menor o igual que m verificando las (m+1)
igualdades:
m (x i ) = fi
p(k (i = 0, 1, ..., n), (k = 0, ..., αi)
(k
(1)
91
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n
⎛ αi (k ⎞
pm (x) = ∑ ⎜ ∑ fi ·Hk,i (x) ⎟
i=0 ⎝ k =0 ⎠
αi
Hk,i (x) = hk,i (x) − ∑h
j=k +1
(j
k,i (xi )·Hj,i (x) (k = αi-1, αi-2, …, 0), (i = 0, 1, …, n)
α j +1
(x − xi )k n ⎛ x − x j ⎞
hk,i (x) = ·∏ ⎜ ⎟⎟ (k = 0, 1, …,αi), (i = 0, 1, …, n)
k! ⎜
j=0 ⎝ x i − x j ⎠
j≠i
y por h(k,ij (xi ) al valor en el punto xi de la j-ésima derivada del polinomio hk,i(x).
Demostración:
a) Demostremos que el polinomio dado en el enunciado de este teorema es
solución del problema de interpolación de Hermite.
Para ello, en primer lugar observemos que, para 0 < i < n, el polinomio hk,i(x)
n
es un polinomio de grado: k + n + ∑α
j=0
j = m – αi + k , y como 0 < k < ai se
j≠i
puede concluir que todos los polinomios hk,i(x) son de grado menor o igual que
m. Más concretamente:
Ello, a su vez implica que, para 0 < i < n, los polinomios Hαi ,i (x) = hαi ,i (x) sean
de grado: grado(Hαi ,i (x)) = m .
En cuanto a los polinomios Hαi −1,i (x) = hαi −1,i (x) − h(ααi −i 1,i (x i )·Hαi ,i (x) su grado será
menor o igual que m pues son una combinación lineal del polinomio hαi −1,i (x)
(cuyo grado es m-1) y del polinomio Hαi ,i (x) (cuyo grado es m).
92
Programación y Métodos Numéricos Interpolación polinómica
Hαi −2,i (x) = hαi − 2,i (x) − h(ααi −i −2,i1 (x i )·Hαi −1,i (x) − h(ααi −i 2,i (x i )·Hαi ,i (x)
tienen grado menor o igual que m pues son una combinación lineal del
polinomio hαi −2,i (x) (cuyo grado es m-2), del polinomio Hαi −1,i (x) (cuyo grado es
menor o igual que m) y del polinomio Hαi ,i (x) (cuyo grado es m).
Razonando de forma recursiva se concluye que todos los polinomios Hk,i (x) ,
con 0 < k < αi y 0 < i < n, son polinomios de grado menor o igual que m.
Y puesto que pm(x) es a su vez una combinación lineal de los polinomios Hk,i (x)
puede concluirse que grado(pm(x)) < m.
⎧ 1 si i = j y j = k
H(k,ij (x s ) = δis ·δ jk = ⎨ (0 < j, k < αs) , (0 < i, s < n)
⎩0 en otro caso
n
⎛ αi (k ( j ⎞
p (x s ) = ∑ ⎜ ∑ fi ·Hk,i (x s ) ⎟ = fs( j ·H(j,sj (x s ) =fs( j
(j
m (0 < j < αs) , (0 < s < n)
i= 0 ⎝ k =0 ⎠
m (x i ) = fi
p(k (0 < k < αi) , (0 < i < n)
(k
m (x i ) = fi
q(k (0 < k < αi) , (0 < i < n)
(k
93
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Denotando por r(x) al polinomio definido mediante: r(x) = pm(x) – qm(x) se tiene
que r(x) es otro polinomio de grado menor o igual que m para el que se verifica
que:
r (k (xi ) = 0 (0 < k < αi) , (0 < i < n)
En otros términos cada punto xi del soporte es una raíz de multiplicidad (αi +1)
de r(x). Ello implica que, contando cada raíz tantas veces como su
multiplicidad, el polinomio r(x) tiene, al menos, (m+1) raíces. Puesto que el
único polinomio de grado menor o igual que m con más de m raíces es el
polinomio idénticamente nulo, se puede concluir que r(x) ≡ 0. De ello se infiere
que p(x) ≡ q(x) en contra de lo inicialmente supuesto. Por tanto es absurdo
suponer que existe más de un polinomio interpolador de Hermite.
c.q.d.
Ejemplo:
Calculemos el polinomio interpolador de Hermite de la función de Runge
f(x) = (1 + x2)-1 sobre el soporte {-8, 0, 10} para los enteros { 3, 0, 2}.
• En x0 = -8:
1 16
f0(0 = f( −8) = , f0(1 = f '( −8) = ,
65 4225
382 12096
f0(2 = f "( −8) = , f0(3 = f '''( −8) =
274625 17850625
• En x1 = 1: f1(0 = f(0) = 1
• En x2 = 10:
1 −20 598
f2(0 = f(10) = , f2(1 = f '(10) = , f2(2 = f "(10) =
101 10201 1030301
94
Programación y Métodos Numéricos Interpolación polinómica
“Asociados a x0”:
3 3
⎛ x − x1 ⎞ ⎛ x − x 2 ⎞ x ⎛ x − 10 ⎞ 1
h0,0(x) = ⎜ ⎟·⎜ ⎟ = ·⎜ ⎟ = ·x·(x − 10)3 =
⎝ x 0 − x1 ⎠ ⎝ x 0 − x 2 ⎠ −8 ⎝ −18 ⎠ 46650
1 5 25 2 125
= ·x 4 − ·x 3 + ·x − ·x
46656 7776 3888 5832
3
⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
h1,0(x) = (x − x 0 )·⎜ ⎟·⎜ ⎟ =
x
⎝ 0 − x 1⎠⎝ 0x − x 2 ⎠
3
x ⎛ x − 10 ⎞ 1
= (x + 8)· ·⎜ ⎟ = ·(x + 8)·x·(x − 10)3 =
−8 ⎝ −18 ⎠ 46650
1 11 5 175 2 125
= ·x 5 − ·x 4 + ·x3 + ·x − ·x
46656 23328 3888 5832 729
3
(x − x 0 )2 ⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
h2,0(x) = ·⎜ ⎟·⎜ ⎟ =
2! x
⎝ 0 − x 1 ⎠⎝ 0x − x 2 ⎠
3
(x + 8)2 x ⎛ x − 10 ⎞ 1
= · ·⎜ ⎟ = ·(x + 8)2 ·x·(x − 10)3 =
2 −8 ⎝ −18 ⎠ 93912
1 7 29 235 3 25 2 500
= ·x 6 − ·x 5 − ·x 4 + ·x + ·x − ·x
93312 46656 23328 11664 729 729
3
(x − x 0 )3 ⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
h3,0(x) = ·⎜ ⎟·⎜ ⎟ =
3! x
⎝ 0 − x 1⎠⎝ 0x − x 2 ⎠
3
(x + 8)3 x ⎛ x − 10 ⎞ 1
= · ·⎜ ⎟ = ·(x + 8)3 ·x·(x − 10)3 =
6 −8 ⎝ −18 ⎠ 279936
95
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
“Asociados a x1”:
4 3 4 3
⎛ x − x0 ⎞ ⎛ x − x2 ⎞ ⎛x+8⎞ ⎛ x − 10 ⎞ 1
h0,1(x) = ⎜ ⎟ ·⎜ ⎟ =⎜ ⎟ ·⎜ ⎟ = ·(x + 8)4 ·(x − 10)3 =
⎝ x1 − x 0 ⎠ ⎝ x1 − x 2 ⎠ ⎝ 8 ⎠ ⎝ −10 ⎠ 4096000
1 1 69 109 101 3 21 2 1
=− ·x 7 − ·x 6 + ·x 5 + ·x 4 − ·x − ·x + ·x + 1
4096000 2048000 1024000 512000 16000 800 5
“Asociados a x2”:
4 4
⎛ x − x 0 ⎞ ⎛ x − x1 ⎞ ⎛ x + 8 ⎞ ⎛ x ⎞ 1
h0,2(x) = ⎜ ⎟ ·⎜ ⎟ =⎜ ⎟ ·⎜ ⎟ = ·(x + 8)4 ·x =
⎝ x 2 − x 0 ⎠ ⎝ x 2 − x1 ⎠ ⎝ 18 ⎠ ⎝ 10 ⎠ 1049760
1 1 4 64 128
= ·x 5 + ·x 4 + ·x 3 + ·x 2 + ·x
1049760 32805 10935 32805 32805
4
⎛ x − x0 ⎞ ⎛ x − x1 ⎞
h1,2(x) = (x − x 2 )·⎜ ⎟ ·⎜ ⎟=
⎝ x2 − x0 ⎠ ⎝ x1 − x1 ⎠
4
⎛x+8⎞ x 1
= (x − 10)·⎜ ⎟ · = ·(x − 10)·(x + 8)4 ·x =
⎝ 18 ⎠ 10 1049760
1 11 2 56 512 2 256
= ·x 6 + ·x 5 + ·x 4 − ·x 3 − ·x − ·x
1049760 524880 32805 32805 32805 6561
4
(x − x 2 )2 ⎛ x − x 0 ⎞ ⎛ x − x1 ⎞
h2,2(x) = ·⎜ ⎟ ·⎜ ⎟=
2! ⎝ x2 − x0 ⎠ x
⎝ 2 − x 1⎠
4
(x − 10)2 ⎛ x + 8 ⎞ ⎛ x ⎞ 1
= ·⎜ ⎟ ·⎜ ⎟ = ·(x − 10)2 ·(x + 8)4 ·x =
2 ⎝ 18 ⎠ ⎝ 10 ⎠ 2099520
1 1 13 38 8 128 2 1280
= ·x 7 + ·x 6 − ·x 5 − ·x 4 + ·x 3 + ·x + ·x
2099520 174960 174960 32805 10935 2187 6561
96
Programación y Métodos Numéricos Interpolación polinómica
−7
h'''2,0 (x 0 ) = h'''2,0 ( −8) =
8
−7 13
h"1,0 (x 0 ) = h"1,0 ( −8) = , h'''1,0 (x 0 ) = h'''1,0 ( −8) =
12 72
−7 13
h'0,0 (x 0 ) = h'0,0 ( −8) = , h"0,0 (x 0 ) = h"0,0 ( −8) = ,
24 216
−31
h'''0,0 (x 0 ) = h'''0,0 ( −8) =
3888
29
h"1,2 (x 2 ) = h''1,2 (10) =
45
29 11
h'0,2 (x 2 ) = h'0,2 (10) = , h"0,2 (x 2 ) = h''0,2 (10) =
90 135
“Asociados” a x0 = -8:
H3,0(x) = h3,0(x) =
97
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
H1,0 (x) = h1,0 (x) − h"1,0 (x 0 )·H2,0 (x) − h'''1,0 (x 0 )·H3,0 (x) =
H0,0 (x) = h0,0 (x) − h'0,0 (x 0 )·H1,0 (x) − h"0,0 (x 0 )·H2,0 (x) − h'''0,0 (x 0 )·H3,0 (x) =
“Asociado” a x1 = 0:
H0,1(x) = h0,1(x) =
1 1 69 109 101 3 21 2 1
=− ·x 7 − ·x 6 + ·x 5 + ·x 4 − ·x − ·x + ·x + 1
4096000 2048000 1024000 512000 16000 800 5
“Asociados” a x2 = 10:
H2,2(x) = h2,2(x) =
1 1 13 38 8 128 2 1280
= ·x 7 + ·x 6 − ·x 5 − ·x 4 + ·x 3 + ·x + ·x
2099520 174960 174960 32805 10935 2187 6561
H0,2 (x) = h0,2 (x) − h'0,2 (x 2 )·H1,2 (x) − h"0,2 (x 2 )·H2,2 (x) =
98
Programación y Métodos Numéricos Interpolación polinómica
Ello se puede comprobar en las tablas siguientes que recogen los valores de
las funciones Hk,i(x) y de sus tres primeras derivadas en los puntos del soporte.
En ella los valores que se muestran resaltados se corresponden con aquellos
que permiten verificar las igualdades anteriores.
23725
x2 0 0 0
248832
1925
x2 0 0 0
3456
−5000 −125 25
x1 0
2187 729 54
125
x2 0 0 0
96
99
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
−4000 −200 95
x1 0
2187 729 243
5
x2 0 0 0
4
1 −21 −303
x1 1
5 400 8000
−19683
x2 0 0 0
128000
7099
x2 1 0 0
121500
−511
x2 0 1 0
1350
100
Programación y Métodos Numéricos Interpolación polinómica
1280 256 16
x1 0
6561 2187 3645
29
x2 0 0 1
30
Las figuras siguientes recogen los grafos de estos polinomios de base (en el
intervalo [-11, 11]:
H0,0(x)
H0,1(x)
H0,2(x)
H1,0(x)
H1,2(x)
101
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
H2,0(x)
H2,2(x)
H3,0(x)
Por último, con los polinomios de base de Hermite y los valores de la función
f(x) y sus derivadas en los puntos del soporte se puede calcular el polinomio
interpolador de Hermite mediante:
3 2
p7 (x) = ∑ f0(k ·Hk,0 (x) + f1(0 ·H0,1(x) + ∑ f2(k ·Hk,2 (x) =
k =0 k =0
102
Programación y Métodos Numéricos Interpolación polinómica
•
Ejercicios propuestos
1º) Determínese, sobre el soporte {0, 1, 2} y para los enteros {2, 1, 2}, el
polinomio interpolador de Hermite de la función f(x) = 1 + 3·x . Represéntense
gráficamente, en el intervalo [0, 2], los polinomios de base de Hermite, el
polinomio interpolador de Hermite y la función f(x).
3º) Demuéstrese que siendo Hk,i(x) (k = 0, ..., αi), (i = 0, ..., n) los polinomios de
base de Hermite construidos sobre el soporte {x0, ..., xn} y para los enteros {α0,
..., αn}, se verifica que:
n
∑H
i=0
0,i (x) = 1
103
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
4º) Demuéstrese que el polinomio de base de Hermite Hk,i(x) (0 < k < αi) , (0 < i
< n), construido sobre el soporte {x0, ..., xn} y para los enteros {α0, ..., αn}, es los
n
único polinomio de grado menor o igual que m = n + ∑α
i=0
i para el que se
⎧ 1 si s = i y j = k
H(k,ij (x s ) = ⎨ (0 < j < as) , (0 < s < n)
⎩0 en caso contrario
5º) Demuéstrese que siendo Hk,i(x) (k = 0, ..., αi), (i = 0, ..., n) los polinomios de
base de Hermite construidos sobre el soporte {x0, ..., xn} y para los enteros {α0,
n
..., αn}, y siendo j un entero no negativo inferior o igual a m = n + ∑ α , se
i=0
i
verifica que:
n ⎛ inf( j,αi ) ⎛ j ⎞ ( j−k ) ⎞
∑ ⎜ ∑ k!·⎜ ⎟·x i ·Hk,i (x) ⎟ = x
j
i=0 ⎝ k = 0 ⎝k ⎠ ⎠
104
Programación y Métodos Numéricos Interpolación polinómica
Definición
Siendo pm(x) el polinomio interpolador de Hermite de la función f(x) sobre el
soporte {x0, x1, ...., xn} y para los enteros {α0, α1, ..., αn}, se denomina error de
interpolación (de Hermite) a la función E(x) que a todo punto x le asocia el valor
E(x) = f(x) – pm(x).
•
Teorema 7
Dados el soporte de (n+1) puntos distintos {x0, x1, ...., xn} de un intervalo (a, b) y
n
los enteros no negativos {α0, α1, ..., αn}, denotando por m = n + ∑α
i=0
i y por
f (m+1 ( ξ * ) n
E(x*) = f(x*) − pn (x*) = ·∏ (x * − xi )αi +1
(m + 1)! i=0
Demostración:
Si el punto x* coincidiera con alguno de los puntos del soporte la igualdad
anterior es evidente pues el error sería nulo y el productorio que aparece en la
expresión del error también se anularía.
Consideremos pues que x* ∉{x0, x1,..., xn}. En ese caso se puede definir el
polinomio:
105
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f(x*) − pm (x*) n
q(x) = pm(x) + n
·∏ (x − x i )αi +1
∏ (x * − x )
i= 0
i
αi +1 i=0
f(x*) − pm (x*)
n
.
∏ (x * − x )
i=0
i
αi +1
f(x*) − pn (x*) n
q(x*) = pn(x*) + n
·∏ (x * − xi ) = pn(x*)+ f(x*) - pn(x*) = f(x*)
∏ (x * − xi ) i=0
i=0
Definimos entonces la función F(x) = f(x) – q(x). Esta función es continua y será
de clase C(m+1)((a, b)), pues es la diferencia de dos funciones de dicho espacio.
Además la función F(x) admite a cada punto del soporte xi como una raíz de
multiplicidad, al menos, αi y al punto x* como una raíz, al menos, simple. Es
decir que, contando cada raíz tantas veces como su multiplicidad indique, la
función F(x) admite en (a, b), al menos, (m+2) raíces. Aplicando
sucesivamente el teorema de Rolle24 se tiene entonces que F’(x) admitirá, al
menos, (m+1) raíces en (a, b), F”(x) admitirá, al menos, m raíces en (a, b),
F’’’(x) admitirá, al menos, (m-1) raíces en (a, b), ...... y F(m+1(x) admitirá, al
menos, una raíz en (a, b). Denotemos por ξ * a alguna de dichas raíces de
F(m+1(x) en (a, b). Se tiene entonces que:
106
Programación y Métodos Numéricos Interpolación polinómica
(m +1
f(x*) − pm (x*) ⎛ n ⎞
=f (m+1
(ξ *) – p (m +1
m (ξ*) − n ·⎜ ∏ (x − xi )αi +1 ⎟ =
∏ (x * −xi )αi +1 ⎝ i=0
i=0
⎠
f(x*) − pm (x*)
= f(m+1( ξ * ) – 0 – n
·(m + 1)! ⇒
∏ (x * − x )
i= 0
i
αi +1
f (m+1(ξ*) n
⇒ f(x*) – pm(x*) = ·∏ (x * − x i )αi +1
(m + 1)! i=0
c.q.d.
se verificará que:
n
M
∀x ∈ (a,b) : |E(x)| = |f(x) – pm(x)| ≤ · ∏ (x − xi )αi +1
(m + 1)! i=0
de donde:
n
M
∀x ∈ (a,b) : |E(x)| = |f(x) – pm(x)| ≤ ·Sup ∏ (x − xi )αi +1
(m + 1)! x∈(a,b ) i=0
Si se denota por h a la longitud del intervalo (a, b) es evidente que, para todo
punto x interior a dicho intervalo se verificará que: |x-xi| < h. Ello nos permite
expresar la cota de error en la forma:
M
∀x ∈ (a,b) : |E(x)| = |f(x) – pm(x)| ≤ ·h(m+1)
(m + 1)!
Las desigualdades anteriores recogen cotas superiores del máximo del valor
absoluto de la función de error de interpolación. Tales cotas pueden ser
107
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Por otra parte debe señalarse que las desigualdades anteriores pueden inducir
al lector que aborda por primera vez el estudio de la interpolación de Hermite a
sacar conclusiones erróneas. Por ejemplo es frecuente que a la vista de esta
expresión se piense (erróneamente) que un incremento en el número de puntos
del soporte o del número de derivadas de f(x) y del polinomio interpolador que
se hacen coincidir en cada punto del soporte, sin incrementar la longitud del
intervalo, conduce a un menor error de interpolación ya que al aumentar m
crece el valor de (m+1)!. Ello no siempre sucede así pues, aunque es cierto
que el factorial (m+1)! acaba creciendo con m más rápidamente que el valor
de hm, debe tenerse en cuenta que el valor de M = Sup f (m+1(x) no es
x∈( a,b )
Ejemplo:
Consideremos la función de Runge f(x) = (1+x2)-1 , el soporte {-1, 1} y los
enteros {1, 1}. El polinomio interpolador de Hermite en esta situación será de
grado m = 3. El error de interpolación, según el teorema precedente, estará
dado por la expresión:
f (iv (ξ*)
∀x* ∈ [ −1,1] ∃ξ*=ξ(x*) / E(x*) = ·(x * +1)2 ·(x * −1)2
4!
108
Programación y Métodos Numéricos Interpolación polinómica
24
∀x ∈ [ −1,1] : E(x) ≤ · sup (x + 1)2 ·(x − 1)2 = sup ⎡⎣(x + 1)2 ·(x − 1)2 ⎤⎦
4! x∈( −1,1) x∈( −1,1)
∀x ∈ [ −1,1] : E(x) ≤ 1
Pero esta acotación es muy “pobre” si se tiene en cuenta que el máximo valor
de la función f(x) es 1.
1
·(3 – x2)
p3(x) =
4
Por tanto, al disponer de la expresión de la función que se está interpolando, la
función de error es:
1 1
E(x) = f(x) − p3 (x) = − ·(3 − x 2 )
1+ x 2
4
−2·x x 1
E’(x) = + = ·x·((1 + x 2 )2 − 4)
(1 + x )
2 2
2 2·(1 + x )
2 2
(1+x2)2 – 4 = 0 ⇒ (1 + x2) = ±2
109
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1
max E(x) = E(0) =
x∈( −1,1) 4
f(x) = (1+x2)-1
p3(x) = (¼)·(3-x2)
Ejercicio propuesto:
a) Dertermínese la expresión del error de interpolación de Hermite que se
comete al interpolar f(x) = sen(x) en el soporte {0, π/2 , π} y para los
enteros {1, 0, 1}.
b) Obténgase a partir de la expresión anterior una cota del error en el
intervalo [0, π].
c) Determínese el polinomio interpolador de Hermite, p(x), que interpola a
f(x) en el soporte {0, π/2 , π} y para los enteros {1, 0, 1}.
d) Hállese el máximo valor de |f(x) – p(x)| y comparese este resultado con
la cota obtenida en el apartado b).
110
Programación y Métodos Numéricos Interpolación polinómica
( )
+ a1(0) + a1(1) ·(x − x1 ) + a1(2) ·(x − x1 )2 + ... + a1( α1 −1) ·(x − x1 )α1 ·(x − x 0 )( α0 +1) +
+ …….. +
n −1
( αn
n + an ·(x − x n ) + an ·(x − x n ) + ... + an ·(x − x n )
a(0) (1) (2) 2 αn
)
·∏ (x − x j )
j=0
( α j +1)
=
n ⎛
⎛ αi (k ) k ⎞ α j +1 ⎞
α0 (i−1)
∑ 0 ( i) ∑ ⎜⎜∑ i ( i ) ⎟ ∏(x − xj )
k
= a (k )
· x − x + a · x − x · ⎟
k =0 i=1 ⎝ ⎝ k = 0 ⎠ j=0 ⎠
De esta manera los coeficientes a(k
i
)
((k = 0, .., αi) , (i = 0, ..., n) ) pueden
determinarse fácilmente a partir de las igualdades que debe satisfacer el
polinomio interpolador. Antes de continuar con este proceso, ilustremos lo
anterior con dos sencillos ejemplos en los que se esboza el proceso de cálculo
de los coeficientes del polinomio.
111
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) Considérese el problema de interpolación de Hermite planteado sobre un
soporte de 2 puntos {x0, x1} y para los enteros {1, 1}. La fórmula de Newton
consistiría básicamente en buscar el polinomio interpolador p3(x) en la forma:
f1(0 − f0(0
− f0(1
f1(0 − f0(0 f0(1 (x1 − x 0 ) f[x 0 ,x1 ] − f [ x 0 ,x 0 ]
p3(x1) = f1(0 ⇒ a1(0) = − = =
(x1 − x 0 ) (x1 − x 0 )
2
(x1 − x 0 ) (x1 − x 0 )
(que denotaremos como f[x0, x0, x1] )
=
( x1 − x 0 ) −
( x1 − x 0 ) =
(x1 − x 0 ) ( x1 − x 0 )
112
Programación y Métodos Numéricos Interpolación polinómica
datos del problema. El resto se calcula de forma similar a como se detalló para
las diferencias divididas
x0 f0( 0
x1 -- f1(1 = f[x1, x1] f[x0, x1, x1] f[x0, x0, x1, x1]
f0(2
p”4(x0) = f0(2 ⇒ a(2)
0 = (que denotaremos como f[x0, x0, x0] )
2
f0(2
f − f0
(0 (0 (1
f0 2
p4(x1) = f1(0 ⇒ a1(0) = 1 − − =
(x1 − x 0 ) (x1 − x 0 )2 (x1 − x 0 )
3
f [ x 0 ,x1 ] − f [ x 0 ,x 0 ] f [ x 0 ,x 0 ,x 0 ]
= − =
(x1 − x 0 ) 2
(x1 − x 0 )
f [ x 0 ,x 0 ,x1 ] − f [ x 0 ,x 0 ,x 0 ]
=
(x1 − x 0 )
(que denotaremos como f[x0, x0, x0, x1] )
113
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f [ x 0 ,x 0 ,x1 ] − f [ x 0 ,x 0 ,x 0 ]
f [ x1,x1 ] − f[x 0 ,x 0 ] 2·f [ x 0 ,x 0 ,x 0 ] (x1 − x 0 )
− − 3· =
(x1 − x 0 ) ( x1 − x 0 ) (x1 − x 0 )
3 2
f [ x 0 ,x1 ] − f [ x 0 ,x 0 ]
f [ x1,x1 ] − f[x 0 ,x 0 ] f [ x 0 ,x 0 ,x 0 ] (x1 − x 0 )
= + − 3· =
(x1 − x 0 ) ( x1 − x 0 ) (x1 − x 0 )2
3 2
f [ x 0 ,x1,x1 ] f [ x 0 ,x 0 ,x 0 ] f [ x 0 ,x 0 ,x1 ]
= + − 2· =
(x1 − x 0 ) ( x1 − x0 ) (x1 − x 0 )2
2 2
f [ x 0 ,x 0 ,x1,x1 ] f [ x 0 ,x 0 ,x 0 ,x1 ]
= −
(x1 − x 0 ) ( x1 − x 0 )
114
Programación y Métodos Numéricos Interpolación polinómica
x0 f0( 0
f0( 2
x0 --- --- = f[x0, x0, x0]
2
x1 f1( 0 f[x0, x1] f[x0, x0, x1] f[x0, x0, x0, x1]
x1 -- f1(1 = f[x1, x1] f[x0, x1, x1] f[x0, x0, x1, x1] f[x0, x0, x0, x1, x1]
Pero en los ejemplos anteriores han aparecido diferencias divididas en las que
aparecen puntos repetidos y que conviene definir adecuadamente. A ello
dedicaremos el siguiente subapartado. Como en él consideraremos el caso
general, para evitar confusiones con el número de veces que se repite un
mismo punto en una diferencia dividida en adelante indicaremos dicho número
escribiéndolo entre paréntesis a continuación del punto. Así, por ejemplo
escribiremos f[x0(2), x1(3), x2(1)] en lugar de f[x0, x0, x1, x1, x1, x2].
115
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Consideremos, en primer lugar, un soporte de k puntos distintos {x0, x1, ..., xk-1}
con k > 0, y supongamos que en cada punto xi se conoce el valor que toman
una cierta función f(x) así como sus αi primeras derivadas. Denotemos además
k −1 k −1
por mk-1 al número entero positivo dado por: mk −1 = ∑ (αi + 1) − 1 = k − 1 + ∑ α i y
i=0 i=0
Propiedad 1.
Con la notación anterior, el polinomio de grado menor o igual a mk que
satisface las igualdades (1.1.) y (1.2.) puede expresarse como:
k −1
pmk (x) = pmk −1 (x) + C·∏ (x − x i )αi +1
i=0
116
Programación y Métodos Numéricos Interpolación polinómica
∏(x − xi )
αi +1
k
i=0
Demostración:
El grado del polinomio pmk (x) será, a lo sumo, el mayor de los grados de los
dos polinomios cuya suma lo define en el enunciado de la propiedad. El grado
de pmk −1 (x) es mk-1. El del segundo polinomio que interviene en la definición es:
k −1 k −1
∑ ( αi + 1) = k + ∑ αi = mk −1 + 1 = mk
i=0 i= 0
∀(s, j) / {0 ≤ j ≤ α s ,0 ≤ i ≤ k − 1} :
d j ⎛ k −1 ⎞
j ⎜∏
p(mj k (x s ) = p(mj k −1 (x s ) + C· (x − xi )αi +1 ⎟ = p(mj k −1 (x s ) = f ( j (x s )
dx ⎝ i=0 ⎠ x = xs
i=0
Definición 1.
Con la notación utilizada anteriormente, se denomina diferencia dividida de la
función f(x) en los puntos {x i }i=0 , repitiendo ( αi +1) veces el punto xi para
k
∏(x − xi )
αi +1
k
i=0
117
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 2.
Con la notación anterior, el polinomio de grado (m+1) que satisface las
igualdades (2.1.), (2.2.) y (2.3.) puede expresarse como:
118
Programación y Métodos Numéricos Interpolación polinómica
⎛ r ⎞
pm+1(x) = pm (x) + C·⎜ ∏ (x − xi )βi +1 ⎟·( x − xk ) k
β
⎜⎜ i=0 ⎟⎟
⎝ i≠ k ⎠
i =0
i ≠k
Demostración:
El grado del polinomio pm+1(x) será, a lo sumo, el mayor de los grados de los
dos polinomios cuya suma interviene en su expresión dada en el enunciado. El
grado de pm(x) es m. El del segundo polinomio que interviene en la definición
es:
r r r
βk + ∑ ( βi + 1) = βk + r + ∑ βi = n + ∑ βi = m + 1
i= 0 i= 0 i=0
i≠ k i≠ k
⎛ ⎞
d( j ⎜ r
βi +1 ⎟
p (j
(x s ) = p (x s ) + C· j (x − xk ) ·∏ (x − xi )
(j βk
= pm( j (x s ) = f ( j (x s )
dx ⎜⎜ ⎟
m +1 m
i=0 ⎟
⎝ i≠k ⎠ x = xs
∀j ∈ {0,..., βk − 1} :
⎛ ⎞
dj ⎜ r
βi +1 ⎟
(xk ) = p (xk ) + C· j ( x − xk ) ∏ (x − xi )
βk
p (j (j
= pm( j (x s ) = f ( j (x s )
m +1 m
dx ⎜⎜ i=0
⎟
⎟
⎝ i≠k ⎠ x = xk
119
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
r
p(mβ+k 1(xk ) = pm(βk (xk ) + C·( βk !)·∏ (xk − xi )βi +1 =
i= 0
i≠ k
i=0
i≠k
f [ x0 (α0 + 1),...,xk −1(αk −1 + 1),xk (βk + 1),xk +1(αk +1 + 1),...,xn (αn + 1)]
•
Teorema 8
Sea {j0, j1, ..., jn} una permutación cualquiera de los índices {0, 1, ..., n}. Se
verifica que:
120
Programación y Métodos Numéricos Interpolación polinómica
Demostración:
n
Si denotamos por m al valor m’ = n − 1 + ∑ αi el polinomio interpolador de
i= 0
Hermite de la función f(x) sobre el soporte {x0, x1, ..., xn} para los enteros { α 0 ,
..., αn − 1 } será un polinomio pm’(x) de grado m’. Según la propiedad 2 antes
demostrada, el polinomio interpolador de Hermite de la función f(x) sobre el
soporte {x0, x1, ..., xn} para los enteros { α 0 , ..., αn } será el polinomio pm(x) de
grado m = m’+1 dado por la expresión:
n
pm (x) = pm ' (x) + f [ x 0 (α 0 + 1),...,xn (αn + 1)] ∏ (x − xi )αi +1
i=0
Obsérvese que en este polinomio el coeficiente del término de mayor grado es:
n
qm (x) = qm ' (x) + f ⎡⎣ x j0 (α j0 + 1),...,x jn (α jn + 1)⎤⎦ ∏ (x − x ji ) ji
α +1
i=0
Obsérvese que en este polinomio el coeficiente del término de mayor grado es:
f ⎡⎣ x j0 (α j0 + 1),...,x jn (α jn + 1)⎤⎦
c.q.d.
121
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Teorema 9
Sean “i” y “k” dos índices distintos y pertenecientes al conjunto de índices {0, 1,
..., n}. Considérense además los enteros no negativos {j0, ..., ji, ..., jk,..., jn}. Se
verifica que:
interpola en el sentido de Hermite a la función f(x) para los enteros {j0, ... , ji-1
,(ji-1), ji+1, ..., jk-1, (jk-1), jk+1 ..., jn}. Si incrementamos en una unidad el orden de
derivación que se hace coincidir en xi entre f(x) y el polinomio interpolador de
Hermite, se tendrá el polinomio:
⎛ ⎞
⎜ n ⎟
qm−1(x) = pm−2 (x) + Ci ⎜ ∏ ( x − x s ) ⎟·( x − xi ) i ·( x − xk ) k
js +1 j j
⎜ s =0 ⎟
⎜ ss≠≠ik ⎟
⎝ ⎠
donde:
Ci = f [ x 0 ( j0 + 1),..., xi−1(ji−1 + 1),xi ( ji + 1),xi+1( ji+1 + 1),..., xk −1( jk −1 + 1), xk ( jk ), xk +1(jk +1 + 1),..., xn ( jn + 1)]
122
Programación y Métodos Numéricos Interpolación polinómica
⎛ ⎞
⎜ n ⎟ ⎛ n ⎞
js +1 ji jk ⎜
qm (x) = pm−2 (x) + Ci ·⎜ ∏ ( x − x s ) ⎟·( x − xi ) ·( x − xk ) + Ck ∏ ( x − x s )
js +1 ⎟
·( x − xk ) k
j
⎜ s =0 ⎟ ⎜⎜ s=0 ⎟⎟
⎜ ss≠≠ik ⎟ ⎝ s ≠k ⎠
⎝ ⎠
donde:
Ck = f [ x 0 ( j0 + 1),..., xi−1( ji−1 + 1),xi ( ji + 1),xi+1( ji+1 + 1),...,xk −1( jk −1 + 1), xk +1( jk +1 + 1),xk +1( jk +1 + 1),..., xn ( jn + 1)]
⎜ s =0 ⎟
⎜ ss≠≠ik ⎟
⎝ ⎠
⎛ ⎞
⎜ n ⎟ ⎛ n ⎞
js +1 ji jk ⎜
rm (x) = pm−2 (x) + C'k ⎜ ∏ ( x − x s ) ⎟·( x − xi ) ·( x − xk ) + C'i ∏ ( x − x s )
js +1 ⎟
·( x − xi ) i
j
⎜ s =0 ⎟ ⎜
⎜ s =0 ⎟
⎟
⎜ ss≠≠ik ⎟ ⎝ s ≠i ⎠
⎝ ⎠
donde:
C'k = f [ x 0 ( j0 + 1),..., xi−1( ji−1 + 1), xi ( ji ), xi+1( ji+1 + 1),...,xk −1 ( jk −1 + 1), xk +1 ( jk +1 + 1), xk +1( jk +1 + 1),..., xn ( jn + 1)]
C'i = f [ x 0 ( j0 + 1),..., xi−1( ji−1 + 1),xi ( ji + 1),xi+1( ji+1 + 1),..., xk −1( jk −1 + 1),xk +1( jk +1 + 1), xk +1( jk +1 + 1),..., xn ( jn + 1)]
Los polinomios qm(x) y rm(x) son el mismo polinomio pues ambos están
determinados sobre el mismo soporte y para el mismo juego de grados de
derivación. Por tanto los coeficientes de sus términos del mismo grado deben
coincidir. Igualando los términos en xm se tiene que Ck = C’i lo que nos indica
que el valor de la diferencia dividida de f(x) en x0 repetido (j0+1) veces, x1
repetido (j1+1) veces, .... y xn repetido (jn+1) veces es independiente de cual
sea el orden seguido para hacer coincidir en cada punto xi las ji primeras
derivadas del polinomio interpolador y de la función que se interpola.
123
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎛ n
⎞ ⎛ n
⎞
Ci − Ck jk ·xk + ∑ ( js + 1)·x s = C'k − C'i ji ·xi + ∑ ( js + 1)·x s ⎟ ⇒
⎜ ⎟ ⎜
⎜⎜ s =0
⎟⎟ ⎜⎜ s =0
⎟⎟
⎝ s ≠k ⎠ ⎝ s ≠i ⎠
⎛ n
⎞ ⎛ n
⎞
⇒ C'k − Ci = Ck ⎜ ji ·xi + ∑ ( js + 1)·x s ⎟ − Ck ⎜ jk ·xk + ∑ ( js + 1)·x s ⎟ ⇒
⎜⎜ s =0
⎟⎟ ⎜⎜ s =0
⎟⎟
⎝ s ≠i ⎠ ⎝ s ≠k ⎠
⎛ ⎞
⎜ n n ⎟
⇒ C'k − Ci = Ck ⎜ ji ·xi + ( jk + 1)·xk + ∑ ( js + 1)·x s − jk ·xk − ( ji + 1)·xi − ∑ ( js + 1)·x s ⎟ ⇒
⎜ s =0 s =0 ⎟
⎜ s ≠i s ≠i ⎟
⎝ s ≠k s ≠k ⎠
C'k − Ci
⇒ C'k − Ci = Ck ( xk − x i ) ⇒ Ck =
(x k − x i )
Hasta aquí hemos prestado atención a las diferencias divididas definidas sobre
más de un punto (repetidos cada uno de ellos (ji + 1) veces). También
conocemos de lo desarrollado en la interpolación de Lagrange que las
diferencias divididas en un único punto repetido una sóla vez coinciden con el
valor que la función toma en dicho punto: f[xi] = f[xi(1)] = f(xi). Pero para acabar
de definir las posibles diferencias divididas que se utilizarán es necesario
contemplar también las diferencias divididas en un único punto xi repetido (ji+1)
veces. Este objetivo puede lograrse de dos formas diferentes. Una de ellas,
que desarrollaremos en el anexo a este apartado, consiste en considerar un
soporte con (ji+1) puntos, plantearse la expresión de la diferencia dividida en
ellos (repetidos una sola vez) y posteriormente hacer tender las distancias
entre puntos hacia cero.
124
Programación y Métodos Numéricos Interpolación polinómica
Teorema 1025
El polinomio interpolador de Hermite de f(x) sobre el soporte {xi} para el entero
βi es:
1 1 ( βi
pβi (x) = f(xi ) + f '(xi )·(x − xi ) + f "(xi )·(x − xi )2 + ... + f (xi )·(x − xi )βi
2! βi !
Demostración:
Se verifica fácilmente que:
βi
1
p(βji (x) = ∑ f (k (xi )·(x − xi )(k − j) (0 ≤ j ≤ βi )
k = j (k − j)!
por lo que:
p(βji (xi ) = f ( j (xi ) (0 ≤ j ≤ βi )
c.q.d.
El teorema anterior, para el caso en que βi = 0 nos conduce a que p0(x) = f(xi)
que, con la notación de diferencias divididas, se expresa en la forma:
p0(x) = f[xi(1)]
deberemos definir la diferencia dividida f[xi(2)] como f[xi(2)] = f’(xi), con lo que:
25
El polinomio interpolador que se define en este teorema coincide con el polinomio resultante
de considerar los (βi+1) primeros términos del desarrollo en serie de Taylor de f(x) en torno al
punto xi. Por ello dicho polinomio se conoce también con el nombre de polinomio de Taylor de
la función f(x) de orden βi en xi. Por el mismo motivo el proceso de interpolar con un único
punto de soporte en el que se conoce el valor de una función y el de sus βi primeras derivadas
se denomina también interpolación de Taylor.
125
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1
pk −1(x) = f(xi ) + f '(xi )·(x − xi ) + ... + f (k −1(xi )·(x − xi )k −1
(k − 1)!
puede expresarse en la forma:
k −1
pk −1(x) = ∑ f ( j [xi ( j + 1)]·(x − xi ) j
j= 0
1 1
pk (x) = f(xi ) + f '(xi )·(x − xi ) + ... + f (k −1(xi )·(x − xi )k −1 + f (k (xi )·(x − xi )k
(k − 1)! k!
puede expresarse en la forma:
βi
pβi (x) = ∑ f ( j [xi ( j + 1)]·(x − xi ) j = pβi −1 + f[xi (βi + 1)]·(x − xi )βi
j=0
1 (k
f [ xi (k)] = f (xi )
k!
•
26
Obsérvese que, según lo anterior esto sucede, al menos, para k = 2.
126
Programación y Métodos Numéricos Interpolación polinómica
x0 f(x0)
x0 ---- f’(x0)
1
x0 ---- ---- f "(x 0 )
2
1
x0 ---- ---- ---- f "(x 0 )
3!
1
x2 ---- ---- f "(x 2 ) f[x1(1),x2(3)] f[x1(2),x2(3)] f[x0(1),x1(2),x2(3)] f[x0(2),x1(2),x2(3)] f[x0(3),x1(2),x2(3)] f[x0(4),x1(2),x2(3)]
2
127
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
+ f [ x 0 (α 0 + 1),x1(1)]·( x − x 0 ) + f [ x 0 (α 0 + 1),x1(2)]·( x − x 0 )
α0 +1 α0 +1
(x − x1 ) + ... +
+ f [ x 0 (α 0 + 1),x1(α1 + 1)]·( x − x 0 )
α0 +1
(x − x1 )α1 +
+ ............................................................................................. +
n −1
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn−1(αn−1 + 1),xn (1)]·∏ ( x − x 0 )
αi +1
+
i=0
⎛ n−1 α +1 ⎞
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,x n−1(αn−1 + 1),xn (2)]·⎜ ∏ ( x − x 0 ) i ⎟·(x − xn ) +
⎝ i=0 ⎠
⎛ n−1 α +1 ⎞
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn−1(αn−1 + 1),xn (3)]·⎜ ∏ ( x − x 0 ) i ⎟·(x − xn )2 +
⎝ i=0 ⎠
+ ..................................................................................................+
⎛ n−1 α +1 ⎞
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn−1(αn−1 + 1),xn (αn + 1)]·⎜ ∏ ( x − x 0 ) i ⎟·(x − xn )αn
⎝ i=0 ⎠
128
Programación y Métodos Numéricos Interpolación polinómica
α0
pm (x) = ∑ f [ x 0 (k + 1)]·( x − x i ) +
k
k =0
n ⎛ α j +1 ⎞
⎛ αi k ⎞
(i−1)
+ ∑ ⎜⎜ ⎜ ∑ f [ x 0 (α 0 + 1),...,xi−1(αi−1 + 1),xi (k + 1)]·( x − xi ) ⎟·∏ ( x − x j ) ⎟⎟
i=1 ⎝ ⎝ k =0 ⎠ j= 0 ⎠
Ejemplo:
Calculemos el polinomio interpolador de Hermite de la función sen(x) sobre
el soporte {-π/2, 0, π/2} para los enteros { 3, 0, 2}. Para ello podemos calcular
los valores:
129
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f [ x 0 (3),x1(1)] =
f [ x 0 (2),x1(1)] − f [ x 0 (3)]
=
( )−( ) =
4
π2
1
2 8 1
−
x1 − x 0 π
2 π3 π
f [ x 0 (4),x1(1)] =
f [ x 0 (3),x1(1)] − f [ x 0 (4)]
=
( 8
π3
− 1π ) − 0
=
16 2
−
x1 − x 0 π
2 π 4 π2
f [ x 2 (1)] − f [ x1(1)] 1− 0 2
f [ x1(1),x 2 (1)] = = =
x1 − x 0 π
2 π
f [ x 0 (3),x1(1), x 2 (1)] =
f [ x 0 (2), x1(1),x 2 (1)] − f [ x 0 (3), x1(1)]
=
(− ) − (
4
π3
8
π3
− 1
π ) = − 12 + 1
x 2 − x0 π π 4
π2
f [ x 0 (4),x1(1), x 2 (1)] =
f [ x 0 (3),x1(1), x 2 (1)] − f [ x 0 (4), x1(1)]
=
( −12
π4
+ 1
π2 )−( 16
π4
− 2
π2 ) = − 28 + 3
x 2 − x0 π π5 π3
f [ x 0 (1),x1(1),x 2 (2)] =
f [ x1(1),x 2 (2)] − f [ x 0 (1),x1(1),x 2 (1)]
=
(− ) − 0 = − 4
4
π2
x2 − x0 π π3
f [ x 0 (2),x1(1),x 2 (2)] =
f [ x 0 (1),x1(1),x 2 (2)] − f [ x 0 (2),x1(1),x 2 (1)]
=
(− ) − (− ) = 0
4
π3
4
π3
x2 − x0 π
x 2 − x0 π π 5
π3
f [ x 0 (4),x1(1), x 2 (2)] =
f [ x 0 (3), x1(1), x 2 (2)] − f [ x 0 (4), x1(1), x 2 (1)]
=
( 12
π5
− 1
π3 ) − (− 28
π5
+ 3
π3 ) = 40 − 4
x2 − x0 π π 6
π4
130
Programación y Métodos Numéricos Interpolación polinómica
f [ x 0 (1),x1(1), x 2 (3)] =
f [ x1(1),x 2 (3)] − f [ x 0 (1),x1(1), x 2 (2)]
=
( 8
π3
− 1π ) − ( − 4 π3 )
=
12 1
−
x 2 − x0 π π 4 π2
f [ x 0 (2),x1(1), x 2 (3)] =
f [ x 0 (1), x1(1),x 2 (3)] − f [ x 0 (2),x1(1),x 2 (2)]
=
( 12
π4
− 1
π2 ) − 0 = 12 − 1
x2 − x0 π π 5
π3
f [ x 0 (3),x1(1), x 2 (3)] =
f [ x 0 (2), x1(1),x 2 (3)] − f [ x 0 (3),x1(1), x 2 (2)]
=
( 12
π5
− 1
π3 )−( 12
π5
− 1
π3 ) =0
x2 − x0 π
x2 − x0 π π7 π5
−π
2 -1
−π
2 − 0
−π
2 − − 12
−π
2 − − − 0
0 0 2 π 4 π2 8
π3
− 1π 16
π4
- 2
π2
π
2 1 2
π 0 −4
π3
−12
π4
+ 1
π2
-28 + 3 π3
π5
π
2 − 0 −4
π2
−4
π3
0 12
π5
− 1π3 40
π6
- 4 π4
π
2 − − −1
2
8
π3
− 1π 12
π4
− 1
π2
12
π5
− 1π3 0 -40
π7
+ 4 π5
⇒ p7 (x) = -1 + 12·( x + π 2 ) +
2
+ ( x + π 2 ) ·⎡⎢( 16 π4 − 2 π2 ) + x·
4
⎣ {( -28
π5
+ 3
π3 )+( 40
π6
− 4 π4 )·( x − π 2 ) + ( 40 π7 − 4 π5 )·( x − π 2 ) ⎤⎥
2
⎦ }
131
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
sen(x)
p7(x)
132
Programación y Métodos Numéricos Interpolación polinómica
Ejercicio propuesto:
e) Obtén una cota del error de interpolación válida en todo punto del
intervalo [-10, 10].
133
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
3.4.4. ANEXO: Otra forma de definir las diferencias divididas con puntos
repetidos.
Como se señaló en el subapartado 3.4.2. las diferencias divididas en las que
aparece un punto repetido pueden ser definidas a partir de las diferencias
divididas clásicas considerando un soporte formado por puntos distintos y
haciendo tender hacia cero la distancia entre algunos de ellos. Por ello
dedicaremos este anexo a detallar este proceso.
por lo que:
Definición
Siendo f(x) una función diferenciable en el punto xi, se denomina diferencia
dividida de primer orden en el punto xi (o diferencia dividida en xi repetido
2 veces) y se representa por f[xi, xi] (o por f[xi(2)]) al valor:
134
Programación y Métodos Numéricos Interpolación polinómica
1
= ·⎡ f [ x * +2·h,...,x * +n·h] − 2·f [ x * +h,...,x * +(n − 1)·h] +
n·(n − 1)·h2 ⎣
+ f [ x*,...,x * +(n − 2)·h]⎤⎦ =
1 1⎛ n ⎛n⎞ ⎞
= ....... = · n ·⎜ ∑ ( −1)i ⎜ ⎟·f(x * +(n − i) * h) ⎟ (1)
n! h ⎝ i=0 ⎝i⎠ ⎠
n-1
(n − i) j ·h j (j (n − i)n ·hn (n
∃ξi ∈ [ x*,x * +(n − i)·h] / f(x*+(n-i)·h)=f(x*)+∑ ·f (x*) + ·f (x*)
j=1 j! n!
n −1
1 ⎛ n n! (n − i) j ⎞ ( j n −1
n! (n − i)n (n
= ∑
j=1 h
n− j ⎜ ∑
· ( −1)i
· ·
i!·(n − i)! j! ⎠
⎟·f (x*) + ∑ ( − 1)i
· ·
i!·(n − i)! n!
·f (ξi ) (2)
⎝ i=0 i= 0
En la expresión anterior los coeficientes de f(j(x*) ( 0 < j < n) son nulos. Por no
interrumpir el desarrollo que se está realizando, realizaremos la demostración
de este hecho en el Lema 1º (un poco más adelante). Ello nos permite escribir:
135
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n −1
n! (n − i)n (n
n!· f [ x*, x * +h,...,x * +(n − 1)·h,x * +n·h] = ∑ ( −1)i · · ·f (ξi )
i=0 i!·(n − i)! n!
⎛ n−1 n! (n − i)n ⎞ (n
n!·f[x*, x*, …..,x*,x*] = ⎜ ∑ ( −1)i · · ⎟·f (x*)
⎝ i=0 i!·(n − i)! n! ⎠
(n+1) veces
Por otra parte se verifica (y también se deja la demostración para ser realizada
en el lema 2º un poco más adelante) para todo valor de n tal que n > 1, que:
⎛ n−1 n! (n − i)n ⎞
⎜∑ − ⎟ =1
i
( 1) · ·
⎝ i=0 i!·(n − i)! n! ⎠
Definición
Siendo f(x) una función diferenciable en el punto xi, se denomina diferencia
dividida de orden k el punto xi (o diferencia dividida en xi repetido (k+1)
veces) y se representa por f[xi, xi,...., xi] (o por f[xi(k+1)]), al valor:
f (n (xi )
f[xi, xi, ….., xi, xi] = f[xi(k+1)] =
k!
•
Una vez introducidas las diferencias divididas en las que todos sus argumentos
son el mismo punto repetido, podemos proceder a definir las diferencias
divididas en forma más general como se hace en la siguiente definición
136
Programación y Métodos Numéricos Interpolación polinómica
Definición
Siendo {i0 < i1 < i2 < …. < ik-1 < ik} un conjunto de (k+1) índices enteros no
negativos (pudiendo repetirse algunos de ellos o no) se denomina diferencia
dividida de orden k: f ⎡⎣ xi0 ,xi1 ,xi2 ,...,x ik −1 ,xik ⎤⎦ al valor obtenido de la manera
siguiente:
f (n (xi )
Si i0 = ik = i: f[xi, xi, ….., xi, xi] =
n!
f ⎡ xi ,....,xik −1 ,xik ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,....,xik −1 ⎤⎦
Si i0 < ik: f ⎡⎣ xi0 ,xi1 ,....,xik −1 ,xik ⎤⎦ = ⎣ 1
x ik − x i0
•
NOTA:
Como se demostró en el apartado 3.2., el orden en que se tomen los puntos, repetidos o no, no
influye en el valor de la diferencia dividida. No obstante, en la definición anterior, se ha optado
por considerar los índices de los puntos del soporte ordenados de menor a menor a mayor,
agrupando de esta manera los que se repitan, para facilitar el seguimiento del proceso que se
ha descrito.
•
Lema 1º
Siendo n un número entero positivo se verifica que:
n
n!
∑
i=0
( −1)i ·
i!·(n − i)!
=0
Además, para todo entero no negativo j tal que 0 < j < n se verifica que:
n
n! (n − i) j
∑ (−1)i·
i=0
·
(n − i)!·i! j!
=0
Demostración:
Para cualquier entero m que sea estrictamente positivo la fórmula del binomio
de Newton17, nos asegura que:
17
Recordemos que la fórmula del binomio de Newton es:
n
⎛n⎞ ⎛m⎞ m!
(a + b)n = ∑ ⎜ ⎟·a( n − i ) ·b i donde ⎜ ⎟=
i =0 ⎝ i ⎠ ⎝ i ⎠ ( m − i )!·i !
137
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
m
⎛m⎞ m
m!
0 = (1 – 1)m = ∑ ( −1)i ·⎜ ⎟ = ∑ (−1) ·(m − i)!·i!
i
(3)
i=0 ⎝ i⎠ i=0
n
n!
∑ (−1) ·(n − i)!·i!
i=0
i
=0
Ello nos permite proceder por inducción, suponiendo que para un algún valor
“(j-1)” la igualdad es cierta y demostrando que en ese caso también es cierta
para el valor j. En efecto, si se supone que para cualquier valor m entero y
superior a 1 y para algún valor (j-1) < (m-1) se verifica:
m
m! (m − i)( j−1) 1 m m!
∑ (−1)i·
i=0
·
(m − i)!·i! ( j − 1)!
=0⇔ ·∑ ( −1)i ·
( j − 1)! i=0 (m − i)!·i!
·(m − i)( j−1) = 0 ⇔
m
m!
⇔ ∑ ( −1)i · ·(m − i)( j−1) = 0
i= 0 (m − i)!·i!
se tendrá que:
n
n! (n − i) j 1 n n!
∑ ( −1) ·
i
· = ·∑ ( −1)i · ·(n − i) j−1·(n − i) =
i=0 (n − i)!·i! j! j! i=0 (n − i)!·i!
n n n! 1 n n!
= ·∑ ( −1)i · ·(n − i) j−1 − ·∑ ( −1)i ·i· ·(n − i) j−1
j! i=0 (n − i)!·i! j! i=0 (n − i)!·i!
138
Programación y Métodos Numéricos Interpolación polinómica
n
n! (n − i) j 1 n n!
∑ (−1)i· · = − ·∑ ( −1)i ·i· ·(n − i) j−1 =
i=0 (n − i)!·i! j! j! i=0 (n − i)!·i!
1 n n! 1 n n!
= ·∑ ( −1)i−1·i· ·(n − i) j−1 = ·∑ ( −1)i−1· ·(n − i) j−1 =
j! i=1 (n − i)!·i! j! i=1 (n − i)!·(i − 1)!
1 (n−1) 1
= ·n!· ∑ ( −1)i−1· ·(n − i − 1) j−1 =
j! i= 0 (n − i − 1)!·(i)!
(n −1)
1 1
= ·n·(n − 1)!· ∑ ( −1)i−1· ·((n − 1) − i) j−1 =
j! i=0 ((n − 1) − i)!·i!
1 (n−1) (n − 1)!
= ·n· ∑ ( −1)i−1· ·((n − 1) − i) j−1
j! i=0 ((n − 1) − i)!·i!
n
n! (n − i) j
∑ (−1)i·
i=0
·
(n − i)!·i! j!
= 0
c.q.d.
NOTA:
Obsérvese que en la demostración anterior se partía del hecho de que para
todo valor de m > 1 se verificaba que si j = 0
m
m! (m − i) j
entonces ∑ ( −1)i · · = 0 . Esta igualdad nos sirvió para hacer la
i=0 (m − i)!·i! j!
hipótesis de que para todo valor de m > 1 existía algún valor (j-1) < m para el
que:
m
m! (m − i)( j−1)
∑ (−1)i·
i=0
·
(m − i)!·i! ( j − 1)!
=0
139
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n = 1: j = 0
n = 2: j = 0 j=1
n=3j=0 j=1 j=2
n=4j=0 j=1 j=2 j=3
Lema 2º.
Siendo n un número entero positivo se verifica que:
n
n! (n − i)n
∑ (−1)i·
i=0
·
(n − i)!·i! n!
=1
Demostración:
Para n = 1 la igualdad anterior se reduce a que:
1
1! (1 − i) 1 1 1! 0
∑ (−1) ·(1 − i)!·i!·
i=0
i
1!
= 1· · − 1·
1!0! 1!
· =1
0!·1! 1!
Procedamos nuevamente por inducción suponiendo que para algún valor (n-1)
se verifica que:
(n −1)
(n − 1)! ((n − 1) − i)(n−1)
∑
i=0
( −1)i
·
((n − 1) − i)!·i!
·
(n − 1)!
=1
n
n! (n − i)(n−1) n n! (n − i)(n−1)
= ∑ ( −1)i · · − ∑ ( −1)i ·i· ·
i= 0 (n − i)!·i! (n − 1)! i=0 (n − i)!·i! n!
n
n! (n − i)n n
n! (n − i)(n−1)
∑ (−1)i·
i=0
·
(n − i)!·i! n!
= −∑ ( −1)i ·i·
i= 0 (n − i)!·i!
·
n!
=
140
Programación y Métodos Numéricos Interpolación polinómica
n
1 (n − i)(n−1) n
(n − 1)! (n − i)(n−1)
= ∑ ( −1)(i−1) ·i· · = ∑ (−1)(i−1)· · =
i= 0 (n − i)!·i! 1 i=0 (n − i)!·(i − 1)! (n − 1)!
n −1
(n − 1)! (n − i)(n−1) n−1 (n − 1)! ((n − 1) − i)(n−1)
= ∑ ( −1)(i−1) · · = ∑ ( −1)(i) · ·
i= 0 (n − i)!·(i − 1)! (n − 1)! i=1 ((n − 1) − i)!·i! (n − 1)!
n
n! (n − i)n n −1
(n − 1)! ((n − 1) − i)(n−1)
∑ (−1)i·
i=0
·
(n − i)!·i! n!
= ∑ (−1)(i)·
i=1 ((n − 1) − i)!·i!
·
(n − 1)!
=1
Por tanto, como la hipótesis era cierta para n = 1, la igualdad es cierta para el
valor n = 2. Y, al ser cierta para n = 2, también es cierta para n = 3. Y por ser
cierta para n = 3 también lo es para n = 4. Y en general lo será para cualquier
valor de n entero positivo que se considere.
c.q.d.
141
Interpolación polinómica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
[1] Burden, R.L. y Fiares, J.D. (1998). Análisis Numérico. Ed. International
Thomsom Editores
[6] Shampine, L.F., Allen Jr., R.C. and Pruess, S. (1997) Fundamentals of
numerical computing. Ed. John Wiley & Sons, Inc.
142
UNIVERSIDAD POLITÉCNICA DE MADRID
Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS
Marzo, 2007
ÍNDICE
Pág.
1. MOTIVACIÓN. ………………………………………………………… 1
ii
Programación y Métodos Numéricos Interpolación polinómica por tramos
1. Motivación
1
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Podría pensarse que, al ser la función f(x) considerada una función muy
regular, la cota del error de interpolación puede disminuirse fácilmente sin más
que considerar soportes formados por más puntos. En ese sentido las figuras
siguientes recogen los grafos (limitando el dibujo a la ventana [-8, 8]× [-5, 1]) de
los polinomios p8(x) y p16(x) que se obtendrían actuando respectivamente con
los soportes {-8, -6, -4, -2, 0, 2, 4, 6, 8} y {-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4,
5, 6, 7, 8} .
2
Programación y Métodos Numéricos Interpolación polinómica por tramos
3
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
4
Programación y Métodos Numéricos Interpolación polinómica por tramos
Por otra parte, el polinomio v(3)(x) que interpola a f(x) sobre el soporte
⎛ x⎞ 1 ⎛⎜ x ⎞⎟
{0, 4} es v (3) (x) = ⎜⎜1− ⎟⎟⎟ + (3)
⎜⎜ ⎟⎟ . Las gráficas de f(x) y de v (x) se muestran
⎝⎜ 4 ⎠ ⎝
17 4 ⎠
en la figura siguiente.
5
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧
⎪ v (1) (x) = 117 ( x 4 + 2) − 165 ( x 4 + 1) si x ∈ [−8,−4 ]
⎪
⎪
⎪
⎪
⎪v (x) = ( 4 − 1) − 17 ( 4) si x ∈ [−4,0 ]
(2) x 1 x
v(x) = ⎨ (3)
⎪
⎪ v (x) = (1− x 4) + 117 ( x 4) si x ∈ [ 0,4 ]
⎪
⎪
⎪
⎩v (x) = 17 (2 − 4) + 65 ( 4 − 1) si x ∈ [ 4,8 ]
(4)
⎪
⎪
1 x 1 x
6
Programación y Métodos Numéricos Interpolación polinómica por tramos
por lo que:
|E(x)| ≤ Sup f(x) − v(x) =
x∈[−8,8 ]
⎪⎧ ⎪⎫
= Sup ⎪⎨ Sup f(x) − v (1) (x) , Sup f(x) − v (2) (x) ,Sup f(x) − v (3) (x) ,Sup f(x) − v (4) (x) ⎪⎬ =
⎪⎩⎪x∈[−8,−4] x∈[−4,0] x∈[0,4] x ∈[ 4,8] ⎪⎭⎪
7
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
valor de las funciones, de sus derivadas hasta un orden dado, ...) que se
impongan en ellos1. Por ello, en general, el grado de cada uno de los
polinomios que define a la función interpoladora en cada uno de sus tramos no
tiene por qué ser el mismo.
1
Consúltese el tema anterior para mayor detalle.
8
Programación y Métodos Numéricos Interpolación polinómica por tramos
k
• su unión coincida con [x0, xn]: ∪ Ij ≡ [ x 0 ,xn ]
j=1
Por otra parte en todo este tema, para aligerar la terminología, fijado un
intervalo [x0, xn] usaremos el término función para referirnos a la restricción de
una función al intervalo [x0, xn]. Dicho de otra forma, sólo nos interesaremos por
9
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
2
Si quisiéramos ser rigurosos deberíamos hablar de clases de funciones formadas mediante la
relación de equivalencia “ser iguales en el intervalo [x0, xn]. Pero para no abrumar al lector con
“detalles” preferimos perder parte del rigor en aras a un más fácil seguimiento de la ya de por sí
engorrosa terminología y notación.
3
Al haber considerado el intervalo [x0, xn] cerrado, entenderemos la continuidad en x0 como la
igualdad entre el valor de la función en x0 y el valor del límite de dicha función cuando se hace
tender x hacia x0 por la derecha. Análogamente entenderemos la continuidad en xn como la
igualdad entre el valor de la función en xn y el valor del límite de dicha función cuando se hace
tender x hacia xn por la izquierda.
4
En la notación usada, L1(∆), ∆ hace referencia a la partición de [x0, xn] utilizada y el subíndice
“1” a que en cada subintervalo Ii de la partición las funciones del espacio se expresan mediante
polinomios de grado inferior o igual a 1. Hemos utilizado la letra “L” para indicar que con las
funciones de este espacio se realizará una interpolación de Lagrange. Esperamos que esta
notación no confunda al lector con los espacios de Lebesgue Lp(Ω) que se utilizan en Análisis
Funcional.
10
Programación y Métodos Numéricos Interpolación polinómica por tramos
De una forma más gráfica, el espacio L1(∆) está formado por todas
aquellas funciones continuas tales que en cada intervalo Ii (i = 1, ..., n) su grafo
es un segmento rectilíneo. Es decir, todas las funciones cuyos grafos sean
líneas quebradas continuas de tramos rectilíneos en cada subintervalo. En
otros términos los k polinomios p1,i(x) que definen en cada intervalo Ii a una
función v(x) de L1(∆) pueden ser distintos o no y la única condición que deben
cumplir es que p1,i(xi) = p1,i+1(xi) (i = 1, ..., n).
Ejemplos:
En los ejemplos que siguen, consideraremos el soporte {0, 1, 3, 4, 7, 9} y
la partición de [0, 9]:
∆ = {I1 = [0, 1], I2 = [1,3], I3 = [3, 4], I4 = [4, 7], I5 = [7, 9]}
11
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧⎪ 1− x x ∈ [0,4 ]
3º) La función f(x) = ⎪⎨ es una función de L1(∆) pues es una
⎪⎪5 − 2x x ∈ ]4,9 ]
⎩
función continua que en cada subintervalo Ii tiene expresiones polinómicas de
grado menor o igual que 1. Más concretamente:
⎧⎪1− x si x ∈ [0,1]
⎪⎪
⎪⎪1− x si x ∈ [1,3 ]
⎪
f(x) = ⎪⎨1− x si x ∈ [3,4 ]
⎪⎪
⎪⎪5 − 2x si x ∈ [ 4,7 ]
⎪⎪
⎪⎩5 − 2x si x ∈ [7,9 ]
⎧⎪2 − x si x ∈ [0,1]
⎪⎪
⎪⎪x si x ∈ ]1,3 ]
⎪
4º) La función f(x) = ⎪ ⎨9 − 2x si x ∈ ]3,4 ] es una función de L1(∆) pues es una
⎪⎪
⎪⎪1 si x ∈ ]4,7 ]
⎪⎪
⎪⎩−6 + x si x ∈ ]7,9 ]
función continua que en cada subintervalo I1 se define mediante un polinomio
de grado inferior o igual a 1.
⎧⎪ 3 − x si x ∈ [0,3]⎫⎪⎪
5º) La función f(x) = ⎪⎨ ⎬ no es una función de L1(∆) pues
⎪⎩⎪1+ 2x si x ∈]3,9] ⎪⎭⎪
aunque su expresión en cada subintervalo es un polinomio de primer grado, la
12
Programación y Métodos Numéricos Interpolación polinómica por tramos
⎧⎪1+ x si x ≤ 2⎫⎪⎪
6ª) La función f(x) = ⎪ ⎨ ⎬ no es una función de L1(∆) pues,
⎪⎩⎪5 − x si x > 2⎪⎪⎭
aunque es continua, su expresión en el intervalo [1, 3] no es un polinomio de
grado menor o igual a 1.
Obsérvese que la gráfica en [1, 3] de f(x) no es una línea recta sino una línea
quebrada compuesta por dos tramos rectos.
•
13
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
De una forma más gráfica, el espacio L2(∆) está formado por todas
aquellas funciones continuas tales que en cada intervalo Ii (i = 1, ..., n/2) su
grafo es un segmento rectilíneo o parabólico. En otros términos los n/2
polinomios p2,i(x) que definen en cada intervalo Ii a una función v(x) de L2(∆)
pueden ser distintos o no y la única condición que deben cumplir es que p2,i(x2i)
= p2,i+1(x2i) (i = 1, ..., (n/2)-1). Ilustrémoslo con algunos ejemplos.
Ejemplos:
En los ejemplos que siguen, consideraremos el soporte {0, 1, 3, 4, 7, 9,
10} y la partición:
∆ = {I1 = [0, 3], I2 = [3, 7], I3 = [7, 10] }
1º) La función f(x)= x es una función de L2(∆) pues es continua en [0, 10] y su
expresión en los tres subintervalos de la partición ∆ es un polinomio de grado
menor o igual que 2 (en los tres es el polinomio “x” que es de grado 1).
5
Al igual que antes entenderemos la continuidad en x0 como la igualdad entre el valor de la
función en x0 y el valor del límite de dicha función cuando se hace tender x hacia x0 por la
derecha. Análogamente entenderemos la continuidad en xn como la igualdad entre el valor de
la función en xn y el valor del límite de dicha función cuando se hace tender x hacia xn por la
izquierda.
6
En la notación usada, L2(∆), ∆ hace referencia a la partición de [x0, xn] utilizada y el subíndice
“2” a que en cada subintervalo Ii de la partición las funciones del espacio se expresan mediante
polinomios de grado inferior o igual a 2. No debe confundirse este espacio con el espacio de
Lebesgue L2(Ω).
14
Programación y Métodos Numéricos Interpolación polinómica por tramos
2º) La función f(x) = x2 –3x es una función de L2(∆) pues es continua en [0, 10]
y su expresión en los tres subintervalos de la partición ∆ es un polinomio de
grado menor o igual que 2 (en los tres es “x2-3x ” que es de grado 2).
⎧⎪ 1− x si x < 3⎫⎪⎪
3º) La función f(x) = ⎪⎨ ⎬ es una función de L2(∆) pues es
⎪⎩⎪7 − 6x + x 2 si x ≥ 3⎪⎭⎪
continua en [0, 9] y además en cada uno de los tres subintervalos de la
partición puede expresarse mediante un polinomio de grado menor o igual a 2:
⎧⎪1− x si x ∈ [0,3 ]
⎪⎪
f(x) = ⎪⎨7 − 6x + x 2 si x ∈ [3,7 ]
⎪⎪
⎪⎪⎩7 − 6x + x 2 si x ∈ [7,10 ]
⎧⎪ 3 − x si x < 4⎫⎪⎪
4º) La función f(x) = ⎪⎨ ⎬ no es una función de L2(∆) pues
⎪⎩⎪7 − 6x + x 2 si x ≥ 4⎪⎭⎪
aunque es continua en el intervalo [0, 10] su expresión en el subintervalo
I2 = [3, 7] no coincide con la expresión de un único polinomio (cambia su
expresión en el punto “x = 4” que es interior al intervalo I2) .
⎪⎧ 3 − x si x < 3⎪⎫⎪
5º) La función f(x) = ⎪⎨ ⎬ no es una función de L2(∆) pues,
⎪⎩⎪7 − 6x + x si x ≥ 3⎪⎭⎪
2
15
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
{x , x ,...,x
0 1 m1 ,xm1 +1,....,xm1 +m2 , xm1 +m2 +1,..., xm1 +m2 +m3 ,......, xm1 +m2 +...+mk−1 ,xm1 +m2 +...+mk−1 +1,...,xm1 +m2 +...+mk−1 +mk }
{x ,x1,1,...,x 0,2 ,x1,2 ,...,x 0,3 ,x1,3 ,...,x 0,4 ,.....,x 0,k−1,x1,k ,...,xmk ,k }
0,1
16
Programación y Métodos Numéricos Interpolación polinómica por tramos
I1 I2 I3 I4 I5 I6
De una forma más gráfica, el espacio Lm1,m2 ,..,mk (∆) está formado por
todas aquellas funciones continuas tales que en cada intervalo Ij (j = 1, ..., k) su
grafo es un segmento polinómico de grado menor o igual a mj. En otros
términos los k polinomios pj(x) que definen en cada intervalo Ii a una función
v(x) de Lm1,m2 ,..,mk (∆) no tienen por qué ser el mismo y las únicas condiciones
que deben cumplir es que su grado sea inferior o igual a mj y que
p j (xm j ,j ) = p j+1(xm j ,j ) (i = 1, ..., k). Ilustrémoslo con un ejemplo.
Ejemplo:
Si se considera el soporte {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} y la
partición del intervalo [0, 15] dada por:
∆ = {[0, 3] , [3, 4], [4, 8], [8, 10] , [10, 13], [13, 15]}
17
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Por tanto el espacio L3,1,4,2,3,2(∆) será el espacio formado por todas aquellas
funciones continuas en [0, 15] y que
⎪⎧⎪sen(x) x≤0 ⎫
⎪
⎪
⎪⎪ 2 ⎪
⎪
⎪⎪ x 0 < x ≤ 3 ⎪
⎪⎪−12 + 7x ⎪
⎪
⎪⎪ 3 < x ≤ 4 ⎪
⎪
⎪
f(x) = ⎪⎨2.6 + x 2 − (13 1280) x 4 4 < x ≤ 8 ⎪⎬
⎪⎪ ⎪
⎪⎪85 − 7.5x 8 < x ≤ 10 ⎪
⎪
⎪
⎪⎪ 2 ⎪
⎪
⎪⎪ 120 − 21x + x 10 < x ≤ 15⎪
⎪⎪1/(20 − x) ⎪
⎪
⎩⎪ 15 < x ⎪
⎪
⎭
18
Programación y Métodos Numéricos Interpolación polinómica por tramos
Propiedad 1ª
Siendo ∆ una partición de un intervalo [x0 , xn] en k subintervalos I1, I2,
...., Ik , el espacio Lm1,m2 ,...,mk (∆) formado por todas las funciones continuas en
[x0, xn] y tales que en cada intervalo Ij ( j = 1, ..., k) tienen una expresión
polinómica de grado menor o igual que mj, tiene estructura de espacio vectorial.
Demostración:
Para demostrar que Lm1,m2 ,...,mk (∆) es un espacio vectorial bastará con
demostrar que cualquier combinación lineal de dos funciones cualesquiera del
espacio conducen a otra función del espacio. Para ello sean λ y µ dos
números reales cualesquiera y u(x) y v(x) dos funciones cualesquiera de
Lm1,m2 ,...,mk (∆) . Las expresiones polinómicas de cada una de estas funciones en
los distintos subintervalos de la partición serán denotadas por:
7
En este ejemplo se han proporcionado expresiones de la función fuera del intervalo en el que
se producirá el proceso de interpolación ([0, 15]) para reforzar el comentario que se realizó al
comienzo de este subapartado en el sentido de que nos despreocupábamos de lo que sucede
fuera del intervalo de estudio. En este sentido recordamos que estamos considerando bajo el
nombre de función a las restricciones de las funciones al intervalo que se considere en cada
caso (en este ejemplo el intervalo [0, 15]).
8
Recordamos al lector que el que un conjunto tenga estructura de espacio vectorial equivale a
decir que cualquier combinación lineal de elementos de dicho conjunto conduce a otro
elemento del mismo conjunto.
19
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧
⎪u(1) (x) x ∈ I1 ⎫⎪⎪ ⎧⎪v (1) (x) x ∈ I1 ⎫⎪⎪
⎪
⎪ ⎪ ⎪⎪ ⎪
⎪ (2)
⎪u (x) x ∈ I2 ⎪⎪ ⎪⎪v (2) (x) x ∈ I2 ⎪⎪
u(x) = ⎨ ⎬ y v(x) = ⎨ ⎬
⎪
⎪...... ..... ⎪⎪ ⎪⎪...... ..... ⎪⎪
⎪
⎪ ⎪ ⎪⎪ (k ) ⎪
(k )
⎩u (x)
⎪
⎪ x ∈ Ik ⎪⎪⎪⎭ ⎪⎪⎩v (x) x ∈ Ik ⎪⎪⎪⎭
Propiedad 2ª
Siendo ∆ una partición de un intervalo [x0 , xn] en los k subintervalos I1,
I2, ...., Ik , la dimensión del espacio Lm1,m2 ,...,mk (∆) , formado por todas las
funciones continuas en [x0, xn] y tales que en cada intervalo Ij ( j = 1, ..., k)
tienen una expresión polinómica de grado menor o igual que mj, es:
Demostración:
Recordando que todo polinomio de grado menor o igual que “s” se define
con “s+1” coeficientes (o en otros términos que el espacio de polinomios de
grado menor o igual que “s” tiene (s+1) grados de libertad) puede concluirse
que la concreción de la expresión de una función u(x) del espacio en el
subintervalo Ij ofrece (mj+1) grados de libertad. Pero si se elige libremente una
expresión u(1)(x) para el intervalo I1, aparece una restricción a la hora de elegir
9
Recuérdese que el producto de un escalar por una función continua es otra función continua y
que la suma de dos funciones continuas es otra función continua.
20
Programación y Métodos Numéricos Interpolación polinómica por tramos
Teorema 1.
Dado el soporte de (n+1) puntos distintos {x0, x1, ..., xn}, que
supondremos ordenados de menor a mayor, sean m1, m2, …, mk un conjunto
k
de k enteros estrictamente positivos tales que n = ∑ mk . Sea ∆ la partición de
j=1
En estas condiciones una base de Lm1,m2 ,...,mk (∆) está formada por las funciones
{ϕ0 (x), ϕ1(x),..., ϕn } de Lm ,m ,...,m (∆) que verifican las igualdades:
1 2 k
⎧
⎪1 si j = i
ϕ j (xi ) = ⎪
⎨ (0 < i < n ; 0 < j < n)
⎪
⎩0 si j ≠ i
⎪
Demostración:
a) Demostremos en primer lugar que efectivamente existen (n+1) funciones
{ϕ j (x)}j=0
n
en el espacio Lm1,m2 ,...,mk (∆) tales que:
21
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧
⎪1 si j = i
ϕ j (xi ) = ⎪
⎨ (0 < i < n ; 0 < j < n)
⎪
⎩0 si j ≠ i
⎪
En efecto, para ello escogido cualquier valor del índice “j” comprendido
entre 0 y n, distinguiremos dos situaciones posibles: 1ª) que el punto xj sea
interior a uno de los subintervalos de la partición (que denotaremos como Is ) o
2ª) que el punto xj sea el punto común que tienen dos subintervalos contiguos
(que denotaremos como Is-1 e Is).
dichos puntos tome los valores {0, ..., 0, 1, 0, ..., 0}. Dicho polinomio tendrá
grado menor o igual que ms y se anulará en los extremos de Is, por lo que la
función ϕ j (x) es evidente que pertenecerá al espacio Lm1,m2 ,...,mk (∆) .
p j,s−1(x m1+...+ms−2 ) = 0
p j,s−1(xm1+...+ms−2 +ms−1 ) = p j,s (x m1+...+ms−2 +ms−1 ) = 1
p j,s (x m1+...+ms−2 +ms−1+ms ) = 0
Esto implica que la función ϕ j (x) pertenece al espacio Lm1,m2 ,...,mk (∆) .
22
Programación y Métodos Numéricos Interpolación polinómica por tramos
enunciado son una base del espacio Lm1,m2 ,...,mk (∆) . Ello es equivalente a
{ϕ j (x)}j
n
demostrar que ninguna de las funciones puede expresarse como
=0
combinación lineal de las demás. Y esto es obvio sin más que considerar que,
para cualquier valor permitido del índice “j”, la función ϕ j (x) es la única que no
se anula en el punto xj por lo que cualquier combinación lineal de las demás
funciones nos conducirá a una función que tome valor nulo en xj y que, por
tanto no podrá coincidir con ϕ j (x) .
c.q.d.
Definición
{ϕ j (x)}j
n
La base determinada en el teorema anterior se denomina
=0
base de Lagrange del espacio Lm1,m2 ,...,mk (∆) asociada al soporte {x0, ..., xn}. A
⎧⎪1 si i = j
la función ϕi (x) que verifica ϕi (x j ) = ⎪⎨ se la denomina función de
⎪⎪⎩0 si i ≠ j
base de Lagrange asociada al nodo xi.
•
10
Las coordenadas de un elemento “u” de un espacio vectorial V de dimensión “m” en una
base de V denotada por B = {v1, ..., vm}, son los escalares que intervienen en la combinación
lineal de los elementos de B que tiene por resultado el elemento “u”. Es decir que {a1, a2, ..., an}
son las coordenadas de “u” en la base B si se verifica que u = a1·v1 + a2·v2 + .... + an·vn.
23
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Teorema 2.
Dado el soporte de (n+1) puntos distintos {x0, x1, ..., xn}, que supondremos
ordenados de menor a mayor, sean m1, m2, …, mk un conjunto de k enteros
k
estrictamente positivos tales que n = ∑ mk . Sea ∆ la partición de [ x0, xn] en
j=1
los k subintervalos:
I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ , I2 = ⎡⎢ xm1 ,xm1+m2 ⎤⎥ , .….., Ik = ⎡⎢ xm1+m2 +...+mk −1 ,xn ⎤⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
Con esta notación, siendo {u0, u1, ..., un} un conjunto de (n+1) escalares y
n
{ϕi (x)}i=0 la base de Lagrange del espacio Lm1,m2 ,...,mk (∆) asociada al soporte
{x0, x1, ..., xn}, existe una única función u(x) del espacio Lm1,m2 ,...,mk (∆)
verificando que u(xi) = ui (i = 0, 1, ..., n). Además dicha función está dada por la
expresión :
n
u(x) = ∑ u j ·ϕ j (x)
j=0
Demostración:
⎛ n ⎞
La función u(x) = ⎜⎜⎜∑ u j ·ϕ j (x)⎟⎟⎟ es una función de Lm1,m2 ,...,mk (∆) pues es
⎜⎝ j=0 ⎠⎟
una combinación lineal de elementos de dicho espacio. Además, en virtud del
teorema 1, se verifica que:
n
u(xi ) = ∑ u j ·ϕ j (xi ) = ui ·ϕi (xi ) = ui (i = 0, ..., n)
j=0
Por tanto u(x) es una función de Lm1,m2 ,...,mk (∆) que toma los valores
nodales prescritos.
24
Programación y Métodos Numéricos Interpolación polinómica por tramos
Ello implica que w(x) ≡ 0 ∀x ∈ [x 0 ,xn ] y por tanto u(x) ≡ v(x) ∀x ∈ [x 0 ,xn ] en
contra de la suposición de que u(x) y v(x) eran dos funciones diferentes del
espacio. Por tanto es absurdo suponer que existe más de una función de
Lm1,m2 ,...,mk (∆) con los mismos valores nodales.
c.q.d.
Propiedad 3.
Dado el soporte de (n+1) puntos distintos {x0, x1, ..., xn}, que
supondremos ordenados de menor a mayor, sean m1, m2, …, mk un conjunto
k
de k enteros estrictamente positivos tales que n = ∑ mk . Sea ∆ la partición de
j=1
n
Con esta notación, siendo {ϕi (x)}i=0 la base de Lagrange del espacio
Lm1,m2 ,...,mk (∆) se verifica:
n
a) ∑ ϕ (x) = 1
j=0
j ∀x ∈ [ x 0 ,x n ]
n
b) ∑ x ·ϕ (x) = x
j=0
j j ∀x ∈ [ x 0 ,x n ]
Demostración:
a) La función u(x) = 1 es una función del espacio Lm1,m2 ,...,mk (∆) ya que en cada
tramo Ij de la partición puede definirse con el polinomio (de grado 0) p(x) = 1.
Por ello sus (n+1) valores nodales son {1, 1, ..., 1}. Aplicando el teorema 2 a
esta función se tiene que
n
∑ ϕ (x) = u(x) = 1
j=0
j ∀x ∈ [ x 0 ,x n ]
11
Si bien es cierto que estos casos no son los únicos posibles no es menos cierto que son los
más utilizados en la práctica.
25
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
b) La función v(x) = x es una función del espacio Lm1,m2 ,...,mk (∆) ya que en cada
tramo Ij de la partición puede definirse con el polinomio (de grado 1) p(x) = x, y
como en cada subintervalo habrá al menos dos puntos, este polinomio siempre
será de grado menor o igual que mj (j = 1, ..., k). Los (n+1) valores nodales de
v(x) son {x0, x1, ..., xn}. Aplicando el teorema 2 a la función v(x) se tiene que:
∑ x ·ϕ (x) = x
j=0
j j ∀x ∈ [ x 0 ,x n ]
c.q.d.
Ejercicios propuestos:
1º. Sea {x0 < x1 < x2 < ... <xn} un soporte formado por (n+1) puntos y denotemos
por ∆1 a la partición ∆1 = { [x0, x1], [x1, x2], ..., [xn-1, xn] } y por ∆2 a la partición
∆2 = {[x0, x2] , [x2 , x4] , ...., [xn-2 , xn] }. Razona la veracidad o falsedad de la
siguiente inclusión: L1 (∆1) ⊂ L 2 (∆2 ) .
⎧
⎪cos(x) si x < 0
a) f(x) = ⎪
⎨
⎪
⎩ 1+ x si x ≥ 0
⎪
b) f(x) = x2
⎧
⎪ x2 si x ≤ 2
⎪
⎪ 3
c) f(x) = ⎪
⎨x si 2 < x ≤ 6
⎪
⎪
⎪
⎩x
⎪ si 6 < 2
⎧
⎪0 si x ≤ 2
⎪
⎪
d) f(x) = ⎪⎨(x − 2) si 2 < x ≤ 6
3
⎪
⎪
⎩22 + 7x si 6 < 2
⎪
⎪
26
Programación y Métodos Numéricos Interpolación polinómica por tramos
3º. Sea ∆ una partición de un intervalo [x0 , xn] en k subintervalos I1, I2, ...., Ik ,
y consideremos el espacio Lm1,m2 ,...,mk (∆) formado por todas las funciones
continuas en [x0, xn] y tales que en cada intervalo Ij ( j = 1, ..., k) tienen una
expresión polinómica de grado menor o igual que mj. Denotemos por Ps al
espacio de todos los polinomios de grado menor o igual que s. Con esta
notación, razona la veracidad o falsedad de las dos afirmaciones siguientes:
4º. Dado el soporte de (n+1) puntos distintos {x0, x1, ..., xn}, que supondremos
ordenados de menor a mayor, sean m1, m2, …, mk un conjunto de k enteros
k
estrictamente positivos tales que n = ∑ mk . Denotemos por m al inferior de los
j=1
enteros (m1, m2, ..., mk) y sea ∆ la partición de [ x0, xn] en los k subintervalos:
I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ , I2 = ⎡⎢ xm1 ,xm1+m2 ⎤⎥ , .….., Ik = ⎡⎢ xm1+m2 +...+mk −1 ,xn ⎤⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
n
Con esta notación, siendo {ϕi (x)}i=0 la base de Lagrange del espacio
Lm1,m2 ,...,mk (∆) demuestra que se verifica:
n
∑ x ϕ (x) = x
j=0
i
j j
i
∀x ∈ [ x 0 ,x n ] 0 ≤ i ≤ m
27
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 4.
La base de Lagrange de L1(∆) asociada al soporte {x0, x1, ....., xn} es la
formada por las (n+1) funciones:
⎧ x − x1
⎪
⎪
⎪ si x ∈ [ x 0 ,x1 ]
ϕ 0 (x) = ⎨ x 0 − x1
⎪
⎪
⎪
⎩ 0
⎪ en caso contrario
⎪⎧ x − x j−1 ⎪⎫
⎪⎪⎪ si x ∈ ⎣⎢⎡ x j−1,x j ⎦⎥⎤ ⎪⎪⎪
⎪⎪ x j − x j−1 ⎪⎪
⎪⎪ ⎪⎪
⎪ x − x j+1 ⎪⎪
ϕ j (x) = ⎪⎨ si x ∈ ⎡⎢⎣ x j ,x j+1 ⎤⎥⎦ ⎬ (j = 1, ..., n-1)
⎪⎪ x j − x j+1 ⎪⎪
⎪⎪ ⎪⎪
⎪⎪ ⎪
⎪⎪0 en caso contrario⎪⎪⎪
⎪⎩⎪ ⎪⎭⎪
⎪⎧⎪ x − xn−1
⎪ si x ∈ [ x n−1,xn ]
ϕn (x) = ⎨ xn − xn−1
⎪⎪
⎪⎪⎩ 0 en caso contrario
Demostración:
Con las expresiones dadas en el enunciado se tiene que:
28
Programación y Métodos Numéricos Interpolación polinómica por tramos
⎪⎧1 si i = j
lim ϕ j (x) = ⎪⎨ (0 < i < n),
x → xi ⎪⎪⎩0 si i ≠ j
lim ϕ j (x) = 0
x → x−
n
y:
lim ϕn (x) = 0 , lim ϕn (x) = 0 ( 0 < i < n) , lim− ϕn (x) = 1
x → x+
0
x → xi x → xn
Todo ello nos permite afirmar que son funciones del espacio L1(∆), y
⎪⎧1 si i = j
además, al verificarse que ϕ j (xi ) = ⎪⎨ , el teorema 1 demostrado en el
⎪⎪⎩0 si i ≠ j
{ϕ j (x)}j
n
subapartado 2.1. nos garantiza que las funciones son la base de
=0
1
Función ϕ 0 (x) :
x0 x1 ... xj ... xn
1
Función ϕ j (x) ( j = 1, ..., n-1):
x0 ... xj-1 xj xj+1 ... xn
Función ϕn (x) 1
29
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Determinemos las funciones de la base de Lagrange del espacio L1(∆)
asociado al soporte {0, 1, 3, 5}.
30
Programación y Métodos Numéricos Interpolación polinómica por tramos
Teorema 3.
Dado el soporte {x0, ..., xn} y denotando por fj = f(xj) ( j = 0, .., n) a los
valores que toma una función f(x) en los puntos del soporte y por {ϕ j (x)}
n
a
j=0
las funciones que forman la base de Lagrange del espacio L1(∆) que está
asociada a este soporte, se verifica que la función:
n
u(x) = ∑ f j ·ϕ j (x)
j=0
Demostración:
Es una consecuencia inmediata de aplicar el teorema 2 del apartado 2.1.
al espacio L1(∆).
c.q.d.
Ejemplo:
Dado el soporte {0, 1, 3, 5} calculemos la función del espacio L1(∆)
correspondiente que interpola a la función f(x) = sen( π ·x/2).
Por otra parte, los valores de la función en los puntos del soporte son los
siguientes:
Por tanto: u(x) = 0·ϕ 0 (x) + 1·ϕ1(x) − 1·ϕ 2 (x) + 1·ϕ 3 (x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x)
31
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
32
Programación y Métodos Numéricos Interpolación polinómica por tramos
∑ ϕ (x) = 1
j=0
j ∀x ∈ [ x 0 ,xn ] y ∑ x ·ϕ (x) = x
j=0
j j ∀x ∈ [ x 0 ,xn ]
Propiedad 5.
Para todo valor de los escalares α y β , siendo {ϕ j (x)}
n
las funciones
j=0
de base del espacio L1(∆) asociadas al soporte {x0, x1, ..., xn}, se verifica que:
n
∑ (α + βx )·ϕ (x) = α + βx
j=0
j j ∀x ∈ [ x 0 ,xn ]
Demostración:
Es una consecuencia inmediata de la propiedad 3ª demostrada en el
apartado 2.1.
c.q.d.
Propiedad 6.
Dado el soporte {x0, ..., xn}, sea ∆ la partición de [x0, xn] dada por :
33
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧
⎪ f1(x) si x ∈ I1 = [ x 0 ,x1 ] ⎧⎪u (x) si x ∈ I1 = [ x 0 ,x1 ]
⎪
⎪ ⎪⎪ 1
⎪
⎪ ⎪⎪
⎪
⎪.... ..................... ⎪⎪.... .....................
⎪
⎪ ⎪⎪
f(x) = ⎪
⎨f j (x) si x ∈ Ij = ⎣⎢⎡ x j−1,x j ⎦⎥⎤ , u(x) = ⎨⎪u j (x) si x ∈ Ij = ⎣⎢⎡ x j−1,x j ⎦⎥⎤
⎪
⎪ ⎪⎪
⎪
⎪.... ..................... ⎪⎪.... .....................
⎪
⎪ ⎪⎪
⎪
⎪ ⎪⎪
⎪ f (x) si x ∈ In = [ xn−1,xn ] ⎪⎪⎩un (x) si x ∈ In = [ xn−1,xn ]
⎪
⎩n
si para algún valor del índice “j” tal que 1 < j < n la expresión fj(x) es un
polinomio de grado menor o igual que 1 entonces se verifica que uj(x) = fj(x).
Demostración:
Si fj(x) es un polinomio de grado menor o igual que 1 coincidirá con el
polinomio interpolador de Lagrange (12) de f(x) sobre el soporte {xj-1, xj}. En otros
términos, si fj(x) es un polinomio de grado menor o igual que 1 resultará que
fj(x) es el único polinomio de grado menor o igual que 1 que verifica las
condiciones: fi(xi-1) = f(xi-1) y fi(xi) = f(xi). Y puesto que ui(x) debe ser un
polinomio de grado menor o igual que 1 verificando ui(xi-1) = f(xi-1) y ui(xi) = f(xi)
puede concluirse que ui(x) = fi(x).
c.q.d.
Ejemplo:
Determinemos la función del espacio L1(∆) que interpola sobre el soporte de
7 puntos {0,1, 2, 3, 4,5, 6} a la función f(x) definida por:
⎪⎧ ⎛ π⎞
⎪⎪⎪sen ⎜⎜⎜ x ⎟⎟⎟ si x ≤ 3
⎪ ⎝ 2⎠
⎪
⎪
⎪
f(x) = ⎪ ⎨−7 + 2x si 3 < x < 4
⎪
⎪
⎪
⎪ ⎛ ⎞
⎪⎪cos ⎜⎜ x π ⎟⎟ si 4 ≤ x
⎪
⎪⎪⎩ ⎝⎜ 2 ⎠⎟
El grafo de la función f(x) que queremos interpolar se recoge en la figura
siguiente:
12
Puede consultarse el tema anterior la interpolación polinómica de Lagrange para tener una
demostración de esta afirmación
34
Programación y Métodos Numéricos Interpolación polinómica por tramos
Por tanto, en virtud del teorema 3 la función interpoladora que nos proporciona
u(x) puede calcularse mediante la expresión:
u(x) = 0·ϕ 0 (x) + 1·ϕ1(x) + 0·ϕ 2 (x) − 1·ϕ 3 (x) + 1·ϕ 4 (x) + 0·ϕ 5 (x) − 1·ϕ 6 (x) =
= ϕ1(x) − ϕ 3 (x) + ϕ 4 (x) − ϕ 6 (x)
⎧⎪1− x si x ∈ [0,1] 1
ϕ 0 (x) = ⎪⎨
⎪⎪⎩ 0 en otro caso 0 1 2 3 4 5 6
⎧
⎪ x si x ∈ [0,1]
⎪
⎪
1
ϕ1(x) = ⎪
⎨2 − x si x ∈ [1,2]
⎪
⎪ 0 1 2 3 4 5 6
⎪
⎩0
⎪ en otro caso
13
Calculamos, para que practique el lector, las 7 funciones de base aunque en este caso nos
bastaría con calcular sólo las funciones ϕ1(x), ϕ3(x), ϕ4(x) y ϕ6(x).
35
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧⎪x − 1 si x ∈ [1,2]
⎪⎪ 1
ϕ 2 (x) = ⎪⎨3 − x si x ∈ [ 2,3 ]
⎪⎪ 0 1 2 3 4 5 6
⎪⎪⎩0 en otro caso
⎧⎪x − 2 si x ∈ [ 2,3 ]
⎪⎪ 1
ϕ 3 (x) = ⎪⎨4 − x si x ∈ [3,4 ]
⎪⎪ 0 1 2 3 4 5 6
⎪⎪⎩0 en otro caso
⎧⎪x − 3 si x ∈ [3,4 ]
⎪⎪ 1
ϕ 4 (x) = ⎪⎨5 − x si x ∈ [ 4,5 ]
⎪⎪ 0 1 2 3 4 5 6
⎪⎪⎩0 en otro caso
⎧⎪x − 4 si x ∈ [ 4,5 ]
⎪⎪ 1
ϕ 5 (x) = ⎪⎨6 − x si x ∈ [5,6 ]
⎪⎪
⎪⎪⎩0 en otro caso 0 1 2 3 4 5 6
⎧⎪x − 5 si x ∈ [5,6 ] 1
ϕ 6 (x) = ⎪⎨
⎪⎪0 en otro caso 0 1 2 3 4 5
⎩
36
Programación y Métodos Numéricos Interpolación polinómica por tramos
Teniendo en cuenta que en los tramos [1, 2] y [2, 3] la función u(x) tiene la
misma expresión y que en [4, 5] y [5, 6] ocurre lo mismo podemos concluir que:
⎧⎪x si x ∈ [0,1]
⎪⎪
⎪⎪2 − x si x ∈ [1,3 ]
u(x) = ⎨
⎪⎪−7 + 2x si x ∈ [3,4 ]
⎪⎪
⎪⎪⎩5 − x si x ∈ [ 4,6 ]
37
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 7.
Dado el soporte {x0, ..., xn}, denotando por fj = f(xj) ( j = 0, .., n) a los valores
que toma una función f(x) en los puntos del soporte y por:
x − xj x − x j−1
L(0j) (x) = y L(1j) (x) = (j = 1, ..., n)
x j−1 − x j x j − x j−1
a los polinomios de base de Lagrange asociados al soporte {xj-1, xj} se verifica
que las funciones de la base de Lagrange del espacio L1(∆) pueden definirse
mediante las expresiones :
⎧⎪L(1) (x) si x ∈ [ x 0 ,x1 ]
ϕ 0 (x) = ⎪⎨ 0
⎪⎪⎩ 0 en otro caso
⎧⎪L( j−1) (x) si x ∈ ⎡ x ,x ⎤
⎪
⎪ 1 ⎢⎣ j−1 j ⎥⎦
⎪
ϕ j (x) = ⎨⎪L(0j) (x) si x ∈ ⎡⎣⎢ x j ,x j+1 ⎤⎦⎥ (j = 1, ...., n-1)
⎪
⎪
⎪
⎪ 0 en otro caso
⎪
⎩
⎧⎪L(n) (x) si x ∈ [ x n−1,x n ]
ϕn (x) = ⎪⎨ 1
⎪⎪⎩ 0 en otro caso
c.q.d.
38
Programación y Métodos Numéricos Interpolación polinómica por tramos
Propiedad 8.
Dado el soporte {x0, ..., xn} y denotando por fj = f(xj) ( j = 0, .., n) a los valores
que toma una función f(x) en los puntos del soporte se verifica que la función
interpoladora de Lagrange de f(x) del espacio L1(∆) sobre el soporte {x0, ..., xn}
está dada por la expresión:
⎧⎪f + f [ x ,x ]·(x − x ) si x ∈ I1 = [ x 0 ,x1 ]
⎪⎪ 0 0 1 0
⎪⎪
⎪⎪............................ ....
⎪⎪
u(x) = ⎪⎨f j−1 + f ⎡⎣⎢ x j−1,x j ⎤⎦⎥·(x − x j−1 ) si x ∈ Ij = ⎡⎣⎢ x j−1,x j ⎤⎦⎥
⎪⎪
⎪⎪............................ ....
⎪⎪
⎪⎪
⎪⎪⎩fn−1 + f [ xn−1,xn ]·(x − xn−1 ) si x ∈ In = [ xn−1,xn ]
donde f[xj-1, xj] es la diferencia dividida de la función f(x) en los puntos {xj-1, xj}
dada por:
f(x j ) − f(x j−1 )
f ⎡⎣⎢ x j−1,x j ⎤⎦⎥ =
x −x
j j−1
Demostración:
Según las expresiones de las funciones de la base de Lagrange del
espacio L1(∆), en un intervalo cualquiera de la partición, el intervalo Ij , las
únicas funciones de base no nulas son ϕ j−1(x) y ϕ j (x) . Las expresiones de
estas funciones de base en el intervalo Ij son:
x − xj x − x j−1
∀x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎥⎦ : ϕ j−1(x) = , ϕ j (x) =
x −x
j−1 j x j − x j−1
por lo que la función u(x) de L1(∆) que interpola a f(x) queda definida en Ij por la
expresión:
x − xj x − x j−1
∀x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎥⎦ : u(x) = fj−1·ϕ j−1(x) + fj ·ϕ j (x) = f j−1· + fj ·
j−1 x −x
j jx −x
j−1
39
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Puesto que
x − xj (x − x j−1 ) + (x j−1 − x j ) x − x j−1
f j−1· = fj−1· = f j−1 − fj−1·
x j−1 − x j x j−1 − x j x j−1 − x j
podemos rescribir la expresión local de la función interpoladora como:
f −f
∀x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎥⎦ : u(x) = fj−1 + j j−1 (x − x j−1 )
x −x j j−1
de donde:
∀x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎥⎦ : u(x) = fj−1 + f ⎡⎢⎣ x j−1,x j ⎤⎥⎦·(x − x j−1 )
c.q.d.
Teorema 4.
Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio
L1(∆) sobre el soporte {x0, ..., xn} y suponiendo que para algún valor del índice j
( con 1 < j < n) se verifica que f ∈ C2 ((x j−1,x j )) y que f(x) es continua por la
derecha en xj-1 y que f(x) es continua por la izquierda en xj, entonces:
f " (ξ j )
∀x ∈ ⎤⎥⎦ x j−1,x j ⎡⎢⎣ ∃ξ j =∈ ⎤⎥⎦ x j−1,x j ⎡⎢⎣ / E(x) = f(x) − u(x) = (x − x j−1 )·(x − x j )
2
Demostración:
Puesto que la expresión anterior es válida para todo punto interior al
intervalo Ij, el error (f(x) – u(x)) coincide con el error entre f(x) y el polinomio
p(j)(x) que define a la función interpoladora en el subintervalo Ij. Y como este
polinomio es el polinomio que interpola a f(x) sobre el soporte {xj-1, xj} basta con
aplicar el teorema que nos proporcionaba la expresión del error de
interpolación polinómica(15) a este caso particular.
c.q.d.
15
Vése el teorema 2 del apartado 2.2. del tema anterior dedicado a la interpolación polinómica.
40
Programación y Métodos Numéricos Interpolación polinómica por tramos
Pero el teorema anterior también nos permite obtener cotas locales del error
de interpolación. Algunas de ellas son las recogidas a continuación.
Corolario 1
Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio L1(∆)
sobre el soporte {x0, ..., xn} y suponiendo que para algún valor del índice j ( con
1 < j < n) se verifica que f ∈ C2 (]x j−1,x j [) y que f(x) es continua por la derecha en
xj-1 y que f(x) es continua por la izquierda en xj , entonces:
1
a) ∀x ∈ ⎤⎦⎥ x j−1,x j ⎡⎣⎢ : E(x) = f(x) − u(x) ≤ Mj · Sup (x − x j−1 )·(x − x j )
2 x∈⎤⎦⎥ x j−1,x j ⎡⎣⎢
donde Mj = Sup f "(x)
x∈⎤⎥ x j−1,x j ⎡⎢
⎦ ⎣
1
b) ∀x ∈ ⎤⎦⎥ x j−1,x j ⎡⎣⎢ : E(x) = f(x) − u(x) ≤ Mj ·h2j , donde Mj = Sup f "(x)
8 x∈⎤⎥ x j−1,x j ⎡⎢
⎦ ⎣
y hj = |xj – xj-1|.
Demostración:
a) La primera acotación es inmediata pues basta con tomar valor absoluto
en la expresión del error y sustituir el valor de |f”(ξj)| por el supremo de
|f”(x)| en el intervalo ]xj-1, xj[ y el valor de |(x-xj-1)·(x-xj)| por su supremo
en ]xj-1, xj[.
41
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1
- α * + 1 - α * = 0 ⇒ α* =
2
En ese punto g(1/2) = ¼ y por tanto:
1
∀x ∈ ⎤⎥⎦ x j−1,x j ⎡⎢⎣ : ( x − x j−1 )(
· x − x j ) ≤ h2j
4
Corolario 2
a) Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio
L1(∆) sobre el soporte {x0, ..., xn} y suponiendo que para todo valor del
índice j ( con 1 < j < n) se verifica que f ∈ C2 (]x j−1,x j [) y que f(x) es
continua por la derecha en xj-1 y que f(x) es continua por la izquierda en
xj, entonces:
1
∀x ∈ [ x 0 ,xn ] : E(x) = f(x) − u(x) ≤ Max (Mj ·h2j )
8 1≤ j≤n
donde Mj = Sup f "(x) y hj = |xj – xj-1|.
x∈⎤⎥ x j−1,x j ⎡⎢
⎦ ⎣
42
Programación y Métodos Numéricos Interpolación polinómica por tramos
1
∀x ∈ [ x 0 ,xn ] :
E(x) = f(x) − u(x) ≤ M·h2
8
donde Mj = Sup f "(x) , hj = |xj – xj-1|, M = Max {Mj } y h = Max {h j } .
x∈⎤⎥ x j−1,x j ⎡⎢ 1≤ j≤n 1≤ j≤n
⎦ ⎣
Demostración:
Las tres acotaciones realizadas son inmediatas a partir de las recogidas
en el corolario 1. Se dejan los detalles como ejercicio propuesto al lector.
c.q.d.
Ejemplos:
1º La función del espacio L1(∆) que interpola sobre el soporte de 7 puntos {0,1,
2, 3, 4,5, 6} a la función f(x) definida por:
⎧
⎪ ⎛ π⎞
⎪
⎪sen ⎜⎜ x ⎟⎟⎟ si x ≤ 3
⎪
⎪ ⎝⎜ 2 ⎠
⎪
⎪
⎪
f(x) = ⎪ ⎨−7 + 2x si 3 < x < 4
⎪
⎪
⎪
⎪
⎪ ⎛ π⎞
⎪
⎪cos ⎜⎜ x ⎟⎟⎟ si 4 ≤ x
⎪⎪⎩ ⎝⎜ 2 ⎠
es (véase uno de los ejemplos anteriores desarrollados en este apartado):
⎧
⎪ x si x ∈ [0,1]
⎪
⎪
⎪
⎪2 − x si x ∈ [1,3 ]
u(x) = ⎨
⎪
⎪−7 + 2x si x ∈ [3,4 ]
⎪
⎪
⎩5 − x
⎪
⎪ si x ∈ [ 4,6 ]
Puesto que f(x) es continua en todo punto interior a cualquiera de los
subintervalos I0 = [0, 1], I1 = [1, 2], I2 = [2, 3], I3 = [3,4], I4 = [4,5] e I5 = [5, 6] se
puede aplicar el teorema 4 para obtener que:
π2
∀x ∈ ]0,1[ ∃ξ1 / E(x) = − sen(ξ1 )·x·(x − 1)
8
2
π
∀x ∈ ]1,2[ ∃ξ 2 / E(x) = − sen(ξ 2 )·(x − 1)·(x − 2)
8
43
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
π2
∀x ∈ ]2,3[ ∃ξ3 / E(x) = − sen(ξ3 )·(x − 2)·(x − 3)
8
∀x ∈ ]3,4[ E(x) = −0·(x − 2)·(x − 3) = 0
π2
∀x ∈ ]4,5[ ∃ξ5 / E(x) = − cos(ξ5 )·(x − 4)·(x − 5)
8
π2
∀x ∈ ]5,6[ ∃ξ 6 / E(x) = − cos(ξ 6 )·(x − 5)·(x − 6)
8
Puesto que:
⎛ ⎛ π⎞ ⎞ ⎛ ⎛ π⎞ ⎞ ⎛ ⎛ π⎞ ⎞
Sup ⎜⎜⎜ sen ⎜⎜ x ⎟⎟⎟ ⎟⎟⎟ = Sup ⎜⎜⎜ sen ⎜⎜ x ⎟⎟⎟ ⎟⎟⎟ = Sup ⎜⎜⎜ sen ⎜⎜ x ⎟⎟⎟ ⎟⎟⎟ = 1
x∈]0,1[ ⎜
⎝ ⎜⎝ 2 ⎠ ⎠⎟ x∈]1,2[ ⎝⎜ ⎜⎝ 2 ⎠ ⎠⎟ x∈]2,3[ ⎝⎜ ⎜⎝ 2 ⎠ ⎠⎟
y:
⎛ ⎛ π⎞ ⎞ ⎛ ⎛ π⎞ ⎞ ⎛ ⎛ π⎞ ⎞
Sup ⎜⎜⎜ cos ⎜⎜ x ⎟⎟⎟ ⎟⎟⎟ = Sup ⎜⎜⎜ cos ⎜⎜ x ⎟⎟⎟ ⎟⎟⎟ = Sup ⎜⎜⎜ cos ⎜⎜ x ⎟⎟⎟ ⎟⎟⎟ = 1
x∈]0,1[ ⎜
⎝ ⎜⎝ 2 ⎠ ⎠⎟ x∈]1,2[ ⎝⎜ ⎝⎜ 2 ⎠ ⎠⎟ x∈]2,3[ ⎝⎜ ⎝⎜ 2 ⎠ ⎠⎟
π2
Las cotas anteriores nos permiten afirmar que: ∀x ∈ [0,6 ] : E(x) ≤ .
32
Verifiquémoslo. La función de error está dada por:
⎧
⎪ ⎛ π⎞
⎪
⎪sen ⎜⎜ x ⎟⎟⎟ − x si x ∈ [0,1]
⎪
⎪ ⎝⎜ 2 ⎠
⎪
⎪
⎪ ⎛ π⎞
⎪
⎪sen ⎜⎜ x ⎟⎟⎟ − (2 − x) si x ∈ [1,3 ]
⎪ ⎜⎝ 2 ⎠
E(x) = f(x) – u(x) = ⎪
⎨
⎪
⎪⎪0
⎪ si x ∈ [3,4 ]
⎪
⎪
⎪
⎪ ⎛ ⎞
⎪
⎪cos ⎜⎜ x π ⎟⎟ − (5 − x) si x ∈ [ 4,6 ]
⎪
⎪ ⎜⎝ 2 ⎠⎟
⎩
La figura siguiente recoge las gráficas de la función f(x) y la función
interpoladora u(x) (figura de la izquierda) y la gráfica del error E(x).
44
Programación y Métodos Numéricos Interpolación polinómica por tramos
En el intervalo [1, 3] los extremos de E(x) se alcanzarán en los puntos x2* del
intervalo [1, 3] en los que:
2⎡ ⎛ 2 ⎞⎤
E’(x2*) = ( π 2 ).cos(x 2 * . π 2 ) + 1 = 0 ⇒ x 2 * = ⎢π ± arc cos ⎜⎜ ⎟⎟⎟⎥
π ⎢⎣ ⎝⎜ π ⎠⎥⎦
En dichos puntos se tiene que: |E(x2*)| = 0.210... < 0.211.
45
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Solución:
a) ϕ5(x)
⎧ x − 4 si x ∈ [ 4,5] 1
⎪
ϕ5 (x) = ⎨6 − x si x ∈ [5,6] 0 1 2 3 4 5 6
⎪ 0 si x ∉ [ 4,6]
⎩
ϕ6(x)
⎧⎪ 0 si x ∉ [5,6] 1
ϕ6 (x) = ⎨
⎪⎩ x − 5 si x ∈ [5,6] 0 1 2 3 4 5 6
46
Programación y Métodos Numéricos Interpolación polinómica por tramos
6
b) La función ∑ (i + 1)·ϕ (x)
i =0
i es la función de L1(∆) que interpola en el sentido de
y por tanto, denotando por S al conjunto de los puntos del soporte, se tiene
que:
'
⎛ 6 ⎞ 6
∀x ∈ ]0,6[ / x ∉ S : ⎜ ∑ (i + 1)·ϕi (x) ⎟ = ∑ (i + 1)·ϕ 'i (x) = 1
⎝ i=0 ⎠ i= 0
En resumen la expresión dada es correcta para todos los puntos de ]0, 6[ que
no pertenezcan al soporte.
Puesto que la función interpoladora v(x) sí que pertenece a L1(∆) (y por tanto es
continua en todo [0, 6]) no podrá coincidir con g(x). En resumen la igualdad que
se pedía analizar en el apartado c) es falsa.
NOTA: Aunque no hace falta calcular la función v(x) para responder lo que se
pide en el ejercicio, es fácil ver que la función v(x) coincidirá con g(x) en todos
los puntos de [0, 6] salvo en los pertenecientes al intervalo [2, 3] en donde v(x)
tiene la expresión de la recta que pasa por (2, 4) y (3, 2). Más concretamente:
⎧ g(x) x ∈ [0,2] ∪ [3,6]
v(x) = ⎨
⎩8 − 2·x x ∈ [2,3]
47
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Por tanto
• En [0, 1]: u(x) = 2 + 2·(x-0) = 2 + 2·x cometiéndose un error de
interpolación dado por: E1(x) = f(x) - u(x) = 2 + 3x – x2 – 2 – 2x = x – x2
cuyo máximo en [0, 1] se alcanza para x = ½ y tiene el valor ¼ .
48
Programación y Métodos Numéricos Interpolación polinómica por tramos
49
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejercicios propuestos:
50
Programación y Métodos Numéricos Interpolación polinómica por tramos
∆ = {I1 = [ x 0 ,x 2 ],I2 = [ x 2 ,x 4 ],...,Ij = ⎡⎣⎢ x 2( j−1) ,x 2 j ⎤⎦⎥ ,...,Ik = ⎡⎢⎣ x 2(k−1) ,x 2k ⎤⎦⎥ }
Propiedad 9.
La base de Lagrange de L2(∆) asociada al soporte {x0, x1, ....., x2k} es la
formada por las (2k+1) funciones:
⎧
⎪ ( x − x1)( x − x 2 )
⎪
⎪ si x ∈ [ x 0 ,x 2 ]
⎪
ϕ 0 (x) = ⎨( x 0 − x1)( x 0 − x 2 )
⎪
⎪
⎪
⎪
⎩ 0 en caso contrario
⎧ (x − x
2( j−1) )( x − x 2 j )
⎪
⎪⎪ ⎪⎫
si x ∈ ⎡ x 2( j−1) ,x 2 j ⎤ ⎪⎪
ϕ 2 j−1(x) = ⎪ ⎢⎣ ⎥⎦ ⎪ (j = 1, ..., k)
⎨( x 2 j−1 − x 2( j−1) )( x 2 j−1 − x 2 j ) ⎬
⎪
⎪ ⎪
⎪
⎪
⎪ 0 en caso contrario ⎪
⎪
⎩ ⎭
⎧⎪ ( x − x
2( j−1) )( x − x 2 j−1 )
⎫⎪
⎪⎪⎪ si x ∈ ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎥⎦ ⎪
⎪
⎪
⎪⎪( x 2 j − x 2( j−1) )( x 2 j − x 2 j−1 ) ⎪⎪
⎪⎪ ⎪⎪
⎪⎪ ( x − x )( x − x ⎪⎪
2( j+1) )
ϕ 2 j (x) = ⎪⎨ si x ∈ ⎡⎢⎣ x 2 j ,x 2( j+1) ⎤⎥⎦ ⎪⎬
2 j+1
(j = 1, ..., k-1)
⎪⎪( x 2 j − x 2 j+1 )( x 2 j − x 2( j+1) ) ⎪
⎪
⎪⎪ ⎪
⎪
⎪⎪ ⎪
⎪
⎪⎪0 en caso contrario ⎪
⎪
⎪⎪ ⎪
⎪
⎩⎪ ⎪
⎭
⎧⎪ ( x − x
⎪⎪ 2(k−1) )( x − x 2k −1 )
si x ∈ ⎡⎣⎢ x 2(k−1) ,x 2k ⎤⎦⎥
ϕ 2k (x) = ⎨⎪( x 2k − x 2(k−1) )( x 2k − x 2k−1)
⎪⎪
⎪⎪ 0 en caso contrario
⎩
51
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Demostración:
Con las expresiones dadas en el enunciado se tiene que:
⎧1 si i = 0
⎪ ⎧1 si i = j
⎪ ⎧1 si i = 2k
⎪
ϕ 0 (xi ) = ⎪
⎨ , ϕ j (xi ) = ⎪
⎨ (0 < j < 2k-1), ϕ 2k (xi ) = ⎪
⎨
⎪
⎩0 si i ≠ 0
⎪ ⎪
⎩0 si i ≠ j
⎪ ⎪
⎩0 si i ≠ 2k
⎪
⎧
⎪1 si i = j
lim ϕ j (x) = ⎪
⎨ (0 < i < 2k),
x → xi ⎪
⎩0 si i ≠ j
⎪
lim ϕ j (x) = 0
x → x−
2k
y:
Todo ello nos permite afirmar que son funciones del espacio L2(∆), y
⎧
⎪1 si i = j
además, puesto que ϕ j (xi ) = ⎪
⎨ (0 < i, j < 2k), en virtud del teorema 1
⎪
⎩0 si i ≠ j
⎪
{ϕ j (x)}j=0
n
demostrado en el subapartado 2.1., nos garantiza que las funciones
52
Programación y Métodos Numéricos Interpolación polinómica por tramos
Función ϕ 0 (x) : 1
1
Función ϕ 2k (x)
x0 ....... xj ... x2(k-1) x2k-1 x2k
Ejemplo:
Determinemos las funciones de la base de Lagrange del espacio L2(∆)
asociado al soporte {0, 1, 3, 5, 6}.
53
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧
⎪ ( x − 1)( x − 3) 4 1
⎪
⎪ = 1− x + x 2 si x ∈ [0,3 ]
⎪
ϕ 0 (x) = ⎨(0 − 1)(0 − 3) 3 3
⎪
⎪
⎪
⎪
⎩ 0 en caso contrario
⎧
⎪ ( x − 0)( x − 3) 3 1
⎪
⎪ = x − x2 si x ∈ [0,3 ]
⎪
ϕ1(x) = ⎨ (1− 0)(1− 3) 2 2
⎪
⎪
⎪
⎪
⎩ 0 en caso contrario
⎧⎪ ( x − 0)( x − 1) 1 1
⎪⎪ = − x + x2 si x ∈ [0,3 ]
⎪⎪ (3 − 0)(3 − 1) 6 6
ϕ 2 (x) = ⎪⎨
⎪⎪( x − 5)( x − 6) 11 1
⎪⎪ = 5 − x + x2 si x ∈ [3,6 ]
⎪⎪⎩(3 − 5)(3 − 6) 6 6
⎧
⎪ ( x − 3)( x − 6) 9 1
⎪
⎪ = −9 + x − x 2 si x ∈ [3,6 ]
⎪
ϕ 3 (x) = ⎨(5 − 3)(5 − 6) 2 2
⎪
⎪
⎪
⎪
⎩ 0 en caso contrario
⎧
⎪ ( x − 3)( x − 5) 8 1
⎪
⎪ = 5 − x + x2 si x ∈ [3,6 ]
⎪
ϕ 4 (x) = ⎨(6 − 3)(6 − 5) 3 3
⎪
⎪
⎪
⎪
⎩ 0 en caso contrario
ϕ1 ϕ2 ϕ3
ϕ0 ϕ4
I1 I2
•
54
Programación y Métodos Numéricos Interpolación polinómica por tramos
Teorema 5.
Dado el soporte {x0, ..., x2k} y denotando por fj = f(xj) ( j = 0, .., 2k) a los
valores que toma una función f(x) en los puntos del soporte y por {ϕ j (x)}
2k
a
j=0
las funciones que forman la base de Lagrange del espacio L2(∆) que está
asociada a este soporte, se verifica que la función:
2k
u(x) = ∑ f j ·ϕ j (x)
j=0
Demostración:
Es una consecuencia inmediata de aplicar el teorema 2 del apartado 2.1.
al espacio L2(∆).
c.q.d.
Ejemplo:
Dado el soporte {0, 1, 3, 5, 6} calculemos la función del espacio L2(∆)
correspondiente que interpola a la función f(x) = sen( π ·x/2).
Por otra parte, los valores de la función en los puntos del soporte son los
siguientes:
55
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Por tanto:
u(x) = 0·ϕ 0 (x) + 1·ϕ1(x) − 1·ϕ 2 (x) + 1·ϕ 3 (x) + 0·ϕ 4 (x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x)
4 1 3 1 1 1
ϕ 0 (x) = 1− x + x2 , ϕ1(x) = x − x 2 , ϕ 2 (x) = − x + x 2 ,
3 3 2 2 6 6
ϕ 3 (x) = 0 y ϕ 4 (x) = 0
3 1 ⎛ 1 1 ⎞ 5 2
u(x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x) = x − x 2 − ⎜⎜− x + x 2 ⎟⎟⎟ = x − x 2
2 2 ⎜
⎝ 6 6 ⎠ 3 3
11 1
ϕ 0 (x) = 0 , ϕ1(x) = 0 , ϕ 2 (x) = 5 − x + x2 ,
6 6
9 1 8 1
ϕ 3 (x) = −9 + x − x2 y ϕ 4 (x) = 5 − x + x 2
2 2 3 3
⎛ 11 1 ⎞ ⎛ 9 1 ⎞ 19 2
= 0 − ⎜⎜5 − x + x 2 ⎟⎟⎟ + ⎜⎜−9 + x − x 2 ⎟⎟⎟ = −14 + x − x2
⎝⎜ 6 6 ⎠ ⎝⎜ 2 2 ⎠ 3 3
Resumiendo:
56
Programación y Métodos Numéricos Interpolación polinómica por tramos
⎧
⎪ 5 2
⎪
⎪ x − x2 si x ∈ [0,3 ]
⎪ 3 3
u(x) = ⎪
⎨
⎪
⎪ 19 2
⎪−14 + x − x2 si x ∈ [3,6 ]
⎪
⎪
⎩ 3 3
Tramo I1 Tramo I2
•
Puesto que el grado de todos los tramos polinómicos de las funciones de
L2(∆) es 0 ó 1 ó 2, la propiedad 3 (también demostrada en 2.1.) nos garantiza
que:
2k 2k
∑ ϕ j (x) = 1 ∀x ∈ [ x0 ,x 2k ] ,
j=0
∑ x ·ϕ (x) = x
j=0
j j ∀x ∈ [ x 0 ,x 2k ]
2k
y: ∑ x ·ϕ (x) = x
j=0
2
j j
2
∀x ∈ [ x 0 ,x 2k ]
Propiedad 10.
{ϕ j (x)}j=0 las
2k
Para todo valor de los escalares α , β y γ , siendo
funciones de base del espacio L2(∆) asociadas al soporte {x0, x1, ..., x2k}, se
verifica que:
2k
∑ (α + βx
j=0
j + γx 2j )·ϕ j (x) = α + βx + γx 2 ∀x ∈ [ x 0 ,x 2k ]
Demostración:
Es una consecuencia inmediata de la propiedad 3ª demostrada en el
apartado 2.1.
c.q.d.
57
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 11.
Dado el soporte {x0, ..., x2k}, sea ∆ la partición de [x0, x2k] dada por :
⎧
⎪ f1(x) si x ∈ I1 = [ x 0 ,x 2 ] ⎧
⎪u1(x) si x ∈ I1 = [ x 0 ,x 2 ]
⎪
⎪ ⎪
⎪
⎪
⎪ ⎪
⎪
⎪
⎪.... ..................... ⎪
⎪.... .....................
⎪
⎪ ⎪
⎪
f(x) = ⎪
⎨f j (x) si x ∈ Ij = ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎥⎦ , u(x) = ⎪
⎨u j (x) si x ∈ Ij = ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎥⎦
⎪
⎪ ⎪
⎪
⎪
⎪.... ..................... ⎪
⎪.... .....................
⎪
⎪ ⎪
⎪
⎪
⎪ ⎪
⎪
⎪ f (x) si x ∈ Ik = ⎡⎢⎣ x 2(k−1) ,x 2k ⎤⎥⎦ ⎪u (x) si x ∈ Ik = ⎡⎢⎣ x 2(k−1) ,x 2k ⎤⎥⎦
⎪
⎩k ⎪
⎩ k
si para algún valor del índice “j” tal que 1 < j < k la expresión fj(x) es un
polinomio de grado menor o igual que 2 entonces se verifica que uj(x) = fj(x).
Demostración:
Si fj(x) es un polinomio de grado menor o igual que 2 coincidirá con el
polinomio interpolador de Lagrange (16) de f(x) sobre el soporte {x2(j-1), x2j}. En
otros términos, si fj(x) es un polinomio de grado menor o igual que 2 resultará
que fj(x) es el único polinomio de grado menor o igual que 2 que verifica las tres
igualdades: fi(x2(j-1)) = f(x2(j-1)) , fi(x2j-1) = f(x2j-1) y fi(x2j) = f(x2j). Y puesto que
ui(x) debe ser un polinomio de grado menor o igual que 2 verificando que
ui(x2(j-1)) = f(x2(j-1)) , ui(x2j-1) = f(x2j-1) y ui(x2j) = f(x2j), puede concluirse que los
polinomios ui(x) y fi(x) son el mismo.
16
Puede consultarse el tema anterior la interpolación polinómica de Lagrange para tener una
demostración de esta afirmación
58
Programación y Métodos Numéricos Interpolación polinómica por tramos
c.q.d.
⎧
⎪ 1
⎪
⎪ x si x ≤ 2
⎪
⎪ 2
⎪
⎪
f(x) = ⎪
⎨cos (πx) si 2 < x < 4
⎪
⎪
⎪
⎪
⎪
⎪25 − 10x + x 2 si 4 ≤ x
⎪
⎪
⎩
Calculemos la función de L2(∆) que la interpola. Para ello sabemos que los
valores nodales de f(x) son:
Por tanto, en virtud del teorema 5 la función interpoladora que nos proporciona
u(x) puede calcularse mediante la expresión:
59
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
u(x) = 0·ϕ 0 (x) + ( 12 )·ϕ1(x) + 1·ϕ 2 (x) − 1·ϕ 3 (x) + 1·ϕ 4 (x) + 0·ϕ 5 (x) + 1·ϕ 6 (x) =
⎧⎪ 3
⎪⎪1− x + 1 x 2 si x ∈ [0,2] ⎧⎪2x − x 2 si x ∈ [0,2]
ϕ 0 (x) = ⎨ 2 2 , ϕ1(x) = ⎪⎨
⎪⎪ ⎪⎪⎩ 0 en otro caso
⎪⎩ 0 en otro caso
⎧⎪ 1
⎪⎪− x + 1 x 2 si x ∈ [0,2]
⎪⎪ 2 2
⎪⎪ 7 1 ⎧⎪−8 + 6x − x 2 si x ∈ [ 2,4 ]
ϕ 2 (x) = ⎪⎨6 − x + x 2 si x ∈ [ 2,4 ] , ϕ 3 (x) = ⎪⎨
⎪⎪ 2 2 ⎪⎪⎩ 0 en otro caso
⎪⎪
⎪⎪0 en otro caso
⎪⎪⎩
⎧⎪
⎪⎪3 − 5 x + 1 x 2 si x ∈ [ 2,4 ]
⎪⎪ 2 2
⎪⎪ 11 1 ⎧⎪−24 + 10x − x 2 si x ∈ [ 4,6 ]
ϕ 4 (x) = ⎪⎨15 − x + x 2 si x ∈ [ 4,6 ] , ϕ 5 (x) = ⎪⎨
⎪⎪ 2 2 ⎪⎪⎩ 0 en otro caso
⎪⎪
⎪⎪0 en otro caso
⎪⎪⎩
⎧⎪
⎪⎪10 − 9 x + 1 x 2 si x ∈ [ 4,6 ]
ϕ 6 (x) = ⎨ 2 2
⎪⎪
⎪⎩ 0 en otro caso
17
Calculamos, para que practique el lector, las 7 funciones de base aunque en este caso nos
bastaría con calcular sólo las funciones ϕ1(x), ϕ3(x), ϕ4(x) y ϕ6(x).
60
Programación y Métodos Numéricos Interpolación polinómica por tramos
7 1
• En [2, 4]: ϕ1(x) = 0 , ϕ 2 (x) = 6 − x + x 2 , ϕ 3 (x) = −8 + 6x − x 2 ,
2 2
5 1
ϕ 4 (x) = 3 − x + x 2 y ϕ 6 (x) = 0 por lo que:
2 2
= 17 – 24x+2x2 ∀ ∈ [ 2,4 ]
11 1
• En [4, 6]: ϕ1(x) = 0 , ϕ 2 (x) = 0 , ϕ 3 (x) = 0 , ϕ 4 (x) = 15 − x + x2 , y
2 2
9 1
ϕ 6 (x) = 10 − x + x 2 por lo que:
2 2
61
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
En resumen:
⎧⎪ 1
⎪⎪ x si x ∈ [0,2]
⎪⎪ 2
⎪⎪
u(x) = ⎪⎨17 − 12x + 2x 2 si x ∈ [ 2,4 ]
⎪⎪
⎪⎪
⎪⎪25 − 10x + x 2 si x ∈ [ 4,6 ]
⎪⎪⎩
18
De hecho aquí hemos hallado detalladamente los tramos de la función interpoladora en [0, 2]
y en [4, 6] para ilustrar la propiedad 11. En la práctica los tramos en que f(x) sea un polinomio
de grado menor o igual que 2 no exigirían ningún cálculo para ser interpolados en L2(∆).
62
Programación y Métodos Numéricos Interpolación polinómica por tramos
Propiedad 12.
Dado el soporte {x0, ..., x2k}, denotando por fj = f(xj) (j = 0, .., 2k) a los
valores que toma una función f(x) en los puntos del soporte y por
:
(x − x 2 j−1)( x − x 2 j )
L(0j) (x) = (j = 1, ..., k)
( x 2( j−1) − x 2 j−1)( x 2( j−1) − x 2 j )
( x − x 2( j−1) )( x − x 2 j )
L(1j) (x) = (j = 1, ..., k)
(x 2 j−1 − x 2( j−1) )( x 2 j−1 − x 2 j )
(x − x 2( j−1) )(x − x 2 j−1)
y L(2j) (x) = (j = 1, ..., k)
( x 2 j − x2( j−1) )( x 2 j − x 2 j−1)
⎧⎪L(1) (x) si x ∈ [ x 0 ,x 2 ]
ϕ 0 (x) = ⎪⎨ 0
⎪⎪⎩ 0 en otro caso
19
Es muy frecuente que nuestros alumnos se formen la impresión de que al usar métodos
distintos para determinar la función interpoladora las funciones que se obtienen de una u otra
forma son diferentes. En este sentido debe tenerse siempre presente que la función
interpoladora es única y que cualquiera de los métodos que se utilicen para determinarla
conducen a la misma función interpoladora.
63
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Demostración:
Según las expresiones dadas para las funciones de base de Lagrange en la
propiedad 9 las expresiones aquí dadas para ellas son inmediatas.
∀x ∈ Ij = ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎦⎥ : ϕ 2( j−1) (x) = L(0j) (x), ϕ 2 j−1(x) = L(1j) (x), ϕ 2 j (x) = L(2j) (x)
por lo que:
2k
∀x ∈ Ij = ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎥⎦ : u(x) = ∑ fi ·ϕi (x) = f2( j−1) ·ϕ 2( j−1) (x) + f2 j−1·ϕ 2 j−1(x) + f2 j ·ϕ 2 j (x) =
i=0
64
Programación y Métodos Numéricos Interpolación polinómica por tramos
Propiedad 13.
Dado el soporte {x0, ..., x2k} y denotando por fj = f(xj) ( j = 0, .., 2k) a los
valores que toma una función f(x) en los puntos del soporte se verifica que la
función interpoladora de Lagrange de f(x) del espacio L2(∆) sobre el soporte {x0,
..., x2k} está dada por la expresión:
donde f[x2(j-1), x2j-1] y f[x2(j-1), x2j-1, x2j] son las diferencias divididas:
Demostración:
La demostración de esta propiedad es una consecuencia inmediata de
aplicar la fórmula de Newton para el cálculo del polinomio interpolador al tramo
de la función en cada subintervalo Ij al que pertenecen los puntos {x2(j-1), x2j-1,
x2j}.
c.q.d.
Denotemos por f(x) a una cierta función y por u(x) a la función de L2(∆) que
la interpola sobre el soporte {x0, x1, ..., x2k}. Puesto que los valores nodales de
f(x) y de u(x) son los mismos es obvio que en los puntos del soporte se
verificará que u(xj) = f(xj) (j = 0, ..., 2k). Pero esta coincidencia de valor no se
producirá en general en cualquier otro punto x perteneciente al intervalo
[x0, x2k]. El teorema siguiente nos muestra una expresión del error local de
interpolación cometido en cada punto, vinculándolo al error de interpolación
polinómica de Lagrange con soportes de 3 puntos.
Teorema 6.
65
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Pero el teorema anterior también nos permite obtener cotas locales del error
de interpolación. Algunas de ellas son las recogidas a continuación.
Corolario 3
Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio L2(∆)
sobre el soporte {x0, ..., x2k} y suponiendo que para algún valor del índice j ( con
1 < j < k) se verifica que f ∈ C3 ((x 2( j−1) ,x 2 j )) y que f(x) es continua por la derecha
en x2(j-1) y que f(x) es continua por la izquierda en x2j , entonces:
a)
1
∀x ∈ ⎤⎥⎦ x 2( j−1) ,x 2 j ⎡⎢⎣ : E(x) = f(x) − u(x) ≤ M j· Sup (x − x 2( j−1) )·(x − x 2 j−1)·(x − x 2 j )
6 x∈⎤⎥⎦ x 2( j−1) ,x 2 j ⎡⎢⎣
donde Mj = Sup f '''(x)
x∈⎤⎥ x 2( j−1) ,x 2 j ⎡⎢
⎦ ⎣
20
Vése el teorema 2 del apartado 2.2. del tema anterior dedicado a la interpolación polinómica.
66
Programación y Métodos Numéricos Interpolación polinómica por tramos
2
b) ∀x ∈ ⎤⎦⎥ x 2( j−1) ,x 2 j ⎡⎣⎢ : E(x) = f(x) − u(x) ≤ Mj ·h3j , donde Mj = Sup f '''(x)
81 x∈⎤⎥ x 2( j−1) ,x 2 j ⎡⎢
⎦ ⎣
y hj = |x2j – x2(j-1)|.
Demostración:
a) La primera acotación es inmediata pues basta con tomar valor absoluto
en la expresión del error y sustituir el valor de |f’’’(ξj)| por el supremo de
|f’’’(x)| en el intervalo ]x2(j-1), x2j[ y el valor de |(x-x2(j-1))·(x-x2j-1)·(x-x2j)| por
su supremo en ]x2(j-1), x2j[.
⎩α * = 2 3
La solución nula no presenta interés (conduce a un punto x que
coincide con x2(j-1) en donde ya sabemos que el error que es nulo)
mientras que la otra solución nos permite escribir que:
41 4 3
|(x-x2(j-1))·(x-x2j-1)·(x-x2j)| ≤ α 2 ·(1 − α )h3j ≤ · ·h3j = hj
93 27
67
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
2
∀x ∈ ⎤⎥⎦ x j−1,x j ⎡⎢⎣ : E(x) = f(x) − u(x) ≤ Mj ·h3j
81
c.q.d.
Obsérvese que la expresión del error local, y por tanto de las
acotaciones realizadas a partir de ella, sólo son válidas bajo las hipótesis de
regularidad de f(x) en el intervalo [xj-1, xj] que se recogen en el teorema 4 o en
su corolario. Cuando la función f(x) no verifica tales condiciones, el error debe
ser expresado como (f(x) – u(x)) y sus cotas locales deben obtenerse
maximizando el valor absoluto de esta expresión.
Corolario 4
a) Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio
L2(∆) sobre el soporte {x0, ..., x2k} y suponiendo que para todo valor del
índice j ( con 1 < j < k) se verifica que f ∈ C3 ((x 2( j−1) ,x 2 j )) y que f(x) es
continua por la derecha en x2(j-1) y que f(x) es continua por la izquierda
en x2j, entonces:
2
∀x ∈ [ x 0 ,x 2k ] : E(x) = f(x) − u(x) ≤ Max (Mj ·h3j )
81 1≤ j≤k
donde Mj = Sup f '''(x) y hj = |x2j – x2(j-1)|.
x∈⎤⎥ x 2( j−1) ,x 2 j ⎡⎢
⎦ ⎣
68
Programación y Métodos Numéricos Interpolación polinómica por tramos
Demostración:
Las tres acotaciones realizadas son inmediatas a partir de las recogidas
en el corolario 3. Se dejan los detalles como ejercicio propuesto al lector.
c.q.d.
Ejemplos:
1º La función del espacio L2(∆) que interpola sobre el soporte de 7 puntos
{x0 = 0, x1 = 1, x2 = 2, x3 = 3, x4 = 4, x5 = 5, x6 = 6} a la función f(x) definida por:
⎧⎪ 1
⎪⎪⎪ 2 x si x ≤ 2
⎪⎪
⎪
f(x) = ⎪⎨cos (πx) si 2 < x < 4
⎪⎪
⎪⎪
⎪⎪25 − 10x + x 2 si 4 ≤ x
⎪⎪⎩
es (véase uno de los ejemplos anteriores desarrollados en este apartado):
⎧⎪ 1
⎪⎪ x si x ∈ [0,2]
⎪⎪ 2
⎪⎪
u(x) = ⎪⎨17 − 12x + 2x 2 si x ∈ [ 2,4 ]
⎪⎪
⎪⎪
⎪⎪25 − 10x + x 2 si x ∈ [ 4,6 ]
⎪⎪⎩
Puesto que f(x) es continua en todo punto interior a cualquiera de los
subintervalos I0 = [0, 2], I1 = [2, 4] e I2 = [4, 6], se puede aplicar el teorema 6
para obtener que:
69
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
∀x ∈ ]0,2[ : E(x) = 0
−π3 sin(πξ)
∀x ∈ ]2,4[ ∃ξ / E(x) = ·(x − 2)·(x − 3)·(x − 4)
6
∀x ∈ ]4,6[ : E(x) = 0
Obsérvese que en los intervalos ]0, 2[ y ]4, 6[, al ser f(x) en él una función
polinómica de grado menor o igual a 2, el error de interpolación es nulo.
Puesto que:
Sup ( sen ( xπ) ) = 1
x∈]2,4[
y que la longitud de todos los subintervalos es 2, las expresión local del error
en ]2, 4[ puede acotarse por:
2 16 3
∀x ∈ ]2,4[ : E(x) ≤ π3 ·23 = π
81 81
Y dado que en los demás subintervalos el error es nulo, puede afirmarse que:
16
∀x ∈ [0,6 ] : E(x) ≤ π3 .
81
70
Programación y Métodos Numéricos Interpolación polinómica por tramos
Ejercicios resueltos:
1º. Considérese el soporte equidistante formado por los 7 puntos:
S = {x0 = 0, x1 = 1, x2 = 2, x3 = 3, x4 = 4, x5 = 5, x6 = 6}
y por L2(∆) al espacio de las funciones continuas definidas por tramos en cada
subintervalo de la partición ∆ mediante un polinomio de grado menor o igual
que 2, determínese las funciones ϕ2(x) y ϕ5(x) que pertenecen a la base de
Lagrange de L2(∆) asociada al soporte S y que verifican ϕ2(2) = 1 y ϕ5(5) = 1
respectivamente. Represéntese la gráfica de ambas funciones de base en el
intervalo [0, 6].
71
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Solución:
⎧ x(x − 1)
⎪ si x ∈ [0,2]
2
⎪
⎪ (x − 3)(x − 4) ⎧⎪(x − 4)(6 − x) x ∈ [ 4,6]
a) ϕ2 (x) = ⎨ si x ∈ [ 2,4] ϕ5 (x) = ⎨
⎪ 2 ⎪⎩0 x ∉ [ 4,6]
⎪ 0 si x ∉ [0,4]
⎪
⎩
ϕ2(x) ϕ5(x)
72
Programación y Métodos Numéricos Interpolación polinómica por tramos
6 6
⎛ 6 2 ⎞ 1
∫0 ⎜⎝ ∑
i=0
i ·ϕi (x) ⎟ dx = ∫ x 2dx = 63 = 72
⎠ 0
3
xi fi f[,] f[,,]
2→ −2 → 10 → −6
3 → 8 → −2
4→ 6
73
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Por otra parte cuando x tiende a los extremos del intervalo ]2, 4[ se tiene que:
Comparando el valor supremo del error con su valor mínimo, podemos concluir
que la cota de error de interpolación buscada es:
|E(x)| < 12 ∀x ∈ [0,6]
74
Programación y Métodos Numéricos Interpolación polinómica por tramos
Solución:
a) Con los datos del problema x* = 11·L/26 = 11·6/24 = 11/4. Además la
distancia entre dos puntos consecutivos del soporte será:
L 6 1
H= = =
n 12 2
por lo que los 13 puntos del soporte son:
{x0 = 0, x1 = 12 , x 2 = 1, x3 = 3 2 , x 4 = 2, x5 = 5 2 , x 6 = 3,
x 7 = 7 2 , x 8 = 4, x 9 = 9 2 , x10 = 5, x11 = 112 , x12 = 6}
75
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
w4 = w(x4) = w(2) = 92
3
16175 92
−
w[x4, x5] = 192 3 = 3429
1 32
2
w5 = w(x5) = w( 5 2 ) = 16175
192
693 16175
−
w[x5, x6] = 4 192 = 17089
1 96
2
w6 = w(x6) = w(3) = 693
4
17089 3429
−
w[x4, x5, x6] = 96 32 = 3401
1 48
380303
Finalmente, como w ( 114 ) = se tiene que el error de interpolación en x*
3072
es:
535
E ( 114 ) = w ( 114 ) − u ( 114 ) = − = −0.52246....
1024
b) Para obtener una cota del error de interpolación válida en el intervalo [0, 6]
puede procederse a
76
Programación y Métodos Numéricos Interpolación polinómica por tramos
2 2 144
∀x ∈ [0,6 ] : E(x) = f(x) − u(x) ≤ M·h3 = ·72·1 = = 1.7777....
81 81 81
•
Ejercicios propuestos:
1º. a) Determinar la función interpoladora en L2(∆) de f(x) = 1/(1+x2) para el
soporte de 5 puntos: {-3, 1, 0, 1, 3}.
c) Determinar una cota del error de interpolación válida en todo [-3, 3].
77
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
2
∀x ∈ ⎤⎦⎥ x 2( j−1) ,x 2 j ⎡⎣⎢ : E(x) = f(x) − u(x) ≤ Mj ·h3j ,
72 3
78
Programación y Métodos Numéricos Interpolación polinómica por tramos
{x , x ,...,x
0 1 m1 ,xm1 +1,....,xm1 +m2 , xm1 +m2 +1,..., xm1 +m2 +m3 ,......, xm1 +m2 +...+mk−1 ,xm1 +m2 +...+mk−1 +1,...,xm1 +m2 +...+mk−1 +mk }
{x 0,1,x1,1,...,x 0,2 ,x1,2 ,...,x 0,3 ,x1,3 ,...,x 0,4 ,.....,x 0,k−1,x1,k ,...,xmk ,k }
79
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 14
Con la notación introducida anteriormente, la base de Lagrange de L(∆)
asociada al soporte {x 0 , x1, ..., x m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } está formada por
las (m1 + m2 + ... + mk + 1) funciones siguientes:
⎧⎪L(1) (x) si x ∈ I1
ϕ 0 (x) = ⎪⎨ 0
⎪⎪⎩ 0 en otro caso
⎧⎪L(i j) (x) si x ∈ Ij
∀s / x s ≡ xi,j con 0 < i < m j : ϕ s (x) = ⎪⎨ (j = 1, ..., k)
⎪⎪ 0 en otro caso
⎩
⎧⎪L( j) (x) si x ∈ I ⎫
⎪
⎪⎪ m j j ⎪
⎪
⎪ ( j+1)
⎪ ⎪
⎪
∀s / x s ≡ xm j ,j : ϕ s (x) = ⎨L0 (x) si x ∈ Ij+1 ⎬ (j = 1, ..., k-1)
⎪⎪ ⎪
⎪
⎪⎪0 en otro caso⎪
⎪
⎩⎪ ⎪
⎭
⎧⎪L(km) (x) si x ∈ Ik
ϕn (x) = ⎪⎨ k
⎪⎪ 0 en otro caso
⎩
Demostración:
{ϕ j (x)}j=0
n
Al estar definidas las funciones anteriores a partir de los
80
Programación y Métodos Numéricos Interpolación polinómica por tramos
c.q.d.
Ejemplo:
Si se considera el soporte {0, 1, 2, 3, 4, 5, 6, 7, 8} y la partición del intervalo
[0, 8] dada por:
∆ = {[0, 3] , [3, 4], [4, 8] }
denotaremos por L(∆) al espacio L3,1,4(∆) formado por las funciones continuas
en ]0, 8[ y tales que en [0, 3] están definidas por algún polinomio de grado
menor o igual que 3, en [3, 4] por algún polinomio de grado no superior a 1 y
en [4, 8] por polinomios de grado menor o igual que 4.
En el intervalo I1 = [0, 3], al que pertenecen los puntos del soporte {0, 1, 2, 3}
consideramos los polinomios de base de Lagrange:
( x − 1)(· x − 2)(· x − 3) −1 3 2 11
L(1)
0 (x) = = x + x − x +1
(0 − 1)(· 0 − 2)(· 0 − 3) 6 6
( x − 0)(· x − 2)(· x − 3) 1 3 5 2
L(1)
1 (x) = = x − x + 3x
(1− 0)(· 1− 2)(· 1− 3) 2 2
( x − 0)(· x − 1)(· x − 3) 1 3
L(1)
2 (x) = = − x 3 + 2x 2 − x
(2 − 0)(· 2 − 1)(· 2 − 3) 2 2
( x − 0)(· x − 1)(· x − 2) 1 3 1 2 1
L(1)
3 (x) = = x − x + x
(3 − 0)(· 3 − 1)(· 3 − 2) 6 2 3
81
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
En el intervalo I2 = [3, 4], al que pertenecen los puntos del soporte {3, 4}
consideramos los polinomios de base de Lagrange:
( x − 4)
L(2)
0 (x) = = −x + 4
(3 − 4)
( x − 3)
L(2)
1 (x) = = x −3
(4 − 3)
En el intervalo I3 = [4, 8], al que pertenecen los puntos del soporte {4, 5, 6, 7, 8}
consideramos los polinomios de base de Lagrange:
82
Programación y Métodos Numéricos Interpolación polinómica por tramos
⎧⎪ (1)
⎪⎪L0 (x) = − 1 x 3 + x 2 − 11 x + 1 si x ∈ [0,3 ]
ϕ 0 (x) = ⎨ 6 6
⎪⎪
⎪⎩ 0 en otro caso
⎧⎪ (1)
⎪⎪L1 (x) = 1 x 3 − 5 x 2 + 3x si x ∈ [0,3 ]
ϕ1(x) = ⎨ 2 2
⎪⎪
⎪⎩ 0 en otro caso
⎧⎪ (1)
⎪⎪L 2 (x) = − 1 x 3 + 2x 2 − 3 x si x ∈ [0,3 ]
ϕ 2 (x) = ⎨ 2 2
⎪⎪
⎪⎩ 0 en otro caso
⎧⎪ (1)
⎪⎪L3 (x) = 1 x 3 − 1 x 2 + 1 x si x ∈ [0,3 ]
⎪⎪ 6 2 3
⎪⎪
ϕ 3 (x) = ⎪⎨L(2) (x) = −x + 4 si x ∈ [3,4 ]
⎪⎪ 0
⎪⎪
⎪⎪0 en otro caso
⎪⎪⎩
⎧⎪ (2)
⎪⎪L1 (x) = x − 3 si x ∈ [3,4 ]
⎪⎪
⎪⎪ 1 4 13 3 251 2 533
ϕ 4 (x) = ⎪⎨L(3) 0 (x) = x − x + x − x + 70 si x ∈ [ 4,8 ]
⎪⎪ 24 12 24 12
⎪⎪
⎪⎪0 en otro caso
⎪⎪⎩
83
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎧⎪ (3)
⎪⎪L1 (x) = − 1 x 4 + 25 x 3 − 115 x 2 + 460 x − 224 si x ∈ [ 4,8 ]
ϕ 5 (x) = ⎨ 6 6 3 3
⎪⎪
⎪⎩ 0 en otro caso
⎧⎪ (3)
⎪⎪L 2 (x) = 1 x 4 − 6x 3 + 211 x 2 − 201x + 280 si x ∈ [ 4,8 ]
ϕ 6 (x) = ⎨ 4 4
⎪⎪
⎪⎩ 0 en otro caso
⎧⎪ (3)
⎪⎪L3 (x) = − 1 x 4 + 23 x 3 − 97 x 2 + 356 x − 160 si x ∈ [ 4,8 ]
ϕ 7 (x) = ⎨ 6 6 3 3
⎪⎪
⎪⎩ 0 en otro caso
y:
⎧⎪ (3)
⎪⎪L 4 (x) = 1 x 4 − 11 x 3 + 179 x 2 − 319 x + 35 si x ∈ [ 4,8 ]
ϕ 8 (x) = ⎨ 24 12 24 12
⎪⎪
⎪⎩ 0 en otro caso
84
Programación y Métodos Numéricos Interpolación polinómica por tramos
Teorema 7.
Dado el soporte {x , x , ..., x
0 1 m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } y siendo
k
n = ∑ m j denotando por fj = f(xj) ( j = 0, .., n) a los valores que toma una
j=1
{ϕ j (x)}j=0
n
función f(x) en los puntos del soporte y por a las funciones que
forman la base de Lagrange del espacio L(∆) que está asociada a este soporte,
se verifica que la función:
n
u(x) = ∑ f j ·ϕ j (x)
j=0
Demostración:
Es una consecuencia inmediata de aplicar el teorema 2 del apartado 2.1.
al espacio L(∆).
c.q.d.
Ejemplo:
Dado el soporte {0, 1, 2, 3, 4, 5, 6, 7, 8} y la partición del intervalo [0, 8]:
9
u(x) = ∑ f( j)·ϕ j (x)
j=0
y como f(0) = f(2) = f(4) = f(6) = f(8) = 0 , f(1) = f(5) = 1 y f(3) = f(7) = -1
resulta que:
u(x) = ϕ1(x) − ϕ 3 (x) + ϕ 5 (x) − ϕ 7 (x)
85
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
1 3 5 2 1 1 1
• En I1 = [0, 3]: ϕ1(x) = x − x + 3x , ϕ 3 (x) = x 3 − x 2 + x y
2 2 6 2 3
ϕ 5 (x) = ϕ 7 (x) = 0 por lo que:
1 5 ⎛1 1 1 ⎞
∀x ∈ [0,3 ] : u(x) = x 3 − x 2 + 3x − ⎜⎜ x 3 − x 2 + x⎟⎟⎟ =
2 2 ⎜
⎝6 2 3 ⎠
1 8
= x 3 − 2x 2 + x
3 3
1 25 3 115 2 460
∀x ∈ [ 4,8 ] : u(x) = − x 4 + x − x + x − 224 −
6 6 3 3
⎛ 1 23 3 97 2 356 ⎞
−⎜⎜− x 4 + x − x + x − 160⎟⎟⎟ =
⎜⎝ 6 6 3 3 ⎠
1 3 104
= x − 6x 2 + x − 64
3 3
En resumen:
⎧⎪ 1 3
⎪⎪ x − 2x 2 + 8 x si x ∈ [0,3 ]
⎪⎪ 3 3
⎪⎪
u(x) = ⎪⎨x − 4 si x ∈ [3,4 ]
⎪⎪
⎪⎪
⎪⎪ 1 x 3 − 6x 2 + 104 x − 64 si x ∈ [ 4,8 ]
⎪⎪⎩ 3 3
86
Programación y Métodos Numéricos Interpolación polinómica por tramos
Propiedad 16.
n
Dado el al soporte {x 0 , x1, ..., x m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } , con n = ∑ m j ,
j=1
si para algún valor del índice “j” tal que 1 < j < k la expresión fj(x) es un
polinomio de grado menor o igual que mj entonces se verifica que uj(x) = fj(x).
Demostración:
Usando la notación m0 = 0, si fj(x) es un polinomio de grado menor o igual
que mj coincidirá con el polinomio interpolador de Lagrange (22) de f(x) sobre el
soporte:
{x m0 +..+m j−1 ,xm0 +..+m j−1+1,....,x m0 +..+m j−1+mj }
22
Puede consultarse el tema anterior la interpolación polinómica de Lagrange para tener una
demostración de esta afirmación
87
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 17.
n
Dado el al soporte {x 0 , x1, ..., x m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } , con n = ∑ m j ,
j=1
{
∆ = I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ ,...,Ij = ⎡⎢ x m1+..+mj−1 ,x m1+..+m j−1+m j ⎤⎥ ,...,Ik = ⎡⎢ xm1+..+mk−1 ,xm1+..+mk−1+mk ⎤⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ }
Sea además m0 = 0. En cada uno de los subintervalos de la partición el
polinomio de grado menor o igual a mj que define a la función interpoladora de
una función cualquiera f(x) puede calcularse por cualquiera de las expresiones
siguientes:
mj
( )
a) ∀x ∈ Ij : u(x) = ∑ f xm0 +...+m j−1+i ·L(i j) (x) , donde L(i j) (x) es el i-ésimo
i=0
b)
⎛ mj i−1 ⎞
( ) (
∀x ∈ Ij : u(x) = f xm0 +...+m j−1 + ∑ ⎜⎜f ⎡⎢ xm0 +...+m j−1 ,...,xm0 +...+m j−1+i ⎤⎥·∏ x − xm0 +...+mj−1+s
⎜ ⎣
i=1 ⎝
⎦ s=0 )⎠⎟⎟⎟
donde f ⎡⎢ xm0 +...+mj−1 ,...,xm0 +...+mj−1+i ⎤⎥ es la diferencia dividida de la función f(x) en
⎣ ⎦
{
los puntos x m0 +..+m j−1 ,xm0 +..+m j−1+1,....,xm0 +..+m j−1+i }
88
Programación y Métodos Numéricos Interpolación polinómica por tramos
Demostración:
Las dos expresiones son consecuencia inmediata de aplicar la fórmula
de interpolación polinómica de Lagrange o de Newton, respectivamente, para
calcular el polinomio interpolador de la función f(x) sobre el soporte de (mj+1)
{ }
puntos x m0 +..+m j−1 ,xm0 +..+m j−1+1,....,xm0 +..+m j−1+mj . Se dejan los detalles al lector.
c.q.d.
Teorema 8.
Sea el soporte {x , x , ..., x
0 1 m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } y denotemos por ∆ a
la partición del intervalo ⎡⎢ x 0 , xm1+...+mk ⎤⎥ en los k subintervalos:
⎣ ⎦
{
∆ = I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ ,...,Ij = ⎡⎢ x m1+..+mj−1 ,x m1+..+m j−1+m j ⎤⎥ ,...,Ik = ⎡⎢ xm1+..+mk −1 ,xm1+..+mk−1+mk ⎤⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ }
Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio L(∆)
correspondiente a esta partición, y suponiendo que para algún valor del índice j
D
( con 1 < j < k) se verifica que f ∈ C3 (I j ) y que f(x) es continua por la derecha
en el extremo izquierdo de Ij y que f(x) es continua por la izquierda en el
extremo derecho de Ij, entonces:
∀x ∈ ⎤⎥ xm0 +m1+...+mj−1 ,x m1+...+m j ⎡⎢ ∃ξ j =∈ ⎤⎥ x m0 +m1+...+m j−1 ,x m1+...+mj ⎡⎢ /
⎦ ⎣ ⎦ ⎣
f
(m j +1
( ξ j ) mj
E(x) = f(x) − u(x) =
(m j + 1)! i=0
(
∏ x − xm0 +...+mj−1+i )
donde m0 = 0.
Demostración:
Puesto que la expresión anterior es válida para todo punto interior al
intervalo Ij, el error (f(x) – u(x)) coincide con el error entre f(x) y el polinomio
p(j)(x) que define a la función interpoladora en el subintervalo Ij. Y como este
polinomio es el polinomio que interpola a f(x) sobre el soporte de (mj+1) puntos
{x 0+m1 +..+m j−1 ,x m1+..+mj−1+1,....,x m1+..+mj−1+m j } basta con aplicar el teorema que nos
89
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Corolario 5
Sea el soporte {x 0 , x1, ..., x m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } y denotemos por ∆
a la partición del intervalo ⎡⎢ x 0 , xm1+...+mk ⎤⎥ en los k subintervalos:
⎣ ⎦
{
∆ = I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ ,...,Ij = ⎢ x m1+..+mj−1 ,x m1+..+m j−1+m j ⎤⎥ ,...,Ik = ⎡⎢ xm1+..+mk −1 ,xm1+..+mk−1+mk ⎤⎥
⎣ ⎦
⎡
⎣ ⎦ ⎣ ⎦ }
Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio L(∆)
correspondiente a esta partición, y suponiendo que para algún valor del índice j
D
( con 1 < j < k) se verifica que f ∈ C3 (I j ) y que f(x) es continua por la derecha
en el extremo izquierdo de Ij y que f(x) es continua por la izquierda en el
extremo derecho de Ij, entonces:
m
D 1
( )
j
Demostración:
Es inmediata pues basta con tomar valor absoluto en la expresión del error
y sustituir el valor de f j (ξ j ) por el supremo de f j ( x) en el intervalo
(m +1 (m +1
mj
23
Véase el teorema 2 del apartado 2.2. del tema anterior dedicado a la interpolación
polinómica.
90
Programación y Métodos Numéricos Interpolación polinómica por tramos
A partir de las cotas de error en cada subintervalo puede obtenerse una cota
global del error como la mayor de las cota locales en cada subintervalo.
Ejercicio propuesto:
Siendo k un número entero positivo se considera un soporte formado por los
(3k+1) puntos {x0 , x1, x2, x3 , ...., x3(j-1), x3j-2 , x3j-1, x3j, ...., x3(k-1), x3k-2 , x3k-1, x3k}
en el que se supondrá que los puntos están ordenados de menor a mayor.
Además se denota por ∆ a la partición de [x0, x3k] en los k subintervalos:
Se pide:
a) Determínese la expresión de las funciones de base de Lagrange de
L3(∆) y representa el grafo de ellas.
b) Determínese la expresión global de la función u(x) que interpola a una
función cualquiera f(x) en L3(∆).
c) Determínese las expresiones polinómicas que definen localmente a la
función interpoladora, a partir de la fórmula de interpolación polinómica
de Lagrange.
d) Determínese las expresiones polinómicas que definen localmente a la
función interpoladora, a partir de la fórmula de interpolación polinómica
de Newton.
e) Determínese la expresión local del error, indicando las condiciones de
regularidad que debe satisfacer la función f(x) para que dicha expresión
sea válida.
f) Demuéstrese que si los puntos {x3(j-1), x3j-2, x3j-1, x3j} son equidistantes
una cota local del error de interpolación en Ij = [x3(j-1), x3j] , bajo
condiciones de regularidad suficientes, es:
1
∀x ∈ ⎤⎥⎦ x 3( j−1) ,x 2 j ⎡⎢⎣ : E(x) = f(x) − u(x) ≤ Mj ·h4j ,
1944
(iv
donde Mj = Sup f (x) y hj = |x3j – x3(j-1)|.
x∈⎤⎥ x3( j−1) ,x3 j ⎡⎢
⎦ ⎣
91
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Dedúzcase a partir del resultado anterior una cota global del error de
interpolación.
92
Programación y Métodos Numéricos Interpolación polinómica por tramos
[1] Burden, R.L. y Fiares, J.D. (1998). Análisis Numérico. Ed. International
Thomsom Editores
[6] Shampine, L.F., Allen Jr., R.C. and Pruess, S. (1997) Fundamentals of
numerical computing. Ed. John Wiley & Sons, Inc.
93
UNIVERSIDAD POLITÉCNICA DE MADRID
Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS
Marzo, 2007
Programación y Métodos Numéricos Derivación Numérica
ÍNDICE
Pág.
1. INTRODUCCIÓN Y MOTIVACIÓN. ………………………………… 1
ii
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
1. Introducción y motivación
Los métodos que están desarrollados con este fin muestran un buen
comportamiento en numerosos casos. Es por ello que algunas veces, aun
disponiendo de la expresión analítica de las funciones a derivar, se opta por
aproximar los valores de las derivadas mediante fórmulas numéricas
suficientemente precisas. Ejemplo de ello son el método de la secante o, más
generalmente, los métodos de cuasi – Newton detallados en el estudio de
métodos de resolución de sistemas de ecuaciones no lineales.
La principal idea que subyace en las técnicas de derivación numérica está muy
vinculada a la interpolación y se podría resumir en lo siguiente: Si de una
función f(x) se conocen sus valores en un determinado soporte de puntos,
puede “aproximarse” la función f(x) por otra función p(x) que la interpole en
dicho soporte y sustituir el valor de las derivadas de f(x) en un punto x* por el
valor de las correspondientes derivadas de p(x) en dicho punto x*. Esta idea
tan simple deberá sin embargo ser analizada con detalle pues su aplicación sin
mayores consideraciones puede conducir a errores no admisibles.
Puesto que entre las distintas técnicas de interpolación existentes se han
abordado en temas precedentes las técnicas de interpolación polinómica de
Lagrange, nos centraremos aquí en las fórmulas obtenidas a partir de esta
1
Programación y Métodos Numéricos Derivación Numérica
Una de las primeras fórmulas que nos permiten aproximar una derivada
primera tiene sus raíces en los comienzos del cálculo diferencial en el siglo
XVII. En ese entonces el concepto de límite no estaba desarrollado de forma
explícita y la primera derivada de una función f(x) en el punto x* se consideraba
como el valor del cociente incremental:
f(x * +h) − f(x*)
A=
h
cuando h era “suficientemente pequeño”. Una vez que, en el siglo XIX, se
formalizó el concepto de límite se pudo proceder a definir la primera derivada
de una función f(x) en x* mediante la conocida expresión:
⎛ f(x * +ε ) − f(x*) ⎞
f '(x*) = lim ⎜ ⎟
ε→0
⎝ ε ⎠
En este sentido resulta razonable esperar que el valor del cociente incremental
A y el valor del límite usado en la determinación de f’(x*) se “parezcan” más
cuanto menor sea el valor de h que se utilice en la determinación de A. De aquí
puede surgir una primera idea para aproximar el valor de f’(x) como el valor
que se obtiene para el cociente incremental cuando se toma h suficientemente
pequeño.
NOTA:
Más adelante se detallará cómo el cociente incremental que acabamos de
considerar también puede obtenerse a partir de las fórmulas del polinomio
interpolador de una función. Con ello recuperaremos la idea que subyace en
los métodos de derivación numérica.
Ejemplos:
1º) La función f(x) = x2 tiene como función primera derivada f’(x) = 2.x por lo
que f’(1) = 2. En el punto x*=1 el cociente incremental antes considerado toma
la expresión:
(1 + h)2 − 12 2.h + h2
A= = = 2+h
h h
por lo que cuanto menor sea el valor de h considerado más parecido será el
valor de A al valor de f’(1).
2
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
2º) No siempre es factible simplificar la expresión de los cocientes
incrementales como se ha hecho en el ejemplo anterior. En efecto, si por
ejemplo se considera la función f(x) = ex, es sabido que f’(x) = ex y que f’(0) = 1.
El cociente incremental correspondiente a esta función en el punto x* = 0
resulta ser:
eh − 1
A=
h
Para distintos valores de h pueden obtenerse ahora los valores de A que
aproximan la primera derivada. Pero ahora, estos valores dependerán del
procedimiento que se utilice para estimar eh , del número de decimales que se
estén utilizando en los cálculos y de la técnica de aproximación (truncado o
redondeo) de los valores intermedios obtenidos. Por ejemplo, si se utilizan
cuatro dígitos significativos y se redondea, los valores de eh y de A para
distintas elecciones de h resultan ser:
h eh A
-1
10 1.105 1.05
-2
10 1.011 1.10
-3
10 1.001 1.00
-4
10 1.000 0.00
3
Programación y Métodos Numéricos Derivación Numérica
Definición 2.1.
Siendo f(x) una función de la que se conocen sus valores en el soporte
de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina fórmula de
derivación numérica para aproximar el valor de la primera derivada
f’(x) en el punto x* sobre el soporte de puntos considerado, a toda
expresión de la forma:
n
f’(x*) ≈ f*' = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) = ∑ c .f(x )
i=0
i i
NOTA:
La fórmula de derivación que se acaba de definir puede decirse que es una
fórmula lagrangiana pues en ella sólo intervienen valores de la función f en los
puntos del soporte. Podrían considerarse fórmulas más generales, hermitianas,
en las que el valor de f’(x*) fuese aproximado a partir del valor de la función f y
de algunas de sus derivadas en los puntos del soporte. No obstante, estas
últimas fórmulas tienen un uso mucho más esporádico que las de tipo
lagrangiano y es por ello que en este tema nos limitaremos a considerar como
fórmulas de derivación numérica tan sólo a las que hacen intervenir los valores
de la función en los puntos del soporte.
4
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Definición 2.2.
Siendo f*' la aproximación de f’(x*) que se obtiene operando sin error de
redondeo según la fórmula de derivación numérica:
n
f’(x*) ≈ f*' = ∑ c .f(x )
i=0
i i
Ejemplo:
Siendo {x0 , x1 } un soporte formado por dos puntos tales que x1 = x0 + h, y
considerando que x* = x0, la sustitución de la expresión de f’(x0) por el cociente
incremental:
f(x1 ) − f(x 0 )
f0' =
h
conduce a una fórmula en la que sus coeficientes son c0 = (-1/h) y c1 = (1/h).
Una forma de acotar el error de truncamiento de esta fórmula, si se supone que
f(x) es al menos de clase C2([x0, x1]) consiste en considerar el desarrollo en
serie de Taylor siguiente:
h2
f(x1) = f(x0+h) = f(x0) + h.f’(x0) + .f "(x 0 + θ.h) θ ∈ (0,1)
2
de donde:
f ( x0 ) − f ( x1 ) h
f '( x0 ) = − .f "( x0 + θ .h ) θ ∈ (0,1)
h 2
Por tanto:
h
Rf ( x0 ) = f '( x0 ) − f0' = − .f "( x0 + θ .h ) θ ∈ (0,1)
2
expresión que puede acotarse por:
5
Programación y Métodos Numéricos Derivación Numérica
. S up { f "( x ) }
h
Rf ( x0 ) = f '( x0 ) − f0' ≤
2 x∈( x0 ,x1 )
Definición 2.3.
n
Se dice que la fórmula de derivación numérica f’(x*) ≈ f*' = ∑ c .f(x ) es
i=0
i i
exacta para la función f(x) en el punto x* y para el soporte {x0, ..., xn}
cuando el error de truncatura Rf(x*) es nulo.
Ejemplo:
Dado un soporte {x0 < x1 } y denotando por h = x1 – x0, la fórmula:
f(x1 ) − f(x 0 ) −1 1
f(x*) ≈ f* ' = = ·f(x 0 ) + ·f(x1 )
x1 − x 0 h h
−1 2 1 2
2 = f '(1) = f* ' = ·0 + ·2 = 2
2 2
Ahora bien esta fórmula no tiene que ser exacta si se cambia de punto x* (por
ejemplo f’(1.5) = 3 ≠ f*’ = 2) o si se cambia de soporte (por ejemplo para x0 = -1
y x1 = 2 , siendo f(x) = x2 y x* = 1 se tiene que f’(1) = 2 ≠ f*’ = 1) o si se cambia
de función (por ejemplo si f(x) = x3 con el soporte {x0 = 0 y x2 = 2} y para x* = 1
se tiene que: 3 = f’(1) ≠ f*’ = 4)
1
No siempre las acotaciones del error de truncatura que se obtendrán serán tan “finas” como la
que se acaba de describir.
6
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
De poco serviría tener fórmulas que sólo fuesen exactas para funciones
concretas con soportes concretos y en puntos concretos pues la aplicabilidad
de dichas fórmulas sería escasa. Por ello, las fórmulas de derivación numérica
suelen diseñarse de forma que sean exactas para determinadas familias de
funciones con independencia de cuáles sean los (n+1) puntos del soporte que
se elijan y para cualquier punto x* en el que se apliquen. Más concretamente
puede darse la definición siguiente:
Definición 2.4.
Se dice que la fórmula de derivación numérica:
n
f '(x*) ≈ f*' = ∑ c i .f(xi )
i= 0
Propiedad 2.1.
n
Si la fórmula de derivación numérica f '(x*) ≈ f*' = ∑ c i .f(xi ) es exacta de
i= 0
Demostración:
Si la fórmula es exacta de orden k para la familia de funciones consideradas se
podrá escribir que:
n
ϕ'j (x*) = ∑ c i .ϕ j (xi ) ∀x* ∈ [ x 0 ,xn ] (j = 0, ..., k)
i=0
Por otra parte, una función cualquiera que sea combinación lineal de las (k+1)
primeras funciones de la familia será de la forma:
k
f(x) = α 0 ⋅ ϕ0 (x) + α1 ⋅ ϕ1 (x) + ..... + αk ⋅ ϕk (x) = ∑ α j ⋅ ϕ j (x)
j= 0
por lo que su primera derivada en cualquier punto x* del intervalo [x0, xn]se
puede expresar como:
7
Programación y Métodos Numéricos Derivación Numérica
k k
⎛ n ⎞ n ⎛ k ⎞ n
f '(x*) = ∑ α j ⋅ ϕ'j (x*) = ∑ α j ⋅ ⎜ ∑ c i ⋅ ϕ j (x i ) ⎟ = ∑ c i ⋅ ⎜ ∑ α j ⋅ ϕ j (xi ) ⎟ = ∑ c i ⋅ f(xi )
j=0 j=0 ⎝ i= 0 ⎠ i= 0 ⎝ j= 0 ⎠ i= 0
Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea
combinación lineal de las (k+1) primeras funciones de la familia de funciones
considerada.
c.q.d.
Ejemplo:
La fórmula que se ha utilizado en ejemplos anteriores consistente en sustituir el
límite con el que se define la derivada por el cociente incremental en un soporte
de dos puntos consecutivos es una fórmula exacta de orden 1. En efecto, para
la función f(x) = 1 se verifica que:
f(x 0 + h) − f(x 0 ) 1 − 1
fx' = = = 0 = f '(x) ∀x ∈ [ x 0 ,x 0 + h]
h h
Asimismo para la función g(x) = x se tiene que:
g(x 0 + h) − g(x 0 ) x 0 + h − x 0
g'x = = = 1 = g'(x) ∀x ∈ [ x 0 ,x 0 + h]
h h
Pero para la función q(x) = x2, en general, ya no coincidirá el valor de la primera
derivada y el valor estimado mediante la fórmula de derivación:
8
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
q(x 0 + h) − q(x 0 ) (x 0 + h)2 − x 02
q'x = = = 2 ⋅ x 0 + h ≠ q'(x) ∀x ∈ [ x 0 ,x 0 + h]
h h
por lo que sólo se puede afirmar que el error de la fórmula es nulo para los
monomios {1, x}. En consecuencia, como se señaló anteriormente, la fórmula
es de orden 1.
NOTA:
Para facilitar el seguimiento de todo cuanto hasta aquí se ha dicho, nos hemos
referido únicamente a fórmulas que permiten estimar el valor de la primera
derivada de una función. Análogo tratamiento podría realizarse para las
fórmulas de derivación numérica que permiten estimar derivadas de orden
mayor (segundas derivadas, terceras derivadas, etc...). A ellas nos referiremos
en el apartado 7º de este tema.
9
Programación y Métodos Numéricos Derivación Numérica
Definición 3.1.
Se denomina fórmula de derivación numérica de tipo interpolatorio
(de Lagrange) para aproximar derivadas de primer orden a cualquier
fórmula obtenida derivando una vez la expresión del polinomio
interpolador de Lagrange construido sobre un soporte de (n+1) puntos
distintos.
NOTA:
Obsérvese que en la definición anterior se ha escrito entre paréntesis “de
Lagrange”. En efecto podría pensarse en derivar también la expresión del
polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de
derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a
las fórmulas que se obtienen al derivar la expresión del polinomio interpolador
de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente
diremos fórmula de derivación numérica de tipo interpolatorio.
•
2
Consúltese, por ejemplo, el tema dedicado a la Interpolación de Lagrange elaborado por A.
Hidalgo y C. Conde en estos mismos apuntes.
10
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Propiedad 3.1.
La condición necesaria y suficiente para que la fórmula de derivación
n
numérica fx*' = ∑ ci .f ( xi ) que sea de tipo interpolatorio es que sus
i =0
Demostración:
a) Demostremos en primer lugar que si la fórmula es de tipo interpolatorio
entonces sus pesos satisfacen la relación ci = L’i(x*). En efecto, la expresión
detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre
el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de
base de Lagrange {Li (x)}i=0 es:
n
n
f(x) ≈ pn (x) = ∑ f(xi ) ⋅ Li (x)
i= 0
n
f '(x*) ≈ pn' (x*) = ∑ L'i (x*) ⋅ f(x i )
i=0
⎛ n ⎞ ⎛ n ⎞
Recuérdese que: Li (x) = ⎜ ∏ (x − x j ) ⎟ ⎜ (x − x ) ⎟
⎜∏
3
(i = 0, 1, ..., n)
⎜ j=0 ⎟ i j ⎟
⎜ ⎟ ⎜ j=0 ⎟
⎝ j≠i ⎠ ⎝ j≠i ⎠
11
Programación y Métodos Numéricos Derivación Numérica
'
n n n
⎛ n ⎞
f’(x*) ≈ ∑ c i f(xi ) = ∑ (L 'i (x*)f(x i )) = ∑ (Li (x*)f(xi )) ' = ⎜ ∑ Li (x*)f(xi ) ⎟ = p'n (x*)
i= 0 i=0 i=0 ⎝ i= 0 ⎠
Propiedad 3.2.
En toda fórmula de derivación numérica de tipo interpolatorio
n
fx*' = ∑ c i .f(xi ) se verifica que:
i= 0
n
∑c
i=1
i =0
Demostración:
Puesto que según las propiedades de los polinomios de base de Lagrange se
n
verifica que: ∑ L (x) = 1
i=0
i ∀x , es obvio que:
'
⎛ n ⎞ n
⎜ ∑ i ⎟ ∑ Li (x) = 0
= ∀x
'
L (x)
⎝ i=0 ⎠ i=0
∑ L'i (x*) = ∑ ci = 0
i=0 i=0
c.q.d.
12
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
lo cual nos conduce a poder expresar el error en el punto x* de la fórmula de
derivación numérica mediante:
R f (x*) = ε '(x*)
En el caso particular en que f(x) sea un polinomio de grado menor o igual que n
se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la
fórmula de derivación numérica de tipo interpolatorio construida sobre un
soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o
igual que n. En resumen es exacta de orden n.
Este hecho nos permite incluir a las fórmulas de derivación numéricas de tipo
interpolatorio en el conjunto de fórmulas de derivación exactas de orden n.
Pero aún puede precisarse más, puesto que además toda fórmula exacta de
orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente
de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema.
Teorema 3.1.
La condición necesaria y suficiente para que una fórmula de derivación
n
numérica construida sobre un soporte de (n+1) puntos, fx*' = ∑ c i .f(xi ) ,
i =0
Demostración:
a) Demostremos en primer lugar que la condición recogida en el enunciado
del teorema es suficiente, es decir que si la fórmula construida sobre el
soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de
orden n. Para ello basta con recapitular los razonamientos anteriormente
realizados. En efecto, si f(x) es una función polinómica de grado menor o
igual que n su polinomio interpolador de Lagrange sobre el soporte de
(n+1) puntos coincide con la función y por tanto:
f(x) = pn(x) ∀x
13
Programación y Métodos Numéricos Derivación Numérica
Ello demuestra que la fórmula es exacta sea cual sea el polinomio f(x)
de grado menor o igual que n al que se aplique y el punto x* en el que se
aproxime la primera derivada.. En particular lo será cuando se aplique a
los (n+1) primeros monomios {1, x, ..., xn} y por ello es exacta de grado
n.
Por otra parte, puesto que hemos considerado que p(x) es un polinomio
de grado menor o igual que n, se verificará que el polinomio interpolador
de p(x) en el soporte de (n+1) puntos coincidirá con p(x) y por tanto p(x)
se puede expresar como:
n
p(x) = ∑ p(xi ).Li (x)
i= 0
n
p'(x*) = ∑ L'i (x*).p(xi )
i= 0
Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea
de grado menor o igual que n. Por tanto deberá verificarse también en el
caso de que consideremos como p(x) cualquiera de los (n+1) polinomios
de base de Lagrange construidos sobre el soporte {xi }i=0 . Recordemos
n
14
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
⎧0 si i ≠ j
Li (x j ) = ⎨
⎩ 1 si i=j
∑ c .L
i =0
i 0 (xi ) = ∑ L'i (x*).L0 (xi ) ⇒ c 0 = L'0 (x*)
i=0
c.q.d.
Ejemplos:
1º) Si se considera un único punto de soporte {x0} el polinomio interpolador de
una función f(x) en dicho soporte será el polinomio: p0(x) = f(x0). La figura 1
recoge, junto al grafo de la función f(x) el grafo de p0(x) y la tangente
geométrica a la curva en (x0, f(x0)). La pendiente de esta tangente geométrica
será la derivada f’(x0).
15
Programación y Métodos Numéricos Derivación Numérica
Ello nos conduciría a que, para cualquier punto x*, la fórmula de derivación de
tipo interpolatorio de una función con un soporte de un único punto es:
Obviamente esta fórmula sólo sería exacta en el caso de derivar constantes (es
decir, polinomios de grado 0).
(x − x1 ) (x − x 0 )
p1 (x) = f(x 0 ). + f(x1 ).
(x 0 − x1 ) (x1 − x 0 )
1 1 f(x1 ) − f(x 0 )
p1' (x) = f(x 0 ). + f(x1 ). =
(x 0 − x1 ) (x1 − x 0 ) (x1 − x 0 )
f(x1 ) − f(x 0 )
f '(x*) ≈ fx*' =
x1 − x 0
16
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Otras relaciones entre los pesos y los puntos del soporte de las fórmulas de
derivación numérica de tipo interpolatorio se recogen en la propiedad siguiente:
Propiedad 3.3
En toda fórmula de derivación numérica de tipo interpolatorio
n
fx*' = ∑ c i .f(xi ) , construida sobre un soporte de (n+1) puntos, se verifica
i= 0
que:
n
∑c x = k·( x * )
k k −1
i i (k = 1, ...n)
i =1
Demostración:
Por ser la fórmula de tipo interpolatorio es exacta para todo polinomio de grado
menor o igual que n. En particular lo será para la función f(x) = xk sea cual sea
el valor del entero positivo k siempre que k < n. Puesto que f’(x*) = k·(x*)(k-1), la
exactitud de la fórmula implica que:
n
∑c x = k·( x * )
k k −1
i i ( 0 < k < n)
i=1
c.q.d.
17
Programación y Métodos Numéricos Derivación Numérica
EJERCICIO PROPUESTO:
Demuéstrese que para cualquier función f(x) que sea derivable en todo punto
del intervalo [x0, x1] siempre existe algún punto x* de dicho intervalo para el que
la fórmula de derivación numérica de tipo interpolatorio construida sobre el
soporte {x0 ,x1} proporciona el valor exacto f’(x*). Nótese que, si esto es así, en
particular se puede afirmar que siempre existirá algún punto x* en el intervalo
[x0, x1] para el que la fórmula construida con dos puntos de soporte proporciona
el valor exacto de la derivada de xk sea cual sea el valor que le demos al entero
no negativo k. ¿Contradice esto la afirmación de que la fórmula es de orden 1?.
A la luz de este comentario ¿no sería más preciso decir que la fórmula es de
orden infinito?.
18
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
4. Expresiones del error de las fórmulas de derivación numérica de tipo
interpolatorio que aproximan la primera derivada de una función.
El proceso seguido para obtener las fórmulas de derivación numérica de tipo
interpolatorio nos conduce de forma natural a que el error de cada fórmula
Rf(x*) de derivación así determinada es igual a la primera derivada de la
función de error interpolación ε(x) particularizada en el punto x* en que se
deriva: Rf(x*)= ε '(x*) . No obstante trabajar con la expresión del error de
interpolación que se dedujo en los temas dedicados al estudio de las técnicas
de interpolación4 no es cómodo en muchas ocasiones. Es por ello interesante
obtener otras expresiones más cómodas para el análisis del error de las
fórmulas de derivación numérica.
Una primera forma de obtener otra expresión del error de derivación numérica
se basa en utilizar diferencias divididas. Para ello, como es habitual,
denotaremos por f[x0, x1, ..., xn, x] a la diferencia dividida de orden (n+1) de la
función f(x) en los puntos {x0, x1, ..., xn, x] y consideraremos una función g(x)
que a todo punto x le haga corresponder el valor: g(x) = f[x0, x1, ..., xn, x]
Más concretamente:
Definición 10.4.1.
Se define la diferencia dividida de orden (n+2 )de una función en el
soporte {x0, x1, ..., xn, x, x} mediante:
df[x 0 ,x1,....,xn ,x]
f[x 0 ,x1,...,x n ,x,x] =
dx
f (n +1 (ξ x ) n
4
Recuérdese que la expresión obtenida era: .∏ (x − xi ) donde ξ x era un
ε(x) =
(n + 1)! i= 0
punto dependiente de la abscisa x en la que se deseaba estimar el error de interpolación. Este
error también se podía expresar usando las diferencias divididas como
n
ε(x) = f[x 0 , x1 ,..., xn , x] ⋅ ∏ (x − xi ) .
i=0
19
Programación y Métodos Numéricos Derivación Numérica
Con ayuda de las diferencias divididas con puntos repetidos que se acaban de
definir y partiendo de la expresión del error de interpolación que se obtuvo al
trabajar con diferencias divididas, es sencillo demostrar la siguiente propiedad:
Propiedad 4.1.
La fórmula de derivación numérica de tipo interpolatorio
n
fx*' = ∑ c i .f(xi ) tiene asociado un error de truncatura dado por la expresión
i= 0
⎛ n ⎛ n ⎞⎞
⎜ ⎜ ⎟
n
Rf ( x*) = f [ x0 , x1 ,..., xn , x*, x * ] .∏ ( x * − xi ) + f [ x0 , x1 ,..., xn , x*, x * ] . ⎜ ∑ ∏ ( x * − x j ) ⎟ ⎟
⎜ ⎟
i =0 ⎜ i =0 ⎜ jj =≠0i ⎟⎟
⎝ ⎝ ⎠⎠
Demostración:
Basta con particularizar en x* la expresión obtenida al derivar una vez la
función de error de interpolación:
n
ε(x) = f[x 0 ,x1,...,xn ,x].∏ (x − xi )
i =0
c.q.d.
Consideremos que f(x) es una función de clase Cn+1((x0, xn)) y que para
aproximar la primera derivada de la función f(x) en un punto x* perteneciente al
intervalo [x0 , xn] se considera la fórmula de derivación numérica de tipo
n
interpolatorio fx*' = ∑ c i .f(xi ) construida sobre un soporte de (n+1) puntos
i =0
distintos {x0 < x1 < ....< xn}. Adviértase que, por ser la fórmula de tipo
interpolatorio, al menos, será de orden n. Ello, en particular implica que servirá
para determinar sin error de truncatura ninguno las derivadas de las funciones
{1, x, x2, ..., xn}. Ello a su vez se traduce en que:
n n
20
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Denotemos además por h al valor:
h = Max ( x * − x 0 , x * − x n )
y sean {θi }i=0 (n+1) escalares de valor absoluto no superior a 1 y tales que:
n
xi = x * +θi ⋅ h
n
⎛ n ⎞ ⎛ n ⎞ h2 . ⎛ n ⎞
fx*' = ∑ c i .f(xi ) = ⎜ ∑ c i ⎟ .f(x*) + h. ⎜ ∑ c i .θi ⎟ .f '(x*) + ⎜ ∑ c i .θi2 ⎟ .f "(x*) + ..... +
i =0 ⎝ i=0 ⎠ ⎝ i=0 ⎠ 2! ⎝ i=0 ⎠
n +1
h ⎛
n n
⎞ h n
+ . ⎜ ∑ c i .θin ⎟ .f (n (x*) + .∑ c i .θi(n+1) .f (n+1(x * +δi .h)
n! ⎝ i=0 ⎠ (n + 1)! i=0
Propiedad 4.2.
n
Con la notación introducida anteriormente y siendo fx*' = ∑ c i .f(xi ) una
i= 0
21
Programación y Métodos Numéricos Derivación Numérica
xi − x *
θi =
h
de donde:
n
1 n 1 ⎛ n ⎞ 1 n
∑
i=0
c .θ
i i = .∑ i i
h i=0
c .(x − x*) = . ∑ i i ⎟⎠ h ∑
h ⎜⎝ i=1
c .x − .x * .
i=0
ci
n
En esta última igualdad se sabe que ∑c
i= 0
i = 0 (véase la propiedad 3.2.). Por
n
otra parte ∑ c .x
i =1
i i se corresponde con la expresión de la derivada del monomio
Propiedad 4.3.
n
Con la notación introducida anteriormente y siendo fx*' = ∑ c i .f(xi ) una
i= 0
∑ c .θ
i=0
i
k
i =0 (k=2,....,n)
Demostración:
Con la notación que se está utilizando y empleando la fórmula de Newton para
desarrollar potencias de binomios5, se tiene que:
n
1 n 1 n ⎛ ⎛ k ⎛k ⎞ ⎞⎞
∑ c i .θik = k ∑ i
. c .(x i − x*)k
= k ∑⎜
. ⎜ c i . ⎜ ∑ ( −1) j . ⎜ ⎟ .xi(k − j) .(x*) j ⎟ ⎟ =
⎟
i=0 h i= 0 h i=0 ⎝ ⎝ j=0 ⎝ j⎠ ⎠⎠
1 k ⎛ j ⎛k ⎞ j ⎛
n
(k − j) ⎞ ⎞
= .∑ ⎜
hk j=0 ⎝
( −1) . ⎜ ⎟ .(x*) . ⎜ ∑
⎝ i= 0
c i .x i ⎟⎟
⎠⎠
⎝ j⎠
5 ⎛k ⎞ k!
Como es habitual, en dicha fórmula se utiliza la notación ⎜ ⎟ para representar a
⎝ j⎠ (k − j)!.j!
22
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
valor de la derivada del monomio x(k-j) particularizado en el punto x*. Es decir
que:
( )
n
∑ c .x = x(k − j) ⎤
'
(k − j)
= (k − j).(x*)(k − j−1)
i=0
i i ⎥⎦ x = x*
n
Para el caso en que j coincida con el valor de k el sumatorio quedará ∑c
i=0
i
n
1 (k −1) ⎛ ⎛k ⎞ ⎞
∑ c i .θik = k ∑⎜
. ( −1) j . ⎜ ⎟ .(x*) j .(k − j).(x*)(k − j−1) ⎟ =
i=0 h j= 0 ⎝ ⎝ j⎠ ⎠
1 (k −1)
⎛ ⎛k ⎞⎞
= k
.(x*)(k −1)
. ∑ ⎜ ( −1) .(k − j). ⎜ ⎟ ⎟
j
h j=0 ⎝ ⎝ j ⎠⎠
(k −1)
⎛k ⎞
∑ (−1) .(k − j). ⎜ j ⎟ = 0
j
∀k ≥ 2
j=0 ⎝ ⎠
puede concluirse que:
n
∑ c .θ
i=0
i
k
i =0 (k = 2, ..., n)
c.q.d.
Teorema 4.1.
Dado el soporte de (n+1) puntos x0 < x1 < ... < xn , siendo f(x) una
función de clase C(n+1)((x0 , xn)), siendo x* un punto del intervalo [x0 , xn],
denotando hi = xi – x* , por h al valor h = máx(|x*-x0| , |x* - xn|) y por
{θi }i=0 a los (n+1) escalares tales que hi = θi .h , para toda fórmula de
n
6
El lector interesado puede encontrar la demostración en el anexo a este apartado (Lema 4.2.)
23
Programación y Métodos Numéricos Derivación Numérica
hn
( )
n
Rf (x*) = f(x*) − f = '
.∑ c i .θin .hi .f (n+1(x * +δi .h)
(n + 1)! i=0
x*
Demostración:
Introduciendo el resultado de las propiedades 4.2. y 4.3. en la expresión antes
obtenida resulta:
n
⎛ n ⎞ ⎛ n ⎞ h2 . ⎛ n ⎞
fx*' = ∑ c i .f(xi ) = ⎜ ∑ c i ⎟ .f(x*) + h. ⎜ ∑ c i .θi ⎟ .f '(x*) + ⎜ ∑ c i .θi2 ⎟ .f "(x*) + ..... +
i =0 ⎝ i=0 ⎠ ⎝ i=0 ⎠ 2! ⎝ i=0 ⎠
hn ⎛ n ⎞ hn+1 n
+ . ⎜ ∑ c i .θin ⎟ .f (n (x*) + .∑ c i .θi(n+1) .f (n+1(x * +δi .h) =
n! ⎝ i=0 ⎠ (n + 1)! i=0
hn
( )
n
= f '(x*) + .∑ c i .θin .hi .f (n+1(x * +δi .h)
(n + 1)! i=0
c.q.d.
NOTAS:
24
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
4ª) Con todo, como ya señaló anteriormente, lo más interesante de esta forma
de proceder no es tanto el resultado obtenido como el procedimiento seguido
para determinar el error de la fórmula (combinando desarrollos en serie de
Taylor).
Lema 4.1.
Si g(x) es una función continua en [a, b] y se consideran (n+1)
coeficientes positivos, {αi }i=0 , y (n+1) puntos {ξi }i=0 pertenecientes al
n n
∑ α .g(ξ ) = α.g(ξ)
i =0
i i
n
donde α = ∑ αi .
i =0
Demostración:
Denotemos por gm y por gM a los valores mínimo y máximo que toma la función
g(x) en [a, b]. Por ser todos los coeficientes positivos se verifica que:
n n n n
∑ α .g
i =0
i m ≤ ∑ αi .g(ξi ) ≤ ∑ αi .gM ⇒ α.gm ≤ ∑ αi .g(ξi ) ≤ α.gM ⇒
i=0 i= 0 i=0
1 n
⇒ gm ≤ .∑ αi .g(ξi ) ≤ gM
α i= 0
25
Programación y Métodos Numéricos Derivación Numérica
1 n n
.∑ αi .g(ξi ) = g(ξ) ⇒ ∑ αi .g(ξi ) = α.g(ξ)
α i =0 i=0
c.q.d.
Teorema 4.2.
Dado el soporte de (n+1) puntos x0 < x1 < .... < xn, siendo f(x) una función
de clase C(n+1)((x0 , xn)), x* un punto del intervalo [x0 , xn] y denotando por
h al valor h = máx( |x* – x0 |, |xn – x|), para toda fórmula de derivación
numérica de tipo interpolatorio:
n
f '(x*) ≈ fx*' = ∑ c i .f(xi )
i=0
hn
( )
n
Rf (x*) = f(x*) − fx*' = .∑ c i .θin .hi .f (n+1 (x * +δi .h)
(n + 1)! i=0
de donde:
hn
( )
n
Rf (x*) = f(x*) − fx*' = . ∑ c i .θin .hi .f (n+1 (x * +δi .h) ≤
(n + 1)! i=0
hn n
≤ .∑ c i .θin .hi . f (n+1 (x * +δi .h)
(n + 1)! i=0
Aplicando el lema 4.1. (para la función g(x) = |f(n+1(x)|, evaluada en los puntos
ξi = x* + δi.h, y con los coeficientes αi = |ci.θin.hi| ) se puede concluir que
existirá un valor x∈ [x0 , xn] para el que se verificará que:
⎧n ⎫
⎨∑ α i ⎬
R f (x*) ≤ ⎩ ⎭ .h(n+1) . f (n+1 (ξ)
i= 0
(n + 1)!
de donde se tiene el resultado de este teorema sin más que llamar β al escalar
n
1
β= .∑ αi
(n + 1)! i=0
c.q.d.
26
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
En el apartado siguiente se deducirán algunas fórmulas de derivación numérica
y se detallará cómo obtener la expresión del error que con ellas se comete.
ANEXO AL APARTADO 4º
Lema 4.2.
Para todo valor entero k superior o igua a 2 se verifica que:
( k −1 )
⎛k ⎞
∑ ( −1) .( k − j ).⎜ j ⎟ = 0
j
∀k ≥ 2
j =0 ⎝ ⎠
Demostración:
Se tiene que:
(k −1)
⎛k ⎞ k ⎛k ⎞ k
j ⎛k ⎞
k
j ⎛k ⎞
∑ ( −1) j
·(k − j)·⎜ ⎟ ∑= ( −1) j
·(k − j)·⎜ ⎟ = k·∑ ( − 1) ·⎜ ⎟ ∑ ( −1) ·j·⎜ ⎟
−
j=0 ⎝ j ⎠ j=0 ⎝ j⎠ j= 0 ⎝ j ⎠ j= 0 ⎝ j⎠
k
⎛k ⎞
k·∑ ( −1) j ·⎜ ⎟ = k·(1 − 1)k = k·0 = 0
j=0 ⎝ j⎠
k
⎛k ⎞
Analicemos ahora el sumando que queda en el lado derecho: ∑ (−1) ·j·⎜ j ⎟ .
j
j=0 ⎝ ⎠
Para ello procederemos por inducción. Para el valor k = 2 se tiene que el
sumando anterior tiene el valor:
2
⎛ 2⎞
∑ (−1) ·j·⎜ j ⎟ = 1· 0 · 1 + (−1) · 1· 2 + 1· 2 · 1 = 0
j
j=0 ⎝ ⎠
Admitamos entonces que para algún valor (k-1) > 2 se verifica que:
(k −1)
⎛ k − 1⎞
∑ (−1) ·j·⎜
j
⎟=0
j=0 ⎝ j ⎠
7
Recuérdese que la fórmula del binomio de Newton establece que:
k
⎛k ⎞
( a + b ) = ∑ ⎜ ⎟·a(k − j) ·b j
k
j=0 ⎝ j ⎠
27
Programación y Métodos Numéricos Derivación Numérica
j ⎛k ⎞
k k k k
k! k! k!
∑ ( −1) ·j·⎜ ⎟ ∑= ( −1) j
·j· = ∑
j!·(k − j)! j=1
( − 1) j
·j· = ∑
j!·(k − j)! j=1
( −1) j ·
( j − 1)!·(k − j)!
=
j=0 ⎝ j ⎠ j=0
k
(k − 1)! k
(k − 1)! k
⎛ k − 1⎞
= k·∑ ( −1) j · = k·∑ ( −1) j · = k·∑ ( −1) j ·⎜ ⎟=0
j=1 ( j − 1)!·(k − j)! j=0 j!·(k − j − 1)! j=0 ⎝ j ⎠
Por tanto:
(k −1)
⎛k ⎞ k
j ⎛k ⎞
k
j ⎛k ⎞
∑ ( −1) j
·(k − j)·⎜ ⎟ = k·∑ ( − 1) ·⎜ ⎟ ∑ ( −1) ·j·⎜ ⎟ = 0 − 0 = 0
−
j=0 ⎝ j⎠ j= 0 ⎝ j ⎠ j= 0 ⎝ j⎠
c.q.d.
28
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
5. Algunas fórmulas de derivación numérica de tipo interpolatorio usuales
para aproximar primeras derivadas.
(x − x1 ) (x − x 0 )
p(x) = f(x 0 ). + f(x1 ).
(x 0 − x1 ) (x1 − x 0 )
1 1 −1 1
f '(x*) ≈ fx*' = p '(x*) = .f(x 0 ) + .f(x1 ) = .f(x 0 ) + .f(x1 )
(x 0 − x1 ) (x1 − x 0 ) (x1 − x 0 ) (x1 − x 0 )
Es habitual en este caso denotar por H a la distancia entre puntos: H = (x1 – x0)
con lo que la fórmula anterior puede expresarse como:
−1 1
f(x*) ≈ fx*' = .f(x 0 ) + .f(x1 )
H H
NOTAS:
1ª) Obsérvese que la fórmula obtenida coincide con el cociente incremental que
nos sirvió para ilustrar las fórmulas de derivación numérica en la introducción a
este tema (apartado 1º).
29
Programación y Métodos Numéricos Derivación Numérica
−1 1
f(x*) ≈ fx*' = p '(x*) = .f(x 0 ) + .f(x1 )
H H
La expresión del error de esta fórmula, admitiendo la hipótesis de que f(x) sea
de clase C2 ((x0 , x1)) y que x* pertenezca a [x0, x*], puede obtenerse sin más
que denotar por h al valor h = máx(|x0 – x*|, |x1 – x*|) y considerando
entonces que:
x0 - x* = θ0 .h x1 - x* = θ1.h
por lo que:
1 1
fx*' = c0.f(x0) + c1.f(x1) = . ( f(x1 ) − f(x 0 ) ) = . ( f(x * +θ1.h) − f(x * +θ0 .h) ) =
H H
1 ⎡ 1
= . ⎢ f(x*) + θ1.h.f '(x*) + .θ12 .h2 .f "(x * +δ1.h) −
H ⎣ 2
1 ⎤
− f(x*) − θ0 .h.f '(x*) − .θ02 .h2 .f "(x * +δ0 .h)⎥ =
2 ⎦
θ − θ0 1 2 2 1 2 2
= 1 .h.f '(x*) + θ1 .h .f "(x * +δ1.h) − θ0 .h .f "(x * +δ0 .h) =
H 2.H 2.H
1 ⎛ x − x0 ⎞ 1 2 2 1 2 2
= .⎜ 1 ⎟ .h.f '(x*) + θ1 .h .f "(x * +δ1.h) − θ0 .h .f "(x * +δ0 .h) =
H ⎝ h ⎠ 2.H 2.H
h2
= f’(x*) +
2.H
(
. θ12 .f "(x * +δ1.h) − θ02 .f "(x * +δ0 .h) )
30
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Puesto que H se podrá expresar como γ.h con (γ > 1) resultará finalmente,
aplicando el lema 4.1., que:
Rf(x*) =
h
2.γ
( )
. θ12 .f "(x * +δ1.h) − θ02 .f "(x * +δ0 .h) = β.h.f "(ξ)
Rf(x*) = ρ.H.f”(ξ)
A) Caso en el que x* = x0
h
R f (x*) = f(x*) − fx*' = − .f "(x * +δ.h) δ ∈ [0,1]
2
31
Programación y Métodos Numéricos Derivación Numérica
NOTA:
Al mismo resultado sobre el error se llegaría sin más que considerar que:
f(x*+h) = f(x*) + h.f’(x*) + (h2/ 2).f”(x*) + ..... de donde:
B) Caso en el que x* = x1
NOTA:
Al mismo resultado sobre el error se llegaría sin más que considerar que:
f(x*-h) = f(x*) - h.f’(x*) + (h2/ 2).f”(x*) - ..... de donde:
32
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
denominándose “aproximación mediante la diferencia finita centrada de
primer orden”. El error de esta fórmula, si f(x) es suficientemente regular
puede obtenerse, en un primer intento, particularizando en la expresión
antes obtenida resultando:
h
R f (x*) = f(x*) − fx*' = . ( f "(x * +δ1.h) − f "(x * −δ0 .h) ) δ0 , δ1 ∈ [0,1]
4
33
Programación y Métodos Numéricos Derivación Numérica
p2(x) = f(x0) + f[x0, x1].(x - x0) + f[x0 , x1, x2].(x – x0).(x – x1)
por lo que:
p’2(x) = f[x0, x1]+ f[x0 , x1, x2].((x – x0) + (x – x1))
f’(x*) ≈ fx*' = p'2 (x*) = f[x0, x1]+ f[x0 , x1, x2].((x* – x0) + (x* – x1))
NOTAS:
1ª) En este caso se ha utilizado la fórmula de Newton del polinomio
interpolador para inferir a partir de ella la fórmula de derivación de tipo
interpolatorio. Puesto que, sobre un soporte dado, el polinomio interpolador de
Lagrange es único podrían haberse utilizado otras expresiones de este
polinomio para obtener el mismo resultado. No obstante es cómodo utilizar la
fórmula de Newton en el caso general para no obtener expresiones que,
desarrolladas, quedan muy “aparatosas” sin aportar nada para nuestros
propósitos.
con:
f ( x1 ) − f ( x0 ) f ( x2 ) − f ( x1 )
8
Recuérdese que: f [ x0 , x1 ] = , f [ x1 , x2 ] = y
x1 − x0 x2 − x1
f [ x1 , x2 ] − f [ x0 , x1 ]
f [ x0 , x1 , x2 ] =
x 2 − x0
34
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
para así obtener la misma fórmula de derivación numérica pero ahora con la
expresión
f(x*) ≈ fx*' = p'2 (x*) = L'0 (x*).f(x 0 ) + L'1 (x*).f(x1 ) + L'2 (x*).f(x 2 )
(x * − x1 ) + (x * − x 2 ) (x * − x 0 ) + (x * − x 2 )
c0 = L'0 (x*) = , c1 = L1 (x*) =
(x 0 − x1 ).(x 0 − x 2 ) (x1 − x 0 ).(x1 − x 2 )
(x * − x 0 ) + (x * − x1 )
c2 = L 2 (x*) =
(x 2 − x 0 ).(x 2 − x1 )
Figura 3: Interpretación gráfica del proceso de derivación numérica seguido con una
fórmula de tipo interpolatorio con tres puntos de soporte.
35
Programación y Métodos Numéricos Derivación Numérica
Los casos de aplicación más típicos para esta fórmula de derivación numérica
son aquellos en los que el punto x* coincide con uno de los puntos del soporte
siendo, además, el soporte equidistante. A continuación se analizan con detalle
estas situaciones.
H H
x0 x1 x2
36
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
f(x1 ) − f(x 0 ) f(x 2 ) − 2.f(x1 ) + f(x 0 )
f '(x*) ≈ fx*' = − =
H 2.H
− f(x 2 ) + 4.f(x1 ) − 3.f(x 0 ) − f(x * +2.H) + 4.f(x * +H) − 3.f(x*)
= =
2.H 2.H
La fórmula anterior se conoce con el nombre de fórmula de derivación
numérica en diferencias progresivas de segundo orden.
por lo que:
de donde:
37
Programación y Métodos Numéricos Derivación Numérica
obteniendo:
38
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
6. Otros métodos para la obtención de fórmulas de derivación numérica
de tipo interpolatorio.
hi2 h3 hk
f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + ·f "(x*) + i ·f '''(x*) + .... + i ·f (k (x*) + ....
2! 3! k!
Por lo que:
n
⎛ n
⎞ ⎛ n
⎞ 1⎛ n
⎞
∑ α ·f(x ) = ⎜⎝ ∑ α ⎟⎠·f(x*) + ⎜⎝ ∑ α ·h ⎟⎠·f '(x*) + 2! ⎜⎝ ∑ α ·h
i=0
i i
i= 0
i
i= 0
i i
i= 0
i
2
i ⎟·f "(x*) +
⎠
1⎛ n 3⎞ 1⎛ n ⎞
⎜ ∑
3! ⎝ i=0
α ·h
i i ⎟
⎠
·f '''(x*) + .... + ⎜ ∑
k! ⎝ i=0
αi ·hik ⎟·f (k (x*) + ...
⎠
(1)
Si se desea que la fórmula de derivación sea del mayor orden posible debe
buscarse que, salvo el coeficiente de f’(x*), se anulen el mayor número de los
primeros sumandos del desarrollo anterior. Esto es, que:
n n n
∑ αi = 0
i=0
∑ αi·hi2 = 0
i=0
......... ∑ α ·h
i=0
i
k
i =0
39
Programación y Métodos Numéricos Derivación Numérica
Por ello los coeficientes (α0, ..., αn) que se determinen mediante la resolución
del sistema:
n
∑α
i=0
i =0
n
∑ α ·h
i=0
i
2
i =0
........
n
∑ α ·h
i=0
i
n
i =0
n
En todo caso, una vez calculados estos coeficientes, denotando por α = ∑ αi ·hi
i= 0
Ejemplo:
Determinemos la fórmula de derivación numérica del mayor orden de exactitud
posible que permite calcular el valor aproximado de f’(x*) usando un soporte de
la forma: {x0 = x* - 2·h, x1 = x* - (½)·h, x2 = x* + (½)·h, x3 = x* + (3/2)·h} donde h
es un valor real estrictamente positivo.
Para ello, si suponemos que f(x) es suficientemente regular en (x0, x3) podemos
considerar los desarrollos en serie de Taylor:
1 h2 h3 h4 (iv
f(x*-(½)·h) =f(x*) – · h·f’(x*) + ·f "(x*) − ·f '''(x*) + ·f (x*) −
2 8 48 384
h5 (v
− ·f (x*) + ...
3840
40
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
1 h2 h3 h4 (iv
f(x*+(½)·h) =f(x*) + · h·f’(x*) + ·f "(x*) + ·f '''(x*) + ·f (x*) +
2 8 48 384
h5 (v
+ ·f (x*) + ...
3840
= ( α 0 + α1 + α 2 + α 3 )·f(x*) +
⎛ 1 1 3 ⎞
+ ⎜ −2·α 0 − ·α1 + ·α 2 + ·α 3 ⎟·h·f '(x*) +
⎝ 2 2 2 ⎠
⎛ 1 1 9 ⎞
+ ⎜ 2·α 0 + ·α1 + ·α 2 + ·α 3 ⎟·h2 ·f "(x*) +
⎝ 8 8 8 ⎠
⎛ 8 1 1 27 ⎞
+ ⎜ − .α 0 − ·α1 + ·α 2 + ·α 3 ⎟·h3 ·f '''(x*) +
⎝ 6 48 48 48 ⎠
⎛ 16 1 1 91 ⎞
+ ⎜ .α 0 + ·α1 + ·α 2 + ·α 3 ⎟·h4 ·f (iv (x*) +
⎝ 24 384 384 384 ⎠
⎛ 32 1 1 273 ⎞
+⎜− .α 0 − ·α1 + ·α 2 + ·α 3 ⎟·h5 ·f (v (x*) + ....
⎝ 120 3840 3840 3840 ⎠
α0 + α1 + α 2 + α 3 = 0
1 1 9
2·α0 + ·α1 + ·α 2 + ·α 3 = 0
8 8 8
8 1 1 27
− .α 0 − ·α1 + ·α 2 + ·α 3 = 0
6 48 48 48
41
Programación y Métodos Numéricos Derivación Numérica
−8 −66 3
α0 = ·α1 , α2 = ·α1 , α3 = ·α1
455 65 91
Para estos valores de los coeficientes αi, se tiene entonces que la combinación
de desarrollo en serie de Taylor antes obtenida se convierte en:
8 1 66 1 3 3
− ·f(x * −2·h) + f(x * − ·h) − ·f(x * + ·h) + ·f(x * + ·h) =
455 2 65 2 91 2
12 1 4 (iv
=− ·h·f '(x*) − ·h ·f (x*) + ....
13 208
por lo que:
1⎛ 2 13 11 1 ⎞
f’(x*) = ·⎜ ·f ( x * −2·h ) − ·f ( x * − h 2 ) + ·f ( x * + h 2 ) − ·f ( x * + 3·h 2 ) ⎟ -
h ⎝ 105 12 10 28 ⎠
1 3 (iv
− ·h ·f (x*) + .....
192
1⎛ 2 13 11 1 ⎞
f '(x*) ≈ f* ' = ·⎜ ·f ( x * −2·h ) − ·f ( x * − h 2 ) + ·f ( x * + h 2 ) − ·f ( x * + 3·h 2 ) ⎟
h ⎝ 105 12 10 28 ⎠
1 3 (iv
R f (x*) = − ·h ·f (ξ)
192
9
Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a que
se anulase el coeficiente de f’’’(x*) se tendría un sistema que sólo admite la solución trivial α0 =
= α1 = α2 = α3 = 0.
42
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
6.2. Método de coeficientes indeterminados.
Este método de determinación de fórmulas de derivación de tipo interpolatorio
soportadas en (n+1) puntos se basa en que, según el teorema 3.1. toda
fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}. Por tanto, si
n
se busca una fórmula con expresión: f '(x*) ≈ f '* = ∑ c i f(xi ) , su aplicación a
i=0
k
cada uno de los (n+1) monomios x (0 < k < n) nos conduce a que:
∑c
i=0
i =0
n
∑c x = k·( x * )
k (k −1)
i i (k = 1, ..., n)
i=0
es decir al sistema:
⎡1 1 1 ... 1 ⎤ ⎧c 0 ⎫ ⎧0 ⎫
⎢x x x ⎥ ⎪ ⎪ ⎪1 ⎪
⎢ 0 1 2 ... xn ⎥ ⎪c1 ⎪ ⎪ ⎪
2 ⎪ ⎪ ⎪2x * ⎪
⎢ x 0 x1 x 22
2 2
... xn ⎥ ⎨c 2 ⎬ = ⎨ ⎬
⎢ ⎥ ⎪ ⎪ ⎪... ⎪
⎢... ... ... ... ... ⎥ ...
⎪ ⎪ ⎪ ⎪
⎢⎣ xn0 x1n xn2 ... xnn ⎥⎦ ⎪⎩c n ⎭⎪ ⎪⎩n ( x * ) ⎪⎭
(n −1)
Si los (n+1) puntos del soporte son diferentes puede asegurarse que el sistema
anterior es compatible determinado. Su resolución proporciona los pesos de la
fórmula de derivación buscada.
∑c
i=0
i =0
n n
1
∑c γ h = 1⇒ ∑c γ
i=0
i i
i= 0
i i =
h
43
Programación y Métodos Numéricos Derivación Numérica
Y si n > 1 , para valores del exponente menores o iguales que n se tiene que:
n n
k ( x * −x * ) = ∑ c i γ ik hk ⇒ ∑ c i γ ik = 0
(k −1)
i= 0 i=0
⎡1 1 1 ... 1 ⎤ ⎧c 0 ⎫ ⎧0 ⎫
⎢γ γ γ ... γ n ⎥⎥ ⎪⎪c1 ⎪⎪ ⎪⎪ 1h ⎪⎪
⎢ 0 1 2
⎪ ⎪ ⎪ ⎪
⎢ γ 0 γ1 γ 22
2 2
... γ n2 ⎥ ⎨c 2 ⎬ = ⎨0 ⎬
⎢ ⎥
⎢... ... ... ... ... ⎥ ⎪... ⎪ ⎪...⎪
⎪ ⎪ ⎪ ⎪
⎢⎣ γ n0 γ1n γ n2 ... γ nn ⎥⎦ ⎪⎩c n ⎭⎪ ⎪⎩0 ⎪⎭
Ejemplo:
Determinemos la fórmula de derivación numérica de tipo interpolatorio que
permite calcular el valor aproximado de f’(x*) usando un soporte de la forma:
{x0 = x* - 2·h, x1 = x* - (½)·h, x2 = x* + (½)·h, x3 = x* + (3/2)·h} donde h es un
valor real estrictamente positivo.
44
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
⎡ 1 1 1 1 ⎤ ⎧c 0 ⎫ ⎧ 0 ⎫
⎢ −4 −1 ⎪ ⎪
⎢ 1 3 ⎥⎥ ⎪ c1 ⎪ ⎪⎪ 2 h ⎪⎪
⎨ ⎬=⎨ ⎬
⎢ 16 1 1 9 ⎥ ⎪c 2 ⎪ ⎪ 0 ⎪
⎢ ⎥
⎣ −64 −1 1 27 ⎦ ⎪⎩c 3 ⎭⎪ ⎩⎪ 0 ⎭⎪
2 −13 11 −1
c0 = ,c1 = ,c 2 = ,c 4 =
105·h 12·h 10·h 28·h
f’(x*) = 4.(x*-x*)3 = 0
1⎛ 2 13 11 1 3 4⎞ 1 3
( −2h)4 − ( −12 h)4 + ( 12 h ) − ( 2 h) ⎟ = h
4
f*' = ⎜
h ⎝ 105 12 10 28 ⎠ 8
h3 1
por lo que R( x − x*)4 (x*) = f '(x*) − f = 0 −
*
'
= − h3 . Si se busca el error en la
8 8
forma:
R f (x*) = Kh3 f (iv (x*)
para la función considerada (cuya cuarta derivada es: f(iv(x*) = 24) se tiene que:
K = -1/192
1⎛ 2 13 11 1 ⎞
f*' = ⎜ f(x * −2h) − f(x * − 12 h) + f ( x * + 12 h ) − f ( x * + 3 2 h) ⎟
h ⎝ 105 12 10 28 ⎠
−1 3 (iv
R f (x*) = h f (ξ)
192
45
Programación y Métodos Numéricos Derivación Numérica
Ejercicio propuesto:
46
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
7. Fórmulas de derivación numérica de tipo interpolatorio para la
aproximación de derivadas de orden superior.
Sea f(x) una función k veces derivable en un cierto intervalo I de la recta real y
sea x* un punto de dicho intervalo. Consideremos además un soporte de (n+1)
puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores
de la función f(x). Por simplicidad supondremos que los puntos del soporte son
todos ellos distintos y están ordenados de menor a mayor es decir que: x0 < x1
< ... < xn.
Definición 7.1.
Siendo f(x) una función de la que se conocen sus valores en el soporte
de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina fórmula de
derivación numérica para aproximar el valor de la k-ésima derivada
f(k(x) en el punto x* sobre el soporte de puntos considerado, a toda
expresión de la forma:
n
f(k(x*) ≈ f*(k = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) = ∑ c .f(x )
i=0
i i
NOTA:
La fórmula de derivación que se acaba de definir puede decirse que es una
fórmula lagrangiana pues en ella sólo intervienen valores de la función f en los
puntos del soporte. Podrían considerarse fórmulas más generales, hermitianas,
en las que el valor de f(k(x*) fuese aproximado a partir del valor de la función f y
de algunas de sus derivadas en los puntos del soporte. No obstante, estas
últimas fórmulas tienen un uso mucho más esporádico que las de tipo
lagrangiano y es por ello que nos limitaremos a considerar como fórmulas de
derivación numérica tan sólo a las que hacen intervenir los valores de la
función en los puntos del soporte.
47
Programación y Métodos Numéricos Derivación Numérica
Definición 7.2.
Siendo f*(k la aproximación de f(k(x*) que se obtiene operando sin error
de redondeo según la fórmula de derivación numérica:
n
f(k(x*) ≈ f*(k = ∑ c .f(x )
i=0
i i
Ejemplo:
Siendo {x0 , x1 , x2 } un soporte formado por tres puntos tales que x0 = x1 – h y
x2 = x1 + h, considerando que x* = x1, la sustitución de la expresión de f”(x1)
por:
48
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
f(x0) = f(x*-h) = f(x*) - h.f’(x*) +
h2 h3 h4
+ .f "( x*) − .f "'( x*) + .f ( iv ( x * +θ0 .h ) θ0 ∈ ( −1,0)
2 3! 4!
de donde:
h4 ( iv
f ( x2 ) + f ( x0 ) = 2·f ( x*) + h2 ·f "( x*) + ·( f ( x * +θ0 ·h ) + f ( iv ( x * +θ1 ·h )) ⇒
24
f ( x * +h ) − 2·f ( x*) + f ( x * −h ) h2 ( iv
⇒ f* " = 2
= f "( x*) + ·( f ( x * +θ0 ·h ) + f ( iv ( x * +θ1 ·h ) )
h 24
Por tanto:
h2 ( iv
Rf ( x0 ) = f "( x0 ) − f0 " = − ·( f ( x * +θ0 ·h ) + f ( iv ( x * +θ1 ·h ) )
24
h2
Rf ( x0 ) = f "( x0 ) − f0 " ≤ . Sup {f ( iv ( x )}
12 x∈( x0 ,x1 )
10
No siempre las acotaciones del error de truncatura que se obtendrán serán tan “finas” como
la que se acaba de describir.
49
Programación y Métodos Numéricos Derivación Numérica
Definición 7.3.
Se dice que la fórmula de derivación numérica:
n
f (k (x*) ≈ f*(k = ∑ c i .f(xi )
i=0
Propiedad 7.1.
n
Si la fórmula de derivación numérica f (k (x*) ≈ f*(k = ∑ c i .f(xi ) es exacta de
i=0
Demostración:
Si la fórmula es exacta de orden m para la familia de funciones consideradas
se podrá escribir que:
n
ϕ(kj (x*) = ∑ c i .ϕ j (xi ) ∀x* ∈ [ x 0 ,xn ] (j = 0, ..., m)
i=0
Por otra parte, una función cualquiera que sea combinación lineal de las (m+1)
primeras funciones de la familia será de la forma:
m
f(x) = α 0 ⋅ ϕ0 (x) + α1 ⋅ ϕ1(x) + ..... + α m ⋅ ϕm (x) = ∑ α j ⋅ ϕ j (x)
j=0
por lo que su k-ésima derivada en cualquier punto x* del intervalo [x0, xn]se
puede expresar como:
m m
⎛ n ⎞ n ⎛ m ⎞ n
f (k (x*) = ∑ α j ⋅ ϕ(kj (x*) = ∑ α j ⋅ ⎜ ∑ c i ⋅ ϕ j (x i ) ⎟ = ∑ c i ⋅ ⎜ ∑ α j ⋅ ϕ j (xi ) ⎟ = ∑ c i ⋅ f(xi )
j=0 j=0 ⎝ i=0 ⎠ i= 0 ⎝ j= 0 ⎠ i=0
50
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
y puesto que la aplicación de la fórmula de derivación numérica a la función f(x)
en cualquier punto x* conduce a que:
n
fx(k = ∑ c i .f(xi )
i=0
Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea
combinación lineal de las (m+1) primeras funciones de la familia de funciones
considerada.
c.q.d.
Ejemplo:
La fórmula que se ha utilizado en el ejemplo anterior
f ( x * +h ) − 2·f ( x*) + f ( x * −h )
f "( x*) ≈ f*" =
h2
( x * + h ) − 2·( x*) + ( x * −h )
p* " = = 0 = p"( x*) ∀x *
h2
También para la la función p(x) = x2 se tiene que:
( x * + h )2 − 2·( x*)2 + ( x * −h )2
p* " = = 2 = p"( x*) ∀x *
h2
51
Programación y Métodos Numéricos Derivación Numérica
( x * + h )3 − 2·( x*)3 + ( x * −h )3
px " = = 6·x* = p"( x ) ∀x*
h2
Pero para la función q(x) = x4 se tiene que:
( x * +h )4 − 2·( x*)4 + ( x * −h )4
qx " = 2
= 12·( x*)2 + 2·h2 = q"( x*) + 2·h2 ∀x*
h
por lo que sólo se puede afirmar que el error de la fórmula es nulo para los
monomios {1, x, x2, x3}. En consecuencia, como se señaló anteriormente, la
fórmula es de orden de exactitud 3.
•
Definición 7.4.
Se denomina fórmula de derivación numérica de tipo interpolatorio
(de Lagrange) para aproximar derivadas de orden k a cualquier
fórmula obtenida derivando una vez la expresión del polinomio
interpolador de Lagrange construido sobre un soporte de (n+1) puntos
distintos.
NOTAS:
1ª) Obsérvese que en la definición anterior se ha escrito entre paréntesis “de
Lagrange”. En efecto podría pensarse en derivar también la expresión del
polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de
derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a
las fórmulas que se obtienen al derivar la expresión del polinomio interpolador
de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente
diremos fórmula de derivación numérica de tipo interpolatorio.
52
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Teorema 7.1.
Una condición necesaria y suficiente para que la fórmula de derivación
n
numérica fx*(k = ∑ c i .f(xi ) sea de tipo interpolatorio es que sus coeficientes
i=0
Demostración:
a) Demostremos que en toda fórmula de tipo interpolatorio sus coeficientes
satisfacen las igualdades recogiodas en el enunciado. En efecto, la expresión
detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre
el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de
base de Lagrange {Li (x)}i=0 es:
n
n
f(x) ≈ pn (x) = ∑ f(xi ) ⋅ Li (x)
i= 0
i=0
⎛ n ⎞ ⎛ n ⎞
Recuérdese que: Li (x) = ⎜ ∏ (x − x j ) ⎟ ⎜ (x − x ) ⎟
⎜∏
11
(i = 0, 1, ..., n)
⎜ j=0 ⎟ i j ⎟
⎜ ⎟ ⎜ j=0 ⎟
⎝ j≠i ⎠ ⎝ j≠i ⎠
53
Programación y Métodos Numéricos Derivación Numérica
(k
⎛ n ⎞
f’(x*) ≈ ∑ c i f(xi ) = ∑ (L (x*)f(x i ) ) = ∑ (Li (x*)f(xi ) )
n n n
= ⎜ ∑ Li (x*)f(xi ) ⎟ = pn(k (x*)
(k (k
i
i= 0 i=0 i=0 ⎝ i=0 ⎠
Propiedad 7.2.
En toda fórmula de derivación numérica de tipo interpolatorio
n
fx*(k = ∑ c i .f(xi ) se verifica que:
i=0
n
∑c
i=1
i =0
Demostración:
Puesto que según las propiedades de los polinomios de base de Lagrange se
n
verifica que: ∑ L (x) = 1
i=0
i ∀x , es obvio que:
(k
⎛ n ⎞ n
∑L
i=0
(k
i (x*) = ∑ c i = 0
i= 0
c.q.d.
54
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
En el caso particular en que f(x) sea un polinomio de grado menor o igual que n
se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la
fórmula de derivación numérica de tipo interpolatorio construida sobre un
soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o
igual que n. En resumen es exacta, al menos, de orden n.
Este hecho nos permite incluir a las fórmulas de derivación numéricas de tipo
interpolatorio en el conjunto de fórmulas de derivación exactas de orden n.
Pero aún puede precisarse más, puesto que además toda fórmula exacta de
orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente
de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema.
Teorema 7.2.
La condición necesaria y suficiente para que una fórmula de derivación
n
numérica construida sobre un soporte de (n+1) puntos, fx*(k = ∑ c i .f(xi ) ,
i=0
Demostración:
a) Demostremos en primer lugar que la condición recogida en el enunciado
del teorema es suficiente, es decir que si la fórmula construida sobre el
soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de
orden n. Para ello basta con recapitular los razonamientos anteriormente
realizados. En efecto, si f(x) es una función polinómica de grado menor o
igual que n su polinomio interpolador de Lagrange sobre el soporte de
(n+1) puntos coincide con la función y por tanto:
f(x) = pn(x) ∀x
55
Programación y Métodos Numéricos Derivación Numérica
f (k (x*) = p(k
n (x*) ≡ fx*
(k
Ello demuestra que la fórmula es exacta sea cual sea el polinomio f(x)
de grado menor o igual que n al que se aplique. En particular lo será
cuando se aplique los (n+1) primeros monomios {1, x, ..., xn} y por ello
es exacta de grado n.
Por otra parte, puesto que hemos considerado que p(x) es un polinomio
de grado menor o igual que n, se verificará que el polinomio interpolador
de p(x) en el soporte de (n+1) puntos coincidirá con p(x) y por tanto p(x)
se puede expresar como:
n
p(x) = ∑ p(xi ).Li (x)
i= 0
n
p(k (x*) = ∑ L(ki (x*).p(xi )
i= 0
Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea
de grado menor o igual que n. Por tanto deberá verificarse también en el
caso de que consideremos como p(x) cualquiera de los (n+1) polinomios
56
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
de base de Lagrange construidos sobre el soporte {xi }i=0 . Recordemos
n
⎧0 si i ≠ j
Li (x j ) = ⎨
⎩ 1 si i=j
n n
n n
∑ c .L (x ) = ∑ L
i=0
i j i
i=0
(k
i (x*).L j (xi ) ⇒ c j = L(kj (x*)
c.q.d.
Ejemplos:
1º. Sobre un soporte de tres puntos {x0, x1, x2} el polinomio interpolador de
Lagrange de una función f(x) puede expresarse como:
2º. Sobre un soporte de cuatro puntos {x0, x1, x2, x3} el polinomio interpolador
de Lagrange de una función f(x) puede expresarse como:
57
Programación y Métodos Numéricos Derivación Numérica
f "( x*) ≈ fx*'' = p" 3 ( x*) = 2·f [ x0 ,x1 ,x2 ] + 2·f [ x0 , x1, x2 , x3 ]·(3·x * − x0 − x1 − x2 )
Propiedad 7.3
En toda fórmula de derivación numérica de tipo interpolatorio
n
fx*(k = ∑ c i .f(xi ) , construida sobre un soporte de (n+1) puntos con n > k, se
i=0
verifica que:
⎧ 0 si j < k
n
⎪
∑ ci xi = ⎨ j !
j
( j −k )
si k ≤ j ≤ n
(j = 1, ...n)
i =1 ⎪ ( j − k )! ( x*)
⎩
Demostración:
La demostración de esta propiedad se deja como ejercicio propuesto al lector y
consiste simplemente en comparar el valor (exacto) proporcionado por la
fórmula de derivación al ser aplicada a la función f(x) = xj (j = 0, ..., n) con el
valor de f(k(x*) .
c.q.d.
Para ello siendo n > k consideremos el soporte de (n+1) puntos {x0 < x1 <... <
xn} y siendo x* el punto en el que se desea aproximar f(k(x) denotemos por hi al
58
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
valor: hi = hi = xi – x* (i = 0, .., n). Suponiendo que f(x) es sufiecientemente
regular pueden considerarse los desarrollos en serie de Taylor:
hi2 h3 hk
f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + ·f "(x*) + i ·f '''(x*) + .... + i ·f (k (x*) + ....
2! 3! k!
Por lo que:
n
⎛ n
⎞ ⎛ n
⎞ 1⎛ n
⎞
∑ α ·f(x ) = ⎜⎝ ∑ α ⎟⎠·f(x*) + ⎜⎝ ∑ α ·h ⎟⎠·f '(x*) + 2! ⎜⎝ ∑ α ·h
i=0
i i
i= 0
i
i= 0
i i
i= 0
i
2
i ⎟·f "(x*) +
⎠
1⎛ n 3⎞ 1⎛ n ⎞
⎜ ∑
3! ⎝ i=0
α ·h
i i ⎟
⎠
·f '''(x*) + .... + ⎜ ∑
k! ⎝ i=0
αi ·hik ⎟·f (k (x*) + ...
⎠
(1)
Si se desea que la fórmula de derivación sea del mayor orden posible debe
buscarse que, salvo el coeficiente de f(k(x*), se anulen el mayor número de los
primeros sumandos del desarrollo anterior. Esto es, que:
n
∑ α ·h
i=0
i
j
i =0 (j = 0, 1,...,(k-1), (k+1), ...n)
Por ello los coeficientes (α0, ..., αn) que se determinen mediante la resolución
del sistema:
n
∑α
i=0
i =0
n
∑ α ·h
i=0
i i =0
........
n
∑ α ·h
i=0
i
(k −1)
i =0
n
∑ α ·h
i=0
i
(k +1)
i =0
........
n
∑ α ·h
i=0
i
n
i =0
59
Programación y Métodos Numéricos Derivación Numérica
n
En todo caso, una vez calculados estos coeficientes, denotando por α = ∑ αi ·hi
i= 0
Ejemplo:
Determinemos la fórmula de derivación numérica del mayor orden de exactitud
posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte
de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h
es un valor real estrictamente positivo.
h2 h3 h4 (iv
f(x*-·h) =f(x*) - h·f’(x*) + ·f "(x*) − ·f '''(x*) + ·f (x*) −
2 6 24
h5 (v h6 (vi h7 (vii
− ·f (x*) + ·f (x*) − ·f (x*)...
120 720 5040
f(x*) = f(x*)
h2 h3 h4 (iv
f(x*+ h) =f(x*) + h·f’(x*) + ·f "(x*) + ·f '''(x*) + ·f (x*) +
2 6 24
h5 (v h6 (vi h7 (vii
+ ·f (x*) + ·f (x*) + ·f (x*) + ...
120 720 5040
60
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
de donde:
= ( α 0 + α1 + α 2 + α 3 + α 4 )·f(x*) +
h2
+ ( 4·α 0 + α1 + α 3 + 4·α 4 )· ·f "(x*) +
2
h3
+ ( −8.α 0 − α1 + α 3 + 8·α 4 )· ·f '''(x*) +
6
h4 (iv
+ (16.α 0 + α1 + α 3 + 16·α 4 )· ·f (x*) +
24
h5 (v
+ ( −32.α 0 − α1 + α 3 + 32·α 4 )· ·f (x*) + ....
120
Si se desea construir una fórmula que con el soporte anterior aproxime el valor
de f’’’(x*) y que tenga el mayor orden de exactitud posible se obligará a que:
α0 + α1 + α 2 + α 3 + α 4 = 0 (Coeficiente en h0 y f(x*))
−2·α 0 − α1 + α 3 + 2·α 4 = 0 (Coeficiente en h y f’(x*))
4.α0 + α1 + α 3 + 4·α 4 = 0 (Coeficiente en h2 y f”(x*))
16.α 0 + α1 + α 3 + 16·α 4 = 0 (Coeficiente en h4 y f(iv (x*))
α0 = −α 4 , α1 = 2·α 4 , α2 = 0 , α 3 = −2·α 4 , α 4 ∈ R
12
Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a que
se anulase el coeficiente de f’(v(x*) se tendría un sistema que sólo admite la solución trivial α0 =
= α1 = α2 = α3 = α4 = 0.
61
Programación y Métodos Numéricos Derivación Numérica
α0 = −1, α1 = 2 , α2 = 0 , α 3 = −2 , α 4 = 1
Para estos valores de los coeficientes αi, se tiene entonces que la combinación
de desarrollo en serie de Taylor antes obtenida se convierte en:
h3 h5 (v
= 12· ·f '''(x*) + 60· ·f (x*) + ....
6 120
de donde:
1 1 1 1
3 (
f’’’(x*) = − ·f x * −2·h ) + 3 ·f ( x * −h ) − 3 ·f ( x * +h ) + ·f ( x * +2·h ) -
2·h h h 2·h3
1
− ·h2 ·f (v (x*) + .....
4
1 1 1 1
3 (
f '''(x*) ≈ f* ''' = − ·f x * −2·h ) + 3 ·f ( x * −h ) − 3 ·f ( x * +h ) + ·f ( x * +2·h )
2·h h h 2·h3
1
R f (x*) = − ·h2 ·f (v (ξ)
4
13
No debe confundirse el orden de exactitud de una fórmula de derivación numérica con el
orden del error de dicha fórmula. Mientras que el primero señala el máximo grado de los
polinomios que pueden derivarse sin error con dicha fórmula, el segundo señala la potencia
menor a la que aparece elevado el parámetro “h” en la expresión del error.
62
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
7.1. Obtención de fórmulas de derivación de tipo interpolatorio mediante
el método de los coeficientes indeterminados.
n
⎧ 0 si j ≠ k
∑c γ j
i i =⎨ j
si j = k
i=0 ⎩ j!/ h
⎡1 1 1 ... 1 ⎤ ⎧0 ⎫
⎢γ γ1 γ2 ... γn ⎥ ⎥ ⎪0 ⎪
⎢ 0 ⎪ ⎪
⎢γ02
γ12
γ 22 ... γ n2 ⎥ ⎧c 0 ⎫ ⎪0 ⎪
⎢ ⎥ ⎪ ⎪
⎢... ... ... ... ... ⎥ ⎪⎪c1 ⎪⎪ ⎪... ⎪
⎢γ0 ⎪ ⎪ ⎪ ⎪
(k −1)
γ1(k −1)
γ (k2 −1) ... γ n(k −1) ⎥ ⎨c 2 ⎬ = ⎨0 ⎬
⎢ k ⎥
⎢γ0 γ1k γ k2 ... γ nk ⎥ ⎪... ⎪ ⎪k ! hk ⎪
⎪ ⎪ ⎪ ⎪
⎢ γ (k +1) γ (k +1) γ (k +1) ... γ n(k +1) ⎥ ⎪⎩c n ⎭⎪ ⎪0 ⎪
⎢ 0 1 2
⎥ ⎪ ⎪
⎢... ... ... ... ... ⎥ ⎪... ⎪
⎢ γn ⎥
⎣⎢ 0 γ1 γ n2 γ n ⎦⎥ ⎩⎪0 ⎭⎪
n n
...
63
Programación y Métodos Numéricos Derivación Numérica
Ejemplo:
Determinemos la fórmula de derivación numérica del mayor orden de exactitud
posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte
de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h
es un valor real estrictamente positivo.
⎡1 1 1 1⎤ ⎧c0 ⎫ ⎧ 0 ⎫
⎢ ⎪ ⎪
⎢ −2 −1 1 2 ⎥⎥ ⎪ c1 ⎪ ⎪⎪ 0 ⎪⎪
⎨ ⎬=⎨ ⎬
⎢4 1 1 4 ⎥ ⎪c2 ⎪ ⎪ 0 ⎪
⎢ ⎥
⎣ −8 −1 1 8 ⎦ ⎪⎩c3 ⎭⎪ ⎩⎪6 / h3 ⎭⎪
−1 1 −1 1
c0 = 3
, c1 = 3 , c2 = 3 , c4 =
2·h h h 2·h3
f’’’(x*) = 4·3·2.(x*-x*) = 0
1⎛ 1 1 4⎞
− ( −2h )4 + ( −h )4 − ( h ) + ( 2h ) ⎟ = 0
4
f*''' = 3 ⎜
h ⎝ 2 2 ⎠
lo que nos indica que la fórmula es también exacta para los polinomios de
orden 4º. Incrementemos una unidad el grado del binomio y apliquémosla a f(x)
=(x – x*)5. El valor exacto de la tercera derivada de este binomio es:
f’’’(x*) = 5·4·3.(x*-x*) = 0
64
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
1⎛ 1 1 5⎞
− ( −2h )5 + ( −h )5 − ( h ) + ( 2h ) ⎟ = 30·h 2
5
f*''' = 3 ⎜
h ⎝ 2 2 ⎠
por lo que el error de derivación está dado, para esta función por:
Rf ( x *) = K ·h 2 ·f (v (ξ )
−30 −1
−30·h 2 = K ·h 2 ·5! ⇒ K = =
5! 4
−1 2 (v
por lo que en general: Rf ( x *) = h f ( x *)
4
f*''' =
1
2h3
( −f ( x * −2h) + 2f ( x * −h) − 2f ( x * +h ) + f ( x * +2h ) )
−1 2 (v
Rf ( x *) = h f (ξ )
4
65
Programación y Métodos Numéricos Derivación Numérica
Ejercicio propuesto:
66
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
8. Mejora de la precisión de las fórmulas de derivación numérica. Método
de extrapolación de Richardson.
Como se presentó en apartados anteriores el error de las fórmulas de
derivación numérica (ya sea para aproximar la primera derivada o derivadas de
orden superior) responde a expresiones en las que interviene hp donde p es un
número no negativo y “h” es una longitud característica del soporte (la distancia
entre puntos consecutivos del soporte cuando este es equidistante, la distancia
entre los puntos extremos del soporte, la mayor de las distancias del punto x*
en el que se evalúa la derivada a los puntos del soporte, ....). Por ello, si se
quiere mejorar la precisión de una fórmula de derivación numérica la primera
idea que surge intuitivamente es la de reducir el valor de h (lo que
generalmente se traduce en tomar puntos más próximos entre sí y más
cercanos al punto x*). En este sentido la forma habitual de proceder consiste
en, siendo q un valor tal que 0 < q < 1, aplicar la fórmula numérica para los
valores h0 = h, h1 = q·h, h2 = q·h1 = q2·h , ...., hj = q·hj-1 = qj·h, .... Se obtienen
así diferentes valores V0, V1, ...., Vj, .... que aproximan la derivada en cuestión.
Este proceso se finaliza cuando |Vj – Vj-1| sea lo suficientemente pequeño
(menor que un cierto ε predefinido de antemano).
Ejemplo:
Si se utiliza la fórmula:
1 1
f '(x*) ≈ f* ' =·f ( x * +h ) − ·f ( x * +h )
2·h 2·h
para aproximar el valor de la primera derivada de la función f(x) = ex en el punto
x* = 0 ( cuyo valor exacto es f’(0) = 1) se obtendrán los siguientes valores para
el valor aproximado de la derivada (calculados con el programa MAPLE 7
utilizando 20 dígitos), para diferentes valores de h:
67
Programación y Métodos Numéricos Derivación Numérica
admite que f(x) es suficientemente regular, converge hacia el valor exacto con
una velocidad de convergencia de orden p, es decir que el error obtenido con
un paso (qjh) es aproximadamente qp veces menor que el que se produce con
paso (qj-1h). En este sentido, cuanto mayor sea el orden del error del método
más rápida será la convergencia hacia el valor exacto. Por ello esta reducción
del paso se suele combinar con la denominada técnica de extrapolación de
Richardson14 que, en síntesis, genera a partir de la sucesión {V} j=0 otras
∞
⎛ n ⎞
f (k (x*) = ⎜ ∑ c i ·f(x i ) ⎟ + α·f (m (x*)·hp + β·f (m+1(x*)·hp+1 + ...
⎝ i=0 ⎠
V1 − V0
·( β·f (m+1(x*)·(1 − qp+1 )·hp +1 + ...)
1
⇒ α·f (m (x*)·hp = −
1− q p
1 − qp
14
En honor al matemático inglés Lewis Fry Richardson (1881 – 1953) que fue uno de los
pioneros del cálculo científico (y en concreto el primero en aplicar métodos de diferencias
finitas a la predicción del tiempo).
68
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
lo que nos indica que el valor:
V1 − V0 V1 − qp ·V0
V1,1 = V0 + =
1 − qp 1 − qp
V2 − V1 ⎛ 1 − qp+1 ⎞
p ⎟(
· qh )
(m +1 (p +1)
Ve = V1 + + β·f (x*)·⎜1− + ...
1− q p
⎝ 1− q ⎠
lo que nos indica que
V2 − V1 V2 − qp ·V1
V1,2 = V1 + =
1 − qp 1 − qp
aproxima el valor exacto con un error de orden (p+1).
⎛ 1 − qp +1 ⎞ ( j−1)
( )
p +1
(m +1
Ve = V1,j + β·f (x*)·⎜ 1 − ⎟· q h + ...
⎝ 1 − qp ⎠
⎛ 1 − qp+1 ⎞
Denotando por b al valor b = β·⎜1 − ⎟ escribiremos la expresión anterior
⎝ 1 − qp ⎠
en la forma:
( )
p +1
Ve = V1,j + b·f (m+1(x*)· q( j−1)h + ...
69
Programación y Métodos Numéricos Derivación Numérica
hacia 0, hacia el valor exacto con un orden de convergencia (p+1) una unidad
mayor que el orden de convergencia que presentaba la sucesión {V0 ,j } j=0 .
∞
Sobre la propia sucesión {V1,j } j=1 puede entonces volverse a actuar. En efecto,
∞
como:
Ve = V1,1 + b·f (m+1(x*)·hp +1 + O(hp+ 2 ) + ...
y:
Ve = V1,2 + b·f (m+1(x*)·( qh )
(p +1)
+ O(hp+ 2 ) + ...
se tiene que:
0 = V1,1 – V1,2 + b·f(m+1(x*)·hp+1·(1-qp+1) + O(hp+2) + .... ⇒
V1,2 − V11
⇒ b·f (m+1(x*)·hp+1 = p +1
+ O(hp + 2 )
1− q
e introduciendo esta expresión en la primera de las que se han utilizado para
obtenerla resulta que:
V −V V − qp +1V1,1
Ve = V1,1 + 1,2 p+11,1 + O(hp+ 2 ) + ... = 1,2 p +1
+ O(hp + 2 )
1− q 1− q
De manera más general, un razonamiento como el precedente muestra que si
f(x) es suficientemente regular, la sucesión {V2,j } j=2 obtenida mediante:
∞
V1,j − qp+1V1,j−1
V2,j = (j = 2, 3, ....)
1 − qp+1
converge hacia el valor exacto con un orden de convergencia (p+2).
Estos nuevos valores {V2,j } j=2 pueden ser mejorados construyendo a partir de
∞
ellos una sucesión {V3,j } j=3 que converja con orden (p+3) y así sucesivamente.
∞
1º) Siendo 0 < q < 1 obtener las aproximaciones V0,j usando la fórmula
con un paso (qjh) (j = 0, 1, ...N).
{V }
N
2º) Mejorar las aproximaciones calculando los valores k,j j=k para
70
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Vk −1,j − q(p +k −1) ·Vk −1,j−1
Vk,j =
1 − q(p+k −1)
Cuanto mayores sean los valores de los subíndices k y j más precisas serán
las aproximaciones obtenidas.
Ejemplo:
Ilustremos el método de extrapolación de Richardson calculando el valor de la
⎛ x2 ⎞
⎜⎜ ⎟⎟
⎝ 1+ x ⎠
primera derivada de la función f(x) = e ·sen( πx) en el punto x*= 1 mediante
la fórmula:
Para poder apreciar mejor la evolución del error, en la tabla siguiente se han
recogido los valores de error cometido con cada una de las aproximaciones de
esta tabla, es decir la diferencia entre valor exacto de f’(1) y el valor
aproximado que figura en cada fila y columna de la tabla, siendo el valor
exacto:
71
Programación y Métodos Numéricos Derivación Numérica
Aproximaciones
j (h = 2−( j+1) ) f '(1) − V0,j f '(1) − V1,j f '(1) − V2,j f '(1) − V3,j
0 −0.260404
1 0.484587 1.22958
2 0.374191 0.263794 −0.0581335
3 0.216317 0.058444 −0.0100063 −0.003131
4 0.114954 0.013590 −0.0013613 −0.000126
5 0.0591099 0.003266 −0.0001752 −5.728·10 −6
6 0.0299549 0.000800 −0.0000222 −2.292·10 −7
7 0.0150764 0.000198 −0.0000028 −1.621·10 −8
8 0.0075628 0.000049 −0.0000003 −9.502·10 −10
9 0.0037875 0.000012 −4.364·10 −8 −5.743·10 −11
10 0.0018953 0.000003 −5.458·10 −9 −3.529·10 −12
72
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
que se representa la evolución del logaritmo decimal del valor absoluto del
error frente al logaritmo decimal del tamaño de paso para las cuatro sucesiones
de valores recogidos en la tabla anterior.
log10(h)
Valores proporcionados
por la fórmula
Valores corregidos
aplicando el método
de Richardson una vez
Valores corregidos
aplicando el método
de Richardson dos veces
Valores corregidos
aplicando el método
de Richardson tres veces
log10(|f’(1)-Vk,j|)
73
Programación y Métodos Numéricos Derivación Numérica
74
UNIVERSIDAD POLITÉCNICA DE MADRID
Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS
Marzo, 2007
ÍNDICE
Pág.
1. INTRODUCCIÓN Y MOTIVACIÓN. ………………………………… 1
ii
Programación y Métodos Numéricos Integración numérica
1. Introducción y motivación
Nos centramos en este tema en el estudio de fórmulas que nos permitan
obtener un valor aproximado de la integral definida de una función real de una
variable en un intervalo (a, b). Como ya se comentó en la introducción histórica
que se hizo al tema dedicado a la interpolación polinómica, el origen de estas
fórmulas puede ubicarse en los orígenes del cálculo diferencial e integral que
tuvo lugar en el siglo XVII. Así, de forma análoga a lo que ya señalamos
respecto a la derivación numérica, la principal idea que subyace en las técnicas
de integración numérica está muy vinculada a la interpolación y se podría
resumir en lo siguiente: Si de una función f(x) se conocen sus valores en un
determinado soporte de puntos, puede “aproximarse” la función f(x) por otra
función p(x) que la interpole en dicho soporte y, como consecuencia, sustituir el
b b
valor ∫ f(x)·dx
a
por el valor ∫ p(x)·dx .
a
Esta idea tan simple puede
1
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
f(x)
∫ f(x)·dx
a
a b
Una de las primeras fórmulas que nos permiten aproximar una integral definida
consiste en aproximar el área que encierra el grafo de una función por el área
de un rectángulo que tenga como base el segmento (a, b) y por altura el valor
de f(x) en algún punto x* de [a, b] lo que nos conduce a que
b
∫ f(x)·dx ≈ f ( x * )·(b − a) .
a
Surgen así de manera intuitiva diferentes fórmulas
numéricas con un soporte de un punto (el punto x*). Entre ellas, las más
populares son las conocidas con el nombre de fórmula del punto medio
(cuando se toma x* = (a+b)/2), la formula del rectángulo soportado en el
extremo izquierdo del intervalo (cuando se toma x* = a) o la fórmula del
rectángulo soportado en el extremo derecho del intervalo (cuando se toma
x* = b). La figura siguiente ilustra el área evaluada si se utiliza la fórmula del
punto medio.
f(x)
a (a+b)/2 b
2
Programación y Métodos Numéricos Integración numérica
Utilizar un único punto del soporte puede ser lo más simple pero no siepre es lo
más preciso. La mejora de la precisión implica el incremento del número de
puntos en el soporte pudiendo entonces optarse por dos caminos: la
integración de un polinomio interpolador de mayor grado (lo que da lugar a
fórmulas de integración numérica de mayor orden que se conocen con el
nombre de fórmulas simples) o la subdivisión del segmento (a, b) en diferentes
subdominios de integración usando en cada uno de elos un número de puntos
de integración relativamente bajo (lo que da lugar a las fórmulas de integración
numérica compuestas). De ambos tipos de fórmulas nos ocuparemos con
detalle más adelante pero por el momento ilustramos la idea de las fórmulas de
integración simples con la fórmula conocida con el nombre de fórmula del
trapecio que utiliza dos puntos de soporte (x0 = a y x1 = b) y sustituye el área
encerrada por f(x) en (a, b) por el área del trapecio dibujado en la figura
b
f(a) + f(b)
siguiente , es decir ∫ f(x)·dx ≈ ·(b − a) :
a
2
f(x)
a b
3
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
f(x)
3·a + b a + 3·b
De esta manera los puntos de soporte usados son x0 = y x1 =
2 2
obteniéndose como fórmula de integración numérica:
b
(b − a) (b − a) f(x ) + f(x1 )
∫ f(x)·dx ≈ f(x
a
0 )·
2
+ f(x1 )·
2
= (b − a)· 0
2
Ejemplos:
1
1
1º) Para la función f(x) = x se tiene que: ∫ x·dx = . La fórmula del punto medio
0
2
aplicada al cálculo de esta integral nos proporciona el valor:
1
Vpmed = f(1/ 2)·(1 − 0) =
2
es decir, el valor exacto de la integral.
4
Programación y Métodos Numéricos Integración numérica
1
1
2º) Para la función f(x) = x se tiene que: ∫ x 2 ·dx =
2
. La fórmula del punto
0
3
medio aplicada al cálculo de esta integral nos proporciona el valor:
1
Vpmed = f(1/ 2)·(1 − 0) =
4
f(1/ 4) + f(3 / 4) 10
Vpmed _ c = (1 − 0)· =
2 32
que tampoco nos proporciona el valor correcto de la integral (aunque, entre los
hallados, es el valor más próximo al correcto).
•
5
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Definición 2.1.
Siendo f(x) una función de la que se conocen sus valores en el soporte
de (n+1) puntos {x0 , x1, ...., xn}, se denomina fórmula de integración
numérica para aproximar el valor de la integral de f(x) en el
intervalo (a, b) de puntos considerado, a toda expresión de la forma:
b n
NOTA:
La fórmula de integración que se acaba de definir puede decirse que es una
fórmula de lagrangiana pues en ella sólo intervienen valores de la función f en
los puntos del soporte. Podrían considerarse fórmulas más generales,
hermitianas, en las que el valor de la integral fuese obtenido a partir del valor
de la función f y de algunas de sus derivadas en los puntos del soporte. No
obstante, estas últimas fórmulas tienen un uso mucho menos frecuente que las
de tipo lagrangiano y es por ello que en este tema nos limitaremos a considerar
como fórmulas de integración numérica tan sólo a las que hacen intervenir los
valores de la función en los puntos del soporte.
●
1
Aunque, para mejorar la precisión de los cálculos, frecuentemente los puntos del soporte se
toman en el intervalo (a, b) no es necesario que así suceda.
6
Programación y Métodos Numéricos Integración numérica
Definición 2.2.
b
Siendo V la aproximación del valor de ∫ f(x)·dx
a
que se obtiene operando
•
Según esta definición que se acaba de dar, es obvio que se verifica:
b
∫ f(x)·dx = V + R ((a,b))
a
f
Ejemplo:
Siendo {x0 , x1 } un soporte formado por los dos puntos x0 = a y x1 = b, y
denotando por h a la longitud del intervalo (a, b), h = b – a, la fórmula del
trapecio introducida en el apartado anterior se puede escribir como:
b
h
∫a f(x)·dx ≈ V = 2·(f(a) + f(b))
que es una fórmula en la que sus coeficientes son c0 = (h/2) y c1 = (h/2). Si se
designa por F(x) a una primitiva de f(x) con lo que:
b
7
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b
h2 h3
∫a f(x)·dx = F(b) − F(a) = h·f(a) + 2 ·f '(a) + 6 ·f '(a + θ.h) θ ∈ (0,1)
Definición 2.3.
Se dice que la fórmula de integración numérica:
b n
∫ f(x)·dx ≈ V = ∑ ci.f(xi )
a i=0
8
Programación y Métodos Numéricos Integración numérica
Demostración:
Si la fórmula es exacta de orden k para la familia de funciones
{ϕ0 (x), ϕ1(x),..., ϕk (x),....} se podrá escribir que:
b n
Por otra parte, una función cualquiera que sea combinación lineal de las (k+1)
primeras funciones de la familia será de la forma:
k
f(x) = α 0 ⋅ ϕ0 (x) + α1 ⋅ ϕ1 (x) + ..... + αk ⋅ ϕk (x) = ∑ α j ⋅ ϕ j (x)
j= 0
por lo que su integral sobre cualquier intervalo (a, b) se puede expresar como:
b b
k k
⎛ n ⎞
∫a f(x)·dx = ∑j= 0
α j ∫ j
⋅ ϕ (x)·dx = ∑j=0
α j ⎜ ∑ c i ⋅ ϕ j (x i ) ⎟ =
⋅
⎝ i= 0 ⎠
a
n ⎛ k ⎞ n
= ∑ c i ⋅ ⎜ ∑ α j ⋅ ϕ j (x i ) ⎟ = ∑ c i ⋅ f(x i )
i= 0 ⎝ j= 0 ⎠ i=0
y puesto que la aplicación de la fórmula de integración numérica a la función
f(x) en cualquier punto x conduce a que:
b n
∫ f(x)·dx ≈V = ∑ c i.f(xi )
a i=0
Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea
combinación lineal de las (k+1) primeras funciones de la familia de funciones
considerada.
c.q.d.
9
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Ejemplo:
b
(b − a)
La fórmula del trapecio: ∫ f(x)·dx ≈ V = ·( f(a) + f(b) ) aplicada al monomio
a
2
f(x) = 1 proporciona el valor exacto de la integral ya que:
b
(b − a)
(b − a) = ∫ 1·dx = V = ·(1 + 1) = (b − a)
a
2
b
(b2 − a2 ) (b − a) (b2 − a2 )
= ∫ x·dx = V = ·( b + a ) =
2 a
2 2
b
(b3 − a3 )
∫ x ·dx =
2
a
3
y:
(b − a) 2
V=
2
(
· b + a2 )
b
por lo que, salvo que a = b, V ≠ ∫ x 2 ·dx . En consecuencia, como se señaló
a
10
Programación y Métodos Numéricos Integración numérica
Definición 3.1.
Se denomina fórmula de integración numérica de tipo interpolatorio
b
(de Lagrange) para aproximar el valor de ∫ f(x)·dx
a
a cualquier fórmula
2
Consúltese, por ejemplo, el tema dedicado a la Interpolación de Lagrange elaborado por A.
Hidalgo y C. Conde en los apuntes de esta misma asignatura.
11
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Propiedad 3.1.
La condición necesaria y suficiente para que la fórmula de integración
b n
numérica ∫ f(x)·dx ≈ V = ∑ c i.f(xi ) sea de tipo interpolatorio es que sus
a i= 0
Demostración:
a) Demostremos en primer lugar que si la fórmula es de tipo interpolatorio
entonces sus coeficientes satisfacen las igualdades dadas en el enunciado.
Para ello se tiene que la expresión detallada del polinomio interpolador de
Lagrange pn(x) de una función f(x) sobre el soporte de (n+1) puntos {x0, x1, ...,
xn} en función de los (n+1) polinomios de base de Lagrange {Li (x)}i=0 es:
n
n
f(x) ≈ pn (x) = ∑ f(xi ) ⋅ Li (x)
i= 0
⎛ n ⎞ ⎛ n ⎞
Recuérdese que: Li (x) = ⎜ ∏ (x − x j ) ⎟ ⎜ (x − x ) ⎟
⎜∏
3
(i = 0, 1, ..., n)
⎜ j=0 ⎟ i j ⎟
⎜ ⎟ ⎜ j=0 ⎟
⎝ j≠i ⎠ ⎝ j≠i ⎠
12
Programación y Métodos Numéricos Integración numérica
n
expresar como: pn(x) = ∑ f(x )·L (x) se tiene que si los coeficientes verifican las
i=0
i i
Propiedad 3.2.
En toda fórmula de derivación numérica de tipo interpolatorio
b n n
Demostración:
Puesto que según las propiedades de los polinomios de base de Lagrange se
n
verifica que: ∑ L (x) = 1
i=0
i ∀x , es obvio que en las fórmulas de tipo
interpolatorio:
b b b
n n
⎛ n ⎞
∑ c i = ∑ ∫ L i (x)·dx = ∫ ⎜ ∑ Li (x) ⎟·dx = ∫ 1·dx = b − a
i=0 i=0 a a ⎝ i=0 ⎠ a
c.q.d.
13
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
por lo que:
b b b b
( )
∫ f(x)·dx = ∫ pn (x) + ε(x) ·dx = ∫ pn (x)·dx + ∫ ε(x)·dx
a a a a
En el caso particular en que f(x) sea un polinomio de grado menor o igual que n
se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , resultando que la
fórmula de integración numérica de tipo interpolatorio construida sobre un
soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o
igual que n. En resumen, al menos, es exacta de orden n.
Este hecho nos permite incluir a las fórmulas de integración numéricas de tipo
interpolatorio construidas sobre un soporte de (n+1) puntos en el conjunto de
fórmulas de integración exactas de orden n. Pero aún puede precisarse más
puesto que además toda fórmula exacta de orden n construida sobre un
soporte de (n+1) puntos debe ser necesariamente de tipo interpolatorio. Este
hecho se demuestra en el siguiente teorema.
Teorema 3.1.
La condición necesaria y suficiente para que una fórmula de integración
numérica construida sobre un soporte de (n+1) puntos,
b n
interpolatorio.
Demostración:
a) Demostremos en primer lugar que la condición recogida en el enunciado
del teorema es suficiente, es decir que si la fórmula construida sobre el
soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de
orden n. Para ello basta con recapitular los razonamientos anteriormente
realizados. En efecto, si f(x) es una función polinómica, de grado menor
o igual que n, su polinomio interpolador de Lagrange sobre el soporte de
(n+1) puntos coincide con la función y por tanto:
f(x) = pn(x) ∀x
14
Programación y Métodos Numéricos Integración numérica
b b
por lo que ∫ f(x)·dx = ∫ p(x)·dx
a a
∀a,b ∈ R . Ello demuestra que la fórmula
es exacta sea cual sea el polinomio f(x) de grado menor o igual que n al
que se aplique. En particular lo será cuando se aplique los (n+1)
primeros monomios {1, x, ..., xn} y por ello será exacta de grado n.
∫ p(x) = ∑ ci.p(xi )
a i= 0
Por otra parte, puesto que hemos considerado que p(x) es un polinomio
de grado menor o igual que n, se verificará que el polinomio interpolador
de p(x) en el soporte de (n+1) puntos coincidirá con p(x) y por tanto p(x)
se puede expresar como:
n
p(x) = ∑ p(xi ).Li (x)
i= 0
⎧0 si i ≠ j
Li (x j ) = ⎨
⎩ 1 si i=j
15
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∑ c .L
i 0 (x i ) = ∑ ⎜ ∫ i
i=0 ⎝ a
L (x)·dx ⎟ .L 0 (x i ) ⇒ c 0 = ∫a L0 (x)·dx
i=0 ⎠
∑ c .L
i 1 (x i ) = ∑ ⎜ ∫ i
i=0 ⎝ a
L (x)·dx ⎟ .L1 (x i ) ⇒ c 1 = ∫a L1(x)·dx
i=0 ⎠
∑ c .L
i j (x i ) = ∑ ⎜∫ i
i=0 ⎝ a
L (x)·dx .L
⎟ j i(x ) ⇒ c j = ∫ L j (x)·dx
i=0 ⎠ a
c.q.d.
Ejemplos:
1º) Si se considera un soporte formado por los tres puntos {x0 = a x1 = (a+b)/2 ,
x2= b } el polinomio interpolador de una función f(x) en dicho soporte será
(utilizando la fórmula de Newton):
p2(x) = f(a)+ f[a ,(a+b)/2]·(x-a)+ f[a ,(a+b)/2, b]·(x-a)·(x-(a+b)/2)
b
f(b) − 2·f(x1 ) + f(a)
+2· ·∫ (x − a)·(x − x1 )·dx
(b − a)2 a
(b − a) 2
(b − a)3
(b − a)3
·(b − x1 ) − =
2 6 6
Con ello, finalmente resulta:
b b
(b − a) ⎛ ⎛a+b⎞ ⎞
∫ f(x)·dx ≈ V = ∫ p2 (x)·dx =
a a
6 ⎝
·⎜ f(a) + 4·f ⎜ ⎟
⎝ 2 ⎠
+ f(b) ⎟
⎠
16
Programación y Métodos Numéricos Integración numérica
La figura siguiente recoge, junto al grafo de la función f(x) el grafo del polinomio
de segundo grado, p2(x) que interpola a f(x).
f(x)
p2(x)
a (a+b)/2 b
17
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Teorema 4.1
Una condición necesaria y suficiente para que la fórmula de integración
b n
numérica de tipo interpolatorio: ∫ f(x)·dx ≈ V = ∑ c i ·f(x i ) sea exacta de orden
a i= 0
∫ x ·∏ (x − x j )·dx = 0
k
(k = 0, .., q-1)
a j=0
Demostración:
a) Demostremos que la condición dada es necesaria, es decir que si la fórmula
es exacta de orden (n+q) entonces se verifican las q igualdades dadas en el
enunciado.
En primer lugar observemos que al ser la fórmula exacta de orden (n+q) será
exacta para todo polinomio de grado menor o igual que (n+q) y, en particular
para los de grado menor o igual que n. Ello, en virtud del teorema XX, implica
que la fórmula es de tipo interpolatorio.
Por otra parte es obvio que para cualquier valor entero no negativo del índice k
n
inferior o igual a (q-1), las funciones xk ·∏ (x − x j ) son funciones polinómicas de
j= 0
grado menor o igual a (n+q). Por tanto, al haber supuesto que la fórmula es de
orden (n+q) se podrán calcular sus integrales sin error usando la fórmula
considerada. Es decir:
b n n n
∀k ∈ ] / 0 ≤ k ≤ (q − 1) : ∫ x k ·∏ (x − x j )·dx = ∑ c i ·x ik ·∏ (xi − x j ) = 0
a j= 0 i=0 j= 0
18
Programación y Métodos Numéricos Integración numérica
Para ello observemos que al ser una fórmula de tipo interpolatorio y estar
construida sobre un soporte de (n+1) puntos será exacta para todo polinomio
de grado menor o igual que n. En particular lo será para los (n+1) polinomios
de base de Lagrange asociados al soporte {x0, ..., xn} que denotaremos por
L0(x), L1(x), ..., Ln(x). Estos polinomios, al ser una base del espacio de
polinomios de grado menor o igual que n, forman un conjunto de polinomios
linealmente independientes. Recordemos además que en las fórmulas de tipo
interpolatorio se verifica que sus coeficientes ci responden a la expresión:
b
c i = ∫ Li (x)·dx (i = 0,...,n)
a
Por otra parte denotemos por ϕk(x) (k = 0, .., q-1) a los q polinomios dados por:
n
ϕk (x) = xk ·∏ (x − x j )
j=0
En resumen el conjunto { L0(x), L1(x), ..., Ln(x) , ϕ0(x), ..., ϕq-1(x)} es un conjunto
de (n+q+1) polinomios linealmente independientes de grado menor o igual que
(n+q). Por tanto es una base del espacio Pn+q formado por todos los polinomios
de grado menor o igual a (n+q).
Ello implica que cualquier polinomio p(x) de Pn+q puede expresarse de manera
única en la forma:
n q−1
p(x) = ∑ αi ·Li (x) + ∑ βk ·ϕk (x)
i= 0 k =0
por lo que:
b n b q−1 b
∀p ∈ Pn+ q : ∫ p(x)·dx = ∑ αi·∫ Li (x)·dx + ∑ βk ·∫ ϕk (x)·dx
a i=0 a k =0 a
b
En esta expresión las integrales ∫ ϕ (x)·dx son nulas por la hipótesis de la que
a
k
b
hemos partido. Y como c i = ∫ Li (x)·dx (i = 0,...,n) resulta que:
a
19
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b n
∀p ∈ Pn+ q : ∫ p(x)·dx = ∑ c i·αi
a i= 0
n q−1
Por último observemos que si p(x) = ∑ αi ·Li (x) + ∑ βk ·ϕk (x) se verifica para
i= 0 k =0
∫ f(x)·dx ≈ f(x
a
0 )·(b − a)
Esta fórmula, sea cual sea la elección que se haga de x0, siempre será, al
menos, de orden de exactitud 0 (es decir permite evaluar sin error las integrales
de los polinomios de grado 0 –las funciones que toman el mismo valor en todas
las abscisas de la recta real-). Si se desea que la fórmula sea de orden de
exactitud 1 el punto del soporte no podrá ser elegido arbitrariamente y deberá
ubicarse en una abscisa tal que:
b
1⎡ b 1
∫a ( ) ⎤ = 0 ⇔ ·⎡( b − x 0 ) − ( a − x 0 ) ⎤ = 0 ⇔
2 2 2
(x − x )·dx = 0 ⇔ · x − x
2⎣ ⎦a 2⎣ ⎦
0 0
⇔ (b − x 0 ) = ±(a − x 0 )
De las dos posibilidades que nos ofrece esta igualdad la que tiene signo “+”
nos conduciría a que: b - x0 = a – x0 ⇔ b = a, lo que nos indica que la fórmula
sería de orden 1 tomando arbitrariamente x0 si se aplica sobre intervalos de
integración que se reduzcan a un único punto (cosa que no tiene interés
práctico alguno pues en ese caso el valor de la integral siempre será nulo).
Sin embargo la opción (b – x0) = -(a – x0) nos resulta de mayor utilidad pues en
ese caso x0 = (a+b)/2. En otros términos la fórmula del punto medio es de
orden 1 en tanto que las demás elecciones de la abscisa x0 conducen a
fórmulas que sólo son de orden 0.
20
Programación y Métodos Numéricos Integración numérica
∫ (x − x
a
0 )·dx = 0 y ∫ x·(x − x
a
0 )·dx = 0
∫ f(x)·dx ≈ ∫ p (x)·dx =
a a
1
⎛ (b − x 0 )2 − (a − x 0 )2 ⎞ (b − x 0 )2 − (a − x 0 )2
= ⎜ (b − a) − f(x
⎟ 0 ) + ·f(x1 )
⎝ 2·(x1 − x 0 ) ⎠ 2·(x1 − x 0 )
Con tal de que sean diferentes pueden elegirse arbitrariamente las abscisas
{x0, x1} siendo la correspondiente fórmula de integración numérica de orden de
exactitud 1 (es decir que permiten calcular sin error las integrales de todo
polinomio de grado menor o igual que 1). Es muy frecuente que, por
comodidad, se elija x0 = a y x1 = b (obteniéndose así la denominada fórmula
del trapecio que ya fue introducida en ejemplos del primer apartado). Pero esta
elección, desde el punto de vista del orden de exactitud de la fórmula, puede no
ser la más adecuada.
21
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∫ (x − x
a
0 )·(x − x1 )·dx = 0
a + 2·b
⇔ x1 =
3
22
Programación y Métodos Numéricos Integración numérica
⎝ 2 ⎠ −1 ⎝ ⎠ ⎝ ⎦ −1 ⎦ −1 ⎠ ⎝ ⎠
23
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∫ x ·∏ (x − xi )·dx = 0
k
ecuaciones: (k = 0, ..., q-1). Ello podría hacernos pensar
a i= 0
Teorema 4.2.
No existe ninguna fórmula de integración numérica construida sobre un soporte
de (n+1) puntos distintos que tenga un orden de exactitud mayor a (2·n+1).
Demostración:
Para demostrar este teorema bastará con encontrar un polinomio de grado
(2·n+2) que no pueda ser integrado de manera exacta por ninguna fórmula de
b n
integración numérica de la forma ∫ f(x)·dx ≈ ∑ c i·f(xi ) .
a i=0
24
Programación y Métodos Numéricos Integración numérica
∫ x ·∏ (x − xi )·dx = 0
k
(k = 0, ..., n+1)
a i= 0
Ejercicio propuesto:
a) Considérese el polinomio de grado 7º p7(x) = x7 – 2·x y el soporte de 3
puntos {x0 = 0, x1 = z, x2 = 1} donde z es alguna abscisa del intervalo (0, 1).
¿Existe alguna elección posible del valor de z para el que la fórmula de tipo
b
interpolatorio ∫ f(x)·dx ≈ c ·f(x
a
0 0 ) + c1·f(x1 ) + c 2 ·f(x 2 ) permita calcular de manera
1
exacta el valor ∫ p7 (x)·dx ?.
0
25
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
donde K = M / (n+1)!.
26
Programación y Métodos Numéricos Integración numérica
Existe otra vía, basada en el uso de desarrollos en serie de Taylor, que permite
obtener las expresiones del error de integración numérica. Es por eso que lo
que resta de este apartado lo dedicaremos a determinar una expresión de fácil
aplicación advirtiendo de antemano al lector que más que la fórmula que
finalmente determinemos, en la práctica es el método que vamos a seguir el
que tiene interés práctico.
NOTA:
Antes de centrarnos en este objetivo recordemos que si f(x) es una función
continua en un intervalo (a, b) y con sus (m+1) primeras derivadas continuas en
(a, b), siendo x y z puntos de (a, b), puede expresarse el valor de la función en
x mediante la fórmula de Taylor:
En lugar de utilizar esta expresión del resto de Taylor, que contempla una suma
de infinitos términos, es más útil buscar expresiones equivalentes del resto. En
este sentido recordemos que si la función es de clase Cm+1(a, b) existe algún
punto ξ en (a, b) con ayuda del cual se puede obtener la expresión en forma
diferencial del resto de Taylor, dada por:
(x − z)m+1 (m+1
rm+1(x) = ·f (ξ)
(m + 1)!
4
Puede consultarse para mayor detalle, por ejemplo, F. Michavila y C. Conde (1987) “Métodos
de Aproximación” Ed. Depto. De Matemática Aplicada y Métodos Informáticos – ETSI Minas –
Univ. Politécnica de Madrid.
27
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
x
1 (m+1
rm+1(x) = ·∫ f (t)·(t − z)m ·dt
m! z
{x0 < x1 < ....< xn} que sea de orden de exactitud m > n. Supondremos en todo
cuanto sigue que dicha fórmula se aplica al cálculo aproximado del valor de la
integral en (a, b) de una función f(x) suficientemente regular en (α, β)5, donde
α = Mín(x0 , a) y β = Máx(xn , b). Asimismo denotaremos por F(x) a una
función que sea primitiva de f(x), es decir tal que: f(x) = F’(x) (y más
generalmente que f(k(x) = F(k+1(x) (k = 0, ..., m) ).
hm+1 (m +1 hm+ 2
+ ·F (a) + ·F(m+ 2 (a) + .... =
(m + 1)! (m + 2)!
h2 hm+1 (m ∞
hk +1 (k
= h·f(a) + ·f '(a) + ..... + ·f (a) + ∑ ·f (a) (I)
2 (m + 1)! k =m +1 (k + 1)!
5
Más concretamente supondremos que la función f(x) posee tantas derivadas continuas en
(α, β) como sean necesarias en los desarrollos que de ella se realicen. Posteriormente nos
ocuparemos del caso en el que esto no suceda.
28
Programación y Métodos Numéricos Integración numérica
b n n
m
⎛ n θk ·hk ⎞ (k ∞
⎛ n θik ·hk ⎞ (k
= ∑ ⎜ ∑ ci· i ⎟·f (a) + ∑ ⎜ ∑ i k! c · ⎟·f (a) (II)
k =0 ⎝ i= 0 k! ⎠ k =m +1 ⎝ i=0 ⎠
Propiedad 5.1.
b n
Si la fórmula de integración numérica de tipo interpolatorio ∫ f(x)·dx ≈ ∑ c i·f(xi )
a i= 0
Demostración:
Por ser la fórmula de orden m podrá calcularse de forma exacta con ella el
valor de la integral en (a, b) de cualquier función polinómica de grado menor o
igual que k. En concreto si, para cualquier valor entero del índice k que sea
menor o igual que m, se denota por pk(x) al polinomio de grado k dado por la
expresión: pk(x) = (x – a)k / k!, se tendrá que:
29
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b b
(x − a)k n
(x i − a)k
∫a pk (x)·dx = ∫a k! ·dx = ∑
i= 0
ci·
k!
∀k ∈ ] / 0 ≤ k ≤ m
Por otra parte, con la notación utilizada anteriormente, θi·h = (xi – a) por lo que
θki ·hk (xi − a)k
= . Ello nos muestra que:
k! k!
b b
(x − a)k n
θki ·hk
∫a k
p (x)·dx = ∫a k! ·dx = ∑
i=0
c i ·
k!
∀k ∈ ] / 0 ≤ k ≤ m
Esta propiedad junto con los desarrollos realizados anteriormente nos permite
obtener una expresión del error de integración numérica tal y como se hace en
el siguiente teorema:
Teorema 5.1.
Siendo:
b n
• ∫ f(x)·dx ≈ V = ∑ ci·f(xi ) una fórmula de integración numérica construida
a i =0
sobre un soporte de (n+1) puntos {x0 < x1 < ...< xn} y con un orden de
exactitud m > n,
• (α,β) un intervalo de la recta real tal que α = Mín(x0 ,a) y β = Máx(xn ,b) ,
• f(x) una función de clase C∞(α, β) ,
• h el valor dado por h = (b-a)
• {θ0 ,..., θn } un conjunto de (n+1) números enteros tales que
x i = a + θi ·h (i = 0,...,n)
b
hk ⎛ h
∞ n
⎞
Rf((a, b)) = ∫ f(x)·dx − V = ∑ ·⎜ − ∑ c i ·θik ⎟·f (k (a)
a k =m +1 k! ⎝ k + 1 i= 0 ⎠
30
Programación y Métodos Numéricos Integración numérica
Demostración:
La propiedad 5.1 permite expresar el valor aproximado de la integral de f(x)
dado por la expresión (II) como:
b m
hk +1 (k ∞
⎛ n θki ·hk ⎞ (k
∫a f(x)·dx ≈ V = ∑
k =0 (k + 1)!
·f (a) + ∑ ⎜ ∑ c i ·
k =m +1 ⎝ i= 0 k! ⎠
⎟·f (a) ( III )
b ∞
hk +1 (k ∞
⎛ n θki ·hk ⎞ (k
Rf((a, b))= ∫ f(x)·dx − V = ∑
k =m +1 (k + 1)!
·f (a) − ∑ ⎜ ∑ i k!
k =m +1 ⎝ i=0
c · ⎟·f (a) =
a ⎠
∞
hk ⎛ h n
⎞
= ∑ ·⎜
k =m +1 k! ⎝ (k + 1)
− ∑ c i ·θik ⎟·f (k (a)
i= 0 ⎠
c.q.d.
Ejemplos:
1º. Según se demostró en el primero de los ejemplos realizado al final del
apartado anterior, la fórmula del punto medio:
b
⎛a+b⎞
∫a f ( x )·dx ≈ f ⎜⎝ 2 ⎟⎠·( b − a )
6
Consúltese, por ejemplo, J.F. Steffensen , Interpolation (2nd edition), Ed. Chelsea 1950.
31
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
h2 ⎛ h ⎞
Rf (( a,b )) = ·⎜ − c0 ·θ 02 ⎟·f " ( ξ ) ξ ∈ ( a,b )
2! ⎝3 ⎠
1
Como en este caso c0 = (b-a) = h, y θ0 = puede concluirse que existe algún
2
punto ξ en (a, b) para el que el error cometido con la fórmula del punto medio
está dado por:
h2 ⎛ h 1⎞ h3
Rf (( a,b )) = ·⎜ − h· ⎟·f " ( ξ ) = ·f "( ξ ) ξ ∈ ( a,b )
2 ⎝3 4⎠ 24
●
2º. Para la fórmula de Simpson
b
(b − a) ⎡ ⎛a+b⎞ ⎤
∫ f ( x )·dx ≈
a
6 ⎣
·⎢f ( a ) + 4·f ⎜ ⎟ + f ( b )⎥
⎝ 2 ⎠ ⎦
1
Como en este caso c0 = c2 = (b-a)/6 = h/6, c1 = 4·(b-a)/6 , θ0 = 0 , θ1 = y
2
θ2 = 1 puede concluirse que existe algún punto ξ en (a, b) para el que el error
cometido con la fórmula del punto medio está dado por:
h4 ⎛ h 4·h 1 h ⎞ ( iv h5 ( iv
Rf (( a,b )) = ·⎜ − · − ⎟·f ( ξ ) = − ·f ( ξ ) ξ ∈ ( a,b )
24 ⎝ 5 6 16 6 ⎠ 2880
32
Programación y Métodos Numéricos Integración numérica
Teorema 5.2.
Siendo:
• f una función de clase C0(a, b),
b n
• ∫ f(x)·dx ≈ V = ∑ ci·f(xi ) una fórmula de integración numérica de tipo
a i =0
Demostración:
En primer lugar recordemos que al ser k < m la fórmula de integración
considerada, al ser de orden de exactitud m, permite integrar sin error la
integral en (a, b) del polinomio pk(x), es decir:
b n
33
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b n b n b n
R f ((a,b)) = ∫ f(x)·dx − ∑ ci·f(xi ) =
a i= 0
∫ f(x)·dx − ∑ ci·f(xi ) − ∫ pk (x)·dx + ∑ ci·pk (xi ) =
a i=0 a i= 0
b n
b n
≤ ∫ (f(x) − pk (x))·dx + ∑ c ·(f(x ) − p (x )) ≤
i= 0
i i k i
a
b n
≤ ∫ f(x) − pk (x)·dx + ∑ c ·(f(x ) − p (x )) ≤
i =0
i i k i
a
b n
≤ Sup f(x) − pk (x)·∫ dx + ∑ c i · f(x i ) − pk (x i ) ≤
x∈( a,b ) i =0
a
⎛ n
⎞
≤ Sup f(x) − pk (x)·⎜ h + ∑ c i ⎟
x∈( a,b ) ⎝ i=0 ⎠
c.q.d.
Corolario 5.1.
Bajo las mismas hipótesis realizadas en el teorema 5.2, si además la fórmula
de integración numérica tiene todos sus coeficientes no negativos (ci > 0 , i = 0,
..., n)se verifica que:
R f ((a,b)) ≤ 2·h·Sup f(x) − pk (x)
x∈(a,b)
Demostración:
Es evidente sin más que considerar que si ningún coeficiente es negativo y la
fórmula es de tipo interpolatorio:
n n
∑ ci = ∑ ci = (b − a) = h
i=0 i=0
34
Programación y Métodos Numéricos Integración numérica
Teorema 5.3.
Siendo:
• f(x) una función de clase Ck+1((a, b)) con k menor o igual que m,
b n
• ∫ f(x)·dx ≈ V = ∑ ci·f(xi ) una fórmula de integración numérica de tipo
a i=0
k +1
n
1 ⎛h⎞
R f ((a,b)) ≤ (h + ∑ c i )· ·⎜ ⎟ ·Sup f (k +1(x) ( IV)
i=0 (k + 1)! ⎝ 2 ⎠ x∈(a,b)
Demostración:
Denotemos por pk(x) al polinomio formado por los (k+1) primeros términos del
desarrollo en serie de Taylor de la función f(x) en torno al punto medio del
intervalo (a, b) que denotaremos por x*=(a+b)/2, es decir:
(x − x*)2 (x − x*)k (k
pk (x) = f(x*) + (x − x*)·f '(x*) + ·f "(x*) + ... + ·f (x*)
2 k!
El resto de este desarrollo truncado de Taylor estará dado por la expresión:
(x − x*)k +1 (k +1
r (x) =
*
k +1 ·f (ξ x )
(k + 1)!
35
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Aplicando entonces el teorema 5.2 para esta elección del polinomio pk(x) se
tiene demostrada la acotación (IV).
Ejemplos:
b
b−a
1º. La fórmula del trapecio ∫ f(x)·dx ≈ ·( f(a) + f(b) ) es una fórmula de
a
2
integración numérica con un orden de exactitud igual a 1 (esto es, permite
integrar sin error cualquier polinomio de grado menor o igual que 1). El
corolario 5.1. y el teorema 5.3 nos permiten afirmar que según la regularidad de
la función a la que se aplique esta fórmula, una cota del error de integración
será la recogida en la tabla siguiente:
Regularidad Cota de error
f ∈ C ((a,b))
0
2·h·Sup f(x)
x∈(a,b)
f ∈ C ((a,b))
1 2
h ·Sup f '(x)
x∈(a,b)
36
Programación y Métodos Numéricos Integración numérica
b
b−a ⎛ ⎛a+b⎞ ⎞
2º. La fórmula de Simpson ∫ f(x)·dx ≈
a
·⎜ f(a) + 4·f ⎜
6 ⎝ ⎟
⎝ 2 ⎠
+ f(b) ⎟ es una
⎠
fórmula de integración numérica con un orden de exactitud igual a 3 (esto es,
permite integrar sin error cualquier polinomio de grado menor o igual que 3). El
corolario 5.1. y el teorema 5.3 nos permiten afirmar que según la regularidad de
la función a la que se aplique esta fórmula, una cota del error de integración
será la recogida en la tabla siguiente:
Regularidad Cota de error
f ∈ C0 ((a,b)) 2·h·Sup f(x)
x∈(a,b)
f ∈ C ((a,b))
1 2
h ·Sup f '(x)
x∈(a,b)
3
h
f ∈ C2 ((a,b)) ·Sup f "(x)
4 x∈(a,b)
h4
f ∈ C3 ((a,b)) ·Sup f '''(x)
24 x∈(a,b)
En el caso de que la función f fuese de regularidad C4(a,b) el teorema 5.3.
conduce a una cota del error dada por:
h5
f ∈ C4 ((a,b)) Rf (a, b) < ·Sup f (iv (x)
192 x∈(a,b)
Obsérvese que en esta última situación el teorema 5.1. conduce a la cota del
error (véase el ejemplo 2º tras la demostración del teorema aludido):
h5
Rf (a, b) = ·Sup f (iv (x)
2880 x∈(a,b)
•
Las expresiones del error de integración numérica así como las cotas del
mismo permiten concluir que el error de integración numérica dependerá de:
a) La posición de los puntos del soporte de integración, pues dicha posición
determinará el orden de exactitud de la fórmula y cuanto mayor sea
dicho orden de exactitud mayor podrá ser el grado del polinomio de
Taylor usado en la obtención del error.
b) De la longitud del intervalo de integración, pues esta longitud, elevada a
la potencia correspondiente, interviene directamente en las expresiones
del error y en sus acotaciones.
c) De la regularidad de la función que se integra, pues en la medida que
sea más veces continuamente diferenciable mayor podrá ser el grado
del polinomio de Taylor usado en la obtención de las expresiones y
acotaciones del error de integración numérica.
37
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∫ g(t)·dt = ∑ γi·g(ti )
−1 i= 0
b 1
b−a ⎛a+b b−a ⎞ n
⎛b−a ⎞ ⎛a+b b−a ⎞
∫a f(x)·dx = · ∫ f
2 −1 ⎝ 2⎜ + ·t
2 ⎠ ⎟·dt ≈ ∑ ⎜ 2 ·γ i ⎟·f ⎜ 2 + 2 ·ti ⎟
i= 0 ⎝ ⎠ ⎝ ⎠
38
Programación y Métodos Numéricos Integración numérica
a+b b−a
xi = + ·t i (i = 0,...,n)
2 2
y los pesos:
b−a
ci = ·γ i
2
⎛b−a⎞⎛ ⎞ b−a
1 n
=⎜ ⎟·⎜∫
⎝ 2 ⎠ ⎝ −1
g(t)·dt − ∑ γ i ·g(t i ) ⎟ =
2
·Rg (( −1,1))
i= 0 ⎠
⎛a+b b−a ⎞
donde se ha denotado por g(t) a la función g(t) = f ⎜ + ·t .
⎝ 2 2 ⎟⎠
2
d2g ⎛b−a⎞ d f ⎛a+b b−a ⎞
2
Æ g"(t) = 2 (t) = ⎜ ⎟ · 2 ⎜
+ ·t Æ
dt ⎝ 2 ⎠ dx ⎝ 2 2 ⎟⎠
3
d3 g ⎛b−a⎞ d f ⎛a+b b−a ⎞
3
Æ g'''(t) = 3 (t) = ⎜ ⎟ · 3⎜ + ·t Æ
dt ⎝ 2 ⎠ dx ⎝ 2 2 ⎟⎠
Æ ............................................................. Æ
m +1
dm+1g ⎛b−a⎞ dm+1f ⎛ a + b b − a ⎞
Æ g(m+1(t) = (t) = ⎜ ⎟ · + ·t
dt m +1
⎝ 2 ⎠ dxm+1 ⎜⎝ 2 2 ⎟⎠
39
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
a+b b−a
por lo que llamando ξ = + ·t ξ se tendrá que:
2 2
m +1
(m +1 ⎛b−a⎞
g (t ξ ) = ⎜ ⎟ ·f (m+1(ξ)
⎝ 2 ⎠
Ejemplo:
Considérese la fórmula de integración numérica8 de tipo interpolatorio sobre el
intervalo [-1, 1]:
1
1
∫−1 g( t )·dt ≈ 4 ·( g( −1) + 3·g( −1 / 3 ) + 3·g(1 / 3 ) + g(1))
−2 ( iv
Rg (( −1,1)) = ·g ( tξ ) tξ ∈ ( −1,1)
405
8
En un ejemplo del apartado 6.3. se deducirá la fórmula aquí considerada (llamada “regal de
3/8”) así como la expresión de su error sobre el intervalo (-1, 1).
40
Programación y Métodos Numéricos Integración numérica
b
b−a ⎛ ⎛ 2·a + b ⎞ ⎛ a + 2·b ⎞ ⎞
∫ f ( x )·dx
a
·⎜ f ( a ) + 3·f ⎜
8 ⎝ ⎝ 3 ⎠
⎟ + 3·f ⎜
⎝ 3 ⎠
⎟ + f ( b )⎟
⎠
Esta fórmula se conoce habitualmente con el nombre de “regla de 3/8”. El error que con
4
⎛ b − a ⎞ −2 ⎛ b − a ⎞ ( iv −( b − a )5 ( iv
Rf (( a,b )) = ⎜ ⎟· ·⎜ ⎟ ·f ( ξ ) = ·f ( ξ )
⎝ 2 ⎠ 405 ⎝ 2 ⎠ 6480
−3·H 5 ( iv
Rf (( a,b )) = ·f ( ξ )
80
Ejercicio propuesto:
Detallar el proceso que permite obtener fórmulas de integración numérica sobre
un intervalo genérico [a, b] a partir de fórmulas de integración conocidas en un
intervalo de referencia [α, β]. Desarrollar también la expresión que proporciona
el error válida en [a, b] a partir del conocimiento de la expresión del error en el
intervalo de referencia [α, β].
41
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b b n b i−1
b b b
∆ i f0 i−1
n
b b b
∇i fi i−1
n
Ejemplo:
Siendo H un valor real estrictamente positivo, consideremos el soporte x0 = -H,
x1 = H/2 y x2 = H y determinemos la fórmula de integración numérica que
H/ 2
permite calcular el valor aproximado de ∫
−H / 2
f(x)·dx . Para ello podemos
42
Programación y Métodos Numéricos Integración numérica
1 ⎛ 2 3 1 ⎞ 4
2 (
= f ( −H )· · x − ·H·x + ·H 2 ⎟ − f ( H / 2 )·
2 ⎜
· x2 − H 2 ) +
3·H ⎝ 2 2 ⎠ 3·H
1 ⎛ 2 1 1 ⎞
+f ( H )· · x + ·H·x − ·H 2 ⎟
2 ⎜
H ⎝ 2 2 ⎠
H 4 ( iv H5 H H2 H3
+ ·F (0 ) + ·F ( iv (0 ) + ... − F(0 ) + ·F '(0 ) − ·F "(0 ) + ·F '''(0 ) −
384 3840 2 8 48
H 4 ( iv H5 H3 H 5 ( iv
− ·F (0 ) + ·F (0 ) − ... = H·f (0 ) +
(v
·f "(0 ) + ·f (0 ) + ...
384 3840 24 1920
H/2 H/2
11 4
Rf (( −H / 2,H / 2 )) = ∫
−H / 2
f ( x )·dx − ∫
−H / 2
p2 ( x )·dx =
144
·H ·f '''(0 ) + ...
43
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Si f(x) es de clase C3((-H, H)) existe algún punto ξ en (-H, H) para el que la
expresión anterior puede escribirse en la forma:
11 4
Rf (( −H / 2,H / 2 )) = ·H ·f '''( ξ )
192
f ∈ C (( −H,H))
0
2·H· Sup f(x)
x∈( −H / 2,H / 2)
Ejercicio propuesto:
a) Obtén la fórmula de integración numérica de tipo interpolatorio que aproxima
1
el valor de ∫ g( t )·dt
−1
utilizando el soporte {t0 = -2, t1 = 1, t2 = 2}.
44
Programación y Métodos Numéricos Integración numérica
entonces debe permitir calcular sin error las integrales de los monomios {1, x,
..., xn, ..., xm} por lo que eligiendo (n+1) de dichos monomios puede construirse
b n
un sistema lineal de (n+1) ecuaciones de la forma ∫ xk ·dx = ∑ c i ·xik cuya
a i= 0
resolución nos proporcione los valores de los coeficientes {c0, ..., cn}. Por otra
parte, una vez hallados los coeficientes de la fórmula, el error de integración, al
ser de la forma:
R f ((a,b)) = C·(b − a)m+ 2 ·f (m+1(ξ) ,
a i =0
b n
∫ x ·dx − ∑ ci·xi
m +1 m +1
i= 0
⇒C= a
(m + 1)!·(b − a)m+ 2
−1 i=0
los monomios de potencia impar son siempre nulas y las del monomios de
potencia par, k, están dadas por 2/(k+1). Por ello el sistema que proporciona
los pesos de la fórmula es:
1 n
1 − ( −1)k +1 n
∫−1 t k
·dt = ∑
i =0
γ ·t
i i
k
(k = 0,..,n) ⇒
k + 1
= ∑
i=0
γ i ·t ik (k = 0,..,n)
45
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
i =0 (m + 2)
C= −1
= i=0
(m + 1)!·2m+ 2 (m + 1)!·2m+ 2
Ejemplo:
Determinemos la fórmula de integración numérica de tipo interpolatorio que se
soporta en un conjunto de 4 puntos uniformemente distribuidos en [a, b].
∫ 1·dt = 2 = γ
−1
0 + γ1 + γ 2 + γ 3
1
1 1
∫ t·dt = 0 = −γ
−1
0 − ·γ 1 + ·γ 2 + γ 3
3 3
1
2 1 1
∫t ·dt = = γ 0 + ·γ 1 + ·γ 2 + γ 3
2
−1
3 9 9
1
1 1
∫t ·dt = 0 = −γ 0 − ·γ 1 + ·γ 2 + γ 3
3
−1
27 27
1 3
Las ecuaciones anteriores nos proporcionan los valores γ 0 = γ 3 = , γ1 = γ 2 =
4 4
por lo que la fórmula en [-1, 1] es:
1
1
∫ g( t )·dt ≈ 4 ·( g( −1) + 3·g( −1 / 3 ) + 3·g(1 / 3 ) + g(1))
−1
46
Programación y Métodos Numéricos Integración numérica
1⎛ ⎞
1 4 4
2 ⎛ −1 ⎞ ⎛ 1⎞ 14
= ∫ t ·dt = ·⎜ 1 + 3·⎜ ⎟ + 3·⎜ ⎟ + 1⎟ + R t5 (( −1,1)) =
4
+ R t5 (( −1,1))
5 −1 4 ⎜⎝ ⎝ 3 ⎠ ⎝3⎠ ⎟
⎠ 27
2 14 −16
de donde: Rt 4 (( −1,1)) = − = .
5 27 135
−16 −16 −1
C= = =
135·768 103680 6480
−1 −2 ( iv
Rg (( −1,1)) = ·32·g ( iv ( tξ ) = ·g ( tξ )
6480 405
47
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
⎧ 2 ⎫
⎡ 1 1 1 ... ... ... 1 ⎤ ⎧γ0 ⎫ ⎪ 0 ⎪
⎢ ⎥ ⎪ ⎪ ⎪ ⎪
⎢ t 0 t1 t 2 ... ... ... tn ⎥ ⎪ γ1 ⎪ ⎪ 2 ⎪
⎢ t 02 t12 t 22 ... ... ... tn ⎥ ⎪ γ 2 ⎪
2 ⎪ ⎪
⎪ 3 ⎪⎪
⎢ 3 ⎥⎪ ⎪ ⎪
3 3
⎢ t 0 t1 t 2 ... ... ... t n3 ⎥ ⎨ γ 3 ⎬ = ⎨ 0 ⎬
⎢ ... ... ... ... ... ... ⎪
... ⎥ ... ⎪ ⎪ ... ⎪
⎢ ⎥ ⎪ ⎪ ⎪ ⎪
⎢ ... ... ... ... ... ... ... ⎥ ⎪ ... ⎪ ⎪ ... ⎪
⎢ t m t m t m ... m⎥⎪ ⎪ ⎪ m +1 ⎪
⎣0 1 2 ... ... t n ⎦ ⎩ γ n ⎭ ⎪1 − ( −1) ⎪
⎪⎩ m + 1 ⎭⎪
Si se consideran n puntos diferentes del soporte y n = m, el sistema anterior
tendrá (n+1) ecuaciones y (n+1) incógnitas, siendo la matriz del sistema una
matriz regular (pues obsérvese que su determinante es de tipo Vandermonde y
es no nulo).
Si m > n el sistema anterior podrá tener solución única (en el caso de que el
rango de la matriz ampliada del sistema continúe siendo (n+1)) o no tenerla (en
el caso contrario). Expresado de otra forma, la elección de un soporte con
(n+1) puntos diferentes asegura al menos que las fórmulas sean de orden n
pero, para ciertas elecciones de los (n+1) puntos del soporte podrían obtenerse
fórmulas de orden m > n. En apartados posteriores, en los que se abordarán
las fórmulas de Newton-Cotes y de Gauss, analizaremos con mayor detalle las
condiciones que deben satisfacer los puntos del soporte para garantizar
órdenes de exactitud superiores a n.
48
Programación y Métodos Numéricos Integración numérica
Nótese que esta manera de proceder es válida para ser aplicada a funciones
f(x) para las que existan tantas derivadas como se utilicen en los desarrollos.
No obstante, tal y como se indicó al obtener cotas del error en el apartado 4, si
la función que se quiere integrar no tiene la regularidad necesaria, la fórmula
sigue siendo válida mientras que la expresión del error es la que carece de
sentido en esa situación y debe ser sustituida por la cota de error
correspondiente a la regularidad que tenga la función.
Suponiendo que f(x) es una función suficientemente regular y que F(x) es una
primitiva de f(x), el valor exacto de la integral de f(x) en [a, b] puede
desarrollarse en serie de Taylor en torno a un punto “z” de la forma siguiente:
b
⎛ ∞ (b − z)i (i ⎞ ⎛ ∞ (a − z)i (i ⎞
∫a f(x)·dx = F(b) − F(a) = F(z) + ⎜∑ ·F (z) ⎟ − F(z) − ⎜∑ ·F (z) ⎟ =
⎝ i=1 i! ⎠ ⎝ i=1 i! ⎠
∞
(b − z)i+1 − (a − z)i+1 (i
=∑ ·f (z)
i= 0 i + 1!
Por otra parte si se quiere construir un fórmula de integración numérica sobre
un soporte {x0, x1, ..., xn} de la forma:
b n
∫ f(x)·dx ≈ V = ∑ c j·f(x j )
a j=0
49
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Con el valor que se haya determinado para los pesos {c0, c1, ..., cn} coincidirán
m coeficientes de los desarrollos en serie de Taylor. Ello indicará que el orden
de exactitud de la fórmula es m y que, si se aplica a funciones f(x) que sean al
menos de clase Cm+1((a,b)), existirá algún punto ξ en (a, b) para el que el error
de la fórmula puede expresarse mediante:
⎛ (b − z)m+ 2 − (a − z)m+ 2 n (x − z)m+1 ⎞ (m+1
R f ((a,b)) = ⎜ − ∑ c j· j ⎟⎟·f (ξ)
⎜ (m + 2)! (m + 1)!
⎝ j =1 ⎠
(1)i+1 − ( −1)i+1 n (t )i
= ∑ γ j· j (i = 0,1,....n)
i + 1! j=1 i!
9
Obviamente se podría formar un sistema con un número menor de ecuaciones que dejase
algunos pesos libres (y a los que se podría asignar cualquier valor). Pero ello conduciría a
fórmulas con un orden de exactitud inferior a n y por tanto no serían de tipo interpolatorio. Por
este motivo no contemplamos aquí dicha posibilidad.
50
Programación y Métodos Numéricos Integración numérica
y el error por:
⎛ (1)m+ 2 − (1)m+ 2 n (t )m+1 ⎞ (m+1
Rg (( −1,1)) = ⎜ − ∑ γ j· j ⎟⎟·g (t ξ )
⎜ (m + 2)! (m + 1)!
⎝ j =1 ⎠
Las fórmulas así obtenidas, válidas para el intervalo de referencia, deben ser
generalizada para un intervalo (a, b) cualquiera siguiendo el proceso detallado
en el apartado 6.1.
NOTA:
Fácilmente puede comprobarse que estas expresiones son equivalentes a las
proporcionadas por el método de coeficientes indeterminados.
●
Ejemplo:
Determinemos una fórmula de integración numérica, del mayor orden de
b
exactitud posible, que aproxime el valor de ∫ f ( x )·dx
a
y que esté construida
∫ g( t )·dt ≈ V = γ
−1
0 ·g( −1 2 ) + γ 1 ·g(0 ) + γ 2 ·g( 1 2 )
Los primeros términos del desarrollo en serie de Taylor, en torno a 0, del valor
exacto de la integral, llamando G(t) a una primitiva de g(t) y suponiendo que
g(t) es suficientemente regular, son:
1
51
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
4 −2
La resolución del sistema anterior nos conduce a que: γ 0 = γ 2 = y γ1 =
3 3
por lo que la fórmula buscada en [-1, 1] es:
1
2
∫−1 g( t )·dt ≈ V = 3 ·( 2·g( −1 2 ) − g(0 ) + g( 1 2 ))
El error de integración numérica, en el intervalo [-1, 1] puede determinarse
restando el desarrollo del valor aproximado del desarrollo del valor exacto,
obteniéndose:
1
1 ⎛4 4⎞ ⎛ 1 1 8 ⎞ ( iv
Rg (( −1,1)) = ∫ g( t )·dt − V = − ·⎜ − ⎟·g'''(0 ) + ⎜ − · ⎟·g (0 ) + ... =
−1
48 ⎝ 3 3 ⎠ ⎝ 60 384 3 ⎠
7
= ·g ( iv (0 ) + ....
720
7
Rg (( −1,1)) = ·g ( iv ( tξ ) tξ ∈ ( −1,1)
720
52
Programación y Métodos Numéricos Integración numérica
a + b b − a −1 3·a + b
x0 = + ·( 2 ) =
2 2 4
a+b b−a a+b
x1 = + ·( 0 ) =
2 2 2
a+b b−a 1 a + 3·b
x2 = + ·( 2 ) =
2 2 4
y los pesos:
b − a ⎛ 4 ⎞ 2·( b − a )
c0 = ·⎜ ⎟ =
2 ⎝3⎠ 3
b − a ⎛ −2 ⎞ (b − a)
c1 = ·⎜ ⎟=−
2 ⎝ 3 ⎠ 3
b − a ⎛ 4 ⎞ 2·( b − a )
c2 = ·⎜ ⎟ =
2 ⎝3⎠ 3
lo que nos proporciona la fórmula:
b
(b − a) ⎛ ⎛a+b⎞ ⎞
∫ f ( x )·dx ≈ V =
a
3 ⎝
·⎜ 2·f ( a ) − f ⎜ ⎟ + 2·f ( b ) ⎟
⎝ 2 ⎠ ⎠
a+b b−a
donde ξ = + ·tξ es un punto de (a, b).
2 2
NOTAS:
1ª. A menudo el error se expresa en función de la distancia H entre puntos
consecutivos del soporte equidistante. Como en este caso H = (b-a) / 4, se
tiene que (b-a) = 4·H por lo que una expresión equivalente del error que se
acaba de determinar sería:
14·H 5 ( iv
Rf (( a,b )) = ·f ( ξ )
45
53
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∫ f(x)·dx
a
utiliza un soporte equidistante en el que la distancia
10
No obstante debe señalarse que el inconveniente debido a un bajo orden de exactitud de las
fórmulas de Newton-Cotes puede combatirse utilizando fórmulas de integración compuestas,
que se estudiarán en el apartado 9º de este tema, y que básicamente consisten en fragmentar
el intervalo de integración (a, b) en subintervalos de menor longitud aplicando las fórmulas de
integración correspondientes a dichos subintervalos.
54
Programación y Métodos Numéricos Integración numérica
H H
2·H 2·H
H/2 H/2
3·H/2 3·H/2
11
En algunos textos las fórmulas de Newton-Cotes abiertas también se denominan como
fórmulas de Steffensen
55
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Propiedad 7.1.
Siendo:
1 n
∫ f(ξ)dξ = ∑ γi·f ( ξi )
−1 i= 0
∫ f(x)dx = ∑ c i·f ( xi )
a i= 0
donde λ es la distancia entre puntos cosecutivos del soporte en [-1, 1]. Más
concretamente:
2 b−a
Si la fórmula es cerrada: λ = y xi+1 − xi =
n n
2 b−a
Si la fórmula es abierta: λ = y xi+1 − xi =
n+2 n+2
Luego el soporte de la fórmula en [a, b] también es equidistante. Por otra parte,
el punto ξ* = 0 es el punto medio del intervalo [-1, 1] y tiene por imagen en el
intervalo [a, b] el punto x* = (a+b)/2 que es punto medio del intervalo [a, b]. Ello
nos permite comprobar que si ξi y ξj son dos puntos simétricos respecto a 0 sus
imágenes también lo son respecto al punto medio de [a, b]. En efecto siendo µ
el valor µ = ξi – ξ* = ξ* - ξj se tiene que:
56
Programación y Métodos Numéricos Integración numérica
b 1
b−a ⎛a+b b−a ⎞
c i = ∫ Li (x)dx = ∫ Li ⎜ + ξ ⎟ dξ
a
2 −1 ⎝ 2 2 ⎠
⎛a+b b−a ⎞
Notando que Li ⎜ + ξ ⎟ es un polinomio en la variable ξ de grado
⎝ 2 2 ⎠
menor o igual a (n+1) y que verifica que:
⎛a+b b−a ⎞ ⎧ 1 si i = j
Li ⎜ + ξ j ⎟ = Li (x j ) = ⎨ (0 < i,j < n)
⎝ 2 2 ⎠ ⎩0 si i ≠ j
⎛a+b b−a ⎞
puede concluirse que Li ⎜ + ξ ⎟ = L i (ξ) (i = 0, …, n), y por tanto que:
⎝ 2 2 ⎠
b 1
b−a b−a
c i = ∫ Li (x)dx = ∫ L i (ξ)dξ = γi
a
2 −1 2
57
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
c.q.d.
Como ya señalamos anteriormente, la simetría respecto al punto medio del
intervalo de los puntos tomados como soporte en las fórmulas de Newton-
Cotes hace que este tipo de fórmulas gocen de ciertas propiedades. Algunas
de ellas se recogen en los dos teoremas siguientes.
Teorema 7.1.
b n
Sea ∫ f(x)·dx ≈ ∑ c i·f(xi ) una fórmula de Newton – Cotes. Se verifica entonces
a i=0
que:
Demostración:
a) Caso en el que n es par (número impar de puntos de soporte).
La idea en la que se basa esta demostración consiste en referir las abscisas al
punto medio del intervalo (a, b) que, en este caso es el punto central del
soporte. Más concretamente, denotemos por k al valor k = n/2, y por
reordenemos los puntos del soporte en la forma:
58
Programación y Métodos Numéricos Integración numérica
α·H β·H
k·H k·H
2·H 2·H
H H
Li (x) = Li (x n 2 + t·H) = ∏
k
( x − ξ ) = ( t − j)·H = ( t − j)
k k
( ξ − ξ ) ∏ (i − j)·H ∏ (i − j)
j
(-k < i < k)
j=− k i j j=− k j=− k
j≠i j≠ i j≠i
En efecto:
⎛ ⎞ ⎛ ⎞
+ t·H) = ∏
k
( t − j) ⎜ k ( t − j) ⎟ ( t + i) ⎜ k ( t − j) ⎟ ( t + i)
= ∏
⎜⎜ j=−k ( i − j ) ⎟⎟ ( i + i ) ⎜⎜ ∏
Li (x n 2 · = ·
j=− k ( i − j ) j=− k ( i − j ) ⎟
⎟ 2·i
j≠ i ⎝
j≠i,j≠− i ⎠ ⎝
j≠ i,j≠− i ⎠
⎛ ⎞ ⎛ ⎞
− t·H) = ∏
k
( −t − j) ⎜ k ( −t − j) ⎟ ( −t − i) ⎜ k − ( t + j) ⎟ ( t + i)
= ∏
⎜⎜ j=−k ( −i − j ) ⎟⎟ ( −i − i ) ⎜⎜ ∏
L −i (x n 2 · = · =
j=− k ( −i − j ) j=− k − ( i + j ) ⎟
⎟ 2·i
j≠− i ⎝
j≠− i,j≠i ⎠ j≠i,j≠− i ⎝ ⎠
⎛ k ⎞
⎜
= ∏
( t + j) ⎟ ( t + i)
·
⎜⎜ j=−k ( i + j ) ⎟⎟ 2·i
⎝ j≠i,j≠−i ⎠
y llamando “m” a “-j”:
59
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
⎛ −k ⎞ ⎛ ⎞
⎜
L −i (x n 2 − t·H) = ∏
( t − m ) ⎟ ( t + i) ⎜ k ( t − m ) ⎟ ( t + i)
· = ∏ · = Li (x n 2 + t·H)
⎜⎜ m=k ( i − m ) ⎟⎟ 2·i ⎜⎜ m=−k ( i − m ) ⎟⎟ 2·i
⎝ m≠−i,m≠i ⎠ ⎝ m≠−i,m≠i ⎠
L-j(x) Lj(x)
ξ−j ξ0 ξj
b β α
( ) ( )
∫ Li (x)·dx = ∫ Li x n 2 + t·H ·H·dt = − ∫ Li x n 2 − t·H ·H·dt =
a α β
α β b
( ) ( )
= − ∫ L −i x n 2 + t·H ·H·dt = ∫ L −i x n 2 + t·H ·H·dt = ∫ L −i (x)·dx
β α a
Por último, recordando que los pesos de una fórmula de integración numérica
de tipo interpolatorio son la integral definida en (a, b) de los polinomios de base
de Lagrange correspondientes al soporte utilizado, es evidente que se verifica
el teorema para el caso en que n es par.
60
Programación y Métodos Numéricos Integración numérica
H
x = z + t·
2
De esta forma existirán dos valores α y β (con el mismo valor absoluto pero con
signo contrario) tales que:
a−z b−z
a = z + α·H ⇔ α = , b = z + β·H ⇔ β =
H H
ξj = xj+k-1 (j = 1, 2, ...,k-1, k)
verificándose que:
H
ξ j = z + (2·j + 1)· (j = -k, -k+1, ..., -1)
2
H
ξ j = z + (2·j − 1)· (j = 1, 2, …, k-1, k)
2
(2·k-1)·H/2 (2·k-1)·H/2
3·H/2 3·H/2
H/2 H/2
x0 xn
....x((n-1)/2)-1 x(n+3)/2
a ξ-k ξ-2 z ξ2 .... ξk b
x(n-1)/2 x((n+1)/2
ξ-1 ξ1
∀t ∈ R : Li (z + t·H / 2) = L −i (z − t·H / 2) (i = 1, 2, …, k)
12
Se dejan los detalles como ejercicio propuesto al lector.
61
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
L-j(x) Lj(x)
1
α β b
⎛ H⎞ H ⎛ H⎞ H
= − ∫ L −i ⎜ z + t· ⎟· ·dt = ∫ L −i ⎜ z + t· ⎟· ·dt = ∫ L −i (x)·dx
β ⎝ 2⎠ 2 α ⎝ 2⎠ 2 a
Por último, recordando que los pesos de una fórmula de integración numérica
de tipo interpolatorio son la integral definida en (a, b) de los polinomios de base
de Lagrange correspondientes al soporte utilizado, es evidente que se verifica
el teorema también para el caso en que n es impar.
c.q.d.
Ejemplos:
1º) La fórmula del trapecio, obtenida en apartados anteriores,
b
(b − a)
∫ f ( x )·dx ≈
a
2
·( f ( a ) + f ( b ))
es una fórmula de Newton - Cotes cerrada con dos puntos de soporte (n = 1).
En este caso x0 = a y x1 = b, por lo que la distancia entre puntos del soporte
es H = b – a lo que nos permite escribir la fórmula como:
b
H H
∫a f ( x )·dx ≈ 2 ·f ( x0 ) + 2 ·f ( x1 )
pudiendo comprobarse que, tal y como asegura el teorema 7.1., los pesos de la
fórmula verifican:
c0 = c1 = H/2
62
Programación y Métodos Numéricos Integración numérica
b
(b − a) ⎛a+b⎞
∫ f ( x )·dx ≈
a
6
·( f ( a ) + 4·f ⎜ ⎟ + f ( b ))
⎝ 2 ⎠
es una fórmula de Newton – Cotes cerrada con tres puntos de soporte (n = 2).
Ahora el soporte está dado por caso x0 = a , x1 = (a+b)/2 y x2 = b, por lo que
la distancia entre puntos del soporte es H = (b – a)/2 lo que nos permite escribir
la fórmula como:
b
H H H
∫a f ( x )·dx ≈ 3 ·f ( x0 ) + 4· 3 ·f ( x1 ) + 3 ·f ( x2 )
pudiendo comprobarse que, tal y como asegura el teorema 7.1., los pesos de la
fórmula verifican:
c0 = c2
b
55·H 5·H 5·H 55·H
∫ f ( x )·dx ≈
a
24
·f ( x0 ) +
24
·f ( x1 ) +
24
·f ( x2 ) +
24
·f ( x3 )
Nuevamente puede comprobarse que, tal y como asegura el teorema 7.1., los
pesos de la fórmula verifican:
c0 = c3 y c1 = c2
•
63
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Terorema 7.2.
Si n es par, el orden de exactitud de una fórmula de integración de Newton-
Cotes construida sobre un soporte de (n+1) puntos es (n+1).
Demostración:
Toda fórmula de Newton – Cotes construida sobre un soporte de (n+1) puntos,
al ser de tipo interpolatorio, es al menos de orden n. Ello, según la definición de
orden de exactitud dada en apartados anteriores implica que permiten calcular
sin error ninguno las integrales sobre cualquier intervalo acotado (a, b) de
cualquier polinomio de grado menor o igual que n (o, lo que es equivalente, de
todos los monomios { 1, x, ..., xn}). Por tanto, para demostrar este teorema,
basta con demostrar que si n es par la fórmula también permite integrar sin
error el monomio x(n+1). Realizaremos esta demostración, en una primera etapa,
sobre el intervalo [-1, 1] y posteriormente la generalizaremos a un intervalo
genérico [a, b].
∫ξ
(n+1) n +1
la integral del monomio ξ . Es evidente que, al ser n par dξ = 0. Por
−1
otra parte, dada la simetría del soporte de las fórmulas de Newton – Cotes
respecto al punto central y según el teorema 7.1., denotando por γi ( i = 0, ..., n)
a los pesos de la fórmula en [-1, 1], se verifica:
∑ γ ·ξ
i=0
i
(n +1)
i =0
−1 i=0
b
∫x
n +1
b) Demostremos que la fórmula es exacta para el cálculo de dx en
a
64
Programación y Métodos Numéricos Integración numérica
∫x
n +1
El valor de dx puede calcularse transformando el intervalo de integración
a
2 −∫1 ⎜⎝ 2
+
2
ξ⎟
⎠
dξ = ∑ γi
2 i=0 ⎜⎝ 2
+
2
ξi ⎟
⎠
a
∫a x n +1
dx = ∑ γi
2 i=0 ⎜⎝ 2
+
2
ξi ⎟
⎠
= ∑ c i ·xin
i=0
NOTA:
Antes de presentar las fórmulas de Newton-Cotes más usuales, conviene
señalar que en las fórmulas de Newton – Cotes el valor absoluto del coeficiente
de mayor valor absoluto crece con el número de puntos que se utilizan.
Además, para las fórmulas cerradas con más de 8 puntos los signos de los
coeficecientes se alternan (hasta ese número de puntos son todos
positivos).Para las abiertas la alternacia de signos se produce ya para n = 2.
La unión de estos dos hechos implica que las fórmulas de Newton-Cotes con
más de 8 puntos de soporte sean muy sensibles a los errores de redondeo y en
la práctica tengan un uso muy esporádico.
65
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
NOTAS:
1ª. Puesto que, como se demostró previamente, las fórmulas construidas para
n par tienen el mismo orden de exactitud que las construidas con un un punto
más, habitualmente se utilizan más las fórmulas en las que n es par , es decir
13
La fórmula obtenida con n = 3, en la tabla llamada “regla 3/8”, es citada también como “regla
de 3/8 de Newton”. Asimismo, en la literatura francesa la fórmula obtenida para n = 4, aquí
llamada “fórmula de Milne”, es denominada frecuentemente “fórmula de Boole-Villarceu”.
66
Programación y Métodos Numéricos Integración numérica
14
Consúltese, por ejemplo, M. Crouzeix y A. L. Mignot “Analyse numérique des équations
differentielles” Ed. Masson (1984).
67
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
0 1 1 (H / 3 )·f "(ξ)
3
1 1 1 2 ( 3H / 4 )·f "(ξ)
3
NOTA:
Puesto que, como se demostró previamente, las fórmulas construidas para n
par tienen el mismo orden de exactitud que las construidas con un punto más,
habitualmente se utilizan más las fórmulas en las que n es par.
Ejemplos:
1º) Obtengamos la fórmula de Newton - Cotes abierta con 5 puntos de
soporte (n = 4) en el intervalo [0, 1]. Para ello sabemos que los puntos del
soporte serán:
t0 = 1/6, t1 = 2/6, t2 = 3/6, t3 = 4/6 y t4 = 5/6
Puesto que esta fórmula debe ser exacta, al menos, para todo polinomio de
grado menor o igual que 4, los coeficientes de la fórmula pueden obtenerse de
las igualdades a las que conduce su aplicación a los monomios {1, t, t2, t3, t4},
es decir de las ecuaciones:
4 1
1
∑i=0
γ t
i i
k
= ∫ t k dt ⇔ t k0 ·γ 0 + t1k ·γ1 + t k2 ·γ 2 + t k3 ·γ 3 + t k4 ·γ 4 =
k +1
(k = 0, 1, 2, 3, 4)
0
68
Programación y Métodos Numéricos Integración numérica
⎧1 ⎫
⎡1 1 1 1 1 ⎤ ⎪ ⎪
⎢1 2 3 4 5 ⎥ ⎪⎛ 1 ⎞ ⎪
⎢ ⎥ γ ⎪⎜ ⎟ ⎪
⎢6 6 6 6 6 ⎥ ⎧⎪ 0 ⎫⎪ ⎪⎝ 2 ⎠ ⎪
⎢ 1 4 9 16 25 ⎥ ⎪ γ1 ⎪ ⎪⎛ 1 ⎞ ⎪
⎢ ⎥ ⎪ ⎪ ⎪⎜ ⎟ ⎪
⎢ 36 36 36 36 36 ⎥ ⎨ γ 2 ⎬ = ⎨⎝ 3 ⎠⎬
⎢ 1 8 27 64 125 ⎥ ⎪ γ 3 ⎪ ⎪⎛ 1 ⎞ ⎪
⎢ ⎥ ⎪ ⎪ ⎪⎜ ⎟ ⎪
⎢ 216 216 216 216 216 ⎥ ⎪⎩ γ 4 ⎪⎭ ⎪⎝ 4 ⎠ ⎪
⎢ 1 16 81 256 625 ⎥ ⎪ ⎪
⎪ ⎛ 1 ⎞⎪
⎢⎣ 1296 1296 1296 1296 1296 ⎥⎦
⎪⎩⎜⎝ 5 ⎟⎠ ⎪⎭
cuya única solución es:
11 −14 26 −14 11
γ0 = , γ1 = , γ2 = , γ3 = y γ4 =
20 20 20 20 20
Según el teorema 7.2, sabemos que esta fórmula es exacta también para los
polinomios de grado 5 (ya que n es par). Por tanto para hallar la expresión del
error de la fórmula la aplicaremos a t6, obteniendo que:
1 ⎛ ⎛ 1⎞ ⎛5⎞ ⎞
1 6 6 6 6 6
1 ⎛2⎞ ⎛3⎞ ⎛4⎞
− 14·⎜ ⎟ + 26·⎜ ⎟ − 14·⎜ ⎟ + 11·⎜ ⎟ ⎟ + R t6 ( ( 0,1) ) ⇒
7 ∫0
= t dt =
6
⎜ 11·
20 ⎜⎝ ⎜⎝ 6 ⎟⎠ ⎝6⎠ ⎝6⎠ ⎝6⎠ ⎝ 6 ⎠ ⎟⎠
1 1105 41
⇒ = + R t6 ((0,1)) ⇒ R t6 ((0,1)) =
7 7776 54432
Puesto que la aplicación afín que transforma [0, 1] en [a, b] está dada por:
x = a + t·(b-a)
se tiene que los puntos del soporte de integración en (a, b) serán:
5a + b 4a + 2b 3a + 3b 2a + 4b a + 5b
x0 = , x1 = , x2 = , x3 = y x4 =
6 6 6 6 6
69
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
11 −14 26
c0 = c 4 =
(b − a) , c1 = c 3 = (b − a) , c 2 = (b − a)
20 20 20
pudiendo escribirse la fórmula buscada en la forma:
b
(b − a) ⎛ ⎛ 5a + b ⎞ ⎛ 2a + b ⎞ ⎛a+b⎞ ⎛ a + 2b ⎞ ⎛ a + 5b ⎞ ⎞
∫ f(x)dx ≈
a 20 ⎝
·⎜ 11·f ⎜
⎝ 6 ⎠
⎟ − 14·f ⎜
⎝ 3 ⎠
⎟ + 26·f ⎜ ⎟
⎝ 2 ⎠
− 14·f ⎜
⎝ 3 ⎠
⎟ + 11·f ⎜
⎝ 6 ⎠⎠
⎟⎟
15
Se deja como ejercicio propuesto al lector verificar que:
3
1 3 1
∫0 e cos( x )dx = 2 e (cos( 3 ) + sen( 3 )) − 2 ≈ −9.02502985...
x
70
Programación y Métodos Numéricos Integración numérica
Como se demostró anteriormente (teorema 4.1. del apartado 4º), una condición
necesaria y suficiente para que una fórmula de integración numérica de tipo
interpolatorio sea de orden (n+q) es que se verifiquen las q igualdades
siguientes:
b n
∫ x ∏ (x − xi )·dx = 0
k
(k = 0, ..., q-1). (S1)
a i=0
71
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Teorema 8.1.
{xi }i=0
n
Existe una única elección posible de los puntos del soporte que hace
que la fórmula de integración de tipo interpolatorio:
b n
sea exacta para todo polinomio de grado menor o igual que (2n+1). Además los
puntos de dicho soporte son distintos entre sí y pertenecen todos ellos al
intervalo (a, b).
Demostración:
a) Demostremos en primer lugar la existencia de un único soporte que hace
que la fórmula sea de orden (2n+1). Ello es equivalente a demostrar que existe
n
un único polinomio de la forma ∏ (x − x ) verificando el sistema de ecuaciones:
i=0
i
b n
∫ x ∏ (x − xi )·dx = 0
k
(k = 0, 1, ..., n) (S2)
a i=0
n
El polinomio ∏ (x − x )
i=0
i es un polinomio de grado (n+1) con coeficiente director
⎨ a a a ⎬ (S3)
⎪............... ... ................ ... ............. ⎪
⎪ ⎪
⎪ b 2n+1 b b ⎪
⎪− ∫ x dx = an ∫ x dx + ... +a0 ∫ x dx ⎪
2n n
⎩⎪ a a a ⎭⎪
Para que este sistema con las (n+1) incógnitas {a0, a1, ..., an} admita solución
única es condición necesaria y suficiente que la matriz del sistema tenga rango
(n+1), es decir que las filas de la matriz del sistema sean linealmente
independientes. Demostremos, por reducción al absurdo, que esto es así. En
efecto, si las filas de la matriz del sistema fuesen linealmente dependientes,
existirían (n+1) escalares {β0 , β1, ..., βn} no todos nulos tales que:
72
Programación y Métodos Numéricos Integración numérica
b b
∫ (β ·x ) dx = ∫ x (β )
n +1
0
n
+ β1·x + ... + βn ·x 2n n
0 + β1·x + ... + βn ·xn dx = 0
a a
b b
∫(
a
) (
β0 ·xn−1 + β1·x n + ... + βn ·x 2n−1 dx = ∫ x n−1 β0 + β1·x + ... + βn ·xn dx = 0
a
)
......................................... .................................. ....
∫ (β
a
0 + β1·x + ... + βn ·xn ) dx = 0
∫ (β )
2
0 + β1·x + ... + βn ·xn dx = 0
a
Por tanto las filas de la matriz del sistema (S3) son linealmente independientes
y ello garantiza que existe un único juego de coeficientes {a0, a1, ..., an} que
n
hace que el polinomio ∏ (x − x )
i=0
i = (a0 + a1·x + a2·x2 + .... + an·xn + xn+1)
satisfaga el sistema (S2). Las raíces de dicho polinomio serán los puntos del
soporte de la fórmula de integración considerada en el enunciado.
b) Demostremos ahora que las (n+1) raíces del polinomio que verifica (S2) son
todas diferentes y pertenecientes al intervalo (a, b).
73
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
r −1
Pero, por otra parte, si 0 < r < n escribiendo el polinomio ∏ (x − x
k =0
k ) en la forma
r −1
∏ (x − x
k =0
k ) = λ 0 + λ1x + ... + λ r −1xr −1 + xr
se tendría que:
n
⎛ n ⎞ ⎛ n
⎞ ⎛ n ⎞
q(x) = λ 0 ∏ (x − xi ) + λ1 ⎜ x∏ (x − xi ) ⎟ + ... + λ r −1 ⎜ xr −1∏ (x − xi ) ⎟ + ⎜ xr ∏ (x − xi ) ⎟
i= 0 ⎝ i=0 ⎠ ⎝ i=0 ⎠ ⎝ i= 0 ⎠
por lo que:
b r −1 ⎛b k n ⎞ b r n
∫a q(x)dx = ∑ λ k ⎜∫ x ∏ (x − x i ⎟ + ∫ x ∏ (x − x i )
)
k =0 ⎝a i = 0 ⎠ a i=0
siendo nulas, al verificarse el sistema (S2), todas las integrales que aparecen
en la expresión anterior.
b b n
Y si r = 0 se tendría que ∫ q(x)dx = ∫ ∏ (x − xi )dx que también sería nula al
a a i =0
n
En conclusión el único polinomio ∏ (x − x )
i=0
i que satisface el sistema (S2)
posee (n+1) raíces de multiplicidad impar en (a, b). Y como la suma de las
multiplicidades de las raíces debe coincidir con el grado del polinomio, se tiene
demostrado que estas raíces son además de multiplicidad 1.
c.q.d.
Definición
Se denominan fórmulas de cuadratura gaussiana a todas las fórmulas de
integración numérica de tipo interpolatorio construidas sobre soportes de (n+1)
puntos elegidos de forma que sean solución del sistema (S2).
74
Programación y Métodos Numéricos Integración numérica
Ejemplos:
1º) Construyamos la fórmula de cuadratura gaussiana con un punto de soporte
que permite evaluar integrales en el intervalo [a, b]. El punto del soporte debe
ser tomado de tal forma que:
b
1
∫ (x − x
a
0 )dx = 0 ⇔
2
⎡(b − x 0 )2 − (a − x 0 )2 ⎦⎤ = 0 ⇔
⎣
1 2 a+b
⇔ ⎡⎣b − a2 − 2(b − a)x 0 ⎤⎦ = 0 ⇔ x 0 =
2 2
Es decir, en este caso la fórmula buscada es la fórmula del punto medio que ya
ha sido analizada en apartados anteriores.
75
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∫ dt = γ
−1
0 ·1 + γ 1 ·1 ⇔ 2 = γ 0 + γ 1
1
⎛ −1 ⎞ ⎛ 1 ⎞ 1
∫ tdt = γ 0 ·⎜ ⎟ + γ 1 ·⎜ ⎟⇔0= ( −γ 0 + γ 1 )
−1 ⎝ 3⎠ ⎝ 3⎠ 3
El error que con ella se comete podría obtenerse aplicando la fórmula al primer
monomio para el que no es exacta y buscando dicho error en la forma:
Rg (( −1,1)) = K·H 5 ·g ( iv (ξ )
76
Programación y Métodos Numéricos Integración numérica
(b − a) ⎛ ⎛ a + b b − a ⎞ ⎛ a + b b − a ⎞⎞
b
∫ f ( x )dx ≈
a
·⎜ f
2 ⎝ ⎜⎝ 2
− ⎟+f ⎜
2 3⎠ ⎝ 2
+ ⎟⎟
2 3 ⎠⎠
( b − a )5 ( iv
Rf = ·f ( ξ ) ξ ∈ ( a,b )
4320
1
2
∫ (t − t
−1
0 )( t − t1 )( t − t2 )dt = 0 ⇔ − ( t0 + t1 + t2 ) − 2t0 t1t2 = 0
3
1
2 2
∫ t( t − t 0 )( t − t1 )( t − t2 )dt = 0 ⇔ ( t0 t1 + t2 ( t0 + t1 )) + = 0
−1
3 5
1
2 2
∫t ( t − t0 )( t − t1 )( t − t2 )dt = 0 ⇔ − ( t0 + t1 + t2 ) − t0 t1t2 = 0
2
−1
5 3
t 0 + t1 + t 2 = 0
t0 · t1 · t2 = 0
lo que nos permite asegurar que algún punto está en la abscisa nula (llamemos
a este t1) y con ello que los otros dos son simétricos respecto a él (es decir que
t0 = -t2). Con ello la segunda ecuación se puede rescribir en la forma:
2 2
− t22 + = 0
3 5
3 3
de donde finalmente se obtiene que: t1 = − , t1 = 0 y t 2 =
5 5
77
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∫ 1dt = γ
−1
0 ·1 + γ 1 ·1 + γ 2 ·1 ⇔ 2 = γ 0 + γ 1 + γ 2
1
⎛ 3⎞ ⎛ 3⎞ ⎛ 3⎞
∫ t·dt = γ 0 ·⎜⎜ − ⎟⎟ + γ 1 ·0 + γ 2 ·⎜⎜ ⎟⎟ ⇔ 0 = ⎜⎜ ⎟⎟ ( −γ 0 + γ 1 )
−1 ⎝ 5⎠ ⎝ 5⎠ ⎝ 5⎠
2 2
1
⎛ 3⎞ ⎛ 3⎞ 2 3
∫−1 = γ − + γ + γ ⎟⎟ ⇔ = ( γ 0 + γ 1 )
2 2
t dt 0 ·⎜
⎜ 5⎟⎟ 1 ·0 2 ·⎜⎜
⎝ ⎠ ⎝ 5⎠ 3 5
El error que con ella se comete podría obtenerse aplicando la fórmula al primer
monomio para el que no es exacta y buscando dicho error en la forma:
b
(b − a) ⎛ ⎛ a + b 3 (b − a ) ⎞ ⎛a+b 3 (b − a ) ⎞ ⎞
∫ f(x)dx ≈ ·⎜ 5·f ⎜
18 ⎜ ⎜⎝ 2
−
2 5
⎟ + 8·f(0) + 5·f ⎜
⎟ ⎜ 2
+
2 5
⎟⎟
⎟⎟
a ⎝ ⎠ ⎝ ⎠⎠
con la que se comete un error dado por:
(b − a)7 (vi
Rf = ·f (ξ) ξ ∈ (a,b)
2016000
•
78
Programación y Métodos Numéricos Integración numérica
∫ g( t ).dt ≈ ∑ γ j .g( t j )
−1
j =0
16
Puede consultarse, por ejemplo, O.C. Zienckiewicz “El método de los elementos finitos” Ed. Reverté
(19XX) para encontrar una tabla más completa que la que aquí incluimos.
79
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
NOTAS:
1ª. A diferencia de lo que sucedía en las fórmulas de Newton-Cotes, las
fórmulas de integración gaussiana tienen siempre todos sus pesos positivos.
Por motivos (cuya explicación detallada excede los objetivos que nos hemos
marcado con estos apuntes) este hecho les confiere una gran estabilidad frente
a los errores de redondeo pudiendo ser utilizadas fórmulas gaussianas con
valores de n elevados cuando se desea tener una gran precisión en los
cálculos.
verificando que:
∫ x ω( x )·Q ( x )·dx = 0
k
n +1 (k = 0, ...,n)
a
17
En este contexto diremos que dos polinomios p(x) y q(x) son ortogonales si verifican que
b
nombre del matemático francés Adrien Marie Legendre (París, 1752 – París, 1833) quien los
introdujo en un trabajo sobre la forma de los planetas publicado en 1784.
80
Programación y Métodos Numéricos Integración numérica
19
En honor al matemático ruso Pafnuty Lvovich Chebyshev (Okatovo (Rusia), 1821 – San
Petersburgo (Rusia) 1894) quien introdujo los polinomios que llevan su nombre en una
publicación de 1854.
20
En honor al matemático francés Charles Hermite (Dieuze (Francia), 1822 – París, 1901)quien
los introdujo en sus trabajos para demostrar la irracionalidad del número e publicados en 1873.
21
En honor al matemático francés Edmond Nicolas Laguerre (Bar-le-Duc (Francia), 1834 – Bar-
le-Duc 1886) ya que dichos polinomios son soluciones de la denominada ecuación diferencial
de Laguerre.
81
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Dado el intervalo de integración (a, b) denotaremos por {z0 = a < z1 < z2 < ... <
zM-1 < zM = b) a (M+1) puntos de [a, b] y designaremos por Ij al intervalo (zj-1 , zj)
con 1 ≤ j ≤ M.
I1 I2 Ij IM
z1 z2 zj-1 zj zM-1
a = z0 zM = b
∫ f ( x )dx = ∑ ∫ f ( x )dx
a j =1 z j −1
(1)
∫ f ( x )dx = ∑ c
z j −1 i =0
j ,i ·f ( x j ,i ) + Rf (( z j −1 ,z j ))
82
Programación y Métodos Numéricos Integración numérica
b M ⎛ nj ⎞ M
∫a f ( x )dx = ∑ ⎜ ∑ i ,j i ,j ⎟ + ∑
j =1 ⎝ i =0
c ·f ( x ) Rf (( z j −1 ,z j ))
⎠ j =1
Ejemplos:
1º) Fórmula del trapecio compuesta. Es la que se obtiene de integrar en cada
intervalo Ij mediante la fórmula del trapecio. Recordando que:
zj
( z j − z j −1 ) ( z j − z j −1 )3
∫ f ( x )dx = 2 ·⎡⎣f ( z j −1 ) + f ( z j )⎤⎦ + 12 f "( ξ j ) ξ j ∈ ( z j −1 ,z j )
z j −1
2
( f ( z j −1 ) + f ( z j ) ) + ∑
12 j =1
( z j − z j −1 )3 ·f ''( ξ j )
j =1
83
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b
⎡ z1 − z0 zM − zM −1 M −1
⎤
∫a f ( x )dx ≈ V = ⎢ f ( z0 ) + f ( zM ) + ∑ ( z j +1 − z j −1 )f ( z j )⎥
⎣ 2 2 j =1 ⎦
b
⎡ f ( a ) + f ( b ) M −1 ⎤ h3 M
∫a f ( x )dx = h·⎢
2
+ ∑ f ( z j ⎥+
)
12
∑ f ''( ξ j )
⎣ j =1 ⎦ j =1
1 M
Rf (( a,b )) = ∑
2880 j =1
( z j − z j −1 )5 ·f ( iv ( ξ j )
84
Programación y Métodos Numéricos Integración numérica
En general, si se utiliza una misma fórmula con (n+1) puntos para calcular las
integrales sobre cada subintervalo, se denota por { xj,0, xj,1, ..., xj,n} a los n
puntos de integración sobre el intervalo Ij, por {cj,0, cj,1, ..., cj,n} a los
correspondientes pesos de la fórmula en el intervalo Ij y se admite que en cada
subintervalo Ij el error de la fórmula responde a una expresión de la forma:
Rf (( z j −1 ,z j )) = K·( z j − z j −1 )q ·f ( p (ξ j ) ξ j ∈ ( z j −1 ,z j )
se aproximará el valor de la integral por:
M
⎛ n ⎞
V = ∑ ⎜ ∑ c j ,i ·f ( x j ,i ) ⎟
j =1 ⎝ i =0 ⎠
y se cometerá un error dado por la expresión:
M
Rf (( a,b )) = K ∑ ( z j − z j −1 )q ·f ( p ( ξ j ) ξ j ∈ ( z j −1 ,z j ) ( j = 1,...,M )
j =1
En la expresión del error que se acaba de escribir, los valores de (zj – zj-1)q
siempre será positivo. Denotando por hj = (zj – zj-1) a la longitud del intervalo Ij
la expresión de error puede rescribirse como:
M
Rf (( a,b )) = K ∑ hqj ·f ( p ( ξ j ) ξ j ∈ ( z j −1 ,z j ) ( j = 1,...,M )
j =1
La obtención de una expresión más simple del error (en la que se elimine el
sumatorio que aparece en la igualdad anterior) se basa en el siguiente
teorema:
Teorema 9.1.
Siendo g(x) una función continua en un intervalo [a, b] y dados M puntos {ξ j } j =1
M
del intervalo [a, b] y M números reales {α j } j =1 todos ellos del mismo signo y no
M
85
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
∑ α g( ξ
j =1
j j ) = α g( ξ )
M
donde α = ∑ α j .
j =1
Demostración:
Al ser g(x) una función continua y haber considerado el intervalo [a, b] cerrado,
el segundo teorema de Weierstrass22 asegura que la función g(x) alcanzará un
valor máximo y un valor mínimo en [a, b], verificándose para cualquier punto
ξ∈ [a, b] que:
min g( x ) ≤ g (ξ ) ≤ max g( x )
x∈[ a,b ] x∈[ a,b ]
( )
α j min g( x ) ≤ α j g (ξi ) ≤ α j max g( x )
x∈[ a,b ] ( x∈[ a,b ]
) (j = 1, ..., M)
que sumadas para todos los valores permitidos al índice j y denotando por α al
M
número estrictamente positivo α = ∑ α j conducen a que:
j =1
⎛ ⎞
( )
⎛ n ⎞
( )
M M
⎜ ∑ j ⎟ x∈[ a,b ]
α min g( x ) ≤ ∑ α j ( j)
g ξ ≤ ⎜ ∑ α j ⎟ xmax (
∈[ a,b ]
g( x ) ⇔ )
⎝ j =1 ⎠ j =1 ⎝ j =1 ⎠
( ) ( )
M
⇔ α min g( x ) ≤ ∑ α j g (ξ j ) ≤ α max g( x ) ⇔
x∈[ a,b ]
j =1
( ) x∈[ a,b ]
M
1
⇔ min g( x ) ≤
x∈[ a,b ] α
∑ α g (ξ ) ≤ max g( x )
j =1
j j
x∈[ a,b ]
M
1
Luego
α
∑ α g (ξ )
j =1
j j tiene un valor intermedio entre el menor y el mayor valor
de g(x) en [a, b]. Al ser g(x) continua ese valor intermedio será alcanzado en, al
menos un punto de [a, b]. Denotemos por ξ a uno de los puntos en los que la
función g tome este valor intermedio. Se verifica entonces que:
22
Segundo teorema de Weierstrass: “Toda función continua definida en un intervalo cerrado
alcanza un valor máximo y un valor mínimo en algunos puntos de dicho intervalo”.
86
Programación y Métodos Numéricos Integración numérica
1 M
∃ξ ∈ [a,b ] / g( ξ ) =
α
∑ α g (ξ ) 1
j j
M
o lo que es lo mismo: ∃ξ ∈ [a,b ] / ∑ α g (ξ ) = α g( ξ ) .
1
j j
{α }
M
b) Si los números j j =1
fuesen todos ellos negativos, las desigualdades
( )
α j min g( x ) ≥ α j g (ξ i ) ≥ α j max g( x )
x∈[ a,b ] ( x∈[ a,b ]
) (j = 1, ..., M)
que sumadas para todos los valores permitidos al índice j y denotando por α al
M
número estrictamente negativo α = ∑ α j conducen a que:
j =1
⎛ ⎞
( ) ⎛ n ⎞
( )
M M
⎜ ∑ j ⎟ x∈[ a,b ]
α min g( x ) ≥ ∑ α j g ( ξ j ) ≥ (
⎜ ∑ α j ⎟ xmax g( x ) ⇔ )
⎝ j =1 ⎠ j =1 ⎝ j =1 ⎠ ∈[ a,b ]
( ) ( )
M
⇔ α min g( x ) ≥ ∑ α j g (ξ j ) ≥ α max g( x ) ⇔
x∈[ a,b ]
j =1
( ) x∈[ a,b ]
M
1
⇔ min g( x ) ≤
x∈[ a,b ] α
∑ α g (ξ ) ≤ max g( x )
j =1
j j
x∈[ a,b ]
c.q.d.
Teorema 9.2.
Sea f una función de clase Cp([a, b]), donde el entero p es el índice que
aparece en la expresión de la fórmula de integración compuesta:
b M
⎛ n ⎞ M
∫a ϕ ( x )dx = ∑ ⎜ ∑
j =1 ⎝ i =0
c j ,i ϕ ( x j ,i ) ⎟
⎠
+ K ∑
j =1
hqj ϕ ( p ( ξ j )
Se verifica entonces que existe algún punto ξ ∈ [ a,b ] tal que el error de la
b
fórmula de integración al aplicarla al cálculo de ∫ f ( x )dx está dado por:
b
⎛ ⎞ M
Rf (( a,b )) = ⎜ K·∑ h qj ⎟·f ( p ( ξ )
⎝ j =1 ⎠
87
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Demostración:
Es una consecuencia inmediata del teorema 9.1 si en él se toma como función
g(x) a la función f(p(x) y la secuencia de números positivos {α j = h qj }
M
.
j =1
c.q.d.
En el caso particular en que todos los subintervalos Ij = [zj-1, zj] tengan la misma
longitud (h = hj , 1 < j < M) la expresión del error puede simplificarse aún más
ya que:
⎛ M ⎞ ⎛ M ⎞
Rf (( a,b )) = ⎜ K·∑ hqj ⎟·f ( p ( ξ ) = ⎜ K·∑ hq ⎟·f ( p ( ξ ) = K·( M·hq )·f ( p ( ξ )
⎝ j =1 ⎠ ⎝ j =1 ⎠
⎛ M ⎞ ⎛ M ⎞
Rf (( a,b )) = ⎜ K·∑ hqj ⎟·f ( p ( ξ ) ≤ ⎜ K·∑ h j ·hq −1 ⎟·f ( p ( ξ ) =
⎝ j =1 ⎠ ⎝ j =1 ⎠
⎛M ⎞
= K·hq −1 ·⎜ ∑ h j ⎟·f ( p ( ξ ) = K( b − a )hq −1f ( p ( ξ )
⎝ j =1 ⎠
Ejemplos
1º. Si la función que se integra f(x) es de clase C2([a, b]), la fórmula del
trapecio compuesta obtenida en ejemplos anteriores, presenta un error de
integración que puede expresarse por
1 M 3
Rf (( a,b )) = ∑ hj ·f ''( ξ j )
12 j =1
Este error, según el teorema 9.2, puede expresarse en la forma:
1 ⎛ M 3⎞
Rf ((a,b )) = ⎜ ∑ h j ⎟ f "( ξ ) ξ ∈ [ a,b ]
12 ⎝ j =1 ⎠
88
Programación y Métodos Numéricos Integración numérica
(b − a) 2
Rf (( a,b )) ≤ h f "( ξ ) ξ ∈ [ a,b ]
12
2º. Si se calcula el valor de la integral en (a, b) de una función que sea de clase
C4([a, b]) mediante la fórmula de Simpson compuesta (obtenida en ejemplos
anteriores) el error de integración se expresa por
1 M 5 ( iv
Rf ((a,b )) = ∑ ( hj ·f ( ξ j ))
2880 j =1
El teorema 9.2. nos permite rescribir esta expresión del error en la forma:
1 ⎛ M 5 ⎞ ( iv
Rf ((a,b )) = ⎜ ∑ h j ⎟·f ( ξ ) ξ ∈ ( a,b )
2880 ⎝ j =1 ⎠
( b − a ) 4 ( iv
Rf (( a,b )) = h ·f ( ξ ) ξ ∈ ( a,b )
2880
Y si la longitud de los subintervalos Ij no es constante, el error de integración
está acotado por:
( b − a ) 4 ( iv
Rf (( a,b )) ≤ h · f (ξ ) ξ ∈ ( a,b )
2880
donde se ha denotado por h a la mayor de las longitudes de los subintervalos Ij,
es decir h = max ( h j ) .
1≤ j ≤ M
NOTA:
89
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Ejercicios propuestos
3º) a) Utilizar la fórmula del trapecio compuesta para calcular el valor de:
3π / 4
∫ sen ( e xπ ) dx
0
90
Programación y Métodos Numéricos Integración numérica
b
⎡ f ( a ) + f ( b ) M −1 ⎤
∫a f ( x )dx ≈ h·⎢
2
+ ∑ f ( z j ) ⎥
⎣ j =1 ⎦
Según se dedujo en el apartado anterior, si la función f(x)que se integra es de clase
C2(([a, b]), el error de integración numérica cometido con esta fórmula puede
expresarse, mediante:
(b − a) 2
R f ((a,b)) = h f "(ξ) ξ ∈ [a,b]
12
que brevemente lo expresaremos diciendo que el error es de orden O(h2). Esto
nos indica que si el número de subintervalos considerados fuese el doble, 2M,
el error de integración se reduciría, aproximadamente, a la cuarta parte. Y si el
número de subintervalos fuese el triple (reduciendo la longitud de cada
subintervalo a la tercera parte) el error se reduciría a la novena parte. En
general, el error cometido con (k·M) subintervalos será, aproximadamente,
(1/k2) veces el error cometido con sólo M subintervalos. Ello justifica que
cuando el número de subintervalos (de la misma longitud) tienda a infinito el
valor aproximado, teóricamente23, tienda al valor exacto de la integral.
Ejemplo:
La figura siguiente recoge la evolución del error de integración numérica
cometido al aplicar la fórmula del trapecio compuesta a la estimación de la
π
23
Decimos teóricamente pues al incrementar el número de subintervalos también se
incrementa el número de operaciones y con ello, si se opera en aritmética decimal finita, el
error de redondeo.
91
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
Error
∫ e sen( x )dx
x
fórmula del trapecio compuesta con m subintervalos a
0
Ejemplo:
La figura siguiente recoge el comportamiento “errático” del error de integración
π
∫ e sen( x )dx
x
numérica cometido al aproximar con la fórmula del trapecio
0
92
Programación y Métodos Numéricos Integración numérica
Error
∫ e sen( x )dx
x
fórmula del trapecio compuesta con m subintervalos a
0
93
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
1 1 1
Vexac = ∫ f(ξ)dξ = ∫ 1·f(ξ)dξ = ∫ p1 '(ξ)·f(ξ)dξ
0 0 0
1
Vexac = p1(ξ)·f(ξ)]0 − ∫ p1(ξ)·f '(ξ)dξ
1
Sea ahora p2(ξ) cualquier polinomio de segundo grado cuya primera derivada
sea p1(ξ), es decir p2(ξ) = (½)ξ 2 + α1· ξ + α2, pudiendo elegirse, en principio, α2
arbitrariamente. Con esta notación se tiene que:
1 1
Vexac = p1(ξ)·f(ξ)]0 − ∫ p2 '(ξ)·f '(ξ)dξ = p1(ξ)·f(ξ)]0 − p2 (ξ)·f '(ξ)]0 + ∫ p2 (ξ)·f "(ξ)dξ
1 1 1
0 0
1 r 1
Vexac = ∫ f(ξ)dξ = ∑ ( −1)( j−1) ·p j (ξ)·f ( j−1(ξ)⎤⎦ + ( −1)r ∫ pr '(ξ)·f (r (ξ)dξ
1
(1)
0
0 j=1 0
elige adecuadamente. Para ello observemos que los polinomios pk(ξ) (0 < k)
que se han utilizado presentan un conjunto de constantes α1, α2, ..., αk, ... que
pueden tomar cualquier valor. Para definir de manera más concreta los
polinomios que interesan a nuestros objetivos asignaremos valor a dichas
constantes imponiendo algunas condiciones adicionales sobre los polinomios.
Concretamente impondremos que:
94
Programación y Métodos Numéricos Integración numérica
∫ p (ξ)dξ = 0
0
k (k = 1, 2, ...)
Ello nos conduce a que el primero de los polinomios de esta familia debe ser
p1(ξ) = ξ − 12 . El cálculo del segundo puede realizarse en la forma:
ξ
1
p2 ( ξ) = ∫ (z −
1/ 2
1
2 )dz + C2 =
2
(ξ − 12 )2 + C2
1 1 3
(ξ − 12 )2 (ξ − 12 )2 1 ⎛ 1⎞ −1
∫0 2 d ξ + C 2 ·1 = 0 ⇒ C 2 = − ∫0 2 dξ = − 6·2 ⎜⎝ 2 ⎟⎠ = 24
por lo que:
2
1⎛ 1⎞ 1
p2 ( ξ) = ⎜ ξ − ⎟ −
2⎝ 2 ⎠ 24
ξ
⎛1 1 ⎞ 1 1
p3 ( ξ ) = ∫ ⎜⎝ 2 (z −
1/ 2
1
2 )2 − ⎟
24 ⎠
dz + C3 = (ξ − 12 )3 −
3! 24
( ξ − 1 2 ) + C3
∫ p (ξ)dξ = 2·C
0
3 3 = 0 ⇒ C3 = 0
por lo que:
1 1
p3 ( ξ ) = (ξ − 12 )3 − (ξ − 12 )
3! 24
j=1
95
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
k β2k −1,j
p2k (ξ) = ∑ ( ξ − 12 )
2j
+ C2k
j=1 2j
que es una función par en (ξ – ½) (es decir que p2k(½+t) = p2k(½-t) ). El valor de
1
la constante se determinará de manera que ∫p
0
2k (ξ)dξ = 0 . Denotemos por
β2k −1,j
β2k,j+1 = (j = 1, ..., k) y por β2k,1 = C2k .
2j
k +1 β2k,j
p2k +1(ξ) = ∑ ( ξ − 12 )
2 j−1
+ C2k +1
j=1 2j − 1
1 k +1 β2k,j 1
∫ p2k +1(ξ)dξ = 0 ⇒ ∑ (ξ − )
2 j−1
2j − 1 ∫
1
2 dξ + C2k +1 ⇒ C2k +1 = 0
0 j=1 0
β2k,j
por lo que llamando β2k +1,j = (j = 1, ..., k+1) se podrá escribir p2k+1(ξ) en la
2j + 1
forma:
k +1
p2k +1(ξ) = ∑ β2k,j ( ξ − 12 )
2 j−1
j=1
funciones pares en (ξ – ½) para los que se verifica que p2k (0) = p2k (1) = ρ2k
mientras que los polinomios de subíndice impar son funciones impares
en (ξ – ½) para los que p2k-1(0) = -p2k+1(1) y, además para k > 1 los
polinomios de subíndice impar satisfacen que p2k-1(0) = p2k-1(1) = 0 siendo
p1(1) = -p1(0) = ½ .
96
Programación y Métodos Numéricos Integración numérica
Estos hechos nos permiten rescribir (1), para cualquier valor entero positivo del
índice k en la forma:
1 k 1
1
Vexac = ∫ f(ξ)dξ = [ f(0) + f(1)] + ∑ ρ2 j ·⎡⎣ f (2 j−1(1) − f (2 j−1(0)⎤⎦ + ∫ p2k '(ξ)·f (2k (ξ )dξ (2)
0
2 j=1 0
1
La expresión (2) proporciona el valor exacto de la integral ∫ f(ξ)dξ .
0
Si siendo m
m +1 k 1
1
∫ f(t)dt = [ f(m) + f(m + 1)] + ∑ ρ2 j·⎡⎣ f (2 j−1(m + 1) − f(m)⎤⎦ + ∫ p2k (ξ)f (2k (m + ξ)dξ
m
2 j=1 0
A su vez esta expresión puede usarse para calcular el valor de la integral de f(t)
en un intervalo [0, N] donde N es un entero positivo24. En efecto basta para ello
considerar que:
N N−1 ⎛ m +1 ⎞
∫0 f(t)dt = ∑ ⎜
m=0 ⎝ m
∫ f(t)dt ⎟
⎠
N
⎡1 1 ⎤ k
∫0 f(t)dt = ⎢2 f(0) + f(1) + ... + f(N − 1) + f(N) ⎥ + ∑ ρ2k ·⎡⎣ f (2 j−1(N) − f (2 j−1(0)⎤⎦ +
⎣ 2 ⎦ j=1
1
( )
+ ∫ p2k (ξ)· f (2k (ξ) + f (2k (1 + ξ) + ... + f (2k (N − 1 + ξ ) dξ
0
24
No insistiremos más en detallar que la función f(t) debe ser al menos de clase C2k([0, N]) para
que la expresión utilizada tenga sentido.
97
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
N
⎡1 1 ⎤ k
⎢2
⎣
f(0) + f(1) + ... + f(N − 1) +
2
f(N) ⎥ =
⎦ 0
∫ f(t)dt − ∑
j=1
ρ2k ·⎡⎣ f (2 j−1(N) − f (2 j−1(0)⎤⎦ −
( )
− ∫ p2k (ξ)· f (2k (ξ) + f (2k (1 + ξ ) + ... + f (2k (N − 1 + ξ ) dξ (3)
0
N
⎡1 1 ⎤ 1
⎢ 2 f(0) + f(1) + ... + f(N − 1) + 2 f(N)⎥ = ∫ f(t)dt − 12·[ f '(N) − f '(0)] −
⎣ ⎦ 0
1
− ∫ p2 (ξ)·( f "(ξ) + f "(1 + ξ) + ... + f "(N − 1 + ξ ) ) dξ (4)
0
Y para k = 2:
N
⎡1 1 ⎤ 1
⎢ 2 f(0) + f(1) + ... + f(N − 1) + 2 f(N)⎥ = ∫ f(t)dt − 12·[ f '(N) − f '(0)] +
⎣ ⎦ 0
1
1
+ ·[ f '''(N) − f '''(0)] − ∫ p 4 (ξ)·( f (iv (ξ) + f (iv (1 + ξ) + ... + f (iv (N − 1 + ξ ) ) dξ (5)
720 0
25
En honor a los dos matemáticos que, al parecer de forma independiente, la descubrieron y
publicaron: Leonhard Euler (Basilea (Suiza) 1707 – San Petersburgo (Rusia) 1783) quien le
comunicó en una carta de 1736 a James Stirling este proceso para calcular sumatorios
indicándole que lo había presentado anteriormente en conferencias impartidas en la Academia
de San Petersburgo, y Colin Maclaurin (Kilmodam (Escocia) 1698 –Edimburgo (Escocia)
1746) quien la publicó en 1742 en su obra “Treatise of fluxions”· si bien el propio James Stirling
había comunicado 4 años antes a Euler que Maclaurin había demostrado también dicha
fórmula.
Tanto Euler como Maclaurin obtuvieron esta fórmula no ya para el cálculo de integrales sino
para el cálculo de sumas parciales de series numéricas.
98
Programación y Métodos Numéricos Integración numérica
b M
⎡1 1 ⎤
∫a f(x)dx = h∫0 f(a + th)dt = h ⎢⎣ 2 f(a) + f(z1 ) + ... + f(zM−1 ) + 2 f(b)⎥⎦ +
1
k
⎛ M−1 (2k ⎞
+ ∑
j=1
ρ 2k ·h 2j
·⎡
⎣ f (2 j−1
(b) − f (2 j−1
(a) ⎤
⎦ + h 2k +1
·∫ p 2k ( ξ )·⎜ ∑ f (zi + ξ) ⎟ dξ
⎝ i= 0 ⎠
(6)
0
b
⎡1 1 ⎤
∫ f(x)dx = h·⎢⎣ 2 f(a) + f(z ) + f(z
a
1 2 ) + .. + f(zM−1 ) +
2
f(b)⎥ −
⎦
h2 h4
−
12
[ f '(b) − f '(a)] +
720
[ f '''(b) − f '''(a)] − ....
b
h2 h4
Vexac = ∫ f(x)dx = V0,M − [ f '(b) − f '(a)] + [ f '''(b) − f '''(a)] − ... (7)
a
12 720
99
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
b
( h 2 )2 ( h 2 )4
Vexac = ∫ f(x)dx = V0,2M − [ f '(b) − f '(a)] + [ f '''(b) − f '''(a)] − ... =
a
12 720
h2 h4
= V0,2M −
48
[ f '(b) − f '(a)] 11520 [ f '''(b) − f '''(a)] − ...
+ (8)
h2 h4
4Vexac = 4V0,2M −
12
[ f '(b) − f '(a)] +
2880
[ f '''(b) − f '''(a)] − ... (9)
⎛ 1 1 ⎞
3·Vexac = 4V0,2M − V0,M + h4 ⎜ − ⎟·[ f '''(b) − f '''(a)] + ... ⇒
⎝ 2880 720 ⎠
4V0,2M − V0,M h4
⇒ Vexac = − ·[ f '''(b) − f '''(a)] + ...
3 2880
b
La expresión anterior nos muestra que si se calcula la aproximación de ∫ f(x)dx
a
100
Programación y Métodos Numéricos Integración numérica
Ejemplo:
Consideremos la función f(x) = sen(x)(x – ½ )(x- 3 2 ). La familia de funciones
primitivas de f(x) esta dada por la expresión:
⎛5 ⎞
F(x) = cos(x)·⎜ + 2x − x 2 ⎟ + sen(x)·( 2x − 2) ) + C
⎝4 ⎠
y su integral en [0, 2] tiene el valor:
2
5
∫0 f(x)dx = 4 (cos(2) − 1) + 2sen(2) = 0.048411307967...
101
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
obtener una aproximación V2,j+1 más precisa que las anteriores. En efecto,
según se obtuvo anteriormente:
h4
Vexac = V1,1 − ·[ f '''(b) − f '''(a)] + ...
2880
por lo que, de manera análoga:
(h / 2)4
·[ f '''(b) − f '''(a)] + ...
Vexac = V1,2 −
2880
Restando a la segunda expresión multiplicada por 16 la primera expresión se
tiene que:
por lo que:
16V1,2 − V1,1
V2,2 =
15
es una aproximación de orden O(h6) más precisa que las aproximaciones V1,1
y V1,2. En general, si se utilizan las aproximaciones obtenidas con (2j-2·M),
(2j-1·M) y (2j·M) intervalos se tendrá
16V1,j − V1,j−1
V2,j = (j > 1)
15
Ejemplo:
Con la misma función f(x) = sen(x)(x – ½ )(x- 3 2 ) la tabla siguiente recoge las
aproximaciones obtenidas al utilizar 2 veces el método de Romberg,
habiéndose denotado por V2,j a las segundas aproximaciones de Romberg que
figuran en la cuarta columna:
102
Programación y Métodos Numéricos Integración numérica
Los valores anteriores puede compararse con el valor exacto para comprobar
la mejoría en la precisión que proporciona la reiteración del proceso de
Romberg26.
•
V0,0
V0,1 V1,1
V0,2 V1,2 V2,2
V0,3 V1,3 V2,3 V3,3
V0,4 V1,4 V2,4 V3,4 V4,4
... ... ... ... ... ...
donde, dado un valor de M, los valores de la primera columna V0,j se obtienen
b
se obtiene aproximando ∫ f(x)dx
a
mediante la fórmula del trapecio compuesta
4k Vk −1,j − Vk −1,j−1
Vk,j = ( k = 1, 2, ...; j = k, k+1, ...)
4k − 1
26
De hecho los tres últimos valores empeoran la aproximación obtenida para n = 128. Ello es
debido a la influencia de los errores de redondeo cometidos al operar sólo con 10 decimales.
Consúltense los apuntes sobre errores de redondeo para analizar la influencia de este tipo de
errores en los cálculos.
103
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
NOTA 1ª:
1ª) El método de Romberg permite calcular de forma precisa las integrales de
numerosas funciones con un número relativamente bajo de subintervalos (16,
32 o 64 suelen ser suficientes). No obstante debemos insistir en que para que
ello ocurra la función que se integra debe ser lo suficientemente regular sobre
el intervalo en que se integra (de clase C2k([,a, b])). Si esta regularidad no tiene
lugar el método de Romberg pierde su eficacia. Es más, si la función f(x) está
“cerca” de ser singular (es decir si en ciertas zonas algunas derivadas de f(x)
tienen valores absolutos elevados) el método también puede perder su
{V }
∞
eficiencia originando columnas de valores k ,j j =k
que, en sus primeros
Ejemplos:
( eα x − 1)
1
Evaluemos numéricamente ∫0 eα − 1 dx donde α es una constante real
positiva. El valor exacto de esta integral es:
Vexac =
1
( eα x − α x ) ⎤
=
( eα − ( α + 1))
α ( eα − 1) ⎦⎥ 0 α ( eα − 1 )
eα x − 1
La función a integrar, f(x) = α , es una función de clase C∞([0, 1]) pues su
e −1
αk
derivada derivada de orden k, f(k(x) = eα x es una función continua en el
eα − 1
intervalo [0, 1] sea cual sea el valor de k. Pero para valores suficientemente
α
elevados de α la primera derivada de esta función, f’(x) = α
eα x , puede
e −1
tomar grandes valores en torno al punto 1 (del orden de α) siendo dichos
valores pequeños para valores suficientemente alejados por la izquierda de 1
104
Programación y Métodos Numéricos Integración numérica
f(x) = (eαx-1)/(eα-1)
α=1
α = 50
α = 300
Por dicho motivo el método de Romberg pierde eficacia a medida que se elva
el valor de α en la expresión de la función f(x) a integrar. Por ejemplo, para el
valor α = 300 los primeros valores de la tabla de Romberg obtenidos con 2j
intervalos (j = 0, 1, ..., 8) son los siguientes:
j V0 , j V1, j V2 , j V3 , j V4 , j
0 0.5
1 0.25 0.1666667
2 0.125 0.0833333 0.0777778
3 0.0625 0.0416667 0.0388889 0.0382716
4 0.0312500 0.0208333 0.0194444 0.0191358 0.0018985
5 0.0156277 0.0104202 0.0097260 0.0095717 0.0094964
6 0.0079577 0.0054011 0.0050665 0.0049925 0.0049565
7 0.0047356 0.0036615 0.0035456 0.0035214 0.0035098
105
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
NOTA 2ª:
La integración mediante la regla del trapecio compuesta de funciones
periódicas sobre un intervalo que se corresponda con un número entero de
periodos no gana nada con la aplicación del método de Romberg, aun en el
caso en que la función periódica sea de clase C∞. En efecto, si se reconsidera
la expresión (6)
b
⎡1 1 ⎤
∫ f(x)dx = h ⎢⎣ 2 f(a) + f(z ) + ... + f(z
a
1 M−1 )+
2
f(b)⎥ +
⎦
1
k
⎛ M−1 ⎞
+ ∑ ρ2k ·h2 j ·⎡⎣ f (2 j−1(b) − f (2 j−1(a)⎤⎦ + h2k +1·∫ p2k (ξ)·⎜ ∑ f (2k (zi + ξ) ⎟ dξ
j=1 0 ⎝ i= 0 ⎠
106
Programación y Métodos Numéricos Integración numérica
Ejemplo:
0 10π
22
1 8π π
3
362
2 8π 8π π
45
22678
3 8π 8π 8π π
2835
5783402
4 8π 8π 8π 8π π
722925
107
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
NOTA 3ª:
Consideremos, para un determinado valor de M, la aproximación V0,0 de
b
∫ f(x)dx
a
obtenida por el método del trapecio compuesto al subdividir [a, b] en
⎡1 M−1 ⎤
V0,0 = h·⎢ (f(a) + f(b)) + ∑ f(zi )⎥
⎣2 j=1 ⎦
h ⎡1 M−1 M−1
⎛ z + zi+1 ⎞ ⎤
V0,1 = ·⎢ (f(a) + f(b)) + ∑ f(zi ) + ∑ f ⎜ i
2 ⎣2 i=1 i=0 ⎝ 2 ⎟⎠ ⎥⎦
Estas dos aproximaciones son las que se han utilizado para obtener el primer
valor “refinado” mediante el método de Romberg:
108
Programación y Métodos Numéricos Integración numérica
Ejercicio propuesto:
a) Demostrar que los valores V2,j obtenidos en el algoritmo de Romberg se
corresponden con los que se obtendrían al aproximar la integral a
calcular mediante la fórmula de Milne compuesta si se subdivide el
intervalo de integración en (2(j-2)·M) subintervalos de igual longitud.
b) Demostrar que los valores Vk,j con k>2 no se corresponden con los que
se obtendrían con fórmulas de Newton_Cotes compuestas.
NOTA 4ª:
Con la notación utilizada precedentemente, la fórmula del punto medio
compuesta utilizada con una subdivisión del intervalo de integración en los M
subintervalos [zj-1, zj] (j = 1, .., M), todos ellos de longitud h puede escribirse
como:
b
⎡ ⎛z +z ⎞ ⎛z +z ⎞ ⎛ zM −1 + zM ⎞⎤ M
⎛ z + zj ⎞
∫a f ( x )dx ≈ PM = h·⎣⎢f ⎝⎜ 0 2 1 ⎠⎟ + f ⎝⎜ 1 2 2 ⎟ + ... + f ⎜
⎠ ⎝ 2
⎟⎥
⎠⎦
= h ∑ f ⎜ j −1
j =1 ⎝ 2
⎟
⎠
Se usan en esta fórmula los puntos medios de los intervalos. Obsérvese que
estos puntos (junto a los extremos de los intervalos) eran los utilizados cuando
se calculaba V0,1. Ello nos permite ver que entre el valor PM obtenido por la
fórmula del punto medio compuesta con M subintervalos, el valor V0,0 obtenido
por la fórmula del trapecio compuesta con M subintervalos y y el valor V0,1
obtenido por la fórmula del trapecio compuesta con 2M subintervalos existe la
relación:
V0,1 = (½)·(V0,0 + PM)
b
PM = ∫ f ( x )dx + λ2·h2 + λ 4·h4 + λ 6·h6 + …+ λ2k·h2k + ....
a
109
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
NOTA 5ª:
En el software comercial la subdivisión de intervalos y el refinamiento de los
valores aproximados mediante el algoritmo de Romberg suelen realizarse de
manera adaptativa, esto es, refinando sólo en aquellas zonas en que es
necesario al no verificarse criterios de precisión impuestos por el usuario. Para
ello se realiza una primera subdivisión del intervalo de integración en N tramos
y se procede a evaluar una aproximación de la integral en cada subintervalo
(muy frecuentemente usando el método de Romberg con un bajo número (16,
32 ó 64) de subintervalos en cada tramo). Tras ello se estima el error de
integración en cada tramo (ya sea subdividiendo cada uno de ellos en 2 y
comparando los valores obtenidos con los anteriores o por otras vías que
involucran la estimación de los mayores y menores valores de las derivadas de
la función en cada tramo). En aquellos tramos en los que se haya obtenido una
precisión aceptable se dan por buenos los valores de sus respectivas
integrales. En el resto de los tramos se procede a subdividirlos y a aplicar en
cada uno de los nuevos subtramos el algoritmo de Romberg. Puede
consultarse Shampine, Allen y Pruess (1997) para obtener más detalles sobre
el software comercial.
110
Programación y Métodos Numéricos Integración numérica
BIBLIOGRAFÍA
111
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López
112
Universidad Politécnica de Madrid
x0
r1 x1
x2= x* d1
*
d1 r0
f(x)=cte.
Ultano Kindelán
Índice
1. Introducción 6
2. Notación 7
3. Funciones cuadráticas 7
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
B. Condicionamiento de un sistema 27
Índice de Figuras
5. (a) Forma cuadrática con matriz definida positiva; (b) con matriz de-
finida negativa; (c) con matriz singular (y positiva), en este caso una
lı́nea atraviesa el fondo del valle (no hay un único mı́nimo); (d) con
una matriz indefinida; como en este caso el punto crı́tico es un punto
de silla, los métodos de descenso no funcionarán correctamente. En di-
mensión superior a dos, las matrices singulares también pueden tener
puntos de silla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7. Dibujo de las dos primeras iteraciones del método del gradiente sobre
t
las curvas de nivel de la función f (x) = 12 xt Ax − b x. . . . . . . . . . . . 17
8. Dibujo de las dos primeras iteraciones del método del gradiente conju-
t
gado sobre las curvas de nivel de la función f (x) = 12 xt Ax − b x. En
dos iteraciones se alcanza la solución exacta del sistema Ax = b. . . . . . 18
Índice de Algoritmos
1. Introducción
El método del gradiente conjugado es el método iterativo más utilizado para resolver
grandes sistemas lineales de ecuaciones∗ . El método del gradiente conjugado es efectivo
para sistemas de la forma
Ax = b, (1)
en donde x es un vector desconocido, b es un vector conocido y A es una matriz cuadrada
simétrica y definida positiva† también conocida. Estos sistemas de ecuaciones aparecen en
la aplicación de técnicas numéricas de gran importancia como por ejemplo los métodos de
diferencias finitas o elementos finitos para resolver ecuaciones diferenciales en derivadas
parciales. También surgen en la resolución de problemas de ingenierı́a importantes como
el análisis estructural o la teorı́a de circuitos.
2. Notación
En este capı́tulo se utilizarán letras latinas mayúsculas para designar matrices. Los vectores
se denotarán con una raya encima y generalmente se utilizarán letras latinas minúsculas.
Los escalares (números reales) se representarán mediante letras griegas minúsculas, salvo
en el caso de las componentes de un vector (letra del vector con un subı́ndice) o los
coeficientes de una matriz (letra de la matriz en minúscula con dos subı́ndices que indican
su posición en la matriz). De este modo la ecuación (1) desarrollada serı́a:
a11 a12 . . . a1n x1 b1
a21 a22 . . . a2n x2 b2
.. .. .. .. .. = ..
. . . . . .
an1 an2 . . . ann xn bn
(x1 )t = (x11 , . . . , x1n ), (x2 )t = (x21 , . . . , x2n ) ... (xp )t = (xp1 , . . . , xpn ).
se dice que es una matriz definida positiva. Si además es simétrica se dirá que es una
matriz simétrica definida positiva.
3. Funciones cuadráticas
A lo largo de estos apuntes se ilustrarán algunos de los conceptos que vayan surgiendo con
el siguiente ejemplo:
µ ¶ µ ¶
3 −2 4
A= , b= , c = 0. (4)
−2 4 8
10
6
x2
4 –2x1+4x2=8
2
3x1–2x2=4
–2 0 2 4 6 8
x1
–2
–4
∇f (x) = Ax − b. (8)
Igualando el gradiente a cero se recupera el sistema (1). De este modo la solución del
sistema Ax = b, que en lo sucesivo se denominará x∗ , es un punto crı́tico de f (x). Si la
matriz A, además de ser simétrica, es definida positiva, entonces la solución del sistema
Ax = b es un mı́nimo de f ; esto se puede demostrar fácilmente estudiando el valor de f
en un punto distinto de x∗ , p.e. x∗ + e: si se supone que A es simétrica (definida positiva
3. Funciones cuadráticas 9
60
40
f(x) 20
–20
0 0
2 2
4 4
6 6
88
x2 x1
Figura 2: Gráfica de la forma cuadrática (5). El punto en donde esta función alcanza su
valor mı́nimo es la solución de Ax = b.
x2 4
0 2 4 6 8
x1
Figura 3: Curvas de nivel de la forma cuadrática (5). A cada elipse le corresponde un valor
constante de f
3. Funciones cuadráticas 10
10
6
y
–2 2 4 6 8
x
–2
o no) se verifica, partiendo de (3), que f (x∗ + e) = f (x∗ ) + (1/2)et Ae. Si además A es
definida positiva se deduce que el segundo sumando del segundo miembro de la ecuación
anterior es siempre positivo, alcanzándose, por tanto, un mı́nimo global de f § en x∗ .
A puede ser definida negativa, en este caso la función f serı́a un paraboloide abierto
hacia abajo, alcanzarı́a un máximo absoluto y a partir del punto en el que se alcanzase
el máximo la función decrecerı́a en todas las direcciones.
A puede ser una matriz singular en cuyo caso la solución de (1), de existir, no serı́a
única: existirı́an infinitos puntos crı́ticos formando una recta o un plano dependiendo
del rango de A.
En los casos en los que A no es definida ni singular, será una matriz indefinida. En
estos casos el punto x∗ será un “punto silla” y tanto el método del gradiente como
el método del gradiente conjugado fallarán.
La figura 5 muestra los casos que se acaban de mencionar. Los valores de b y c determinan
el lugar en que se encuentra el mı́nimo de f pero no afectan a la forma de la superficie
definida por f .
§
También se puede demostrar comprobando que la matriz Hessiana de f es constante e igual a A; para
ello basta con derivar parcialmente las n componentes del gradiente respecto a las n variables x1 , . . . , xn .
4. El método del gradiente 11
(a) (b)
2 0
1.5 –0.5
f(x) 1 f(x) –1
0.5 –1.5
0 –2
–1 –1 –1 –1
0 0 0 0
x2 x1 x2 x1
0.5 0.5 0.5 0.5
1 1 1 1
(c) (d)
2 1
1.5 0.5
f(x) 1 f(x) 0
0.5 –0.5
0 –1
–1 –1 –1 –1
–0.5 –0.5 –0.5 –0.5
0 0 0 0
x2 x1 x2 x1
0.5 0.5 0.5 0.5
1 1 1 1
Figura 5: (a) Forma cuadrática con matriz definida positiva; (b) con matriz definida ne-
gativa; (c) con matriz singular (y positiva), en este caso una lı́nea atraviesa el fondo del
valle (no hay un único mı́nimo); (d) con una matriz indefinida; como en este caso el punto
crı́tico es un punto de silla, los métodos de descenso no funcionarán correctamente. En
dimensión superior a dos, las matrices singulares también pueden tener puntos de silla.
En cada iteración se elige la dirección para la que f decrece más rápidamente, que es la
dirección contraria a ∇f (xi ). De acuerdo con la ecuación (8), esta dirección es −∇f (xi ) =
b − Axi .
A continuación se van a dar dos definiciones que serán de utilidad en el resto de los
apartados de estos apuntes. El error ei = xi − x∗ es un vector que indica lo alejado que
se está de la solución. El residuo ri = b − Axi es otro vector que indica cuan lejos está el
vector Ax del vector b. Es fácil comprobar que ri = −Aei , por lo que se debe pensar en
el residuo como el error transformado por −A. Más importante, ri = −∇f (xi ), y por lo
tanto también se debe pensar en el residuo como la dirección de máximo descenso.
Supóngase que en el ejemplo dado en (4) se comienza a iterar en x0 = (3, −1)t . El primer
paso, a lo largo de la dirección de máximo descenso, llegará hasta algún punto de la lı́nea
continua de la figura 6(a). Dicho de otra manera, se escogerá el punto
x1 = x0 + ρ0 r0 . (9)
4. El método del gradiente 12
La pregunta que hay que hacer para calcular ρ0 es: ¿de qué tamaño se dará el paso en
la iteración 1? Para contestar a esta pregunta, supondremos que en cada iteración se
realizará una búsqueda lineal a lo largo de la dirección de descenso correspondiente (en el
caso del método del gradiente en la dirección contraria al gradiente):
Una búsqueda lineal es un procedimiento que busca un ρ0 que minimice ρ a lo largo de una
lı́nea. En la figura 6 se muestra el procedimiento: nos restringimos a buscar un punto en la
curva (la parábola que se muestra en la figura 6(c)) intersección del plano vertical con el
paraboloide, por lo que se trata de resolver un problema de optimización unidimensional:
hallar ρ tal que
d
f (x0 + ρr0 ) = 0. (11)
dρ
Al derivar se obtiene:
µ ¶
d d 1 0 t 0
f (x0 + ρr0 ) = 0 t 0 0 0
(x + ρr ) A(x + ρr ) − b (x + ρr ) + c =
dρ dρ 2 (12)
0 t 0 0 t 0 t 0
ρ(r ) Ar + (r ) Ax − b r = 0.
De donde se deduce:
(b − Ax0 )t r0 (r0 )t r0
ρ0 = = . (13)
(r0 )t Ar0 (r0 )t Ar0
Una vez conocidos la dirección de descenso (r0 ) y ρ0 , se calcula x1 mediante (9). Después
de obtener x1 se calcula x2 de idéntica manera:
x2 = x1 + ρ1 r1 ,
en donde ρ1 se calcula igual que ρ0 . El proceso seguirı́a de forma iterativa calculando los
sucesivos valores aproximados de la solución de Ax = b:
x1 = x0 + ρ0 r0
x2 = x1 + ρ1 r1
x3 = x2 + ρ2 r2
..
.
xi = xi−1 + ρi−1 ri−1
xi+1 = xi + ρi ri ,
..
.
o, en forma abreviada:
xi+1 = xi + ρi ri , i = 0, . . . (14)
4. El método del gradiente 13
8
(a) (b)
150
6
100
x2 4
x* 50
0
2
10
8
6
–2 0 2 4 6 8 4
x1
x2 2
10
x0 0 6
8
4
–2 2
–2 0 x1
(c) 8
(d)
140
120
6
100
80 x2 4
f(x0+rho*r0) x*
60
2 x1
40
20
–2 0 2 4 6 8
Figura 6: El método del gradiente: (a) Se comienza en el punto (3, −1)t y se realiza la
primera iteración siguiendo la dirección de máximo descenso. (b) Hay que encontrar el
punto de lR2 en el que la curva (parábola) intersección de las dos superficies alcanza su
mı́nimo absoluto. (c) La parábola intersección de las dos superficies. (d) El gradiente en
el punto donde se alcanza el mı́nimo es ortogonal al gradiente en el punto obtenido en la
iteración anterior.
con:
Para definir de forma completa el esquema iterativo anterior hace falta determinar cuándo
se para de iterar (hasta que valor de i se llega). Para ello hay que estimar el error cometido
en cada iteración. Se citan a continuación dos formas de estimar el error en la iteración i:
1. La norma del residuo, ||ri ||. Como se ha explicado más arriba ri = −Aei , lo cual
implica que si ri = 0 entonces ei = 0 (siempre y cuando A sea una matriz no
singular). En consecuencia cuanto más pequeño sea ||ri || más cerca se estará de la
solución.
A partir del esquema iterativo anterior se puede construir un algoritmo para resolver un
sistema lineal de ecuaciones por el método del gradiente:
Leer A, b, x0 , maxiter, ²
i ← 0, tol ← 2²
mientras i < maxiter y tol > ² hacer
ri ← b −i Ax i
(r )t ri
ρi ← (ri )t Ari
xi+1 ← xi + ρi ri
tol ← ||ri ||
i←i+1
fin mientras
el algoritmo del gradiente. Observando la tabla se comprueba que las dos operaciones que
determinan el “costo” de cada una de las iteraciones del método del gradiente son Axi y
Ari . La primera se puede evitar si tenemos en cuenta que:
ri = b − Axi = b − A(xi−1 + ρi−1 ri−1 ) = b − Axi−1 − ρi−1 Ari−1 = ri−1 − ρi−1 Ari−1 . (15)
Por lo tanto, salvo en la iteración inicial, no es necesario calcular el producto Axi ; basta
con calcular Ari y utilizarlo en la siguiente iteración.
Salvo que por algún motivo se quiera tener almacenadas las evoluciones del residuo y de la
sucesión de vectores {xi }, es siempre el algoritmo 3, en la práctica, el que se implementa,
debido al ahorro de memoria que supone respecto al anterior.
† n3
El método de Cholesky necesita 3
iteraciones en cada iteración.
5. El método del gradiente conjugado 16
5.1. Introducción
Para estimar el error se seguirá utilizando la norma del residuo: tol ← ||ri ||. Por consi-
guiente para definir un nuevo método de descenso será necesario determinar cuál es la
i
dirección de descenso (d ) en cada iteración.
Supóngase que se utiliza el método del gradiente para resolver un sistema de dos ecuaciones
con dos incógnitas: Ax = b (A ∈ M2 (lR), simétrica y definida positiva). La representación
5. El método del gradiente conjugado 17
x0
r1 x2 x1
x*
r0
f(x)=cte.
Figura 7: Dibujo de las dos primeras iteraciones del método del gradiente sobre las curvas
t
de nivel de la función f (x) = 12 xt Ax − b x.
geométrica de las dos primeras iteraciones del método del gradiente aparece en la figura
7.
Nos podrı́amos plantear modificar el método del gradiente eligiendo una dirección de
descenso distinta al gradiente en la segunda iteración: la dirección que une x1 con la
solución exacta x∗ . En este caso tendrı́amos un método que obtiene (si se trabaja con
aritmética exacta) la solución exacta en dos iteraciones (ver la figura 8). El problema es
cómo determinar esta nueva dirección sin conocer la solución exacta del sistema. Para
1
resolver el problema llamaremos d∗ al vector que une x1 con x∗ :
1 0
d∗ = x∗ − x1 = x∗ − x0 − ρ0 d .
0 0
En donde se ha denominado d a la primera dirección de descenso, d = r0 .
0 1
Proposición 5.1. Los vectores d y d∗ son conjugados respecto a la matriz A.
0 1
Demostración. Basta con comprobar que (d )t Ad∗ = 0:
b
³ ´ z}|{
0 1 0 0 0 0 0 0 0 0
(d )t Ad∗ = (d )t A x∗ − x0 − ρ0 d = (d )t |Ax∗ {z
− Ax}0 − ρ0 Ad = d ·d −ρ0 (d )t Ad =
0
d
0
0 0 r0 · d 0 t 0 0 0 0 0
d ·d − 0 0 (d ) Ad = d · d − d · d = 0. ¤
(d )t Ad
5. El método del gradiente conjugado 18
x0
r1 x1
x2= x* d1
*
d1 r0
f(x)=cte.
Figura 8: Dibujo de las dos primeras iteraciones del método del gradiente conjugado sobre
t
las curvas de nivel de la función f (x) = 21 xt Ax − b x. En dos iteraciones se alcanza la
solución exacta del sistema Ax = b.
1 0
Por otro lado d∗ se puede expresar como combinación lineal de r1 y d § :
1 0
d∗ = β 1 r1 + β 2 d .
1
No es preciso obtener el vector d∗ , basta con determinar cuál es su dirección, para ello se
realiza lo siguiente:
1 1 1 β 0 0
d = d = r 1 + 2 d = r 1 + α0 d . (17)
β1 ∗ β1
En donde α0 se puede obtener fácilmente a partir de la proposición 5.1:
0
0 1 0 0 (d )t Ar1
(d )t Ad = (d )t A(r1 + α0 d ) = 0 ⇒ α0 = − 0 0. (18)
(d )t Ad
Por lo tanto se tiene expresada la dirección que pasa por x1 y x∗ en función de datos que
se han calculado en la primera iteración. En vista de todo lo anterior se puede diseñar un
nuevo método para resolver un sistema de dos ecuaciones y dos incógnitas (el método del
gradiente conjugado):
§ t 0
Si f (x) = 12 xt Ax − b x entonces r1 = −∇f (x1 ) y d = r0 = −∇f (x0 ) son ortogonales y por lo tanto
linealmente independientes
5. El método del gradiente conjugado 19
Esquema iterativo para resolver un sistema de dos ecuaciones con dos incógnitas
(Ax = b) mediante el método del gradiente conjugado
0
d = r0 = b − Ax0
0
r0 · d
ρ0 = 0 0
(d )t Ad
0
x1 = x0 + ρ0 d
r1 = b − Ax1
0
(d )t Ar1
α0 = − 0 0
(d )t Ad
1
d = r 1 + α0 r 0
1
r1 · d
ρ1 = 1 1
(d )t Ad
1
Solución exacta → x2 = x1 + ρ1 d
con
i−1 t
(d ) Ari
αi−1 = − i−1 t i−1
(d ) Ad
Por lo tanto el esquema iterativo será:
0
d = r0 = b − Ax0
0
r0 · d
ρ0 = 0 0
(d )t Ad
0
x1 = x0 + ρ0 d
r1 = b − Ax1
0
(d )t Ar1
α0 = − 0 0
(d )t Ad
1
d = r 1 + α0 r 0
..
.
5. El método del gradiente conjugado 20
i
ri · d
ρi = i i
(d )t Ad
i
xi+1 = xi + ρi d
ri+1 = b − Axi+1
i
(d )t Ari+1
αi = − i i
(d )t Ad
i+1 i
d = ri+1 + αi d
..
.
En principio nada asegura que el método anterior converja hacia la solución del sistema
Ax = b. En la siguiente sección se demostrará no solamente que el esquema anterior
converge hacia la solución de Ax = b, sino que obtiene la solución exacta en menos de n
iteraciones si la dimensión de A es n y se utiliza aritmética exacta en los cálculos.
En esta sección se supondrá que se está resolviendo mediante el método del gradiente
conjugado el sistema Ax = b de n ecuaciones con n incógnitas con matriz de coeficientes
simétrica y definida positiva.
Proposición 5.2. Cada dirección de descenso del método del gradiente conjugado es con-
jugada, respecto a la matriz A, con todas las direcciones de descenso calculadas anterior-
mente:
i j
(d )t Ad = 0, 0 ≤ j < i. (20)
1. j = i − 1
i−1
i−1 i−1 i−1 i−1 ri−1 · d i−1 t i−1
d · ri = d · (ri−1 − ρi−1 Ad )=d · ri−1 − i−1 i−1
(d ) Ad =
(d )t Ad
i−1 i−1
d · ri−1 − d · ri−1 = 0.
i−1
En donde se ha utilizado la propiedad ri = ri−1 − ρi−1 Ad , propiedad que es
fácil de demostrar sin más que repetir la “cuenta” realizada en (15) utilizando como
i−1
dirección de descenso d en vez de ri−1 .
5. El método del gradiente conjugado 21
2. j < i − 1
Proposición 5.5.
i
ri · d = ri · ri .
Demostración.
prop. 5.3
i i i i i−1 z}|{
r · d = r · (r + αi−1 d ) = ri · ri . ¤
Proposición 5.6.
ri · rj = 0 0 ≤ j < i.
j j−1
Demostración. En la iteración j del gradiente conjugado se verifica d = rj + αj−1 d ,
si se despeja rj de la expresión anterior se obtiene:
j j−1
rj = d − αj−1 d
0 j
y por lo tanto rj ∈ Vj+1 = hd , . . . , d i. Como por otro lado (proposición 5.3) ri es
ortogonal a Vj+1 entonces ri · rj = 0. ¤
A partir del esquema del método del gradiente conjugado para el caso de dimensión n
es fácil diseñar un algoritmo que resuelva el sistema Ax = b en donde A es una matriz
cuadrada de dimensión n simétrica y definida positiva:
∗
Esta proposición implica que el método del gradiente conjugado, en teorı́a, es un método directo. En
la práctica no es ası́ debido a los errores de redondeo y a que el método se parará en una iteración muy
inferior a la iteración n.
5. El método del gradiente conjugado 22
Leer A, b, x0 , maxiter, ²
i ← 0, r0 ← b − Ax0 , tol ← ||r0 ||
mientras i < maxiter y tol > ² hacer
i
(ri )t d
ρi ← i i
(d )t Ad
i
xi+1 ← xi + ρi d
ri+1 ← b − Axi+1
i+1 t i
αi ← − (r i t) Adi
(d ) Ad
i+1 i
d ← ri+1 + αi d
tol ← ||ri+1 ||
i←i+1
fin mientras
El número de operaciones en cada iteración del algoritmo anterior es: 8n2 + 11n − 1.
El problema, al igual que en el caso del gradiente, son los productos matriz por vector.
Utilizando las propiedades que se han demostrado en el apartado anterior se va a modificar
el algoritmo para conseguir que en cada iteración solamente haya que realizar un producto
matriz vector.
i
En donde ri+1 · ri = 0 por la proposición 5.6, d · ri+1 = 0 por la proposición 5.3 y
i
d · ri = ri · ri por la proposición 5.5.
2. Modificación del término
ri+1 = b − Axi+1 . (22)
i
De la igualdad (15) y tomando como dirección de descenso d en vez de ri se obtiene:
i
ri+1 = ri − ρi Ad . (23)
Por lo tanto para calcular αi ya no es necesario realizar ningún producto matriz vector y
i
para calcular ri+1 y ρi basta con un solo producto matriz vector (Ad ) que es el mismo en
ambos casos. Estas modificaciones permiten construir un nuevo algoritmo del gradiente
conjugado (algoritmo 6).
Leer A, b, x, maxiter, ²
i ← 0, r ← b − Ax, d ← r,tol ← ||r||, β ← rt r
mientras i < maxiter y tol > ² hacer
z ← Ad
ρ ← iβ t
(d ) z
x ← x + ρd
r ← r − ρz
γ←β
β ← rt r
α ← − βγ
d ← r + αd
tol ← ||r||
i←i+1
fin mientras
En este algoritmo se realiza un solo producto matriz por vector, siendo el número de
operaciones total 2n2 + 11n. Por lo tanto el número de operaciones por iteración es, al
igual que en el método del gradiente, aproximadamente igual (para n grande) a 2n2 . Sin
embargo a la hora de escoger entre los dos métodos, siempre se deberá escoger el del
gradiente conjugado puesto que el número de iteraciones necesarias para alcanzar una
reducción del error dada (velocidad de convergencia) es mucho más pequeño en el
método del gradiente conjugado que en el método del gradiente. La estimación de la
velocidad de convergencia es una tarea complicada para ambos métodos, tarea que queda
fuera de los objetivos de estos apuntes. Se aconseja consultar [1], [2], [7] y [8] para estudiar
como se obtienen las expresiones de la velocidad de convergencia que se dan a continuación
para ambos métodos:
n2
cond(A) ≤ ¡ ¡ 2 ¢¢2 .
9 ln α
Cada dirección de descenso del método del gradiente conjugado es conjugada, respecto a
la matriz A, con todas las direcciones de descenso calculadas anteriormente:
i j
(d )t Ad = 0, 0 ≤ j < i. (26)
a) Se sabe que
i i−1
d = ri + αi−1 d i = 1, 2, 3 . . . , (28)
0
con d = r0 .
i
b) Para el caso j = i − 1 es fácil comprobar, utilizando (28) para expresar d en
i−1
función de d y ri , que
i i−1 i−1 i−1 t i−1
(d )t Ad = (ri )t Ad + αi−1 (d ) Ad = 0.
c) Para el resto de los casos (j < i − 1) se deduce, volviendo a utilizar (28), que:
i j j i−1 t j
(d )t Ad = (ri )t Ad + αi−1 (d ) Ad 0 ≤ j < i − 1. (29)
El segundo sumando de la derecha de (29) es nulo por (27), queda, por tanto,
j
demostrar que (ri )t Ad = 0 para j < i − 1. Para esta última tarea será conve-
niente definir el siguiente subespacio:
D E
0 1 j
Vj+1 = d , d , . . . , d .
j
Por otro lado en la iteración j del gradiente conjugado se verifica d = rj +
j−1
αj−1 d , si se despeja rj de la expresión anterior se obtiene:
j j−1
rj = d − αj−1 d
0 j
y por lo tanto rj ∈ Vj+1 = hd , . . . , d i por ser rj combinación lineal de dos
vectores de de Vj+1 . Esto es cierto para todo j < i − 1, por lo tanto:
D E ®
0 1 j
Vj+1 = d , d , . . . , d = r0 , r1 , . . . , rj .
A. Demostración de la conjugación de las direcciones de descenso 26
j
Despejando de la igualdad (23) (rj+1 = rj − ρj Ad ) se obtiene:
j rj − rj+1
Ad =
ρj
En consecuencia:
j ® D 0 1 j j+1
E
Ad ∈ Vj+2 = r0 , r1 , . . . , rj , rj+1 = d , d , . . . , d , d ,
j <i−1
j j i−1
r|i−1{z· d} − ρi−1 (d )t Ad = 0,
| {z }
0 0
∗
Obsérvese que esta es la proposición 5.3 que ya se ha demostrado en el apartado 5, pero entonces se
hizo la demostración suponiendo que la proposición 5.2 era cierta, cosa que no se puede hacer ahora.
B. Condicionamiento de un sistema 27
B. Condicionamiento de un sistema
0,1 3,0 3,0 4,0 x 10,1
0,4 12,2 20,1 26,1 y
= 58,8
0,1 3,1 7,0 9,0 z 19,2
0,2 6,1 10,1 13,0 t 29,4
0
0,1 3,0 3,0 4,0 x 10,095
0,4 12,2 20,1 26,1 y 0
= 58,805
0,1 3,1 7,0 9,0 z 0 19,195
0,2 6,1 10,1 13,0 t0 29,395
00
0,100 3,005 3,000 4,000 x 10,1
0,400 12,200 20,100 26,100 y 00
= 58,8
0,100 3,100 6,995 9,000 z 00 19,2
0,200 6,100 10,100 12,995 t00 29,4
Es evidente que sistemas de este tipo serán indeseables ya que, en general, los datos (matriz
de coeficientes y vector de segundos miembros) procederán de cálculos previos realizados
con ordenador y estarán sometidos a errores de redondeo, o procederán de medidas toma-
das con el correspondiente error. Además, resolver un sistema como el precedente suele
acarrear más iteraciones que resolver uno al que no le ocurra esto.
¾
Ax = b
⇒ Aδx = δb ⇒ δx = A−1 δb
A (x + δx) = b + δb
° ° ¾ ° °
°b° ≤ kAk kxk kδxk ¡ ° −1 °¢ °δb°
° °° ° ⇒ ≤ kAk °A ° ° °
kδxk = °A−1 ° °δb° kxk °b°
kδxk ¡ ° °¢ kδAk
≤ kAk °A−1 °
kx + δxk kAk
1. cond (A) ≥ 1
¡ ¢
2. cond A−1 = cond (A)
Además, en el caso de usar k·k2 , pueden demostrarse las dos propiedades siguientes:
|λM |
cond2 (A) =
|λm |
µ ¶1/2
|λM |
cond2 (A) =
|λm |
¡ ¢
cond M −1 A < cond (A)
Como el condicionamiento de una matriz unidad es 1, cualquiera que sea la norma elegida,
en principio, lo más conveniente serı́a tomar M de tal modo que M −1 A = I, es decir,
B. Condicionamiento de un sistema 29
M = A, aunque esta elección tiene escaso interés práctico, pues equivale a resolver el
sistema:
Ax = b ; M −1 Ax = M −1 b
Si M = A ⇒ A−1 Ax = A−1 b ⇒ x = A−1 b
No obstante, esta idea nos proporciona una pista de cómo actuar: buscar matrices de
precondicionamiento “parecidas” a la matriz del sistema y fáciles de invertir. Un ejemplo
clásico es el precondicionamiento diagonal que consiste en utilizar como matriz de precon-
dicionamiento una matriz diagonal cuyos elementos no nulos coincidan con los elementos
diagonales de A. Este precondicionamiento es muy económico desde el punto de vista
computacional, pues:
a11 a12 . . . a1n a11 0 . . . 0
a21 a22 . . . a2n 0 a22 . . . 0
A= .. .. .. , M = .. .. .. ,
. . . . . .
an1 an2 . . . ann 0 0 . . . ann
1/a11 0 ... 0
0 1/a22 . . . 0
M −1 = . .. ..
. . . .
0 0 . . . 1/ann
Sin embargo, hay que tomar algunas precauciones a la hora de precondicionar un sistema.
La más importante es tener en cuenta que se puede destruir la estructura de la matriz del
sistema. Por ejemplo, si la matriz A es simétrica, la matriz M −1 A no tiene por qué serlo,
o si la matriz A es definida positiva, la matriz M −1 A puede no serlo. En particular, si
se trabajo con métodos de resolución de tipo gradiente se prefiere precondicionar de la
siguiente manera:
−1
Ax = b ⇒ M
| AM −1} |{z}
{z Mx = M −1
| {z }b ⇒ Py = c
P y c
El estudio de otros precondicionadores más sofisticados cae fuera del objetivo de estas
notas y, en este sentido, nos limitaremos a comentar que entre los más populares están
los basados en la descomposición LU de la matriz A. En la idea de utilizar matrices de
precondicionamiento “parecidas” a la matriz del sistema, este tipo de precondicionadores
trabajan, en lugar de con la descomposición A = LU exacta, con una descomposición
aproximada, de tal forma que A = L0 U 0 + R y utilizan como matriz de precondicinamiento
M = L0 U 0 . Los precondicionadores de este tipo, denominados LU incompletos (ILU),
son particularmente efectivos en el caso, muy frecuente en la práctica, de que la matriz
A tenga muchos elementos nulos, es decir, sea una matriz hueca. En este caso, se suele
tomar una matriz L0 con el mismo patrón de huecos que la parte triangular inferior de la
matriz A.
BIBLIOGRAFÍA 30
Bibliografı́a
[1] O. Axelsson. Iterative Solution Methods. Ed. Cambridge University Press, 1996.
[2] O. Axelsson, V.A. Barker. Finite Element Solution of Boundary Value Problems.
Theory and Computations. Ed. Academic Press, 1984.
[3] R. L. Burden y J. D. Faires. Métodos Numéricos (3a Edición). Ed. Thomson, 2004.
[4] C. Conde y G. Winter. Métodos y algoritmos básicos del álgebra numérica. Ed. Re-
verté, 1989.
[8] J.R. Shewchuk. An Introduction to the Conjugate Gradient Method Without the
Agonizing Pain. School of Computer Science. Carnegie Mellon University, 1994.
Métodos numéricos de resolución de
ecuaciones no lineales
1. Introducción 5
1.1. Motivación y generalidades . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Conceptos previos . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3
ÍNDICE
5. Bibliografı́a 119
4
CAPÍTULO 1
Introducción
2697,55
log(PC06 ) = 15,8737 −
T − 48,784
3127,60
log(PC08 ) = 15,9798 −
T − 63,633
P10 P0
y1 = .x1 = 1
P 2·P
0
P P0
y2 = 2 .x2 = 2
P 2·P
5
Introducción
P10 P0
y1 + y2 = 1 ⇔ + 2 =1
2·P 2·P
2697,55 3127,60
e15,8737− T −48,784 e15,9798− T −63,633
f (T ) = + −1=0
3040 3040
cuya solución, en modo alguno evidente, se obtendrá más adelante.
Ejemplo 1.2. (Cortesı́a del Pr. B. Coto): Según el modelo de Wilson las expre-
siones de los coeficientes de actividad a dilución infinita (γi∞ ) de una mezcla
binaria están dadas por las expresiones:
donde Λ12 y Λ21 son los parámetros binarios de la mezcla. Se desea saber con el
modelo de Wilson el valor de los parámetros binarios en los dos casos siguientes:
a) En el caso de una mezcla binaria ideal en la que los coeficientes de actividad
a dilución infinita son γ1∞ = γ2∞ = 1,091.
b) En una mezcla de agua y etanol para la cual γ1∞ = 7,20 y γ2∞ = 2,74.
Rogamos un poco de paciencia al lector y que nos permita mantener el suspense
durante unas pocas páginas más, al final de las cuales le será revelada la solución
de este ejercicio.
6
Motivación y generalidades
Una segunda diferencia es la debida al hecho de que un sistema lineal que admita
solución única puede ser resuelto de forma exacta mediante un número finito de
operaciones (recuérdense los métodos directos de resolución de sistemas lineales
de ecuaciones (Gauss, LU, Choleski, Crout, QR, etc...)). En el caso de los sitemas
no lineales, en general, la solución no podrá ser encontrada mediante un número
finito de operaciones. En este sentido, los métodos de resolución de sistemas de
ecuaciones no lineales serán métodos de tipo iterativo mediante los cuales se
construirá una sucesión de vectores que, en los casos en que el método funcione,
se irán aproximando hacia uno de los vectores solución del sistema no lineal.
Nota 1.1. Interprétese correctamente lo que se acaba de leer. No quiere ello decir
que ninguna ecuación no lineal pueda resolverse de forma directa. Ahı́ están las
ecuaciones de segundo grado que, siendo no lineales, pueden resolverse de forma
exacta mediante un número finito de operaciones. O si se buscan las soluciones de
la ecuación: (x − 1)10 = 0 también es obvio que estas son x = 1 (con multiplicidad
10). Lo que se está diciendo es que no hay, por ejemplo, ningún método directo
que nos permita calcular las raı́ces de cualquier polinomio de grado 10.
7
Introducción
Puesto que, como se acaba de señalar, los métodos que abordaremos serán de
tipo iterativo y en ellos se generará una sucesión de vectores que, en el mejor
de los casos, se vayan aproximando hacia un vector solución, conviene comenzar
recordando algunos conceptos sobre sucesiones. En este sentido, en primer lugar,
nos ubicaremos en conjuntos sobre los que se haya definido una forma de medir
la distancia entre sus elementos (esto es en un espacio métrico (E, d)). En este
espacio métrico comenzamos recordando la siguiente definición:
Definición 1.1. Dada una sucesión infinita de elementos {xi }∞ i=1 del espacio
métrico (E, d) se dice que la sucesión es convergente hacia el elemento x∗ ∈E,
si para cualquier valor ε > 0 siempre se puede encontrar un número natural N tal
que para todo ı́ndice n > N se verifica que d(xn , x∗ ) < ε. Al elemento x∗ anterior
se le denomina, si existe, lı́mite de la sucesión {xi }∞
i=1 .
Definición 1.2. Dada una sucesión infinita de elementos {xi }∞ i=1 del espacio
métrico (E, d) se dice que la sucesión es una sucesión de Cauchy, si para
cualquier valor ε > 0 siempre se puede encontrar un número natural N tal que
para todo par de ı́ndices n > N y m > N se verifica que d(xn , xm ) < ε.
8
Conceptos previos
( n
)∞
X 1
xn =
i=0
i!
n=1
es una sucesión de Cauchy. En efecto se tiene que, dados tres números naturales
N , n y m tales que N < n < m:
n m n ∞ N
X 1 X 1 X 1 X 1 X 1
d(xn , xm ) = − = ≤ =e−
i=1
i! i=1 i! i=n+1 i! i=N +1 i! i=1
i!
1 1 1 1
df (xn , xm ) = − ≤ + ≤
n + 1 m + 1 n + 1 m + 1
1 1
≤ + = 2
N +1 N + 1 N + 1
2
por lo que dado cualquier valor de ε bastará con tomar N > ε
− 1 para que
df (xn , xm ) sea inferior a ε.
9
Introducción
n
X
d1 (x, y) = |xi − yi |
i=0
v
u n
uX
d2 (x, y) = t |xi − yi |2
i=0
Los espacios métricos (IRn , d1 ), (IRn , d2 ) y (IRn , d∞ ) son espacios métricos comple-
tos. Y siendo C un conjunto cerrado de IRn los espacios métricos (C, d1 ), (C, d2 )
y (C, d∞ ) son también espacios métricos completos.
i) ||x|| = 0 ⇔ x = 0
ii) ||λ.x|| = |λ|.||x||, ∀λ ∈ K, ∀x ∈ E
iii) ||x + y|| ≤ ||x|| + ||y||, ∀x, y ∈ E
10
Conceptos previos
v
n
X
u n
uX
||x||1 = |xi | , ||x||2 = t x2i , kxk∞ = máx (|xi |)
1≤i≤n
i=1 i=1
Definición 1.5. Siendo ||.|| y ||.||′ dos normas definidas sobre un mismo espacio
vectorial E, se dice que ambas normas son equivalentes si existen dos constantes
k1 y k2 tales que se verifica:
Ejemplo 1.8. Si n es finito las normas sobre IRn introducidas en el ejemplo anterior
son equivalentes. Es más, si la dimensión del espacio vectorial E es finita, todas
las normas vectoriales sobre él definidas son equivalentes.
En un espacio vectorial normado (E, ||.||) podrı́an definirse muy diferentes distan-
cias. Entre todas ellas es habitual trabajar con la distancia que induce la norma
vectorial. Esta, de forma más precisa, se puede definir como sigue:
Demostración.
d (x, x) = kx − xk = 0
∀x, y ∈ E / x 6= y : d (x, y) = kx − yk > 0
∀x, y ∈ E : d (x, y) = kx − yk = ky − xk = d (y, x)
∀x, y, z ∈ E : d (x, y) = kx − yk 6 kx − zk + kz − yk = d (x, z) + d (z, y)
Ejemplo 1.9. A las normas ||.||1 , ||.||2 y ||.||∞ antes definidas se les asocian res-
pectivamente las distancias d1 , d2 y d∞ consideradas en ejemplos precedentes.
11
Introducción
Nota 1.3. El que dos normas sean equivalentes no quiere decir que al aplicarlas
a un mismo vector tomen el mismo valor pero sı́ que nos indica que si una de
ellas toma un valor ”elevado” al aplicarla a un cierto vector de E, la otra también
tomará un valor ”elevado” al aplicarla al mismo vector. Y si el valor es ”pequeño”
para una de ellas también lo será para la otra. En ese sentido las distancias que
a ellas están asociadas también serán equivalentes. Y por ello si una sucesión es
convergente con la distancia asociada a una de las normas también lo será con
la otra. Como en el caso de trabajar en IRn todas las normas son equivalentes a
efectos de analizar la convergencia de una sucesión de vectores será equivalente
hacerlo con una u otra norma que se considere en IRn .
En algunas ocasiones trabajaremos con el espacio formado por las matrices cua-
dradas de orden n. Estos conjuntos tienen estructura de espacio vectorial y por
tanto sobre ellos serı́a posible definir también normas y distancias como se acaba
de describir. No obstante sobre el espacio de las matrices cuadradas de orden n
a las normas que en él se utilizan se las exige algo más. De forma concreta para
estos espacios se tiene la siguiente definición:
i) ||A|| = 0 ⇔ A = 0
ii) ||λ · A|| = |λ| · ||A||, ∀λ ∈ K, ∀A ∈ Mn
iii) ||A + B|| ≤ ||A|| + ||B, ∀A, B ∈ Mn
iv) ||A · B|| ≤ ||A|| · ||B||, ∀A, B ∈ Mn
v ( n )
u n X
n
uX X
kAkF = t |aij | 2 , kAk1 = máx |aij | ,
16j6n
i=1 j=1 i=1
( n )
X
kAk∞ = máx |aij |
16i6n
j=1
Entre todas las normas matriciales que se pueden definir en Mn es útil considerar
12
Conceptos previos
un grupo de ellas que tiene una peculiaridad interesante: estar definidas a partir
de una norma vectorial y, por tanto, estar vinculadas a normas vectoriales. Este
grupo de normas matriciales se conocen con el nombre de normas matriciales
subordinadas a una norma vectorial y pasamos a definirlo a continuación.
Propiedad 1.2. Sea ||.|| una norma vectorial definida sobre K n (con
K = IR o K = C) y sea Mn el espacio de las matrices cuadradas de
orden n definidas sobre K. La aplicación ||.|| definida de cualquiera
de las formas (equivalentes entre sı́) siguientes:
kA · vk
kAk = sup = sup kA · vk = sup kA · vk
v∈K n −0 kvk v∈K n −0/kvk61 v∈K n /kvk=1
Las normas matriciales subordinadas permiten trabajar con formas de medir ”co-
herentes” entre los vectores y las matrices cuando estos aparecen mezclados en
los problemas que deban abordarse. Es importante en este sentido tener siempre
presente la siguiente propiedad que relaciona el valor de una norma vectorial con
la norma matricial subordinada a ella:
||A.v|| ≤ ||A||.||v|| ∀A ∈ Mn , ∀v ∈ K n
Demostración.
Si v = 0 entonces kA · vk = 0 y kAk · kvk = 0, ∀A ∈ Mn , por lo que se verifica
la propiedad (con el signo ”=”’).
Si v 6= 0 se tiene que kA · vk 6= 0 y, por tanto:
v
v
kvk
A kvk kvk
=
A kvk
kvk = kA · vk kvk 6
kA · vk =
kA · uk
6 sup kvk = kAk · kvk
u∈K n −0 kuk
13
Introducción
y esto se tiene ∀A ∈ Mn y ∀v ∈ K n − 0.
Nota 1.5. Las normas matriciales k·k1 , k·k2 y k·k∞ antes definidas son normas
maatriciales subordinadas a las normas vectoriales de IRn definidas con los mis-
mos subı́ndices. Sin embargo, la norma de Fröbenius no es una norma matricial
subordinada.
Se verifica que:
3
X
|a1,j | = |1| + |1| + |0| = 2
j=1
3
X
|a2,j | = |1| + |2| + |1| = 4
j=1
3
X
|a3,j | = | − 1| + |1| + |2| = 4
j=1
3
X
|ai,1 | = |1| + |1| + | − 1| = 3
i=1
3
X
|ai,2 | = |1| + |2| + |1| = 4
i=1
3
X
|ai,3 | = |0| + |1| + |2| = 3
i=1
14
Conceptos previos
√ √
cuyas raı́ces son los valores propios λ1 = 0, λ2 = 7 + 7 √
y λ3 = 7√− 7. Por√tanto
el radio espectral de AT · A es: ρ(AT · A) = Sup(0,
p 7√ + 7, 7 − 7) = 7 + 7. Y
p
la norma-2 de A será: ||A||2 = ρ(AT · A) = 7 + 7 ≈ 3,106.
Más adelante estudiaremos la forma de definir esta función g(x) (que obviamente
tendrá que ver con el sistema que se quiera resolver). No obstante ya puede
apreciarse con la consideración que acaba de hacerse que el buen funcionamiento
de un método dependerá de cómo sea la función g(x) escogida. En este sentido
nos interesará trabajar, cuando ello sea posible con aplicaciones g(x) para las que
se pueda asegurar que la sucesión que con ellas se genere es convergente. Si x∗
fuese el lı́mite de la sucesión generada mediante el esquema anterior y además la
aplicación g(x) fuese continua se verificará que:
lı́m (x(i+1) ) = lı́m g(x(i) ) ⇔ x∗ = g(x∗ )
i→∞ i→∞
Los puntos de una aplicación g(x) que verifican que x = g(x) reciben el nombre
de puntos fijos de la aplicación. Es decir:
Interesará por tanto trabajar con funciones g que posean un punto fijo. Un tipo
de tales funciones son las que se denominan contracciones y que pasamos a definir
a continuación:
Definición 1.8. Sean (E, d) y (V, d’) dos espacios métricos y sea g : E → V
una aplicación definida en E y con valores en V. Se dice que g es una aplicación
lipschitciana de razón k cuando existe una constante real k > 0 tal que:
d′ (g(x), g(y) ≤ k · d(x, y) ∀x, y ∈ E
A la menor constante k que verifica la condición anterior se la denomina cons-
tante de Lipschitz (o razón) de la aplicación
Nota 1.6. En el caso de que se esté trabajando sobre los espacios vectoriales
normados (E, ||.||) y (V, ||.||′ ) toda aplicación g : E → V que sea lipschitciana de
razón k verificará: ||g(x) − g(y)||′ ≤ k · ||x − y||, ∀x, y ∈ E.
15
Introducción
ε
∀ε > 0 ∃δ = d(x, y) < δ ⇒ d′ (g(x), g(y)) ≤ k.d(x, y) < ε
k
Por tanto g es continua en todo punto x ∈ E.
Nota 1.7. Aún podrı́a decirse más: toda aplicación lipschitciana es uniformemente
continua.
Definición 1.9. A toda aplicación lipschitciana que verifique las dos condiciones
siguientes:
x(0) dado
x(i+1) = g(x(i) ) (i = 0, 1, 2, ......)
Demostración.
a) Comencemos demostrando la existencia del punto fijo. Sea g : E → E una
contracción, de constante de Lipschitz k < 1, definida en el espacio métrico (E, d)
y sea x(0) un elemento cualquiera de E. Considérese entonces la sucesión formada
a partir de x(0) mediante:
16
Conceptos previos
x(i+1) = g(x(i) ) (i = 0, 1, 2, . . .)
∞
Para la sucesión x(i) i=0 se verificará:
∞
X 1
ki =
i=0
1−k
17
Introducción
Luego g(x) admite un punto fijo que es el lı́mite de la sucesión generada mediante:
x(i+1) = g(x(i) ) (i = 0, 1, 2, . . .)
Y que un número real sea estrictamente menor que sı́ mismo obviamente es ab-
surdo. Obsérvese que si por el contrario se supusiera que a = b las desigualdades
anteriores se transforman en: 0 = d(a, b) = d(g(a), g(b)) ≤ k · d(a, b) = 0 que
sı́ tiene sentido. Por tanto es absurdo suponer que existen puntos fijos distin-
tos.
Nota 1.8. Entiéndase bien el teorema anterior. En él sólo se afirma lo que se
afirma. Ello no imposibilita que otras aplicaciones que no sean contracciones,
o que estén definidas en espacios que no sean completos, puedan tener uno o
varios puntos fijos. Simplemente nos asegura que si nuestra aplicación es una
contracción y está definida sobre un espacio métrico completo siempre existirá un
único punto fijo de la aplicación. La demostración de la existencia del punto fijo
nos indica además cómo puede encontrarse: como lı́mite de la sucesión x(i+1) =
g(x(i) ) generada a apartir de cualquier x(0) perteneciente al espacio E.
x
Ejemplo 1.12. La aplicación g : (IR,df ) → (IR, df ) definida mediante g(x) = 2
es
una contracción ya que:
x y 1 1 1
df (g(x), g(y)) = − = . |x − y| = .df (x, y) ≤ .df (x, y)
2 2 2 2 2
Esta aplicación, al estar definida en un espacio métrico completo sólo admite un
punto fijo: x = 0.
18
Conceptos previos
Ejemplo 1.14. La misma aplicación pero definida en el espacio ([1, 2], df ) tampoco
admite punto fijo. Obsérvese que aunque ([1, 2], df ) sı́ es completo g no es una
contracción pues no toma valores en [1, 2] (pues por ejemplo g(1,5) = 43 ∈ / [1, 2].
Ejemplo 1.15. La misma aplicación definida en (] − 1, 1[, df ) tiene por punto fijo
x = 0. Nótese que no está definida sobre un completo y sin embargo admite un
(único) punto fijo.
2·x+6
definida en (E, df ) siendo E = x ∈ IR/x ≥ 23
Ejemplo 1.16. La aplicación g(x) = 3·x+2
es una contracción ya que:
2 · x + 6 2 · y + 6 14 · y − 14 · x
|g(x) − g(y)| = − = =
3 · x + 2 3 · y + 2 9 · x · y + 6 · x + 6 · y + 4
14 · |x − y| 14 · |x − y| 7
≤≤ 2 2 2 2
= . |x − y|
|9 · x · y + 6 · x + 6 · y + 4| 9· 3 · 3 +6· 3 +6· 3 +4 8
2 · x∗ + 6 √
x∗ = g(x∗ ) ⇔ x∗ = ⇔ 3 · (x ∗ 2
) + 2 · x ∗
= 2 · x ∗
+ 6 ⇒ x ∗
= 2
3 · x∗ + 2
Ejemplo 1.17. La misma aplicación del ejemplo anterior sobre (IR − { 32 }, df ) ad-
√
mite dos puntos fijos dados por x∗ = ± 2. Obsérvese que el espacio sobre
el que está definida la aplicación no es un espacio métrico completo pues al
haber
quitado de IR el punto 23 habrá sucesiones de Cauchy (como por ejem-
∞
plo xi = 32 + i+1
1
i=0
) que no tengan lı́mite.
19
Introducción
Ello pone de manifiesto diferentes hechos (para el caso en que ya se haya resuelto
el problema de que la sucesión converja). Entre ellos podemos citar:
20
CAPÍTULO 2
21
Métodos generales para la resolución de una ecuación no lineal
∗ ∗ ′ (x − x∗ )2 ′′ ∗
∗
∀x ∈ I ∃ξx ∈ I / f (x) = f (x ) + (x − x ) · f (x ) + · f (x ) + . . . +
2
(x − x∗ )(m−1) (m−1 ∗ (x − x∗ )m (m
+ ·f (x ) + · f (ξx ) =
(m − 1)! m!
1
= (x − x∗ )m · · f (m (ξx ) = (x − x∗ )m · ϕ(x)
m!
1
donde se ha denotado por ϕ(x) a la función ϕ(x) = m! · f (m (ξx ). Ello demues-
tra que las condiciones impuestas efectivamente conducen a que la raı́z sea de
multiplicidad m en el sentido de la definición dada inicialmente.
22
El método de bipartición
y que en ellos f (a) tiene signo contrario a f (b), es decir que f (a) · f (b) < 0.
Obviamente estamos suponiendo que f (a) y f (b) son no nulos pues si alguno de
ellos fuese nulo ya se tendrı́a una solución de la ecuación. En estas condiciones si
f (x) es una función continua en [a, b], por aplicacion del teorema de los valores
intermedios, existirá al menos un punto x∗ de este intervalo en el que f (x) se
anule. Por ello, junto a la hipótesis de que f (a) · f (b) < 0 supondremos también
que f ∈ C([a, b]).
Nota 2.3. El que exista ”al menos” un punto en el que se anule f (x) no quiere
decir que sólo haya uno. Contando cada raı́z de f (x) tantas veces como sea su
multiplicidad, si f (a) · f (b) < 0, habrá en general un número impar de raı́ces de
f (x) en el intervalo [a, b]. Y si f (a) · f (b) fuese positivo o no nay ninguna raı́z o
habrá un número par de ellas.
Si f (x1 ) = 0 ya se tendrı́a calculada una raı́z. Pero por lo general, salvo que se
tenga una suerte increı́ble, se tendrá que f (x1 ) 6= 0. Pero, al haber supuesto que la
función es continua, si f (a) · f (x1 ) < 0 se podrá afirmar que en el intervalo [a, x1 ]
habrá al menos una solución de la ecuación. Y si f (a) · f (x1 ) > 0 se verificará que
f (x1 ) · f (b) < 0 lo que nos indicarı́a que en el intervalo [x1 , b] existirá al menos
una raı́z. Por tanto se habrá definido ası́ un nuevo intervalo [a1 , b1 ] en el que
existirá una solución. A él puede aplicársele nuevamente el proceso anterior.
En general, partiendo de un intervalo [aj , bj ] en el que f (aj ) · f (bj ) < 0 se procede
de la siguiente forma:
aj +bj
1. Se obtiene el punto medio del intervalo: xj+1 = 2
.
3. Una vez obtenido el nuevo intervalo [aj+1 , bj+1 ], se repite el procesoi anterior.
El problema que se nos puede plantear es: y si ningún valor f (xj ), (j = 1, 2, ....)
tiene la gracia de anularse ¿cuándo se detiene el proceso iterativo?. La respuesta a
esta pregunta dependerá de la precisión con la que se desee obtener la aproxima-
ción de la solución buscada. En efecto, si se parte de un intervalo [a, b] la longitud
del mismo es |b − a|. En la primera iteración se obtendrá un intervalo [a1 , b1 ]
cuya longitud será la mitad del anterior, es decir |b−a|2
. A su vez, en la segunda
23
Métodos generales para la resolución de una ecuación no lineal
|b−a|
log( ε )
1. Estimar el menor número natural N tal que: N > log(2)
−1
24
El método de bipartición
|b−a|
log ε
N> −1
log(2)
Ejemplo 2.1. (Cortesı́a del Pr. J. Aguado): La presión de vapor del n-hexano
y del n-octano se puede relacionar con la temperatura mediante las siguientes
expresiones:
2697,55
log(PC06 ) = 15,8737 −
T − 48,784
3127,60
log(PC08 ) = 15,9798 −
T − 63,633
25
Métodos generales para la resolución de una ecuación no lineal
P10 P0
y1 = .x1 = 1
P 2·P
P20 P0
y2 = .x2 = 2
P 2·P
P10 P0
y1 + y2 = 1 ⇔ + 2 =1
2·P 2·P
lo que, remplazando P10 y P20 por sus expresiones en función de la temperatura,
nos conduce a la ecuación no lineal:
2697,55 3127,60
e15,8737− T −48,784 e15,9798− T −63,633
f (T ) = + −1=0
3040 3040
La temperatura de ebullición T ∗ de la mezcla será superior a la temperatura
de ebullición del n-hexano puro (364,39 o K) e inferior a la del n-octano puro
(425,07 o K). Por ello el intervalo de búsqueda de la solución puede ser tomado
como [364, 425]. En este intervalo se verifica que f (T ) es una función continua
(es suma de exponenciales cuyos exponentes están bien definidos en el intervalo
de trabajo) y además es estrictamente monótona creciente (pues es la suma de
funciones estrictamente monótonas crecientes).
Si en la ecuación anterior a T se le da el valor T = 364o K se tendrá que
f (364) < 0. Análogamente si a T se le da el valor T = 425o K se tendrá que
f (425) > 0. Por todo ello existirá una única solución de la ecuación en dicho
intervalo. Si se desea encontrar esta solución con una precisión de ε = 1,10−6
deberán realizarse al menos un número N de iteraciones del método de bipartición
tal que:
log 1061−6
N> − 1 ≈ 24,862
log(2)
es decir 25 iteraciones. En la primera iteración se tomará:
364 + 425
x1 = = 394,5
2
resultando que f (394,5) = 0,277432 > 0. Por tanto la raı́z buscada estará en el
intervalo [364, 394,5]. En la segunda iteración se considerará:
364 + 394,5
x2 = = 379,25
2
resultando que f (379,25) = −0,123283 < 0 por lo que la solución se buscará en
[379,25, 394,5]. En la tercera iteración:
26
El método de aproximaciones sucesivas
379,25 + 394,5
x3 = = 386,875
2
valor para el que f (386,875) = 0,0626451 > 0 por lo que la solución se buscará en
el intervalo [379,25, 386,875].
Posteriores iteraciones del método de bipartición nos van conduciendo a los val-
ores: x4 = 383,0625, x5 = 384,96 . . . , . . . x26 = 384,4294930547 . . . verificándose
en este punto que f (384,4294930547 . . .) = −0,857630 · 10−8 .
O bien:
p
0 = f (x) ⇔ xk = α · f (x) + xk ⇔ x = k
α · f (x) + xk = g(x)
O por ejemplo:
27
Métodos generales para la resolución de una ecuación no lineal
Demostración. En virtud del teorema del punto fijo (teorema 1.1), por ser g(x)
una contracción definida sobre el espacio métrico completo ([a, b] , df ) admitirá un
único punto fijo x∗ que será el lı́mite de la sucesión {xi }∞
i=0 .
Nota 2.5. Puesto que la ecuaciónf (x) = 0 es equivalente a x = g(x), en las condi-
ciones del teorema anterior, x∗ será solución en [a, b] de la ecuación equivalente
f (x) = 0.
Nota 2.6. En otros términos las buenas funciones g(x) que nos interesan son
aquellas que sean contracciones sobre un determinado intervalo [a, b] en el que se
buscará la única solución en él existente. Además, como se justificó en las notas
realizadas al teorema del punto fijo, cuanto menor sea la constante de Lipschitz
de la contracción g(x) más rápidamente convergerá el método hacia la solución.
Nota 2.7. Interprétese bien el teorema anterior. En él se asegura que bajo ciertas
hipótesis (el ser g(x) una contracción en ([a, b], df )) el método de aproximaciones
sucesivas nos conduce a la única solución existente en [a, b] de la ecuación f (x) =
0. Pero no se impide que el método funcione si no se verifican las hipótesis.
Simplemente no se asegura su buen funcionamiento.
Teorema 2.2. Si g(x) es una aplicación de clase C 1 ([a, b]) y que toma
valores en [a, b] verificando la condición:
28
El método de aproximaciones sucesivas
Demostración. Por aplicación del teorema del valor medio se verificará que:
y por haber supuesto que la primera derivada estaba acotada en valor absoluto
se tendrá que:
por lo que, teniendo en cuenta que g : [a, b] → [a, b], resulta que g(x) es una
contracción. Aplicando el teorema precedente quedará totalmente demostrado
este.
Nota 2.8. Cuando en las aplicaciones se utilice este teorema para comprobar que
la aplicación considerada es una contracción se tomará como aproximación de la
constante de Lipschitz el valor k = máx |g ′ (x)|.
x∈[a,b]
29
Métodos generales para la resolución de una ecuación no lineal
Nota 2.9. Cuanto menor sea el valor de |g ′ (x∗ )| menor será la cota de |xi − x∗ |
obtenida en la demostración anterior y por ello mejor será la convergencia del
método si se parte de un punto sufcientemente cercano a la solución.
Nota 2.10. Bajo las hipótesis del teorema precedente, si se desea asegurar que el
error cometido es menor que un cierto valor ε la expresión anterior nos conduce
que deben realizarse un número N de iteraciones tal que:
ε·(1−k)
k N log |x1 −x0 |
· |x1 − x0 | < ε ⇒ N >
1−k log(k)
30
El método de aproximaciones sucesivas
Nota 2.12. Una interpretación gráfica del método consiste simplemente en buscar
la intersección entre la bisectriz del primer cuadrante y la contracción g(x) me-
diante sucesivos ”escalones” comprendidos entre la gráfica de g(x) y la bisectriz
del primer cuadrante (ver figura 2.1).
g x
g x2
g x1
g x0
x0 x1 x2
31
Métodos generales para la resolución de una ecuación no lineal
k
|x∗ − xn | ≤
· xn − x(n−1)
1−k
donde k es la constante de Lipschitz de la contracción.
32
El método de aproximaciones sucesivas
8·π·h ϑ3
u(ϑ, T ) = · h·ϑ
c3 e k·T − 1
En la ecuación anterior π puede tomarse como 3,1416, h es la constante de Plank
(6,626 · 10−34 J.s), k es la constante de Boltzmann (1,38066 · 10−23 J/K) y c es
la velocidad de la luz en el vacı́o (c = 3 · 108 m/s). Se desea saber la frecuencia
ϑ > 0 para la que, a una determinada temperatura fija T > 0, se hace máxima
la densidad de energı́a emitida. Para ello, siendo:
8·π·h ϑ3
uT (ϑ) = · h·ϑ
c3 e k·T − 1
denotemos por M a la constante:
8·π·h
M=
c3
y por N a la constante:
h
N=
k
Con esta notación resultará que:
ϑ3
uT (ϑ) = M · ·ϑ
eN · T − 1
El extremo de esta función se alcanzará en algún punto en el que se anule su
primera derivada, es decir que para calcularlo debe resolverse la ecuación no
lineal:
·ϑ ϑ
N· T N
duT 3 · ϑ 2
· e − 1 − ϑ3 · T
· eN · T
(ϑ) = M · 2 =0
dϑ
·ϑ
eN · T − 1
·ϑ N N· ϑ
3 · ϑ2 · eN · T − 1 − ϑ3 · ·e T =0
T
o, dividiendo esta expresión por ϑ2 , (lo cual nos eliminarı́a dos veces la frecuencia
ϑ = 0 que está descartada del conjunto de frecuencias con interés práctico) se
33
Métodos generales para la resolución de una ecuación no lineal
obtiene otra ecuación con las mismas soluciones no nulas que las de la ecuación
anterior:
·ϑ ϑ ϑ
3 · eN · T − 1 − N · · eN · T = 0
T
ϑ
Llamando α a la relación: α = N · T
la ecuación anterior se transforma en:
3 · (eα − 1) − α · eα = 0 ⇐⇒ (3 − α) · eα = 3 ⇔
⇔ 3 − α = 3 · e−α ⇔ α = 3 · (1 − e−α )
g ′ (α) = 3 · e−α
se verificará que:
Por este motivo buscaremos la solución de la ecuación en [1,1, ∞[. Nótese que
al ser g(α) una función continua monótona creciente y verificarse que g(0) =
3 · (1 − 1) = 0 y que g(1,1) = 3 · (1 − e−1,1 ) ≈ 2,0014 > 1,1 sólo se ha perdido la
solución (inútil en la práctica) α = 0 al descartar el intervalo [0, 1,1[ del espacio
de búsqueda de las soluciones, y que además:
34
El método de aproximaciones sucesivas
T
ϑ∗ ≈ 2,821439372 ·
N
Nota 2.13. El resultado del ejercicio anterior muestra que la relación entre la
frecuencia a la que se emite la máxima energı́a y la temperatura siempre es:
Nota 2.14. La anterior es una forma de expresar la llamada ”ley del desplaza-
miento” de Wien que dice que la frecuencia a la que se produce la emisión máxima
es directamente proporcional a la temperatura absoluta del cuerpo emisor.
8.π.h ϑ3
u(ϑ, T ) = · h·ϑ
c3 e k·T − 1
35
Métodos generales para la resolución de una ecuación no lineal
36
El método de Newton-Raphson
17
x1 = h(x0 ) = = 8,5
2
88,25
x2 = h(x1 ) = = 5,191176470
17
x3 = 4,136664722
x4 = 4,002257525
x5 = 4,000000637
x6 = 4,000000001
x6 = 4,000000000
37
Métodos generales para la resolución de una ecuación no lineal
solución x∗ en el intervalo [a, b]. Para cualquier otro valor x0 ∈ [a, b], denotando
por h al valor tal que x∗ = x0 + h, la expresión del desarrollo en serie de Taylor
nos permitirı́a escribir que:
h2
0 = f (x∗ ) = f (x0 + h) = f (x0 ) + h.f ′ (x0 ) + · f ”(x0 + θh), θ ∈ [0, 1]
2
h2
f (x0 ) + h · f ′ (x0 ) + · f ”(x0 + θh) = 0
2
podrı́a determinarse x∗ como x∗ = x0 +h. Pero para resolver esta ecuación primero
deberı́amos conocer el valor de θ (lo cual no es obvio) y una vez conocido resolver
una ecuación, en general, no lineal pues obsérvese que h interviene en la expre-
siónf ”(x0 + θh). Por tanto, salvo en situaciones muy particulares, no se ganarı́a
gran cosa remplazando el problema de resolver f (x) = 0 por el de resolver
h2
F (h) = f (x0 ) + h · f ′ (x0 ) + .f ”(x0 + θh) = 0
2
El método de Newton-Raphson (o método de linealización de Newton) se sustenta
en simplificar la expresión anterior linealizándola. Para ello considera que si se
está suficientemente cerca de la solución (es decir si h es suficientemente pequeño)
2
el término h2 · f ”(x0 + θh) podrá despreciarse fente a los otros términos de la
ecuación. Por ello resuelve la ecuación lineal:
f (x0 ) + H · f ′ (x0 ) = 0
f (x0 )
H=−
f ′ (x0 )
38
El método de Newton-Raphson
f (x)
g(x) = x −
f ′ (x)
Nota 2.17. Una interpretación gráfica del método puede obtenerse teniendo en
cuenta que f ′ (xi ) geométricamente representa la tangente trigonométrica de la
f (xi )
recta tangente a la gráfica de f (x) en el punto (xi , f (xi )) por lo que f ′ (xi ) será la
distancia existente entre xi y el punto de corte de la recta tangente a f (x) en
(xi , f (xi )) con el eje de abscisas. Es decir que las primeras iteraciones del proceso
se pueden representar de la forma en que se recoge en la figura 2.2.
39
Métodos generales para la resolución de una ecuación no lineal
f x
f x0
x * ! x2 x1 x0
Demostración. Por ser f ′ (x) continua en x∗ existirá un intervalo [x∗ −δ1 , x∗ +δ1 ]
en el que f ′ (x) 6= 0 ∀x ∈ [x∗ − δ1 , x∗ + δ1 ]. Por tanto la aplicación:
f (x)
g(x) = x −
f ′ (x)
f (x) · f ”(x)
g ′ (x) =
(f ′ (x))2
y se ha supuesto que f (x) ∈ C 2 ([a, b]) resultará que g(x) ∈ C 1 ([x∗ − δ1 , x∗ + δ1 ]).
Y como f (x∗ ) = 0 se tendrá que:
40
El método de Newton-Raphson
′ ∗f (x∗ ) · f ”(x∗ )
g (x ) = =0
(f ′ (x∗ ))2
Luego se tiene una aplicación g(x) de clase C 1 ([x∗ −δ1 , x∗ +δ1 ]) y tal que |g ′ (x∗ )| =
0 < 1. Por tanto, al ser g ′ (x) continua en x∗ para cualquier valor k < 1 existirá un
valor 0 < δ ≤ δ1 tal que:
k
|xi+1 − x∗ | ≤ · |xi − x∗ |
2·β
41
Métodos generales para la resolución de una ecuación no lineal
1
= . [f (x∗ ) − f (xi ) − f ′ (xi ) · (x∗ − xi )]
f ′ (x i)
Zx∗
f (x∗ ) − f (xi ) = f ′ (x).dx
xi
y por tanto:
Zx∗
f (x∗ ) − f (xi ) − f ′ (xi ) · (x∗ − xi ) = (f ′ (x) − f ′ (xi )).dx
xi
de donde:
x∗
Z
|f (x∗ ) − f (xi ) − f ′ (xi ) · (x∗ − xi )| = (f ′ (x) − f ′ (xi )).dx ≤
xi
Zx∗ Zx∗
k
≤ |f ′ (x) − f ′ (xi )| · dx ≤ k · |x − xi | dx ≤ · |x − xi |2
2
xi xi
por lo que:
k
|xi+1 − x∗ | ≤ · |x − xi |2
2·β
Una vez demostrada la desigualdad anterior la convergencia de la sucesión se
garantizarı́a logrando que fuese una sucesión de Cauchy y que estuvieramos
tabajando en un espacio métrico completo. Para ello basta con tomar δ1 =
M in{|x∗ − a|, |x∗ − b|} y considerar δ = M in{δ1 , θ · 2·β
k
} donde θ es un va-
2·β
lor de ]0, 1[ elegido de tal forma que θ · k < 1. Con ello la distancia entre
x0 ∈ [x∗ − δ, x∗ + δ] y x∗ será inferior o igual a θ · 2·β
k
< 1, la distancia entre x1
∗
y x verificará que:
k 2.β
|x1 − x∗ | ≤ · |x − x0 |2 ≤ θ2 · ≤ θ,1
2·β k
y por recurrencia se verifica que la distancia a la sucesión va decreciendo de forma
tal que bastará con considerar un ı́ndice lo suficientemente grande para hacerla,
a partir de él, tan pequeña como se desee. Por tanto, al ser ([x∗ − δ, x∗ + δ], df )
un completo si x0 petenece a este intervalo quedará garantizada la convergencia
del método de Newton-Raphson.
42
El método de Newton-Raphson
k
|xi+1 − x∗ | ≤ · |xi − x∗ |
2·β
no garantiza por sı́ sola la convergencia del método pues simplemente establece
una cota del valor de |xi+1 −x∗ |. Es la pertenecia del valor inicial x0 a un intervalo
suficientemente pequeño en torno a la raı́z lo que garantiza el éxito del proceso.
k
Nota 2.19. En este sentido es interesante reflexionar sobre el significado de 2·β .
′
En ella k es la constante de Lipschitz de f (x). Pero multiplicando la ecuación
f (x) = 0 por un parámetro α 6= 0 se obtiene una ecuación equivalente α.f (x) =
F (x) = 0 en la que la constante de Lipschitz de la función F ′ (x) se ve afectada
por el parámetro α. Obviamente también se verı́a afectado por este parámetro
el valor de β (cota inferior del valor absoluto que toma f ′ (x) en el intervalo de
trabajo). Por ello la relación βk es un lı́mite superior de la “no linealidad” de f (x)
y la desigualdad del teorema anterior nos indica que cuanto menor sea este ı́ndice
de no linealidad más rápida será la convergencia hacia la solución de la ecuación.
En el caso extremo de que f (x) sea lineal (una recta de ecuación k.x + c ) la
constante de Lipschitz de f ′ (x) será 0 y la cota inferior de la derivada será k por
lo que la convergencia se alcanzará en una iteración del método.
A
Q= · [1 − (1 + i)−n ]
i
en donde Q es la cantidad (en euros) pedida en préstamo, A es la cuota (en
euros) que debe pagar el beneficiario del préstamo, i es la tasa de interés (en
tanto por 1) fijado por la entidad bancaria que concede el préstamo y n es el
número de periodos durante los cuales se realizan pagos de la cuota (meses si se
paga mensualmente, trimestres si se paga trimestralmente, semestres si se paga
semestralmente o años si se paga anualmente).
Una pareja que desea comenzar una vida en común se plantea adquirir una vivien-
da y para ello saben que necesitan pedir un préstamo de 150000 euros a pagar
semestralmente durante un plazo que ellos desean que sea de 10 años. Sabiendo
que para atender este pago pueden destinar una cantidad máxima de 600 euros
mensuales, calcúlese cual es el tipo máximo de interés al que pueden negociar su
préstamo con las entidades bancarias.
Puesto que el pago es semestral, en 10 años realizarán un total de 20 cuotas.
43
Métodos generales para la resolución de una ecuación no lineal
Además dado que pueden pagar 600 euros al mes, cada semestre podrán afrontar
el pago de 3600 euros. Ello hace que la ecuación de la anualidad ordinaria quede:
3600
150000 = · [1 − (1 + i)−20 ]
i
o bien
3600
f (i) = 150000 − · [1 − (1 + i)−20 ] = 0
i
Se tiene entonces que:
′ 3600 1 −20
−21
f (i) = · 1 − (1 + i) − 20 · (1 + i)
i i
150000 − 3600
ij
· [1 − (1 + ij )−20 ]
ij+1 = ij − h i
3600 1 −20 −21
ij
· ij (1 − (1 + ij ) ) − 20 · (1 + ij )
i1 = −0,1647 . . .
i2 = −0,1212 . . .
i3 = −0,0852 . . .
i4 = −0,0659 . . .
i5 = −0,0617 . . .
i6 = −0,0616 . . .
i7 = −0,0616 . . .
150000 − 5400ij
· [1 − (1 + ij )−30 ]
ij+1 = ij − h i
5400
ij
· i1j (1 − (1 + ij )−30 ) − 30 · (1 + ij )−31
44
El método de Newton-Raphson
i0 = 0,03
i1 = −0,0022 . . .
i2 = 0,0044 . . .
i3 = 0,050 . . .
i4 = 0,0050 . . .
150000 − 5400ij
· [1 − (1 + ij )−40 ]
ij+1 = ij − h i
5400
ij
· i1j (1 − (1 + ij )−40 ) − 40 · (1 + ij )−41
i0 = 0,03
i1 = 0,0175 . . .
i2 = 0,0190 . . .
i3 = 0,0191 . . .
i4 = 0,0191 . . .
Desmoralizados al seguir sin encontrar entidad bancaria alguna que les conceda
el prétamo al interés del 1’91 %, la pareja toma la decisión de renunciar a su casa
ideal y busca otra (más alejada de la zona que les gusta, sin buenas comunica-
ciones, más antigua, más pequeña y construida con materiales de peor calidad)
para la que sólo necesitan un préstamo de 100000 euros y mantienen las demás
condiciones anteriores: pago de 5400 euros semestrales y 20 años de “condena”.
El esquema de Newton-Raphson en este caso les lleva a:
100000 − 5400ij
· [1 − (1 + ij )−40 ]
ij+1 = ij − h i
5400
ij
· i1j (1 − (1 + ij )−40 ) − 40 · (1 + ij )−41
y:
45
Métodos generales para la resolución de una ecuación no lineal
i0 = 0,03
i1 = 0,0423 . . .
i2 = 0,0444 . . .
i3 = 0,0445 . . .
i4 = 0,0445 . . .
Nota 2.20. Esperamos que el lector que haya seguido el ejemplo anterior no eche
la culpa de la situación a Sir Isaac Newton, que aunque algo tuvo que ver con la
banca no es el que fija los sueldos ni los tipos de interés bancario, ni al matemático
inglés contemporáneo de Newton, Joseph Raphson. Además, para tranquilidad
del lector, hemos de informarle que en la pareja del ejemplo uno de ellos, el admin-
istrativo del Organismo Oficial (pues el otro, aunque cobraba poco, se encontraba
a gusto en una Universidad de calidad), al poco tiempo, salió elegido concejal del
ayuntamiento en el pueblo al que fueron a vivir y de allı́ saltó al Consejo de Ad-
ministración de una empresa que cotizaba en Bolsa en el que, además de olvidar
el método de Newton-Raphson, obtuvo pingües beneficios comprando lo que se
llama algo ası́ como “stock options” y jugando en el Mercado de Valores.
Nota 2.21. Hablando más en serio, obsérvese que en el primer caso del ejemplo
anterior, cuando la amortización del crédito era de 3600 euros y el plazo de pago
20 semestralidades el dinero total que se pagaba es de 72000 euros que no cubre el
préstamo solicitado (150000 euros). Por ello no es extraño que el interés resultante
sea negativo aun cuando ello no tenga sentido en la realidad. Pero es que tampoco
lo tiene que en un préstamo se devuelva menos dinero del recibido.
Nota 2.22. También se puede observar utilizando el ejemplo anterior que la con-
vergencia del método depende de la “cercanı́a” del punto de partida a la solución.
En efecto si en el último de los supuestos considerados (préstamo de 100000 euros,
amortización semestral de 5400 euros y 40 pagos semestrales) se hubiese partido
de un interes inicial del 300 % (es decir i0 = 3 ) la sucesión obtenida (y los valores
de f (ij ) ) resultan ser: i1 = −160,66666.. (f (i1 ) = 1,00034·106 , f ′ (i1 ) = 0,20919..)
, i1 = −478,35425.. (f (i1 ) = 1,00000 · 106 , f ′ (i1 ) = 0,2359 · 10−7 ), ....valores que
no convergen hacia nada.
46
El método de Newton-Raphson
x2i − a
1 a
xi+1 = xi − = · xi +
2 · xi 2 xi
En ocasiones, para funciones f (x) que satisfagan alguna hipótesis adicional, pueden
rebajarse las condiciones que aseguran la convergencia del método de Newton
Raphson. Un ejemplo de ello es el siguiente teorema:
∗ f (xi )
∗ hi · f ′ (xi ) − f (xi )
hi+1 = xi+1 − x = xi − x − ′ =
f (xi ) f ′ (xi )
Como por otra parte, desarrollando en serie de Taylor se tiene que existe un punto
ξi ∈ [a, b] para el que:
1 2
0 = f (x∗ ) = f (xi − hi ) = f (xi ) − hi · f ′ (xi ) + · h · f ”(ξi )
2 i
resultará que:
1 2
hi · f ′ (xi ) − f (xi ) = · h · f ”(ξi )
2 i
Entrando con esta expresión en la que nos proporcionaba hi+1 se obtiene:
Lo anterior nos indica que xi+1 siempre será mayor que x∗ Además, por ser f (x)
creciente, f (xi+1 ) > f (x∗ ) = 0. Luego las sucesiones {xi }∞ ∞
i=1 y {f (xi )}i=1 son
sucesiones acotadas inferiormente por x∗ y por 0 respectivamente. Por otra parte
se tiene que:
47
Métodos generales para la resolución de una ecuación no lineal
lo que nos indica que la sucesión {hi }∞ i=1 es una sucesión decreciente y siempre
positiva (pues recuérdese que xi > x∗ para todo i > 0). Ello quiere decir que su
lı́mite será 0 y por tanto el lı́mite de {xi }∞ ∗
i=1 será x .
48
El método de Newton-Raphson
49
Métodos generales para la resolución de una ecuación no lineal
ración de los valores de |xi+1 −xi | y de los de f y sus derivadas en xi+1 , cambiando
de punto de arranque del proceso iterativo cuando el método se “atasca” en
torno a algún punto que no es raı́z, nosotros nos limitaremos en estos apuntes
a considerar como control de cercanı́a a la solución el que |xi+1 − xi | < ε y que
|f (xi+1 )| < δ . Esta estrategia será suficiente para los casos en que esté asegurada
la convergencia del método y será acompañanda con la limitación del número
máximo de iteraciones que se permite realizar para asegurar la finalización del
algoritmo en los casos en que no haya convergencia.
Ello nos permite escribir un algoritmo recogiendo el método de Newton-Raphson
como el que sigue:
tolx ← |x1 − x0 |
tolf ← |f (x1 )|
iteración ← iteración + 1
x0 ← x1
fin condición.
Fin bucle condicional.
Si ((tolx < ε) y (tolf < δ) ) entonces:
Tomar x1 como solución
si no:
Escribir un mensaje de error en el proceso de cálculo
Fin condición.
Fin del algoritmo.
50
Variantes del método de Newton-Raphson: métodos de la secante y de
“regula falsi”
Nota 2.24. En muchas ocasiones la diferencia entre dos valores consecutivos de las
aproximaciones obtenidas se relativizan para expresarlas porcentualmente. Para
ello en el algoritmo anterior puede sustituirse la lı́nea: tolx ← |x1 − x0 | por otras
que sean de la forma:
Si (x1 6= 0 ) entonces:
|x1 −x0 |
tolx ← |x1 |
· 100
si no:
tolx ← |x1 − x0 |
Fin condición.
f (xi ) − f (xi−1 )
f ′ (xi ) ≈
xi − xi−1
Obsérvese que para aplicar el método se necesitan dos valores x0 y x1 con los que
inicializar el proceso. Por ello en el método de la secante la primera iteración se
realiza mediante el método de Newton siguiéndose el siguiente proceso:
Dado x0 :
f (x0 )
x1 ← x0 − f ′ (x0 )
xi−1 ·f (xi )−xi ·f (xi−1 )
xi+1 = f (xi )−f (xi−1 )
, i = 1, 2, . . .
51
Métodos generales para la resolución de una ecuación no lineal
Nota 2.25. El método de la secante toma su nombre del hecho de que gráficamente
se puede interpretar el método de forma similar al de Newton pero sustituyendo
la recta tangente a la curva en el punto (xi , f (xi )) por la recta secante que pasa
por los puntos (xi−1 , f (xi−1 )) y (xi , f (xi )).
a · f (b) − b · f (a)
x1 =
f (b) − f (a)
Si f (x1 )·f (a) < 0 se puede asegurar que en el intervalo (a, x1 ) existirá una solución
de la ecuación. En el caso de que f (x1 ) · f (a) > 0 se puede afirmar lo mismo para
el intervalo (x1 , b). Y en el caso de que f (x1 ) = 0 se habrá determinado ya
la solución. En todo caso o se tiene la solución de la ecuación o se dispone de
un intervalo más pequeño en el que volver a repetir el proceso. Esta forma de
proceder es repetida las veces que sea necesario hasta encontrar un intervalo en
el que exista una solución y con una longitud inferior a la precisión deseada. Más
concretamente el algoritmo del método será:
a · f (b) − b · f (a)
x=
f (b) − f (a)
Si (f (x) = 0) entonces:
tomar x como raı́z x∗ y finalizar el proceso
si no:
Si (f (x) · f (a) > 0) entonces:
b←x
52
Variantes del método de Newton-Raphson: métodos de la secante y de
“regula falsi”
si no:
a←x
Fin condición.
Fin condición.
Fin bucle condicional.
x∗ ← x
Fin del algoritmo.
c) Otras variantes del método de Newton.
Existen otras variantes del método de Newton que son relativamente utilizadas en
algunas aplicaciones. Ası́ por ejemplo está el denominado método de Newton
modificado en el que el valor de f ′ se estima sólo cada k iteraciones actuándose
entre dichas iteraciones con el último valor de f ′ calculado.
Otra variante, conocida con el nombre de método de Newton mejorado (o
método de Halley) se basa en en el siguiente razonamiento:
Al justificar los orı́genes del método de Newton escribı́amos:
(x∗ − xi )2
0 = f (x∗ ) = f (xi ) + (x∗ − xi ) · f ′ (xi ) + .f ”(xi ) + ....
2
desarrollo que una vez linealizado nos conducı́a a que: (x∗ −xi ) ≈ − ff′(x i)
(xi )
de donde
se obtenı́a una aproximación xi+1 de la solución como xi − ff′(x i)
(xi )
. En el método de
Newton mejorado se usa el hecho de que (x∗ − xi ) ≈ − ff′(x i)
(xi )
para sustituir esta
∗
expresión en uno de los dos factores (x − xi ) que intervienen en el término de
segundo grado del desarrollo de Taylor, despreciando los de mayor orden, con lo
que:
f (xi )
0 = f (x∗ ) ≈ f (xi ) + (x∗ − xi ) · f ′ (xi ) − (x∗ − xi ) .f ”(xi )
2 · f ′ (xi )
de donde:
2 · f (xi ) · f ′ (xi )
xi+1 = xi −
2 · (f ′ (xi ))2 − f (xi ) · f ”(xi )
53
Métodos generales para la resolución de una ecuación no lineal
Una misma ecuación no lineal podrá ser resuelta en ocasiones por diferentes
métodos iterativos. Para poder optar entre uno u otro interesará conocer cual
de ellos nos acerca más rápidamente a la solución de la ecuación. Ello se hace a
traves del concepto denominado “orden de convergencia” que pasamos a definir
a continuación:
|xi+1 − x∗ |
lı́m =β
i→∞ |xi − x∗ |p
Teorema 2.9. Siendo g(x) una función de clase C p+1 ([a, b]) y tal que en
[a, b] admite un único punto fijo x∗ en el que se cumplen las hipótesis:
g (p (x∗ ) 6= 0
54
Velocidad de convergencia de los métodos iterativos
y dado que x∗ = g(x∗ ) y que las (p−1) primeras derivadas son nulas se tendrá que:
(xi+1 − x∗ ) 1
∗ p
= · g (p (x∗ ) + O(xi − x∗ )
(xi − x ) p!
por lo que si la sucesión converge hacia x∗ se verificará:
(xi+1 − x∗ ) 1
lı́m = · g (p (x∗ )
i→∞ (xi − x∗ )p p!
Demostración. Basta con comprobar que g ′ (x∗ ) no tiene por qué ser nula.
f (x)
g(x) = x −
f ′ (x)
f (x∗ ) · f ”(x∗ )
g ′ (x∗ ) = =0
(f ′ (x∗ ))2
y:
f ”(x∗ )
g”(x∗ ) =
f ′ (x∗ )
55
Métodos generales para la resolución de una ecuación no lineal
f (x) = (x − x∗ )m · h(x) = 0
de donde:
f (x) (x − x∗ ) · h(x)
g(x) = x − = x −
f ′ (x) m · h(x) + (x − x∗ ) · h′ (x)
y:
h(x∗ ) · m · h(x∗ ) 1
g ′ (x∗ ) = 1 − = 1 −
m2 · h2 (x∗ ) m
En resumen, en este caso sólo se puede asegurar la convergencia lineal.
56
Velocidad de convergencia de los métodos iterativos
1 2
f (xi ) = f (x∗ + hi ) = hi · f ′ (x∗ ) + · h · f ”(x∗ ) + O(h3i )
2 i
resultará:
f (xi ) 1
= f ′ (x∗ ) + · hi · f ”(x∗ ) + O(h2i )
hi 2
y análogamente:
f (xi−1 ) 1
= f ′ (x∗ ) + · hi−1 · f ”(x∗ ) + O(h2i−1 )
hi−1 2
Por tanto:
f (xi ) f (xi−1 ) 1
− = · (hi − hi−1 ) · f ”(x∗ ) + O(h2i ) − O(h2i−1 )
hi hi−1 2
f (xi ) f (xi−1 )
hi
− hi−1 1
= · f ”(x∗ ) + O(hi ) + O(hi−1 )
xi − xi−1 2
xi − xi−1 1
≈ ′ ∗
f (xi ) − f (xi−1 ) f (x )
En resumen:
f (xi ) f (xi−1 )
xi − xi−1 hi
− hi−1 f ”(x∗ )
hi+1 = · · hi · hi−1 ≈ · hi · hi−1 =
f (xi ) − f (xi−1 ) xi − xi−1 2.f ′ (x∗ )
= C · hi · hi−1
hi+1
p = β
lı́m
i→∞ h
i
57
Métodos generales para la resolución de una ecuación no lineal
1
lı́m hi = ( · lı́m hi+1 )1/p
i→∞ β i→∞
y análogamente:
1
lı́m hi−1 = ( · lı́m hi )1/p
i→∞ β i→∞
1 C 1
hi+1 ≈ C · hi · hi−1 ⇒ lı́m hi+1 = C · lı́m hi · ( · lı́m hi )1/p = 1 · ( lı́m hi )1+ p ⇒
i→∞ i→∞ β i→∞ β p i→∞
C 1
⇒ β. lı́m hpi = 1 · ( lı́m hi )1+ p
i→∞ i→∞
β p
de donde finalmente:
1
β 1− p 1
= ( lı́m hi )1−p+ p
C i→∞
1
1−p+ =0
p
√
o lo que es lo mismo que: 1 + p − p2 = 0 de donde p = 1±2 5 . En esta expresión
de p el signo negativo no tiene sentido pues
√ conducirı́a a órdenes de convergencia
negativos por lo que finalmente p = 1+2 5 .
Nota 2.27. En resumen el método de la secante tiene una convergencia del or-
den 1,62.. es decir menor que el método de Newton pero mayor que el método
de aproximaciones sucesivas. No obstante en el método de Newton el esfuerzo
computacional en cada iteración puede ser mayor ya que debe estimarse en cada
iteración el valor de f (xi ) y el de f ′ (xi ) lo que nos conduce a que debe optarse
entre un menor número de iteraciones más costosas o un mayor número de itera-
ciones menos costosas.
58
Aceleración de la convergencia de los métodos iterativos: método ∆2
de Aitken
∆m xi = ∆ ∆(m−1) xi
i ≥ 0, m ≥ 2
Bajo la hipótesis de que exista una constante c tal que |c| < 1 y una
sucesión {δi }∞
i=0 tal que lı́m δi = 0 y tales que:
i→∞
yi − x∗
lı́m =0
i→∞ xi − x∗
59
Métodos generales para la resolución de una ecuación no lineal
hi · hi+2 − h2i+1
= x∗ +
hi+2 − 2 · hi+1 + hi
hi+2 = (c + δi+1 ) · (c + δi ) · hi
y:
(c + δi+1 ) · (c + δi ) − (c + δi )2
= · hi
(c + δi+1 ) · (c + δi ) − 2 · (c + δi ) + 1
yi − x∗ (c + δi+1 ) · (c + δi ) − (c + δi )2
lı́m = lı́m =0
i→∞ hi i→∞ (c + δi+1 ) · (c + δi ) − 2 · (c + δi ) + 1
60
Aceleración de la convergencia de los métodos iterativos: método ∆2
de Aitken
tol ← 2 · ε
iteración ← 0
Mientras ( (iteración < maxiter) y (tol > ε) ), hacer:
x1 ← g(x0 )
x2 ← g(x1 )
Si ((x2 − 2 · x1 + x0 ) 6= 0) entonces:
(x1 −x0 )2
x3 ← x0 − x2 −2·x1 +x0
si no:
ε
tol ← 2
fin condición.
tol ← |x3 − x0 |
iteración ← iteración + 1
x0 ← x3
Fin bucle condicional.
Si (tol < ε) entonces:
Tomar x3 como solución
si no:
Escribir un mensaje de error en el proceso de cálculo
fin condición.
Fin del algoritmo.
R.T a
P = −
V − b V.(V + b) + b.(V − b)
donde a y b son constantes, T es la temperatura absoluta a la que se encuen-
tra el gas, V es el volumen especı́fico y R es la constante de los gases perfectos
( 8,31441Jul./(mol.o K)). Para el CO 2 las constantes a y b toman los valores
a = 364,61m6 .kP a/(kg.mol)2 y b = 0,02664m3 /kg.mol. Supongamos que se de-
61
Métodos generales para la resolución de una ecuación no lineal
sea encontrar la densidad (es decir 1/V) del CO 2 a una presión de 1 ·10 4 kPa y a
una temperatura de 340 o K usando la ecuación de Peng-Robinson. Ello implicarı́a
tener que encontrar el valor de V para el que:
R,340 364,61
1,104 = −
V − 0,02664 V.(V + 0,02664) + 0,02664.(V − 0,02664)
364,61 · (V − 0,02664)
1,104 .(V − 0,02664) = 340 · R − ⇒
V.(V + 0,02664) + 0,02664.(V − 0,02664)
Como punto de partida puede considerarse que si el gas fuese perfecto la ecuación
de los gases perfectos
R·T R·T
P = ⇒V =
V P
nos conducirı́a en este caso a
8,31441 · 340
V0 = ≈ 2866 · 10−4
1 · 104
R,340 364,61
ri = − − 1 · 104
Vi − 0,02664 Vi .(Vi + 0,02664) + 0,02664.(Vi − 0,02664)
62
Aceleración de la convergencia de los métodos iterativos: método ∆2
de Aitken
Iteración Vi g(Vi ) ri
1 0,211311226884 0,187353020426 −1297,34376394
2 0,187353020426 0,177275001886 −627,081646107
3 0,177275001886 0,172576048103 −311,943022813
4 0,172576048103 0,170283680111 −157,080311681
5 0,170283680111 0,169141118216 −79,5413967845
6 0,169141118216 0,168565615384 −40,3858467251
... ................. ................. ...................
27 0,167973123629 0,167973123232 −0,0000280358854345
28 0,167973123232 0,167973123031 −0,0000142727608292
29 0,167973123031 0,167973123232 −0,00000726610596669
∗
por lo que se puede tomar Va.s. ≈ 0,167973123031 (y por tanto la densidad bus-
cada serı́a su inversa 5,9533333..). La determinación de este valor ha costado 29
iteraciones del método de aproximaciones sucesivas. Si en su lugar se hubiera uti-
lizado el algoritmo de Steffensen se obtendrı́a la siguiente tabla de valores (con
los mismos controles de tolerancia):
Iteración Vi g(Vi ) ri
1 0,176170684169 0,172043245471 −276,026202967
2 0,168072867021 0,168023886001 −3,46319927617
3 0,167973138878 0,167973130996 −0,000557724441576
4 0,167973122821 0,167973122821 −0,140492062428 · 10−10
5 0,167973122821 0,167973122821 0,373034936274 · 10−12
Obsérvese que en la última iteración se repiten los valores de xi y g(xi ) de la
cuarta iteración aunque el valor del residuo difiere. Ello es debido a que x4 y x5
no son iguales pero se diferencian a partir de valores decimales que están más
allá de los considerados en este ejemplo.
Nótese asimismo que en sólo 5 iteraciones del método de Steffenson se ha logra-
∗
do una solución VSt ≈ 0,167973122821 muy similar a la proporcionada por el
∗
método de aproximaciones sucesivas (Va.s. ≈ 0,167973123031) habiendo diferen-
−9
cias entre ellas del orden de 10 pero que hacen mucho menor el residuo. Es
decir, con menos iteraciones se ha logrado una solución más precisa. Eso sı́, sien-
do honestos, debemos reconocer que en cada iteración del método de Steffenson
se han realizado 2 evaluaciones de la función g(x) (frente a una en el método de
aproximaciones sucesivas) y seis operaciones elementales más (las que nos pro-
porcionaban el valor “corregido” x3 en cada iteración). No obstante, este mayor
esfuerzo computacional en cada iteración, al menos en este caso, merece la pena.
63
Métodos generales para la resolución de una ecuación no lineal
E = V + i · Xd · Id + i · Xq · Iq
|V |2
|V | · |E| 1 1
P = · sen(δ) + · − · sen(2 · δ)
Xd 2 Xq Xd
10 2
P = =
15 3
13,6
|V | = =1
13,6
16,592
|E| = = 1,22
13,6
valores para los que la expresión de la potencia activa por unidad nos conduce a:
2
= C1 · sen(δ) + C2 · sen(2 · δ)
3
donde:
16,592
C1 =
13,6 · 0,91
1 1 1
C2 = · −
2 0,76 0,91
64
Algunos comentarios finales sobre los métodos de resolución de una
ecuación no lineal
2
f (δ) = C1 · sen(δ) + C2 · sen(2 · δ) − =0
3
Para ello, puesto que:
C1 · sen(δi ) + C2 · sen(2 · δi ) − 32
δi+1 = δi −
C1 · cos(δi ) + 2 · C2 · cos(2 · δi )
1o ) Los métodos presentados en este apartado constituyen los métodos más básicos
de resolución de ecuaciones no lineales. Existen muchos otros aplicables a ecua-
ciones no lineales de determinado tipo. Entre ellos merece la pena destacar los
métodos de resolución de ecuaciones polinómicas tales como los de Bairstow,
Bernoulli, Dandelin-Graeffe, etc... que pueden encontrarse en la bibliografı́a so-
bre este tema (por ejemplo en C. Conde & G. Winter [5] o en E. Durand [6] o en
D. Kincaid y W. Cheney [10]).
2o ) En el esquema iterativo del método de la secante, de forma gráfica, se sigue
la recta secante al grafo de la función que pasa por los puntos (xi , f (xi )) y
(xi−1 , f (xi−1 )). Algunas variantes de este método consisten en ajustar en las
tres últimas aproximaciones halladas una parábola que pase por (xi−2 , f (xi−2 )),
(xi−1 , f (xi−1 )) y (xi , f (xi )) determinando con ella un nuevo punto, el xi+1 como
uno de los puntos en que dicha parábola corta al eje de abscisas y continuando
con él el proceso. Esta es la idea en que se basa el denominado método de Müller
cuya descripción puede encontrarse, por ejemplo en R. Burden & J.D. Faires [3].
3o ) Asimismo existen variantes de los métodos antes expuestos para el caso de
trabajar con funciones de variable compleja. En D. Kincaid & W. Cheney [10] o
65
Métodos generales para la resolución de una ecuación no lineal
en C. Conde & G. Winter [5] podrán encontrarse, por ejemplo, las adaptaciones
del método de Newton al campo complejo.
4o ) Otra familia de métodos para la búsqueda de soluciones de una ecuación no
lineal se sustentan en los métodos de optimización. Para ello se puede construir la
función r(x) = f 2 (x). Esta función r(x) siempre tomará valores positivos o nulos
por lo que, si f (x) = 0 admite solución, los mı́nimos de r(x) tendrán valor 0.
Pueden entonces emplearse técnicas de minimización (que desbordan los objetivos
de este tema) para determinar los puntos mı́nimos de la función r(x). Algoritmos
tales como el de Marquardt-Levenberg o la familia de métodos de optimización
global (algoritmos genéticos, métodos de “recocido simulado”, etc...) pueden ser
aplicados a r(x). Remitimos al lector a la bibliografı́a de este tema (por ejemplo
J.L. de la Fuente O’Connor [7]) para un estudio de métodos de optimización.
5o ) Otros métodos muy en boga hoy en dı́a son los métodos de continuación (o de
homotopı́a). En ellos, dada la ecuación f (x) = 0, se considera que la variable x
depende (mediante una función desconocida “a priori”) a su vez de un parámetro
λ ∈ [0, 1] de forma tal que cuando λ tome el valor 1 se verifique que x(1) = x∗ ,
siendo x∗ una solución de la ecuación planteada. Por ejemplo es habitual, dado
un valor inicial x0 ,considerar que f (x(λ)) = (1 − λ).f (x0 ). De esta forma cuando
λ tome el valor 1 se deberá verificar que f (x(1)) = 0 con lo que x∗ = x(1). Con
esta elección se tendrá que:
df dx
(x(λ)) · dλ (λ) = −f (x0 )
dx λ ∈ [0, 1]
x(0) = x0
df
En las expresiones anteriores dx (x(λ)) puede calcularse (pues f (x) ) es conocida)
y será una expresión que dependerá de x(λ). Por tanto las ecuaciones anterio-
res representan un problema de valor inicial cuya resolución nos determinará la
expresión de la función x(λ) buscada.
A su vez la resolución del problema de valor inicial se realiza en la práctica
mediante métodos numéricos.
6o ) Una vez determinada una solución de la ecuación f (x) = 0, otras raı́ces pueden
buscarse utilizando la denominada técnica de deflación en la que f (x) se expresa
como:
f (x)
f (x) = (x − x∗ ) · h(x) ⇔ h(x) =
(x − x∗ )
66
Algunos comentarios finales sobre los métodos de resolución de una
ecuación no lineal
67
Métodos generales para la resolución de una ecuación no lineal
68
CAPÍTULO 3
Métodos de resolución de
sistemas de ecuaciones no lineales
f1 (x1 , x2 , ...., xn ) = 0
f2 (x1 , x2 , ...., xn ) = 0
............................
fn (x1 , x2 , ...., xn ) = 0
f : IRn → IRn
f1 (x1 , x2 , ...., xn )
f2 (x1 , x2 , ...., xn )
x = (x1 , x2 , ..., xn )T → f (x) =
............................
fn (x1 , x2 , ...., xn )
69
Métodos de resolución de sistemas de ecuaciones no lineales
x = x + f (x)
f (x) = 0 ⇐⇒ x = x − f (x)
por lo que g(x) = x − f (x) también serı́a otra forma de realizar la transformación
antes aludida.
O podrı́a despejarse (total o parcialmente) de la primera ecuación x1 , de la se-
gunda x2 , ..... y de la n-ésima ecuación xn con lo que también escribirı́amos el
sistema en la forma deseada.
También ahora debe ponerse atención en el hecho de que a pesar de que existan
muy diferentes formas de reescribir f (x) = 0 en la forma x = g(x) no todas
son equivalentes para aplicar sobre ellas el método de aproximaciones sucesivas
y debe seleccionarse con cuidado la forma en la que se da este paso para que,
a la luz de lo que nos indiquen los teoremas y propiedades que a continuación
presentaremos, se garantice la convergencia (lo más rápida posible) del método.
Una vez escrito el sistema de ecuaciones en la forma x = g(x) el método de
aproximaciones sucesivas consiste en seleccionar ”arbitrariamente” (aunque mejor
cuanto más cercano esté a la solución buscada) un vector x(0) con el que inicializar
el esquema iterativo siguiente:
Teorema 3.1. (Del punto fijo) Si para alguna norma k·k definida so-
bre IRn se verifica que g(x) es una contracción sobre un dominio D
cerrado de IRn y x(0) es un punto de D, entonces el método de aproxi-
maciones sucesivas antes planteado converge hacia la única solución
en D de la ecuación x = g(x).
70
El método de aproximaciones sucesivas para sistemas de n ecuaciones no
lineales
Nota 3.2. En otros términos las funciones g(x) con las que nos interesa trabajar
son aquellas que, para alguna norma vectorial k·k, sean una contracción sobre
algún dominio cerrado D de IRn .
Nota 3.3. El teorema anterior nos proporciona unas condiciones que aseguran la
convergencia del método. Son pues condiciones suficientes para la convergencia del
método. Pero el teorema no dice nada sobre su necesidad. Y en efecto puede haber
situaciones particulares en las que no verificándose las condiciones del teorema
(que g(x) sea una contracción sobre el dominio D en el que se busca el vector
solución) el método también converja. A este respecto el teorema anterior se
limita a no asegurar el buen funcionamiento del método en el caso de que no se
satisfagan las hipótesis en él hechas pero sin impedir su buen funcionamiento en
dichos casos.
71
Métodos de resolución de sistemas de ecuaciones no lineales
n
Teorema 3.2. Si g(x) es una aplicación de clase (C 1 (D)) y que toma
valores en el cerrado D verificando para alguna norma matricial sub-
ordinada la condición:
Demostración. Por aplicación del teorema del valor medio se verificará que:
◦
∀x, y ∈ D ∃z ∈D g(x) − g(y) = [Jg (z)] .(x − y)
y por haber supuesto que para alguna norma matricial subordinada k·k el valor
de k[Jg (x)]k estaba acotado por k, trabajando con la norma vectorial a la que
está subordinada la anterior norma matricial se tendrá que:
por lo que, teniendo en cuenta que g : D → D, resulta que g(x) es una con-
tracción para la norma k·k. Aplicando el teorema precedente quedará totalmente
demostrado este.
Nota 3.4. Cuando en las aplicaciones se utilice este teorema para comprobar que
la aplicación considerada es una contracción se tomará como aproximación de la
constante de Lipschitz el valor k = M ax {kJg (x)k}.
x∈D
72
El método de aproximaciones sucesivas para sistemas de n ecuaciones no
lineales
∂gi
Demostración. Por ser ∂x j
(x) (i, j = 1, . . . , n) continuas en todo x ∈ D
existirá una bola abierta de centro x∗ y radio ε , B(x∗ , ε) tal que en ella se
verifique:
Nota 3.5. Cuanto menor sea el valor de k[Jg (x∗ )]k menor será la cota de
x(i) − x∗
obtenida en la demostración anterior y por ello mejor será la convergencia del
método si se parte de un punto sufcientemente cercano a la solución.
73
Métodos de resolución de sistemas de ecuaciones no lineales
n
x − x(n)
≤ k ·
x(1) − x(0)
∗
1−k
donde k es la constante de Lipschitz de la contracción.
Nota 3.6. Bajo las hipótesis del teorema precedente, si se desea asegurar que la
norma (siempre en el sentido de la norma vectorial para la que g(x) es una con-
tracción) del error cometido es menor que un cierto valor ε la expresión anterior
nos conduce que deben realizarse un número N de iteraciones tal que:
ε·(1−k)
log
kN
(1) (0)
kx(1) −x(0) k
· x −x
<ε⇒N >
1−k log(k)
∗
x − x(n)
≤ k
·
x(n) − x(n−1)
1−k
donde k es la constante de Lipschitz de la contracción y k·k es la
norma vectorial utilizada para su estimación.
Con ello, cuando g(x) sea una
contracción,
al ser k < 1, bastará con hacer un
número de iteraciones tal que
x(n) − x(n−1)
sea suficientemente pequeño para
74
El método de aproximaciones sucesivas para sistemas de n ecuaciones no
lineales
asegurar que
x∗ − x(n)
también es pequeño. Este control de la convergencia
debe acompañarse con la limitación del número de iteraciones a realizar, en pre-
visión de los casos en los que, no siendo
(n)g(x)
una
contracción,
el método no con-
(n) (n)
verja, y con el control del valor de f (x ) = g(x ) − x
en cada iteración.
Más concretamente un algoritmo del método de aproximaciones sucesivas, en el
que se parte de la ecuación equivalente x = g(x) es el siguiente:
Ejemplo 3.1. (Cortesı́a del Pr. B. Coto): Según el modelo de Wilson las expre-
siones de los coeficientes de actividad a dilución infinita (γi∞ ) de una mezcla
binaria están dadas por las expresiones:
donde Λ12 y Λ21 son los parámetros binarios de la mezcla. Se desea saber con el
modelo de Wilson el valor de los parámetros binarios en los dos casos siguientes:
75
Métodos de resolución de sistemas de ecuaciones no lineales
ln(γ1∞ ) = 1 − ln(x1 ) − x2
ln(γ2∞ ) = 1 − ln(x2 ) − x1
Caso a): Una primera opción para intentar resolver estas ecuaciones mediante
el método de aproximaciones sucesivas consiste en despejar x1 de la segunda
ecuación y x2 de la primera de ellas con lo que:
x1 = 1 − ln(γ2∞ ) − ln(x2 )
x2 = 1 − ln(γ1∞ ) − ln(x1 )
1 − ln(γ2∞ ) − ln(x2 )
g1 (x1 , x2 )
g(x) = =
g2 (x1 , x2 ) 1 − ln(γ1∞ ) − ln(x1 )
Obsérvese que:
−1
0 x2
[Jg (x)] = −1
x1
0
rada (puesto que el valor de toda norma matricial siempre es superior al radio
espectral de la matriz). En efecto, si con estas funciones inicializamos el método
(0) (0)
de aproximaciones sucesivas se van obteniendo, a partir de x1 = x2 = 1, los
valores siguientes:
76
El método de aproximaciones sucesivas para sistemas de n ecuaciones no
lineales
(1) (1)
x1 = x2 = 0,912905 . . .
(2) (2)
x1 = x2 = 1,00402 . . .
(3) (3)
x1 = x2 = 0,90888 . . .
(4) (4)
x1 = x2 = 1,00844 . . .
(5) (5)
x1 = x2 = 0,90449 . . .
(6) (6)
x1 = x2 = 1,013279 . . .
... ... ... ... ...
(59) (59)
x1 = x2 = 0,1758157 . . .
(60) (60)
x1 = x2 = 2,65122 . . .
ln(γ1∞ ) = 1 − ln(x1 ) − x2
⇐⇒
ln(γ2∞ ) = 1 − ln(x2 ) − x1
α · x1 = 1 + α · x1 − ln(γ1∞ ) − ln(x1 ) − x2
⇐⇒ ⇐⇒
α · x2 = 1 + α · x2 − ln(γ2∞ ) − ln(x2 ) − x1
1
· (1 + α · x1 − ln(γ1∞ ) − ln(x1 ) − x2 )
x1 = g1 (x1 , x2 ) = α
⇐⇒ 1
x2 = g2 (x1 , x2 ) = α
· (1 + α · x2 − ln(γ2∞ ) − ln(x2 ) − x1 )
77
Métodos de resolución de sistemas de ecuaciones no lineales
x1 < 1 y x2 < 1
Con ello puede darse a α un valor que nos proporcione dominios suficientemente
amplios para obtener una buena convergencia. Por ejemplo, si a α le asignamos
el valor 2, admitiendo en el caso a) la igualdad de valores para las soluciones x∗1 y
para x∗2 puesto que responden a la misma ecuación, se tiene que si x ∈ [0,639, 1] las
imágenes de gi (x, x) (i=1, 2) pertenecen al intervalo [0,95, 1] ⊂ [0,639, 1]. Por tanto
si ambas variables se toman con el mismo valor en el intervalo [0,639, 1−ε] (siendo
ε tan pequeño como se desee) la convergencia queda asegurada. Ası́ partiendo
(0) (0)
ahora de x1 = x2 = 1 se tiene que:
(1) (1)
x1 = x2 = 0,9564526645 . . .
(2) (2)
x1 = x2 = 0,9569409865 . . .
(3) (3)
x1 = x2 = 0,956929935 . . .
(4) (4)
x1 = x2 = 0,9569301837 . . .
(5) (5)
x1 = x2 = 0,9569301781 . . .
(6) (6)
x1 = x2 = 0,9569301782 . . .
ln(7,20) = 1 − ln(x1 ) − x2
ln(2,74) = 1 − ln(x2 ) − x1
de donde:
1
x1 = g1 (x1 , x2 ) = α
· (1 + α · x1 − ln(7,20) − ln(x1 ) − x2 )
1
x2 = g2 (x1 , x2 ) = α
· (1 + α · x2 − ln(2,74) − ln(x2 ) − x1 )
(0) (0)
por lo que comenzando con los valores x1 = x2 = 0,956 (aproximación de los
hallados en el caso a)) se tienen los vectores:
78
El método de aproximaciones sucesivas para sistemas de n ecuaciones no
lineales
(1) 0,484729
x =
0,726260
(2) 0,240685
x =
0,683050
(3) 0,182469
x =
0,716186
(4) 0,185196
x =
0,752033
0,175253
x(5) =
0,774988
1
4
· (1 + 4 · x1 − ln(7,20) − ln(x1 ) − x2 )
g(x1 , x2 ) = 1
4
· (1 + 4 · x2 − ln(2,74) − ln(x2 ) − x1 )
79
Métodos de resolución de sistemas de ecuaciones no lineales
−1
" #
0 γ2∞ ·e(x1 −1)
[Jg (x)] = −1
γ1∞ ·e(x2 −1)
0
(i+1) 1
x2 = (i)
γ2∞ ·e(x1 −1)
(0) (0)
a partir de los valores: x1 = x2 = 0,956 (aproximación de los hallados en el
caso a)) se tienen los vectores:
(1) 0,145136
x =
0,381380
(2) 0,257828
x =
0,858049
(3) 0,160072
x =
0,766603
0,175400
x(4) =
0,845328
(5) 0,162121
x =
0,832470
... ...
...
0,162447
x(15) =
0,843323
0,162447
x(16) =
0,843323
80
Una variante del método de aproximaciones sucesivas
−5. 42 × 10−7
1 − ln(7,2) − ln(0,162447) − 0,843323
=
1 − ln(2,74) − ln(0,843323) − 0,162447 3. 19 × 10−7
(i+1)
es decir que para la estimación del valor de la variable xj se utilizan los
valores obtenidos en la iteración anterior para todas las variables que se están
aproximando. No obstante, en ese momento ya se dispone de los valores de
(i+1) (i+1) (i+1)
x1 , x2 , . . . , xj−1 que, si el método posee buenas propiedades de conver-
gencia puede pensarse que estén más próximos a los de la solución que los de la
iteración anterior. En este sentido, en ocasiones, se sustituye el esquema iterativo
antes considerado por el siguiente:
81
Métodos de resolución de sistemas de ecuaciones no lineales
(i+1) 1
x1 = 0 1
(i+1) 1
B 1 C
−1C
x1 = B
@ (i−1) A
(i) ∞ (x1 −1)
γ1∞ ·e(x2 −1) γ1∞ ·e γ2 ·e
(i+1) 1
⇔ (i+1) 1
x2 = (i)
x2 = 0 1
γ2∞ ·e(x1 −1)
B
B 1 C
−1C
@ (i−1) A
(x
∞ ·e 2 −1)
γ1
γ2∞ ·e
(i+1) 1
x1 = 0 1
(i+1) 1
B 1 C
−1C
x1 = B
@ (i) A
(i) (x
∞ ·e 1 −1)
γ1∞ ·e(x2 −1) γ1∞ ·e γ2
(i+1) 1
⇔ (i+1) 1
x2 = (i+1)
x2 = 0 1
γ2∞ ·e(x1 −1)
B
B 1 C
−1C
@ (i) A
∞ (x2 −1)
γ1 ·e
γ2∞ ·e
82
El método de Newton-Raphson para sistemas de n ecuaciones no
lineales
(1) 0,145136
x =
0,858049
(2) 0,160072
x =
0,845328
(3) 0,162121
x =
0,843598
(4) 0,162402
x =
0,843361
(5) 0,162441
x =
0,843325
(6) 0,162446
x =
0,843324
(7) 0,162447
x =
0,843323
(8) 0,162447
x =
0,843323
83
Métodos de resolución de sistemas de ecuaciones no lineales
podrı́a determinarse x∗ como x∗ = x(0) + δx. Pero para resolver este sistema
primero deberı́amos conocer los valores de θj (lo cual no es obvio) y, una vez
conocidos, resolver un sistema, en general, no lineal
pues obsérvese que δx inter-
(0)
viene en la expresión de las matrices hessianas Hfj (x + θj · δx) . Por tanto,
salvo en situaciones muy particulares, no se ganarı́a gran cosa remplazando el
problema de resolver f (x) = 0 por el de resolver el sistema anterior.
El método de Newton-Raphson (o método de linealización de Newton) se sustenta
en simplificar las expresiones anteriores linealizándolas. Para ello considera que
si se está suficientemente
cerca de la solución (es decir si ||δx||
es suficientemente
1 T
pequeño) los términos 2 · {δx} · Hfj (x(0) + θj · δx) · δx podrán despreciarse
fente a los otros términos de cada ecuación del sistema. Por ello, denotando por
[Jf (x)] a la matriz jacobiana de f en el punto x, en este método se resuelve el
sistema lineal:
84
El método de Newton-Raphson para sistemas de n ecuaciones no
lineales
Sobre este método, en primer lugar, puede observarse que si denotamos por:
Propiedad 3.1. Si la función g(x) = x − [Jf (x)]−1 · f (x) es, para alguna
norma
n matricial, una contracción definida en D la sucesión dada
o∞
(i+1) (i) (i) −1 (i)
por x = x − Jf (x ) · f (x ) obtenida a partir de cualquier
i=0
vector x(0) ∈ D converge hacia la única solución de la ecuación f (x) = 0
en D.
Del teorema anterior, por analogı́a a lo realizado en el caso de una única ecuación
no lineal, podrı́an derivarse teoremas de convergencia que actuaran sobre las
primeras y segundas derivadas parciales de las componentes de la aplicación vec-
torial g(x). Dejamos al lector el desarrollo de tales teoremas y pasamos a enunciar
algunos otros en los que las hipótesis se realizan directamente sobre la propia fun-
ción vectorial f (x) y su matriz jacobiana y que pueden ser de más fácil aplicación
al análisis de la convergencia del método. Previamente a la demostración de dichos
teoremas necesitaremos introducir el siguiente lema:
α
kf (x) − f (y) − Jf (y) · (x − y)k ≤ · kx − yk2 ∀x, y ∈ D
2
Demostración.
Siendo x e y dos vectores genéricos de D denotemos por q(t) a la función vectorial
dependiente de un único parámetro real definida por:
q(t) = f (y + t · (x − y))
85
Métodos de resolución de sistemas de ecuaciones no lineales
de donde:
86
El método de Newton-Raphson para sistemas de n ecuaciones no
lineales
n −1 o∞
entonces para la sucesión x(i+1) = x(i) − Jf (x(i) ) · f (x(i) )
obtenida
i=0
a partir de cualquier vector x(0) ∈ D se verifica que:
(i+1)
α · β
(i)
2
x − x(i)
≤ ·
x − x(i−1)
2
i−1
h i−1
(i+1) (i)
h (i) (i) (i)
≤
Jf (x )
·
f (x(i) )
≤
x −x
=
− J f (x ) · f (x )
(i)
≤ β ·
f (x )
y como de:
−1
x(i+1) = x(i) − Jf (x(i) ) · f (x(i) )
se deduce que:
(i+1)
− x(i)
≤ β ·
f (x(i) )
=
x
= β ·
f (x(i) ) − f (x(i) ) − Jf (x(i) ) · x(i+1) − x(i)
≤
α·β
2
≤ ·
x(i) − x(i−1)
2
El teorema anterior nos muestra que la relación entre la norma del vector diferen-
cia entre las aproximaciones halladas en las iteraciones (i + 1) e i es proporcional
(con factor C = α·β 2
) al cuadrado de la norma del vector diferencia entre las
aproximaciones halladas en las iteraciones i e (i − 1). Pero por sı́ solo este teo-
rema no nos justifica
(i) que(i−1)
el método
2 converja. Simplemente nos indica que si en
algún momento x − x
< (1/C) entonces se habrá logrado una sucesión
de Cauchy y, al estar en un completo, por ello una sucesión convergente. Para
acabar de obtener un resultado que garantice la convergencia es necesario im-
poner más condiciones en el método. Como por ejemplo las que se recogen en el
teorema siguiente que, junto a las hipótesis a) y b) del teorema anterior añade
una nueva:
87
Métodos de resolución de sistemas de ecuaciones no lineales
(i+1)
α · β
(i)
2
x − x(i)
≤ ·
x − x(i−1)
2
α·β
Por recursión, llamando C = 2
se tiene:
(i+1)
2
4
− x(i)
≤ C ·
x(i) − x(i−1)
≤ C 3 ·
x(i−1) − x(i−2)
≤
x
8 i
2i
≤ C 7 ·
x(i−2) − x(i−3)
≤ ..... ≤ C 2 −1 ·
x(1) − x(0)
y como:
−1
x(1) − x(0) = Jf (x(0) ) · f (x(0) )
i
x − x(0)
2 ≤ µ2i
(1)
de donde:
(i+1) i i i
− x(i)
≤ C (2 −1) · µ2 = r(2 −1) · µ
x
88
El método de Newton-Raphson para sistemas de n ecuaciones no
lineales
distancia entre dos vectores consecutivos puede hacerse tan pequeña como se
desee.
Por otra parte es claro que se verificará que siendo j e i dos ı́ndices tales que
j > i:
(j+1)
− x(i)
≤
x(j+1) − x(j)
+
x(j) − x(i)
≤
x
≤
x(j+1) − x(j)
+
x(j) − x(j−1)
+
x(j−1) − x(i)
≤
2(k−i)
2k 2i ·2(k−i) 2i
r =r = r
resultará:
i 2 i 3 i (j−i)
(j+1) (i) (2i −1) 2i 2 2
+ ... + r2
x − x
≤µ · r · 1+r + r + r =
(j−i+1)
i
1 r2
(2i −1)
=µ·r · i −
2 2i
1−r 1−r
La desigualdad anterior muestra que, siendo j > i, el valor de
x(j) − x(i)
puede
hacerse tan pequeño como se desee con tal de tomar el ı́ndice i suficientemente
∞
elevado. Por tanto la sucesión x(i) j=0 es una sucesión de Cauchy y, al ser D un
cerrado, será convergente hacia un vector x∗ . Tomando lı́mites en la desigualdad
anterior resulta además que:
89
Métodos de resolución de sistemas de ecuaciones no lineales
∗
x − x(i)
= lı́m
x(j+1) − x(i)
≤
j→∞
(j−i)
i
i 1 r2 i
r(2 −1)
≤ lı́m µ · r(2 −1) · − = ·µ
j→∞ 1 − r2i 1 − r2i 1 − r2i
El teorema precedente demuestra que, bajo las hipótesis en él impuestas, el méto-
do de Newton-Raphson converge. El teorema anterior a este, demuestra además
que la convergencia del método es cuadrática.
−1
El método de Newton, en cada iteración, exige evaluar la matriz Jf (x(i) )
. Ello,
en el caso de que el número de ecuaciones sea elevado, requiere un gran esfuerzo
computacional. Por ello se han desarrollado diferentes variantes del método de
Newton en las que, perdiendo algo de su velocidad de convergencia, se aproxima
dicha matriz inversa de la jacobiana. Algunas de estas variantes las presentaremos
un poco más adelante.
Asimismo, el método de Newton-Raphson suele programarse de forma algo difer-
ente a como lo hemos expuesto hasta ahora. En efecto, en el método de Newton-
Raphson en cada iteración puede determinarse el vector incremento a través de
la resolución de un sistema de n ecuaciones lineales y tras ello sumarse el vector
de incrementos al vector con el que se inicializó la iteración. Más concretamente
un algoritmo del método puede ser el siguiente:
90
El método de Newton-Raphson para sistemas de n ecuaciones no
lineales
x ← x − δx
tolx ← kδxk
tolf ← kf (x)k
iteración ← iteración + 1
Fin condición.
Fin bucle condicional.
Si ((tolx < ε) y (tolf < δ) ) entonces:
tomar x como solución
si no:
Escribir un mensaje de error en el proceso de cálculo
Fin condición.
Fin del algoritmo.
Nota 3.9. A la matriz [Jf (x)], por analogı́a con lo que representa la derivada
de una función, se la denomina en algunos textos en lugar de matriz jacobiana
matriz tangente.
Ejemplo 3.2. (Propuesto en Hanna & Sandall [9]): Considérese una tuberı́a de
sección circular que va del punto P1 al punto P2 y en él se divide en dos ramas,
una que va al punto P3 y otra que va al punto P4. Designando por Q al caudal
que va de P1 a P2, por Q1 al que va de P2 a P3, por Q2 al que va de P2 a P4 y
por p1 , p2 , p3 y p4 a las presiones en los puntos P1, P2, P3 y P4 respectivamente,
caı́das de presión en cada tramo y los caudales que por ellos circulan se pueden
relacionar mediante las ecuaciones siguientes:
p1 − p2 = K1 · Q1,75
p2 − p3 = K2 · Q1,75
1
p2 − p4 = K3 · Q1,75
2
Q = Q1 + Q2
Para un fluido y una tuberı́a concretos se han estimado los valores siguientes:
91
Métodos de resolución de sistemas de ecuaciones no lineales
Q, Q1 y Q2 que circulan por cada una de las ramas de la red de tuberı́as antes
descrita.
Solución:
El sistema dado puede escribirse, de acuerdo a los datos del ejercicio, como:
Este sistema de 4 ecuaciones con 4 incógnitas puede intentar resolverse tal cual
está planteado mediante el método de Newton-Raphson (invitamos al lector a
hacerlo). Pero el proceso puede aligerarse computacionalmente utilizando la últi-
ma ecuación inyectada en la primera y reformulando el sistema como:
Este nuevo sistema ya sólo tiene 3 ecuaciones con 3 incógnitas. En él la función
que define el sistema es:
92
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
(2)
Q1
14,1344377
(2)
Q2 = 10,1343069
p(2)
43,9558088
2
(3)
Q1
14,1355465
(3)
Q2 = 10,1303048
p(3)
43,9596512
2
(4)
Q1
14,1355467
(4)
Q2 = 10,1303043
p(4)
43,9596517
2
no realizándose más iteraciones pues la norma-2 del vector diferencia entre los
hallados en la 3a y 4a iteraciones es inferior a 10−6 y los valores de la función que
define el sistema en este vector son:
0,287270 · 10−14
(4) (4) (4)
f (Q1 , Q2 , p2 ) = 0,115880 · 10−14
0,493234 · 10−13
93
Métodos de resolución de sistemas de ecuaciones no lineales
Jf (x(i) ) · δx(i) = f (x(i) ), lo cual implica tener que hacer del orden de O(λ.n3 )
∂fk (i)
(x ) ≈
∂xj
(i) (i) (i) (i) (i) (i) (i) (i) (i) (i) (i)
fk (x1 , . . . , xj−1 , xj + hj , xj+1 , . . . , xn ) − fk (x1 , . . . , xj−1 , xj , xj+1 , . . . , xn )
≈ (i)
hj
(i)
donde los parámetros hj (j=1, .., n) son tomados en cada iteración ”suficiente-
mente” pequeños para asegurar una buena aproximación. Por ejemplo:
(i) (i−1)
!
(i)
x −x
hj = h(i) = Inf , h(i−1)
10
∂fk
Otra elección posible consiste en aproximar el valor de la derivada ∂xj
(x(i) ) con
(i)
(i) hj
un cierto valor de hj y a continuación hacerlo con 2 y comparar las dos aproxi-
maciones obtenidas. Si la diferencia entre ambos es suficientemente pequeña se
dará por buena la aproximación obtenida. Si es “elevada” se repetirá el proceso
(i) (i)
h h
comparando las aproximaciones obtenidas para 2j y para 4j . Este proceso se
continua hasta obtener dos aproximaciones de la derivada parcial suficientemente
próximas, momento en el que una de ellas se toma como la aproximación buscada
de la derivada parcial.
El proceso anterior nos permite estimar de forma aproximada la matriz jacobiana
pero no nos elimina la necesidad de invertirla (o factorizarla) por lo que el número
de operaciones por iteración sigue siendo proporcional a n3 .
94
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
Con ello, a costa de una pérdida de velocidad de convergencia, se logra que sólo
las iteraciones 1a , (k+1)-ésima, (2.k+1)-ésima, .... impliquen la realización de un
número de operaciones proporcional a n3 en tanto que el resto conllevarán del
orden de n2 operaciones.
sustituye por otra con la misma diagonal pero con todos sus demás elementos
nulos. Más concretamente, denotando por Df (x(i) ) a la matriz:
∂f1
∂x1
(x(i) ) 0 ... 0
∂f2 (i)
0 ∂x2 (x ) ... 0
Df (x(i) ) =
... ... ... ...
∂fn
0 0 ... ∂xn
(x(i) )
−1
x(i+1) = x(i) − Df (x(i) ) · f (x(i) )
(i = 0, 1, ...)
95
Métodos de resolución de sistemas de ecuaciones no lineales
∂f1
∂x1
(x(i) ) 0 ... 0
∂f2 ∂f2
(x(i) ) (i)
(x ) ... 0
(i)
Gf (x ) =
∂x1 ∂x2
... ... ... ...
∂fn (i) ∂fn (i) ∂fn (i)
∂x1
(x ) ∂x2 (x ) ... ∂xn
(x )
−1
x(i+1) = x(i) − Gf (x(i) ) · f (x(i) )
(i = 0, 1, ...)
−1
x(i+1) = x(i) − ρ · Df (x(i) ) + Gf (x(i) ) · f (x(i) )
(i = 0, 1, ...)
−1
x(i+1) = x(i) − A(i) · f (x(i) )
(i = 0, 1, ...)
96
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
f (xi ) − f (xi−1 )
f ′ (xi ) ≈ fi′ =
xi − xi−1
Utilizando esta idea, C.G. Broyden (en [2]) propusoremplazar en cada iteración
del método de Newton la matriz tangente Jf (x(i) ) por otra matriz A(i) que
verificase que:
Junto a esta condición, C.G. Broyden impuso otra que pasamos a “justificar”. Si se
n
considera que f (x) ∈ (C 2 (D)) considerando desarrollos en serie de Taylor hasta
el primer orden (es decir linealizando los desarrollos como se hace en el método
de Newton) y siendo x(i−1) y x(i) dos vectores ”suficientemente próximos” y x
otro vector también suficientemente próximo a los anteriores, se tiene que:
sustituyéndose la matriz jacobiana por A(i) . Por ello, junto a (3.1), Broyden
97
Métodos de resolución de sistemas de ecuaciones no lineales
donde u(i) = (x(i) − x(i−1) ) y v es un vector ortogonal al u(i) es decir tal que:
vT · u(i) = 0. De esta forma:
(i)
A − A(i−1) · (x − x(i−1) ) = α · A(i) − A(i−1) .u(i) + A(i) − A(i−1) · v
Por
(i)tanto(i−1)
para minimizar la expresión obtenida debe minimizarse el valor de
(i) (i) (i−1)
A −A · v para cualquier
(i) vector v ortogonal a u = (x − x ). Ello
(i−1)
se logra obligando a que A (i)− A (i−1)· v = 0, es decir haciendo que todos los
vectores fila de la matriz A − A sean ortogonales a v, o lo que es lo
(i) (i−1)
sean proporcionales a u(i) . En otros
mismo que todas las filas de A − A
términos la matriz A(i) − A(i−1) debe ser de la forma b · (u(i) )T donde b es un
vector columna formado por los factores de proporcionalidad de cada fila. Para
determinar el valor de las componentes del vector b puede volverse a recurrir a
la condición (3.1) de forma que:
(i) (i)
A · u = f (x(i) ) − f (x(i−1) ) ⇒
(i)
A − A(i−1) · u(i) = f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i) ⇒
1
b = (i) T (i) · f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i)
(u ) · u
98
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
lo que conllevará hacer otras (n2 ) operaciones; asimismo debe evaluarse el pro-
ducto escalar:
(u(i) )T · u(i)
lo que podrá hacerse con otras (2·n) operaciones. Finalmente se realizará la suma
de matrices
1
A(i−1) + f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i) · (u(i) )T
·
(u(i) )T · u(i)
−1
x(i+1) = x(i) − A(i) · f (x(i) )
Propiedad 3.2. Siendo [A] una matriz real cuadrada de orden n reg-
ular y siendo u y v dos vectores reales de n componentes tales que
uT · [A]−1 ·v 6= −1, se verifica que la matriz [A] + v · uT también es
regular y:
−1 1
[A] + v · uT = [A]−1 − · [A]−1 · v · uT · [A]−1
1 + uT · [A]−1 ·v
99
Métodos de resolución de sistemas de ecuaciones no lineales
Demostración. Si [A] es una matriz regular y u y v son dos vectores tales que
uT · [A]−1 ·v 6= −1, se podrá calcular la matriz
1
[A]−1 − −1 · [A]−1 · v · uT · [A]−1
T
1 + u · [A] ·v
ello:
T
−11 −1 T −1
[A] + v · u · [A] − · [A] · v · u · [A] =
1 + uT · [A]−1 ·v
1
= [A] · [A]−1 − −1 · [A] · [A]−1 · v · uT · [A]−1 +
T
1 + u · [A] ·v
1
+v · uT · [A]−1 − −1 · v · uT · [A]−1 · v · uT · [A]−1 =
T
1 + u · [A] ·v
1
=I− −1 · v · uT · [A]−1 + v · uT · [A]−1 −
T
1 + u · [A] ·v
uT · [A]−1 · v
− −1 · v · uT · [A]−1 =
T
1 + u · [A] ·v
1 + u · [A]−1 · v
T
=I− −1 · v · uT · [A]−1 + v · uT · [A]−1 =
T
1 + u · [A] ·v
= I − v · uT · [A]−1 + v · uT · [A]−1 = I
por
1 1
w(i) = · ∆(i) f − A(i−1) · u(i) = · ∆(i) f − A(i−1) · u(i)
(u(i) )T · u(i) ||u(i) ||2
con lo que:
(i) (i−1)
A = A + w(i) · (u(i) )T
100
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
−1
(z(i) )T = (u(i) )T · A(i−1)
−1
y(i) = A(i−1) · ∆(i) f
(i) T
M = r(i) · z(i)
101
Métodos de resolución de sistemas de ecuaciones no lineales
que operacionalmente este es ventajoso siempre que 32 ·n > 7, es decir para valores
de n superiores a 10.
Según todo lo anterior un algoritmo del método de Broyden es el que se recoge a
continuación:
102
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
con
0,1379003 0,2161114 −0,0782111
A = [Jf (16, 7, 50)]−1 = 0,1183890 −0,0782111 0,1966001
0,4488765 −0,2965403 −0,2545832
por lo que:
−1,9493924
u = −A · v = 3,4943950
−6,5847074
103
Métodos de resolución de sistemas de ecuaciones no lineales
siendo tanto ||u||2 como ||w||2 superiores a las tolerancias respectivas (10−6 para
ambas) por lo que se comienzan las siguientes iteraciones. En la segunda itera-
ción:
−3,1791085
δf = w − v = (f (x(1) ) − f (x(0) )) = 0,5322596
22,2241337
Con ello los vectores z , y y r del algoritmo de Broyden en esta iteración serán:
−2,8108445
z = [A]T · u = 1,2580449
2,5158179
−2,0615460
y = [A] · δf = 3,9512660
−7,2427538
0,1121536
r=u−y = −0,4568710
0,6580464
α = zT ·δf = 65,5174604
104
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
por lo que:
14,1522367
x(2) = x(1) +u = 10,0803968
44,0115879
siendo:
−2,238497 · 10−2
w = f (x(2) ) = −2,407702 · 10−3
−3,011495 · 10−1
Puesto que tanto ||u||2 como ||w||2 son superiores a las tolerancias respectivas
(10−6 para ambas) se pasará a realizar la tercera iteración. En ella:
−1,056173 · 10−1
δf = w − v = (f (x(2) ) − f (x(1) )) = −2,953853 · 10−1
−2,6914401
Con ello los vectores z , y y r del algoritmo de Broyden en esta iteración son:
2,0722672
z = [A]T · u = −1,1109786
−2,1837922
1,2038069
y = [A] · δf = −4,7080045
6,5662072
−1,875159 · 10−2
r=u−y = 5,680227 · 10−2
−6,032545 · 10−2
α = zT ·δf = 0,5986845
105
Métodos de resolución de sistemas de ecuaciones no lineales
por lo que:
14,1354080
x(3) = x(2) +u = 10,1313741
43,9574486
siendo:
−1,184048 · 10−4
w = f (x(3) ) = 1,791805 · 10−3
7,555445 · 10−3
Puesto que tanto ||u||2 como ||w||2 son superiores a las tolerancias respectivas
(10−6 para ambas) se pasará a realizar la cuarta iteración. En ella:
2,226656 · 10−2
δf = w − v = (f (x(3) ) − f (x(2) )) = 4,199507 · 10−3
3,087049 · 10−1
Con ello los vectores z , y y r del algoritmo de Broyden en esta iteración son:
−1,573676 · 10−2
z = [A]T · u = 6,061109 · 10−3
2,042382 · 10−2
−1,695303 · 10−2
y = [A] · δf = 5,198024 · 10−2
−5,624153 · 10−2
1,243689 · 10−4
r=u−y = −1,002896 · 10−3
2,102297 · 10−3
106
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
por lo que:
14,1355289
x(4) = x(3) +u = 10,1303992
43,9594922
siendo:
1,343715 · 10−5
w = f (x(4) ) = 1,068316 · 10−4
6,345653 · 10−4
Puesto que tanto ||u||2 = 2,267424 · 10−3 como ||w||2 = 6,436355 · 10−4 son
superiores a las tolerancias respectivas (10−6 para ambas) se pasará a realizar la
quinta iteración. En ella:
1,318420 · 10−4
δf = w − v = (f (x(4) ) − f (x(3) )) = −1,684974 · 10−3
−6,920880 · 10−3
Con ello los vectores z , y y r del algoritmo de Broyden en esta iteración son:
6,646434 · 10−4
z = [A]T · u = −4,300603 · 10−4
−5,680580 · 10−4
1,040072 · 10−4
y = [A] · δf = −8,849542 · 10−4
1,892971 · 10−3
1,688776 · 10−5
r=u−y = −8,992822 · 10−5
1,506046 · 10−4
107
Métodos de resolución de sistemas de ecuaciones no lineales
por lo que:
14,1355472
x(5) = x(4) +u = 10,1303018
43,9596554
siendo:
−5,450506 · 10−7
w = f (x(5) ) = −2,101924 · 10−6
−1,624559 · 10−5
Puesto que tanto ||u||2 = 1,909874 · 10−4 como ||w||2 = 1,639007 · 10−5 son
superiores a las tolerancias respectivas (10−6 para ambas) se pasará a realizar la
sexta iteración. En ella:
−1,398220 · 10−5
δf = w − v = (f (x(5) ) − f (x(4) )) = −1,089335 · 10−4
−6,508109 · 10−4
Con ello los vectores z , y y r del algoritmo de Broyden en esta iteración son:
5,575227 · 10−5
z = [A]T · u = −3,355124 · 10−5
−5,301423 · 10−5
108
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton
1,888501 · 10−5
y = [A] · δf = −1,000455 · 10−4
1,671392 · 10−4
−5,822047 · 10−7
r=u−y = 2,582090 · 10−6
−3,915274 · 10−6
por lo que:
14,1355467
x(6) = x(5) +u = 10,1303043
43,9596516
siendo:
2,998971 · 10−9
w = f (x(6) ) = 3,361990 · 10−8
1,813023 · 10−7
109
Métodos de resolución de sistemas de ecuaciones no lineales
2,998971 · 10−9
v = w = f (x(6) ) = 3,361990 · 10−8
1,813023 · 10−7
Con ello los vectores z , y y r del algoritmo de Broyden en esta iteración son:
−1,255348 · 10−6
z = [A]T · u = 7,134958 · 10−7
1,259157 · 10−6
−5,726548 · 10−7
y = [A] · δf = 2,546533 · 10−6
−3,867612 · 10−6
4,490337 · 10−9
r=u−y = −2,671202 · 10−8
4,675664 · 10−8
por lo que:
14,1355467
x(7) = x(6) +u = 10,1303043
43,9596517
siendo:
4,551615 · 10−11
w = f (x(7) ) = 5,687885 · 10−10
2,995289 · 10−9
110
Algunos comentarios sobre los métodos de resolución de sistemas de
ecuaciones no lineales
Puesto que ||u||2 = 5,341189 · 10−8 y ||w||2 = 3,049155 · 10−9 son inferiores a la
tolerancia dada para ellas se detiene el proceso iterativo tomando como solución:
y:
p2 = 43,9596517psi
es decir los mismos valores que los obtenidos con el método de Newton-Raphson
(hallados ahora en 7 iteraciones en lugar de en 4 pero no habiendo tenido que
invertir ni calcular la matriz jacobiana en cada iteración). Con todo, en este caso
en el que el número de ecuaciones es tres, el método de Broyden es más costoso
por iteración que el de Newton. Esperamos de la benevolencia del lector que
entienda por ello que lo anterior simplemente pretende ilustrar la metodologı́a
seguida en el método de Broyden, pues para apreciar el ahorro computacional
deberı́a haberse acudido a un sistema con mayor número de ecuaciones (más de
diez) bastante más “pesado” de transcribir al papel.
Nota 3.11. Para el caso particular de que la matriz jacobiana sea simétrica se
puede modificar el método anterior reduciendo aun más su coste computacional.
Ello se hace por ejemplo en el método BFGS (siglas de sus autores: Broyden,
Fletcher, Goldfab y Shano).
donde:
111
Métodos de resolución de sistemas de ecuaciones no lineales
df (i)
(x + α · d(i) ) = 0
dα
Para ello se han ideado diferentes estrategias. La más simple, debida a Armijo,
consiste en, conocidos x(i) y d(i) , evaluar:
(i)
f (x + α(i) · d(i) )
n
1X 2 1
r(x) = fi (x1 , x2 , ..., xn ) = kf (x)k22
2 j=1 2
Esta función residuo siempre tomará valores positivos o nulos. Será precisamente
en aquellos puntos para los que se verifique el sistema de ecuaciones en los que
112
Algunos comentarios sobre los métodos de resolución de sistemas de
ecuaciones no lineales
el residuo tome el valor nulo. Por ello el problema se reduce a buscar los mı́ni-
mos de la función residuo r(x). Para ello partiendo de un punto x(0) tomado
arbitrariamente se sigue el esquema iterativo:
∂r
(x(i) )
∂x1
∂r
(x(i) )
∇r(x(i) ) = ∂x2
...
∂r
(x(i) )
∂xn
r(x(i) + ρ · d(i) )
113
Métodos de resolución de sistemas de ecuaciones no lineales
f (x(λ)) = (1 − λ) · f (x(0) )
f (x(0)) = f (x(0) )
f (x(1)) = 0
dx1
dλ
(λ)
dx2
(λ)
[Jf (x)] · dλ = −f (x(0) )
... λ ∈ [0, 1]
dxn
(λ)
dλ
x(0) = x(0)
Este sistema diferencial ordinario de primer orden puede entonces ser resuelto (por
ejemplo, utilizando algún método numérico) determinándose una aproximación
del valor de x∗ = x(1).
5o ) Determinado un punto solución del sistema de ecuaciones no lineales, otras
soluciones se pueden buscar eliminando dichas soluciones del sistema mediante
una estrategia análoga a la descrita en el sexto comentario sobre los métodos
para la resolución de una única ecuación no lineal. Dejamos al lector el desarrollo
detallado de esta estrategia de deflacción en el caso n-dimensional.
6o ) En Press et al. [12] (y en diferentes “websites”) pueden encontrarse bibliotecas
de códigos que implementan los métodos tratados en este tema y muchos otros.
Asimismo, los paquetes informáticos MAPLE, MATLAB, MATHEMATICA, y
otros incluyen poderosas rutinas de resolución de sistemas no lineales.
7o ) También para el caso de sistemas no lineales puede utilizarse la técnica de ace-
leración de Aitken (algoritmo conocido como método ∆2 modificado que básica-
mente aplica la técnica vista para una ecuacion a cada una de las ecuaciones del
sistema). No obstante, como se recoge por ejemplo en O.T. Hanna y O.C. Sandall
[9], a diferencia de lo que sucedı́a en el caso de una única ecuación, esta técnica no
siempre funciona sobre los sistemas de varias ecuaciones, pudiendo incluso darse
el caso de que el método de aproximaciones sucesivas por sı́ solo converja en tanto
que si se le combina con la técnica ∆2 diverja. Remitimos al lector interesado a
la referencia citada para obtener un mayor detalle al respecto.
114
CAPÍTULO 4
Ejercicios propuestos
λ · L · u2
h=
2·D·g
115
Ejercicios propuestos
116
(Sol.: No hay raiz en el intervalo [5,5, 6,5] ya que las raı́ces de este polinomio son:
x = ,9999998016
x = 2,000177934
x = 2,991135148
x = 4,162530826
x = 4,574836092
x = 6,499858710 − ,7292706015 · i
x = 6,499858710 + ,7292706015 · i
x = 8,272602779
Sabiendo que por consideraciones técnicas los ángulos ϕ y δ deben estar com-
prendidos entre 0 y π/2 y que la densidad de corriente I debe ser positiva, se pide
resolver mediante el método de Newton el sistema partiendo de los datos iniciales
siguientes:
a) I = 1, ϕ = 0,1 y δ = 0,1 (Sol: I ∗ = 0,67013, ϕ = 0,101728, δ = 0,448941)
117
Ejercicios propuestos
U + 0,27
U
− 1,31 · cos(ϕ) = 0
0,405
U
− 1,31 · sen(ϕ) = 0
U = 0,958132, ϕ = 0,328549
U = 0,508019, ϕ = 0,654245
U = −0,958132, ϕ = −2,81304
U = −0,508019, ϕ = −2,487348
{x = 3., y = 2.}
{x = −3,779310253, y = −3,283185991}
{x = 3,584428340, y = −1,848126527}
{x = −2,805118087, y = 3,131312518}
{x = −,1279613473, y = −1,953714980}
{x = −,2708445907, y = −,9230385565}
{x = −3,073025751, y = −0,08135304429}
{x = 3,385154184, y = 0,07385187984}
{x = 0,086677504, y = 2,884254701} )
118
CAPÍTULO 5
Bibliografı́a
119
Bibliografı́a
University Press.
[13] L.F. Shampine, R.C. Allen y S. Pruess, (1.997). Fundamentals of numerical
computing. Ed. John Wiley and Sons.
[14] J. Stoer y R. Bulirsch, (1.980). Introduction to numerical analysis. Ed.
Springer Verlag.
120