Vous êtes sur la page 1sur 648

UNIVERSIDAD POLITÉCNICA DE MADRID

ESCUELA TÉCNICA SUPERIOR DE


INGENIEROS DE MINAS

DEPARTAMENTO DE MATEMÁTICA APLICADA Y


MÉTODOS INFORMÁTICOS

Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS

Tema: ERRORES DE REDONDEO EN LA


REPRESENTACIÓN DE NÚMEROS REALES
Prof. Carlos Conde Lázaro
Prof. Arturo Hidalgo López
Prof. Alfredo López Benito

Marzo, 2007
ÍNDICE
Pág.
1. INTRODUCCIÓN. ……………………….…………………………… 1

2. LA NOTACIÓN CIENTÍFICA Y LA REPRESENTACIÓN EN


COMA FLOTANTE NORMALIZADA DE NÚMEROS REALES EN
BASE 10. ……………………………………………….…..…………… 13

2.1. La notación científica decimal ……………………………………. 13


2.2. La representación en coma flotante normalizada decimal ……. 14
2.3. El conjunto finito de números de un sistema decimal en
coma flotante normalizada. ………………………………………. 15
2.4. Truncado y redondeo de números reales en coma flotante. …. 17
2.5. La unidad de redondeo en coma flotante decimal. ……………. 20
2.6. Los errores de overflow y de underflow. ……………………….. 21

3. LA NOTACIÓN CIENTÍFICA Y LA REPRESENTACIÓN EN


COMA FLOTANTE NORMALIZADA DE NÚMEROS REALES
EXPRESADOS EN BASE 2 ……………………………………………. 24

3.1. Expresión en base 2 de un número entero no nulo. …..………. 24


3.2. Expresión en base 2 de un número real de valor absoluto
inferior a 1. ……………………………………………………….…. 27
3.3. Expresión binaria en coma flotante de números reales. ………. 31
3.4. Truncamiento y redondeo de números binarios expresados
en coma flotante. ……………………………………….……….... 33
3.5. La unidad de redondeo en coma flotante binaria. ….…………. 36
3.6. La codificación binaria de números en equipos de cálculo. ….. 37
3.6.1. Codificación binaria de números enteros. ………………. 37
3.6.2. Codificación binaria de números reales en coma flotante. 38
3.7. Los números máquina binarios. …………..…………………….. 43

4. PROPAGACIÓN DE ERRORES. .......................…………………….. 49


4.1. Propagación de errores trabajando con números máquina. …. 50
A) Multiplicación y división de números máquina. …………….. 50
B) Sumas y restas de números máquina. ……………………… 55
4.2. Propagación de errores operando con números reales. …..…. 60

5. COMENTARIOS SOBRE EL TEMA. ..….…………………………….. 66

BIBLIOGRAFÍA. ……………………………………………………………… 67

ii
Programación y Métodos Numéricos Errores de redondeo

1. INTRODUCCIÓN

El Análisis Numérico puede definirse como la rama de las Matemáticas


que se ocupa del desarrollo de métodos de cálculo eficaces para la
obtención, en general aproximada, de los valores que toman las
soluciones de los problemas que otras disciplinas matemáticas plantean, así
como de acotar el error entre las soluciones obtenidas y las exactas.

Si bien muchos de esos métodos de cálculo eficaces (que llamaremos a


partir de ahora métodos numéricos) tienen sus orígenes en épocas bastante
lejanas, fue a partir de la segunda mitad del siglo XX cuando el Análisis
Numérico tuvo un desarrollo espectacular. Ello, sin duda, fue debido a la
aparición (a partir de la mitad de la década de los 40 del siglo XX) de sucesivos
ordenadores que permitieron incrementar notablemente la velocidad de cálculo
haciendo eficaces métodos que sin estas herramientas serían inaplicables en la
práctica. Baste recordar en este sentido que el número de operaciones
elementales por minuto que se podía realizar con los artilugios existentes en
1940 ha sido multiplicado en la actualidad por más de 100 millones y que está
cercana la construcción de máquinas capaces de realizar un billón de
operaciones elementales por segundo.

Pero la tecnología actual sólo permite realizar operaciones aritméticas


elementales (sumas, restas, multiplicaciones y divisiones) con cifras que
tengan un número limitado de dígitos1. Por una parte esto conduce a tener
que diseñar procesos de cálculo (algoritmos) que sólo contemplen este tipo de
operaciones elementales. Por otra parte, obliga a tener que redondear o truncar
los números que se manejen. Ambas simplificaciones introducirán diferencias
(errores) entre la solución calculada con el ordenador y la solución real del
problema que se pretenda resolver.

Más concretamente, en la obtención de soluciones aproximadas


mediante algoritmos de cálculo pueden introducirse tres tipos de errores:

A) Errores en la toma de datos. Son debidos a falta de precisión de los


aparatos de medida con los que se obtengan dichos datos. Aunque
existen técnicas para tenerlos en cuenta y estimar su incidencia, no

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

son objeto de esta asignatura y por ello no serán tratados en este


tema.

B) Errores del método numérico. Son debidos a las simplificaciones


que deben introducirse para obtener una solución realizándose sólo
un número finito de operaciones elementales. Ello, aún partiendo de
datos exactos, puede introducir diferencias entre la solución exacta y
la solución aproximada obtenida. Su estudio debe realizarse para
cada método numérico concreto y son objeto de otros temas del
Análisis Numérico.

C) Errores en la representación utilizada de los números


manipulados en el algoritmo. Son debidos a la imposibilidad de
trabajar con infinitos dígitos y por tanto a la necesidad de truncar o
redondear los valores que se manejen. A su vez la combinación de
cifras aproximadas produce resultados en los que los errores pueden
acumularse. El estudio de este tipo de errores es el objeto de este
tema.

NOTA: Junto a los anteriores podrían considerarse otras fuentes de error al


plantear modelos numéricos debidos a las simplificaciones necesarias para la
determinación de las ecuaciones matemáticas que representen el fenómeno
real que se desee modelar. El estudio de estos otros tipos de error corresponde
a las disciplinas de modelado numérico y tampoco será abordado en este tema.

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!

que para la función exponencial considerada se reduce a:


xi
ex = ∑
i=0 i!

Obviamente no podrán calcularse los infinitos sumandos del sumatorio


anterior ni realizarse las infinitas operaciones aritméticas elementales que

2
Programación y Métodos Numéricos Errores de redondeo

conlleva. Por eso, en la práctica, deberemos limitarnos a calcular y sumar sólo


los (n+1) primeros sumandos para un valor de “n” suficientemente elevado. En
otros términos el valor de ex es aproximado por:
n
xi
ex ≈ ∑
i=0 i!

cometiéndose así en el algoritmo un error (del método numérico) dado en este


caso por el resto de Taylor:


x(i) x (n+1)
R(e x ) = ∑ = ⋅ ec donde, para x > 0, c ∈ ]0,x[
i=n +1 i! (n + 1)!

De esta forma, el error del método numérico puede acotarse por la


expresión:
x(n+1)
R(e x ) ≤ ⋅ ex
(n + 1)!

Si se desea calcular el valor de ex con cuatro decimales significativos y


que el error del método numérico no tenga influencia en el proceso bastará con
considerar un número de sumandos, (n+1), suficientemente elevado para que:

x (n+1)
R(e ) ≤
x
⋅ e x < 10 −4
(n + 1)!

En el caso considerado (x = π /2 y utilizando sólo 4 decimales) bastará


con considerar n =10, por lo que la expresión:

10
( π / 2)i
eπ / 2 ≈ ∑
i= 0 i!

proporciona el valor con 4 decimales de eπ 2 sin error del método numérico.

En resumen, si pudiéramos trabajar con el número π / 2 de forma exacta,


los once primeros sumandos del desarrollo de Taylor nos proporcionarían el
valor de eπ / 2 sin error en sus cuatro primeras cifras decimales.

Pero, una vez conocido el algoritmo a emplear, debemos considerar una


aproximación de π /2 = 1.5707963267948966193.... . Con cuatro decimales
significativos podemos optar por truncar este valor y tomar π / 2 ≈ 1.5707 o

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 .

Consideremos la primera de las opciones: π / 2 ≈ 1.5707. Partimos de un


error en la representación de este número inferior a 1.10-4. El valor a calcular
estará dado entonces por:

10
(1.5707)i (1.5707)2 (1.5707)3 (1.5707)10
eπ / 2 ≈ ∑ = 1 + 1.5707 + + + .... +
i= 0 i! 2 3! 10!

El error cometido al representar π / 2 con sólo cuatro decimales


significativos tendrá incidencia al calcular sus sucesivas potencias de orden 2,
3, 4, ..., 10. Y estos valores, que ya no son los exactos, deberán ser
nuevamente aproximados al dividirlos por los cocientes de los respectivos
sumandos. Así, utilizando nuevamente la opción de truncar en lugar de
redondear:

( π / 2)
2
(1.5707)2
≈ = 1.23354.... ≈ 1.2335
2 2
mientras que:

( π / 2)
2

= 1.2337005...
2

cometiéndose un error del orden de 2 ⋅ 10-4.

Análogamente, para aproximar el cuarto sumando:

( π / 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...

Estos errores existentes en cada sumando se combinan al realizar la


suma, de forma tal que el valor aproximado así obtenido es: eπ / 2 ≈ 4.8095 . El
valor exacto es: eπ / 2 = 4.8104.... por lo que en el proceso hemos introducido un
error de 9.10-4 a pesar de que el análisis del error realizado para determinar el
número de sumandos aseguraba un error nulo si no se hubieran truncado los
valores a 4 cifras significativas.

NOTA: Como se detallará más adelante, el proceso de cálculo descrito no es


“exactamente” el que realizaría un ordenador o calculadora. La principal
diferencia (además de la base de numeración con la que operan) estriba en
que las máquinas de cálculo no fijan el número de decimales con el que
trabajan sino el número de cifras significativas que se manipulan introduciendo
una representación normalizada de los números (equivalente a la llamada
representación científica cuando se trabaja en base 10). De estos asuntos nos
ocuparemos más adelante.

Ejercicio propuesto 1: Repite el ejemplo anterior aproximando los valores


numéricos con cuatro cifras decimales pero obteniendo estas por redondeo en
lugar de por truncamiento. Determina el error que de esta forma se comete en
la evaluación de eπ / 2 con el algoritmo antes considerado.

Ejemplo 2º: Describimos a continuación otro ejemplo que ilustra la influencia


de los errores de redondeo. Se trata de calcular, para distintos valores del
índice n, las integrales:

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

El cálculo mediante integración por partes de las integrales anteriores


nos conduce a que, para n = 3, 4., ….., se puede escribir que:
1
u = x n → du = n·x n−1
In = ∫ xn ⋅ sen(x) ⋅ dx = =
0 dv = sen(x)·dx → v = − cos(x)
1 1
1
= − x ⋅ cos(x)⎤⎦ + n·∫ x
n (n −1)
⋅ cos(x) ⋅ dx = − cos(1) + n·∫ x(n−1) ⋅ cos(x) ⋅ dx
0
0 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

Puede utilizarse esta relación de recurrencia para obtener los sucesivos


valores de las integrales In con subíndice par a partir del valor:
1 1
I1 = ∫ x ⋅ sen(x) ⋅ dx = − cos(1) + ∫ cos(x) ⋅ dx = − cos(1) + sen(1) =
0 0

= 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…

La tabla siguiente muestra los valores exactos (con sus 10 primeros


decimales) de las integrales que se quieren evaluar y los que los aproximan si
cada uno de los valores calculados se redondea considerando sólo sus 10
primeros decimales2.

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

n Valor exacto (In) Valor aproximado (An) | In –An |


1 0.3011686789.... 0.3011686789 0.3…·10-10
2 0.2232442754... 0.2232442754 0.8…·10-10
3 0.1770985749... 0.177098576 0.1.. ·10-8
4 0.1466503275... 0.146650327 0.6.. ⋅ 10-9
5 0.1250811198... 0. 125081098 0.2.. ·10-7
6 0.1090137762... 0.109013793 0.1.. ⋅ 10-7
7 0.0965875548... 0.096588472 0.9.. ⋅ 10-6
8 0.0866941002... 0.086693165 0.9.. ⋅ 10-6
9 0.0786326061… 0.078566573 0.6.. ⋅ 10-4
10 0.0719385184… 0.072022692 0.8.. ·10-4
11 0.0662918492… 0.073555497 0.7.. ⋅ 10-2
12 0.0614650713… 0.0503504168 0.1.. ⋅ 10-1
13 0.0572920121… -1.07583703 0.1.. ⋅ 101
14 0.0536485025… 2.075832904 0.2…·101
15 0.0504399076… 238.0075388 0.2…·103
16 0.0475928480… -485.2766636 0.4…·103
…. ………………… …………….. …………..

En la tabla puede observarse como aumenta el error a medida que


crece n y como va empeorándose la aproximación de los valores aproximados
obtenidos. A partir de n = 11 se obtienen valores inaceptables pues:

• En la sucesión de valores aproximados, An, empieza a crecer el


valor absoluto de los resultados aproximados (cosa que no
sucede con los valores exactos)

• A partir de n = 13 comienzan a alternarse valores aproximados


negativos y positivos (por parejas), cada vez de mayor valor
absoluto. Esto no sucede con los valores exactos de la integral
que siempre son positivos y forman una sucesión decreciente.

La figura siguiente recoge la evolución de los 14 primeros valores


exactos (en rojo) y de los aproximados (en azul) observándose como a partir
del resultado A13 existen diferencias que inutilizan los valores obtenidos de
forma aproximada.

7
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

En este caso la evolución del error en cada aproximación puede


analizarse fácilmente. En efecto si se comete un error δ 1 en la representación
numérica utilizada para el valor aproximado (A1) de I1, y otro error δ 2 en la
representación numérica utilizada para el valor aproximado (A2) de I2,se tendrá:
I1 = A1 + δ1
I2 = A 2 + δ2
I3 = − cos(1) + 3·sen(1) − 3!·I1 = − cos(1) + 3·sen(1) − 3!·(A1 + δ1 ) =
= A 3 − 3!⋅ δ2
1 1
I4 = − cos(1) + 4·sen(1) − 4!·I2 = − cos(1) + 4·sen(1) − 4!·(A 2 + δ2 ) =
2 2
4!
= A 4 − ⋅ δ2
2
.........
I2·k +1 = A 2k +1 + ( −1)k ⋅ (2·k + 1)!⋅ δ1 ( k = 1, 2, ……)
(2·k + 2)!
I2·k + 2 = A 2k + 2 + ( −1)k ⋅ ⋅ δ2 (k = 1, 2, …….)
2

El razonamiento anterior muestra un crecimiento del error de “orden


factorial” lo que invalida el procedimiento de cálculo seguido para valores
elevados del índice “n”.

8
Programación y Métodos Numéricos Errores de redondeo

La figura siguiente muestra el comportamiento de los logaritmos en base


10 del error absoluto cometido en las primeras 25 integrales que se aproximen
mediante el proceso anteriormente descrito.

Ejercicio propuesto 2: Repite el ejemplo anterior truncando los valores que


utilices de forma que tan sólo se manejen 6 decimales. Obtén los valores
aproximados de las primeras 14 integrales y compara con los valores exactos
dados en la tabla presentada en el ejemplo 2º. Determina el valor del índice “n”
para el que la sucesión de valores aproximados deja de ser decreciente y aquel
en el que se produce el primer signo negativo.

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)

Por otra parte, para obtener una aproximación An de In se puede razonar


como sigue: al ser el integrando, xn·sen(x), una función no negativa en [0, 1] se

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

En otros términos una cota del valor positivo de la integral In es el valor


1/(n+1). La figura siguiente recoge el grafo de las funciones xn·sen(x) para
diversos valores de n, poniendo de manifiesto el hecho de que a medida que
crece el valor del exponente “n” menor es el área encerrada entre el grafo y el
eje de abscisas.

Las desigualdades anteriores nos indican que si se toma como valor


aproximado de In el valor An = 0 se comete un error δn menor que 1/(n+1). Se
pide que, tomando como valor aproximado de I20 el valor A25 = 0, y el de A24 =0,
calcules mediante el proceso iterativo en retroceso anteriormente descrito, y
truncando las cifras a 10 dígitos, las aproximaciones A23 , A22 , A21 , ...., A1.
Siendo δ 25 el error cometido al aproximar I25 por A25, y δ 24 el error cometido al
aproximar I24 por A24, analiza teóricamente cómo evolucionará el error cometido
con las aproximaciones que se vayan calculando. ¿Los valores del error que
determinaste son acordes con el análisis del error realizado?

10
Programación y Métodos Numéricos Errores de redondeo

Ejemplo 3º: El siguiente ejemplo pretende ilustrar como la falta de precisión en


los cálculos intermedios de un proceso puede conducir a resultados erróneos.
En efecto, consideremos el sistema de 2 ecuaciones con dos incógnitas:

⎧98 ⋅ x1 + 293.97 ⋅ x 2 = −195.97



⎨2 2
⎪⎩ 3 ⋅ x1 + 2.01⋅ x 2 =
3
− 2.01

La única solución de este sistema es: x1 = 1, x2 = -1. Si los coeficientes del


sistema se evalúan redondeándolos en su tercera cifra decimal se tendría el
sistema:

⎧98.000 ⋅ x1 + 293.970 ⋅ x 2 = −195.970



⎩ 0.667 ⋅ x1 + 2.010 ⋅ x 2 = −1.343

cuya solución también sigue siendo x1 = 1, x2 = -1. No obstante, si el sistema


se resuelve mediante el método de eliminación gaussiana (esto es, dejando la
primera ecuación como está y restándole a la segunda ecuación la primera
multiplicada por 0.667 y dividida por 98.000) redondeando los valores
intermedios con tres decimales, se obtiene:

⎧98.000 ⋅ x1 + 293.970 ⋅ x 2 = −195.970



⎨ 0.667 0.667
⎪⎩ 0 ⋅ x1 + (2.010 −
98.000
⋅ 293.970) ⋅ x 2 = ( −1.343 +
98.000
⋅ 195.970)


⎧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

De la segunda de estas ecuaciones se tiene que:

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

y, entrando con este valor en la primera ecuación:

−195.970 + 293.970 ⋅ 0.604 −195.970 + 177.558 −18.412


x1 = = = = −0.188
98.000 98.000 98.000

En resumen, la falta de precisión en los resultados de las operaciones


nos ha conducido a una solución del sistema que nada tiene que ver con la
solución exacta del mismo.

Los errores absolutos que se cometen al representar un número z por


una aproximación z del mismo con s decimales no permiten tener una idea
sobre la precisión del sistema de representación numérica utilizado. En efecto
no es lo mismo cometer un error ε al representar un número con un valor
absoluto elevado que cometer el mismo error al representar un número de valor
absoluto muy pequeño. Por ilustrar con un símil este hecho piénsese que si se
apunta con un rayo láser a la superficie de Marte y se logra impactar con él a 1
cm del objetivo marcado, muy probablemente se opine que el error ha sido
mínimo. Por el contrario, si el cirujano que opere de cataratas a un paciente
desvía el rayo láser 1 cm. de la zona dañada causará un importante daño en el
ojo del paciente. En ambos casos el error es de 1 cm. pero mientras que en el
primero se produce en varias decenas de millones de kilómetros, en el segundo
tiene lugar en pocos centímetros.

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

2. LA NOTACIÓN CIENTÍFICA Y LA REPRESENTACIÓN EN COMA


FLOTANTE NORMALIZADA DE NÚMEROS REALES EN BASE 10.

2.1. La notación científica decimal.


La representación de los números en base 10 conservando un número
prefijado de decimales, tal y como se hizo en los ejemplos del apartado
anterior, no es la que se utiliza habitualmente en cálculo científico. Ello se debe
a que el número de dígitos de cada cifra manejada no es el mismo para
almacenar números grandes que pequeños. Por ejemplo, si se trabajase
truncando a tres decimales, la representación del número 12345.6789 sería
12345.678, habiéndose empleado 8 dígitos, mientras que el número
0.12345678 se representaría como 0.123, utilizándose sólo 4 dígitos para
representarlo. Si en el segundo número se hubieran utilizado 8 dígitos el
número representado sería 0.1234567, mucho más preciso que el anterior.

Por ello la forma estandarizada para representar números decimales (z)


parte de su expresión en notación científica, es decir en la forma:
z = ± 0.d1d2....dsds+1.... ⋅ 10e
donde e es un número entero y los dígitos d1d2....dsds+1.... son tales que
0 ≤ di ≤ 9 (i = 1, 2, .....) y además: d1 ≠ 0 ∀z ≠ 0 , siendo el número z = 0 el
único para el que se admite que d1 = 0.

En la notación científica de un número a ( ± 0.d1d2....dsds+1....) se le


denomina mantisa del número y al número entero “e” al que aparece elevada
la base “10” se le denomina exponente.

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.

2º) El número –7 /1772 se corresponde con el número real -0.00395033860045


y en notación científica se expresará por: -0.395033860045... ⋅ 10-2, siendo la
mantisa -0.395033860045... y el exponente -2.

Como se puede comprobar en los ejemplos anteriores, para expresar un


número real no nulo en notación científica basta con desplazar la “coma

13
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

decimal” hasta ubicarla a la izquierda del primer dígito significativo,


multiplicando el número resultante por 10e, donde “e” es el número de dígitos
que se ha desplazado la “coma decimal” precedido del signo “+” si el
desplazamiento se realiza hacia la izquierda y del signo “-” si dicho
desplazamiento se realiza hacia la derecha. Este “desplazamiento” de la
“coma decimal” motiva que esta forma de representar los números sea
conocida , además de por el nombre de notación científica, como
representación en coma flotante.

2.2. La representación en “coma flotante” normalizada decimal.


La notación científica que se acaba de describir utiliza mantisas que
para muchos números pueden tener “infinitos” decimales. Piénsese por ejemplo
en la representación en notación científica de números tales como 1/3, π , 3 ,
... o en general cualquier número irracional o periódico. Obviamente tales
números no pueden ser escritos de forma exacta en notación científica. Por eso
en tales casos es necesario aproximarlos por otros que tienen mantisas
formadas por un número finito de dígitos.

Además, si nos fijamos en los exponentes tampoco es viable, en la


práctica, admitir que puedan ser tan elevados como se quiera. Piénsese por
ejemplo que si se quisiera manejar el exponente e = 265536 necesitaríamos
19642 dígitos para escribirlo ( ¡¡¡más de 195 líneas con 100 dígitos cada una
de ellas!!!) . Es por ello que en una hipotética3 máquina de calcular el valor
máximo y mínimo de los exponentes también debe ser fijado.

De forma más concreta, partiendo de la notación científica de los


números, los sistemas de representación decimal en coma flotante decimal
normalizada consisten en conjuntos finitos de números formados por todos
aquellos números que en notación científica:

a) Tienen mantisas con sólo “s” dígitos decimales .


b) Tienen exponentes cuyo valor está comprendido entre un valor
mínimo (m) y un valor máximo (M): m ≤ e ≤ M .

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

Tales sistemas de números los representaremos con la notación


F(s+1, m, M, 10) donde s indica el número de decimales usados para la
mantisa4, “m” y “M” los valores máximo y mínimo que se permite tomar al
exponente y “10” que se está trabajando con números expresados en base 10.

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).

2ª. Obsérvese que sólo con las “reglas” a) y b) el número z = 0 puede


representarse de múltiples maneras (±0.0....0·10e donde “e” es cualquiera de
los exponentes permitidos. En las máquinas de cálculo ello representaría un
“desperdicio” de su capacidad de representación de números. Por ello en tales
máquinas al número real z = 0 se le representa de otras maneras; por ejemplo
asignando para representar al real nulo el número 0.0...0·10m. Ello permitiría
optimizar los dígitos disponibles para almacenar otros números. No obstante
como las máquinas trabajan con números expresados en bases que no son la
base 10, insistiremos en este aspecto más adelante cuando nos ocupemos de
la representación numérica en base 2.

2.3. El conjunto finito de números de un sistema decimal en coma flotante


normalizada.
Adviértase que si se trabaja con los números de un sistema de
representación en coma flotante normalizada F(s+1, m, M, 10) en el que las
mantisas tienen s dígitos decimales y los exponentes están comprendidos entre
un valor mínimo m y un valor máximo M, sólo se dispone de una cantidad finita
de números, o lo que es lo mismo, sólo se representarán sin error alguno un
número finito de números reales.

Ejemplo: Si se considera el sistema decimal de representación en notación


científica normalizada F(2, 1, -1, 10) en el que s = 1 (sólo un dígito decimal) y
el valor de los exponentes se limita por −1 ≤ e ≤ 1 , los únicos números
existentes en el sistema serán:

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

más el número 0 que se representa de otra forma. Es decir sólo existen 55


números distintos en este sistema. El mayor de todos ellos es 0.9·101 = 9 y el
menor número estrictamente positivo es 0.1·10-1 = 0.01. Además, la distancia
entre dos números consecutivos no siempre es la misma: los números positivos
con exponente “-1” distan del siguiente 0.01, los que tienen exponente “0”
distan del siguiente 0.1 y los números positivos con exponente “1” distan del
siguiente 1.

Ejercicio propuesto 4º: Demuestra que en un sistema de representación en


notación científica normalizada F(s+1, M, m, 10), con s dígitos para la mantisa y
con exponentes limitados por las desigualdades: m ≤ e ≤ M (siendo m ≤ 0 y
M ≥ 0), existe un número de valores que pueden representarse sin error alguno
dado por la expresión: [18 ⋅ 10(s-1)] ⋅ (1+M-m) + 1.

La existencia de un número finito de valores en un sistema F(s+1, m,


M,10) hace que diferentes números reales deban aproximarse por un mismo
número máquina del sistema.

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.

Si con el mismo número de dígitos para la mantisa se optara por redondear, se


aproximarían por 0.1001·100 todos los números z∈ [0.10005, 0.10015[.

Otra consecuencia práctica de que el conjunto de números máquina


tenga un número finito de elementos es que, considerando sólo los que son
estrictamente positivos, habrá un número máquina positivo mayor y un número

16
Programación y Métodos Numéricos Errores de redondeo

máquina positivo menor. Similares razonamientos se podrían realizar si se


consideran los números máquina negativos.

Más concretamente, en un sistema de números máquina F(s, m, M, 10)


el mayor número positivo es: CM = 0.99....9 ⋅ 10M y el menor número
estrictamente positivo es: cm = 0.100...0 ⋅ 10m. En otros términos:

s
CM = ∑ 9·10M−i , cm = 1·10m
i=1

La distancia existente entre dos números máquina consecutivos se


determina en la siguiente propiedad.

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

l = 0.d ...d d ·10e + 0.0...01·10e


w 1 s−1 s

por lo que:
l −
w z = 0.0...01·10e = 1·10e−s = 10e−s
c.q.d.

2.4. Truncado y redondeo de números reales en coma flotante.


Los procedimientos más habituales para aproximar la mantisa de un
número real z de la forma z = ± 0.d1d2....dsds+1.... ⋅ 10e por la del número
normalizado z de F(s+1, m, M, 10), con s dígitos de mantisa, suelen ser:

Truncado: Se toman los s primeros dígitos de la mantisa de z:

z ≈ z = ±0.d1d2 .....ds ⋅ 10e

17
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Redondeo: Según el valor del primer dígito decimal que se desprecia en


la mantisa, dígito ds+1, se procede como sigue:

⎧ ±0.d1d2 ....ds ⋅ 10e si ds+1 < 0.5


z≈z=⎨
⎩ ±(0.d1d2 ....ds + 0.00....1) ⋅ 10 si ds+1 ≥ 0.5
e

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:

Truncando: z = 0.5666 ⋅ 101


Redondeando: z = 0.5667 ⋅ 101

2º) Utilizando 5 dígitos para representar la mantisa, el número decimal dado


por: –7 / 1772 = -0.395033860045... ⋅ 10-2, se representa por:

Truncando: z = −0.39503 ⋅ 10−2


Redondeando: z = −0.39503 ⋅ 10−2

Si se utilizaran 6 dígitos para las mantisas las representaciones


numéricas correspondientes serían:

Truncando: z = −0.395033 ⋅ 10−2


Redondeando: z = −0.395034 ⋅ 10−2

Ocupémonos ahora de acotar los errores absoluto y relativo que se
cometen al aproximar un número real z por un número normalizado 
z.

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:

| Ea | = z − z = 0.d1d2 ....ds ds+1.... − 0.d1d2 ....ds ⋅ 10e = 0.ds+1..... ⋅ 10 − s ⋅ 10e =

= 0.ds+1..... ⋅ 10e−s ≤ 1⋅ 10e−s = 10e −s

y, si z ≠ 0 :

z−z 10e−s 10− s 10 − s


E= ≤ = ≤ = 101−s
z 0.d1d2 ...ds ds+1... ⋅ 10 e
0.d1d2 ...ds ds+1... 0.1
c.q.d.

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:

| Ea | = z − z = 0.d1d2 ....ds ds+1.... − 0.d1d2 ....ds ⋅ 10e = 0.ds+1.... ⋅ 10− s ⋅ 10e =

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

Si ahora se contempla el caso en que el dígito ds+1 es tal que ds+1 ≥ 5 se


tiene que:
| Ea | = z − z = 0.d1d2 ....ds ds+1... − (0.d1d2 ....ds + 0.00...1) ⋅ 10e =

1
= (1 − 0.ds+1...) ⋅ 10− s ⋅ 10e = 1 − 0.ds+1... ⋅ 10e−s ≤ 0.5 ⋅ 10e −s = ⋅ 10e −s
2

b) Teniendo en cuenta la acotación de los errores absolutos, para el error


relativo se tiene que, si z ≠ 0 :
1 1 1
z−z ⋅ 10e−s ⋅ 10− s ⋅ 10− s
2 2 1
E= ≤ = ≤ 2 = ⋅ 101−s
z 0.d1d2 ...ds ds+1... ⋅ 10 e
0.d1d2 ...ds ds+1... 0.1 2
c.q.d.

2.5. La unidad de redondeo en coma flotante decimal.


Las acotaciones del error relativo realizadas en las dos propiedades
anteriores pueden sintetizarse diciendo que, siendo z la aproximación utilizada
al representar el número z con s dígitos de mantisa, se verifica que:
z−z
≤u ∀z ≠ 0
z
donde al número u se le denomina unidad de redondeo del sistema F(s+1, m,
M, 10), y que toma el valor 101-s si se aproxima por truncado o el valor (½) ⋅ 101-s
si se aproxima redondeando. En todo caso se tiene que:
z−z
= δ ⇒ z = (1 + δ).z con δ ≤ u
z

Puede observarse que la unidad de redondeo (cota del error relativo) es


tanto menor cuanto mayor es el valor del número de dígitos decimales de la
mantisa (“s”) siendo independiente el exponente del número z con el que se
trabaje, esto es de la magnitud del número.

NOTA: Las dos propiedades demostradas en el apartado anterior también nos


indican que el valor absoluto del error absoluto cometido al representar un
número puede acotarse por γ ⋅ 10e−s donde γ = 1 si se actúa por truncamiento
o γ = ½ si se procede mediante redondeo. En todo caso, la cota del error
absoluto será mayor cuanto mayor sea (e – s), es decir que se incrementa con
el exponente e del número a aproximar, es decir cuanto mayor sea el valor

20
Programación y Métodos Numéricos Errores de redondeo

absoluto del número que se quiera representar, y decrece a medida que se


permiten usar más dígitos en la mantisa.

Ejercicio propuesto 5º: Siendo u la unidad de redondeo, demuestra que u es


el número más pequeño de la forma 10-k para el que se verifica que (1+u) no se
representa en la forma 0.100...0 ⋅ 101.

2.6. Los errores de overflow y de underflow.


Como ya se señaló anteriormente, una consecuencia de que el conjunto
de números máquina tenga un número finito de elementos es que, existe un
número máquina positivo mayor (CM) y un número máquina positivo menor
(cm). Ello hace que exista un número real tal que los números reales superiores
o iguales a él no se pueden aproximar por un número máquina del sistema
F(s+1, m, M, 10). Y de forma análoga existe un valor real positivo tal que los
números reales positivos inferiores a él o bien son aproximados por el número
0 o bien no se pueden aproximar por ningún número del sistema F(s+1, m, M,
10). Similares razonamientos se podrían realizar si se consideran los números
máquina negativos.

Si se actuase mediante la técnica de truncado, cualquier número real


con exponente M y con sus s primeros dígitos de mantisa iguales a “9” sería
aproximado por el número máquina CM independientemente de cuales fueran
los dígitos decimales despreciados en la mantisa. Por tanto el menor número
positivo que no podría representarse por un número máquina del sistema
F(s+1, m, M, 10) sería 0.10....0 ⋅ 10M+1.

Análogamente, si se actuase mediante la técnica de redondeo, se


aproximarían por el número máquina CM todos aquellos números reales con
exponente igual a M y con mantisas cuyos (s+1) primeros dígitos decimales
estuvieran comprendidos entre 0.99....985 y 0.99...994, independientemente
de cuales fueran los dígitos decimales posteriores de la mantisa. Por tanto el
menor número positivo que no podría representarse por un número máquina
del sistema F(s+1, m, M, 10) sería 0.99....950000..... ⋅ 10M.

Dígito decimal (s+1)

21
Errores de redondeo Carlos Conde, Arturo Hidalgo y Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

En resumen, para cada sistema de números máquina F(s+1, m, M, 10) y


para cada técnica de aproximación utilizada, existe un número real, denotado
por Noverflow, tal que los números reales de mayor o igual valor absoluto no
pueden representarse por un número del sistema F(s+1, m, M, 10). Este
número real está dado por
⎧ 0.1⋅ 10M+1 (Truncado)
Noverflow = ⎨
⎩0.9...95 ⋅ 10 (Re dondeo)
M

(s+1) decimales

Cuando en una máquina de calcular5 se intenta representar un número


real z tal que |z| ≥ Noverflow se produce un error que se denomina error de
overflow (que algunos autores castellanizan como error de desbordamiento)
interrumpiéndose el proceso de cálculo que se esté siguiendo.

De forma similar, si se actúa por truncado se representarán por el


número cm todos aquellos números reales positivos tales que, teniendo por
exponente m tengan los s primeros dígitos decimales de su mantisa idénticos a
los de cm. Por tanto el menor valor positivo que puede representarse mediante
truncado por un número máquina no nulo de F(s+1, m, M, 10) será 0.10...0 ⋅ 10m
(= cm ).

Si la técnica de aproximación de números elegida fuese el redondeo, se


aproximarían por cm todos aquellos números reales z tales que:

0.99...95 ⋅ 10m-1 ≤ z < 0.10....05 ⋅ 10m

(s+1) decimales (s+1) decimales

Por tanto el menor valor positivo que puede representarse mediante


redondeo por un número máquina estrictamente positivo de F(s+1, m, M, 10)
será 0.99...95 ⋅ 10m-1.

En resumen, para cada sistema de números máquina F(s+1, m, M, 10) y


para cada técnica de aproximación utilizada, existe un número real, denotado
por nunderflow, tal que los números reales de menor valor absoluto no pueden
representarse por un número no nulo del sistema F(s+1, m, M, 10). Este
número real está dado por

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

⎧ 0.1⋅ 10m (Truncado)


Nunderflow = ⎨ m −1
⎩0.9...95 ⋅ 10 (Re dondeo)

(s+1) decimales

Cuando en una máquina de calcular6 se intenta representar un número


real z tal que |z| < nunderflow o bien se produce un error que se denomina error
de underflow interrumpiéndose el proceso de cálculo que se esté siguiendo, o
bien se aproxima tal número por el número máquina nulo.

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

3. LA NOTACIÓN CIENTÍFICA Y LA REPRESENTACIÓN EN COMA


FLOTANTE NORMALIZADA DE NÚMEROS REALES EXPRESADOS EN
BASE 2.
Los ordenadores y las calculadoras almacenan los números con los que
trabajan en memorias construidas con componentes electrónicos elementales
(llamados bits) que pueden tener dos estados (en tensión o sin tensión,
cargados o descargados, magnetizados o desmagnetizados, activos o pasivos,
...). A uno de dichos estados se le denotará como 0 y al opuesto como 1. Es
por ello que la mayor parte de las máquinas de cálculo científico trabaja en
binario, es decir representando los números en la base de numeración 2 , en la
que los dígitos sólo pueden tomar los valores 0 ó 1. Por este motivo resulta
necesario trasladar cuanto hemos visto en el apartado anterior a la aritmética
binaria.

NOTA: Pese al comentario anterior ciertos fabricantes consideran grupos de 3


o 4 bits y representan los números en base 8 (octal) o en base 16
(hexadecimal). Nosotros sólo detallaremos en este tema lo concerniente a la
codificación binaria y nos limitaremos en alguna de las “Notas” sucesivas a
describir la extensión de lo que se diga a otras bases de numeración. La
justificación detallada de esas extensiones pueden constituir buenos ejercicios
propuestos para el lector.

3.1. Expresión en base 2 de un número entero no nulo.


Siendo z10 un número entero no nulo dado en base 10 su expresión en
base 2, z2, se determina por un conjunto de (p+1) dígitos de la forma
( 1b1....bp−1bp ), precedidos del signo que tenga z10, tales que se verifica que:
bi = 0 ó 1 (i = 1, ..., p),

z10 = 1⋅ 2p + b1 ⋅ 2p −1 + ... + bp−1 ⋅ 21 + bp ⋅ 20

Ejemplos:
1º) El número z10 = 6 se representa en binario por z2 = 110 ya que:
6 = 1 ⋅ 22 + 1 ⋅ 21 + 0 ⋅ 20

2º) El número z10 = -109 se representa en binario por z2 = -1101101 ya que:


-109 = -(1 ⋅ 26 +1 ⋅ 25 + 0 ⋅ 24 + 1 ⋅ 23 + 1 ⋅ 22 + 0 ⋅ 21 + 1 ⋅ 20)

24
Programación y Métodos Numéricos Errores de redondeo

Dado un número entero en base diez, z10, puede obtenerse su


representación binaria , z2, de la forma siguiente:

Algoritmo 1 (Datos: z10; Resultados: p, {b0, b1, ..., bp})


• El signo de z2 es el mismo que el de z10.
• Determinar el mayor entero positivo, p, para el que 2p ≤ | z10 |
• b0 ← 1
• Si p > 0 entonces:
y ← | z10 |
Para i = 0 hasta i = p-1 con paso 1 hacer:
x ← Parte entera de (y/2)
bp-i ← y – 2 ⋅ x
y ← x
fin bucle en i
fin condición.

Ejemplo:
Para representar en binario el número z10 = -172 se puede proceder
como sigue:

• El signo del número binario será negativo (pues lo es z10).


• Puesto que: 27 = 128 <172 < 28 = 256, tomaremos p = 7.

• b0 ← 1

• Como p > 0 se toma:


y ← 172
⎛ 172 ⎞
i ← 0, x ← Parte entera de ⎜ ⎟ = 86 , b7 = 172 – 2 ⋅ 86 = 0,
⎝ 2 ⎠
y ← 86
⎛ 86 ⎞
i ← 1, x ← Parte entera de ⎜ ⎟ = 43 , b6 = 86 – 2 ⋅ 43 = 0,
⎝ 2 ⎠
y ← 43
⎛ 43 ⎞
i ← 2, x ← Parte entera de ⎜ ⎟ = 21, b5 = 43 – 2 ⋅ 21 = 1,
⎝ 2 ⎠
y ← 21
⎛ 21 ⎞
i ← 3, x ← Parte entera de ⎜ ⎟ = 10 , b4 = 21 – 2 ⋅ 10 = 1,
⎝ 2⎠
y ← 10

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.

Ejercicio propuesto 6º: Determina la expresión binaria del número 1455.


El algoritmo 1 presentado anteriormente está escrito pensando en su


programación para que sea ejecutado en un ordenador. Cuando la conversión
a binario del número z10 ,dado en base 10, se realiza “a mano” el algoritmo
equivalente consiste simplemente en dividir el número |z10| entre 2 obteniendo
(1)
un cociente entero, z10 y un resto (que llamaremos bp y que será 0 ó 1) para a
(1)
continuación dividir el número z10 entre 2 obteniendo un nuevo cociente entero
(2)
z10 y un nuevo resto bp-1. Repitiendo este proceso hasta obtener un cociente
entero igual a la unidad se tiene la expresión del número binario sin más que
escribir los cocientes enteros hallados en orden inverso a como han ido
apareciendo y precederles de +1 ó –1 en consonancia con el signo que tenga
z10.

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

Por tanto (222)10 = +1b1b2b3b4b5b6b7 = (+11011110)2. = (11011110)2


3.2. Expresión en base 2 de un número real de valor absoluto inferior a 1.


Siendo z10 un número real tal que –1 < z10 < 1 dado en base 10 su
expresión en base 2, z2, se determina por un conjunto de dígitos de la forma
0.c1....c p−1c p ...... , precedidos del signo que tenga z10, tales que se verifica que:
ci = 0 ó 1 (i = 1, 2, ..., p,….)

z10 = c1 ⋅ 2−1 + c 2 ⋅ 2−2 + ... + c p ⋅ 2−p + .......

En general la expresión binaria de los reales con valor absoluto inferior a


1 estará formada por infinitos dígitos. Sólo son excepción de este hecho
aquellos números reales que puedan expresarse como una suma finita de
potencias negativas de 2.

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.

2º) El número 0.37 no puede representarse de forma exacta con un número


finito de dígitos en base 2 ya que:

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 +.......

por lo que su expresión binaria es 0.010111101........, teniendo infinitos dígitos.


Por este motivo en la codificación de números reales no nulos de valor


absoluto inferior a la unidad sólo se identificarán los (p + 1) primeros dígitos
significativos del número, es decir los p primeros dígitos que siguen al primer
dígito cuyo valor sea la unidad. En otros términos, se buscará el número binario
de la forma:
0.00....01c1c2....cp.......

posición r
tal que:
|z10 | = (1+ c1 ⋅ 2-1 + c2 ⋅ 2-2 + …..+ cp ⋅ 2-p + ….) ⋅ 2-r

El valor de la posición r y de los p dígitos siguientes pueden


determinarse mediante el siguiente algoritmo:

Algoritmo 2 (Datos: z10,p; Resultados: r, {c0, c1, ..., cp})


• El signo de z2 es el mismo que el de z10.
• Determinar el menor entero positivo, r, para el que 2-r ≤ | z10 |
• c0 ← 1, y ← z10 ⋅ 2r − 1
Para i = 1 hasta i = p con paso 1 hacer:
x ← 2⋅ y
ci ← Parte entera de (x)
y ← x - ci
fin bucle en i.

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:

i ← 1, x ← 2 ⋅ 0.625 = 1.250, c1 ← 1, y ← 0.25


i ← 2, x ← 2 ⋅ 0.25 = 0.5, c2 ← 0, y ← 0.5
i ← 3, x ← 2 ⋅ 0.5 = 1.0, c3 ← 1, y ← 0.0
i ← 4, x ← 2 ⋅ 0. = 0. , c4 ← 0, y ← 0.
i ← 5, x ← 2 ⋅ 0. = 0. , c5 ← 0, y ← 0.
i ← 6, x ← 2 ⋅ 0. = 1. , c6 ← 0, y ← 0.
i ← 7, x ← 2 ⋅ 0. = 1. , c7 ← 0, y ← 0.

En resumen, el número se corresponde con:

Posición del primer bit significativo r=1

- 0.1101000

C0 C1 C2 ..... C7

2º. Obtengamos la expresión binaria, con 10 (= 9 + 1) dígitos significativos, del


número decimal 0.112. Para ello fácilmente se comprueba que r = 4 ya que
2-4 = 0.0625 < 0.112 < 2-3 = 0.125. Por tanto tomaremos c0 ← 1 y asignaremos
a la variable y el valor y ← 0.112 ⋅ 24 - 1 = 0.792. Tras ello, de forma iterativa,
realizaremos las siguientes operaciones:
i ← 1, x ← 2 ⋅ 0.792 = 1.584, c1 ← 1, y ← 0.584
i ← 2, x ← 2 ⋅ 0.584 = 1.168, c2 ← 1, y ← 0.168
i ← 3, x ← 2 ⋅ 0.168 = 0.336, c3 ← 0, y ← 0.336
i ← 4, x ← 2 ⋅ 0.336 = 0.672, c4 ← 0, y ← 0.672
i ← 5, x ← 2 ⋅ 0.672 = 1.344, c5 ← 1, y ← 0.344
i ← 6, x ← 2 ⋅ 0.344 = 0.688, c6 ← 0, y ← 0.688
i ← 7, x ← 2 ⋅ 0.688 = 1.376, c7 ← 1, y ← 0.376
i ← 8, x ← 2 ⋅ 0.376 = 0.752, c8 ← 0, y ← 0.752
i ← 9, x ← 2 ⋅ 0.752 = 1.504, c9 ← 1, y ← 0.504

29
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

En resumen, el número se corresponde con:


Posición del primer bit significativo r=4

0.0001110010101....

C0 C1 C2 ..... C10

Ejercicio propuesto 7º: Determina la expresión binaria del número –1/30 con
12 dígitos significativos. •

El algoritmo 2º está escrito para que sea inmediata su implementación


en un programa informático que permita transformar números en base 10 a
números en base 2. Cuando se va a operar “a mano” puede resultar más
sencillo proceder a multiplicar el valor absoluto del número dado, z10 , por 2
obteniendo un nuevo número cuya parte entera nos proporcionará el primer
dígito binario que debe colocarse tras el punto decimal en la expresión binaria
buscada. Volviendo a multiplicar por 2 la parte decimal del valor hallado y
procediendo de la misma manera se obtendrá el segundo dígito binario
decimal. La repetición de este proceso nos permitirá determinar tantos dígitos
decimales binarios como se desee.

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

Al ser la parte entera del valor resultante igual a 0, la expresión binaria


de z10 será de la forma: z2 = -0.0.... Volvamos a multiplicar la parte decimal del
número obtenido por 2 para sí obtener: 0.348 × 2 = 0.696

Al ser la parte entera del valor resultante igual a 0, la expresión binaria


de z10 será de la forma: z2 = -0.00.... Volvamos a multiplicar la parte decimal del
número obtenido por 2 para sí obtener: 0.696 × 2 = 1.392

Al ser la parte entera del valor resultante igual a 1, la expresión binaria


de z10 será de la forma: z2 = -0.001.... Volvamos a multiplicar la parte decimal
del número obtenido por 2 para sí obtener: 0.392 × 2 = 0.784

30
Programación y Métodos Numéricos Errores de redondeo

Al ser la parte entera del valor resultante igual a 0, la expresión binaria


de z10 será de la forma: z2 = -0.0010.... Volvamos a multiplicar la parte decimal
del número obtenido por 2 para sí obtener: 0.784 × 2 = 1.568

Al ser la parte entera del valor resultante igual a 1, la expresión binaria


de z10 será de la forma: z2 = -0.00101.... Volvamos a multiplicar la parte decimal
del número obtenido por 2 para sí obtener: 0.568 × 2 = 1.136

Al ser la parte entera del valor resultante igual a 1, la expresión binaria


de z10 será de la forma: z2 = -0.001011....

El proceso puede continuarse tantas veces como sea necesario hasta


determinar todos los decimales binarios que se deseen.

3.3. Expresión binaria en coma flotante de números reales.


Sabiendo obtener las expresiones binarias de números enteros no nulos y de
números reales de valor absoluto inferior a la unidad, la expresión binaria de
cualquier número real no nulo puede realizarse uniendo ambos procesos (y si
el número a expresar en binario fuese 0 su expresión binaria es,
evidentemente, 0)7.

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

Pero, de forma análoga a lo expuesto al trabajar en base 10, no es


habitual expresar los números binarios conservando sus s primeros decimales.
En su lugar se opta por conservar los s primeros dígitos significativos. Ello se
acompaña de la representación de los números binarios con la técnica de coma
flotante, es decir desplazando el punto decimal hasta la derecha del primer
dígito significativo e introduciendo para compensar este desplazamiento de “la
coma” un exponente entero igual al número de dígitos que se hayan saltado al
trasladarla, con signo negativo si el punto decimal se ha movido hacia la
derecha y con signo positivo si se movió hacia la izquierda. Con ello los
números binarios no nulos expresados en coma flotante tendrán la
forma: ± 1.d1d2.....dsds+1..... ⋅ 2e donde los dígitos di son enteros verificando
0 ≤ di ≤ 1 (i = 1, 2, ..., s, s+1, ....) y “e” es un número binario entero.

En esta expresión a ( ± 1.d1d2.....dsds+1.....) se le denomina mantisa y al


número “e” se le denomina exponente.8

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 =

= -1.101100 0001110010101..... ⋅ 2111

2º) En otro de los ejemplos anteriormente realizados se obtuvo que el número


decimal 0.8125 se expresaba en binario como: 0.1101. Su representación
binaria en coma flotante será: 1.101 ⋅ 2-1.

NOTAS: 1ª) Los números expresados en binario tienen su exponente “e” en


binario. No obstante en muchas ocasiones, para facilitar el seguimiento de los
cálculos que realicemos expresaremos tal exponente como un exponente
entero en base 10 contentándonos en dichos casos con expresar en binario tan
sólo la mantisa de los números con los que trabajemos.

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

2ª) El número 0 es el único número que tiene una representación diferente al


ser nula la parte entera de la mantisa.

3ª) En otras bases diferentes los números se representan de forma análoga. En


efecto, siendo β un entero estrictamente positivo, la forma de representar un
número decimal z10 según la técnica de punto flotante en base β consiste en
escribirlo como: ± 0.d1d2d3...dsds+1... ⋅βe donde los dígitos de la mantisa son
enteros tales que 0 ≤ di ≤ β − 1 (i = 1, ..., s, s+1, ....) y además d1 ≠ 0 .

Ejercicio propuesto 8º: Escribe un algoritmo que permita determinar la
expresión en base 8, z8, de un número decimal. Extiende el algoritmo a
cualquier base entera β .

3.4. Truncamiento y redondeo de números binarios expresados en coma


flotante.
Al igual que sucedía al trabajar en base 10, cuando se manipulan
números binarios expresados en coma flotante no se pueden manejar infinitos
dígitos en la mantisa. Por ello en las máquinas de calcular se toman en
consideración sólo mantisas con s dígitos tras el punto decimal que sigue al
primer dígito “1”. Un número binario genérico debe aproximarse entonces por
otro cuya mantisa sólo contenga s dígitos en su parte decimal. Las técnicas
más comunes para proceder a realizar esta aproximación son las conocidas
con los nombres de truncado y redondeo9. De ellas pasamos a ocuparnos a
continuación. En ambos casos denotaremos por z a un número binario
expresado en coma flotante como: z = ± 1.d1d2...dsds+1... ⋅ 2e.

Truncado: El número z se aproxima por z = ± 1.d1d2...ds ⋅ 2e.


Redondeo: El número z se aproxima por:
⎧ ±1.d1d2 ...ds ⋅ 2e si ds+1 = 0
z=⎨
⎩±(1.d1d2 ...ds + 0.00...1) ⋅ 2 si ds+1 = 1
e

s dígitos decimales

donde la suma que aparece en el caso de ser ds+1 = 1 se entiende que es en


aritmética binaria.

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

NOTA: Recuérdese que la suma en aritmética binaria sigue la mismas reglas


que la suma en base 10. Más concretamente la suma de los números binarios
0.d1d2...di-1di....ds y 0.b1b2...bi-1bi...bs se realiza dígito a dígito empezando por
los de más a la derecha y verificándose que “di + bi = 1” si uno de ellos tiene
valor 0 y el otro valor 1 mientras que “di + bi = 0” si ambos dígitos tienen el
mismo valor y, además, en el caso de que ambos dígitos tengan valor 1, su
suma vale 0 pero “nos llevamos 1” para la suma de los dígitos “di-1 + bi-1 ”

Ejemplo: El número binario -1.01011000001110010101..... ⋅ 27 (que era la


expresión binaria en coma flotante del número decimal –172.112) puede
aproximarse con 12 dígitos decimales en la mantisa (hasta d11) obtenida por
truncado mediante el número: z =-1.01011000001 ⋅ 27 (que se corresponde
realmente con –172.0625)

Si en lugar de truncar se redondea, puesto que d12 = 1, se tendrá el número:


z = -(1.0101100 0001+0.00000000001) ⋅ 27= -1.01011000010 ⋅ 27

que se corresponde en realidad con el número –172.125.


Ocupémonos en primer lugar de acotar el error cometido al aproximar un


número binario genérico por otro en el que la mantisa sólo tiene s dígitos
decimales.

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:

| Ea | = z − z = 1.d1d2 ....ds ds+1.... − 1.d1d2 ....ds ⋅ 2e = 0.ds+1..... ⋅ 2− s ⋅ 2e =

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 =

= 0.ds+ 2 ..... ⋅ 2−1 ⋅ 2e −s ≤ 2e−s−1

Si ahora se contempla el caso en que el dígito ds+1 es tal que ds+1=1 se


tiene que:
|Ea| = z − z = (1.d1d2 ....ds + 0.000...1) − 1.d1d2 ....ds 1ds+ 2 ... ⋅ 2e =

= (1 − 0.1ds+ 2 ...) ⋅ 2− s ⋅ 2e = 1 − 0.1 − 0.0ds+ 2 ... ⋅ 2e−s = 0.1 − 0.0ds+ 2 ... ⋅ 2e−s ≤

≤ 0.1 ⋅ 2e−s = 2−1 ⋅ 2e−s = 2e−s−1

b) Teniendo en cuenta la acotación de los errores absolutos, para el error


relativo se tiene que, si z ≠ 0 :

35
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

z−z 2e−s−1 2− s−1


E= ≤ = ≤ 2− s−1
z 1.d1d2 ...ds ds +1... ⋅ 2 e
1.d1d2 ...ds ds+1...
c.q.d.

NOTA: Las propiedades anteriores demuestran que la cota de error relativo es


independiente de la magnitud del número z que se aproxima. No obstante la
cota del error absoluto es menor al aproximar números “pequeños” en valor
absoluto que números “grandes” en valor absoluto (puesto que el exponente de
los primeros es menor que el de los segundos).

Ejercicio propuesto 9º: Utilizando la base de numeración β (y suponiendo


que β es un número par) las mantisas pueden aproximarse también por
truncado (eligiendo los s primeros dígitos) o por redondeo esto es tomando
como aproximación del número z = ± 0.d1....dsds+1.... ⋅ βe el número:
⎧ β
⎪⎪ ±0.d1d2 ...ds ⋅ βe si ds+1 <
z=⎨ 2
⎪±(0.d d ...d + 0.00...1) ⋅ βe β
si ds+1 ≥
⎪⎩ 1 2 s
2

Demuestra que si se utiliza la base de numeración β en coma flotante y


se aproximan los números con mantisas de s dígitos decimales, el error relativo
utilizando la técnica de truncado está acotado por β1−s mientras que si se utiliza
1
la técnica de redondeo esta cota es ⋅ β1−s .
2

3.5. La unidad de redondeo en coma flotante binaria.


Según se acaba de demostrar en las dos propiedades anteriores, se verifica
que siendo z un número binario y siendo z su aproximación en coma flotante
con s dígitos decimales de mantisa:
z−z ⎧ 2− s truncando ⎫
∀z ≠ 0 : ≤ u = ⎨ − s−1 ⎬
z ⎩2 redondeando ⎭

A este valor u se le denomina unidad de redondeo del sistema en coma


flotante binario con s dígitos decimales de mantisa.Para cualquier número
binario se verifica de esta forma que:
z = z ⋅ (1 + δ) con δ ≤ u

36
Programación y Métodos Numéricos Errores de redondeo

3.6. La codificación binaria de números en equipos de cálculo.


Como ya se dijo anteriormente las calculadoras y ordenadores que
trabajan en aritmética binaria destinan un número finito de bits (componentes
que pueden tener el estado “0” o el estado “1”) para codificar los números.
Examinemos con mayor detalle el proceso que se sigue para esta codificación.

3.6.1. Codificación binaria de números enteros.


Si se trata de codificar números enteros se asignan (s+1) bits para
almacenar la expresión binaria del número, reservando el primero de dichos
bits para almacenar el signo del número (estando normalizado que el estado
“0” en el primer bit representa signo positivo y el estado “1” representa signo
negativo)10. De esta forma, al tener (s+1) bits para codificar el valor absoluto
del número, el mayor entero positivo que se puede codificar es:

M = 1.2s-1+1.2s-1+1.2s-3+……+1.22+1.21+1.20 =2s–1

El menor entero que se podría representar sería m = - M = -2s+1. No


obstante según ese criterio el número entero 0 se podría representar de dos
formas posibles: 000.....0 y 100....0 (es decir +0 y -0). Ello se evita
asignando la representación que correspondería a +0 al número 2s. Con ello el
rango de valores enteros que permite manipular una máquina con aritmética
binaria entera de s bits es (–2s+1) a 2s.

Ejemplo: Con 8 bits para representar números enteros se pueden representar


todos los enteros mayores o iguales que –127 y menores o iguales que 128.

Con 32 bits este rango se amplia pudiéndose representar todos los


enteros mayores o iguales que –2147483647 y menores o iguales que
2147483648.

NOTA: La realidad es un poco más complicada pues las máquinas de cálculo


suelen utilizar la técnica de complemento a 1 que consiste en, manteniendo el
criterio de los signos, transformar los bits con estado “0” en bits con estado “1”
y viceversa. Los motivos de ello exceden los objetivos de este tema (estando
relacionados con la fiabilidad de los sistemas de almacenamiento y transmisión
de la información) y por ello nos limitaremos a considerar como codificación
binaria de números enteros lo que se acaba de exponer. Ello no introduce

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

restricciones cualitativas sobre cómo se originan y propagan los errores de


redondeo al operar con máquinas de cálculo, que es el objetivo principal que
perseguimos.

3.6.2. Codificación binaria de números reales en coma flotante.


Para codificar los números reales no nulos expresados en coma flotante
binaria, ± 1.d1d2d3....ds-1dsds+1... ⋅ 2e, las máquinas de calcular destinan (s+1)
bits para almacenar la mantisa y (t+1) bits para almacenar el exponente11.

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).

• Los s bits siguientes almacenan los valores de los dígitos decimales


binarios de la mantisa: d1, d2, ..., ds.

En cuanto a los (t+1) bits del exponente se destinan a almacenar la


expresión binaria del exponente. Puesto que el exponente es un número entero
podría codificarse según lo descrito en el apartado anterior. No obstante las
máquinas de cálculo científico utilizan exponentes escalados para evitar la
duplicidad en la representación de exponentes nulos (al poderse representar
como +0 y como –0). Este procedimiento consiste en representar no ya el
exponente “e” que correspondería al número que se manipula sino el entero
“e+n”, donde n se toma de forma que se asegure la inexistencia de números
negativos a codificar como exponentes y se emplean los (t+1) bits del
exponente para codificar “e+n”.

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.

Habida cuenta de la diversidad de criterios de los fabricantes y dado


que el proceso de escalar los exponentes no será cualitativamente significativo
en el hecho de que se produzcan errores de redondeo al codificar números, en
estos apuntes se ha optado por realizar una exposición más sencilla
considerando que los exponentes se almacenan en (t+1) bits, de forma análoga
a lo descrito para la codificación de números enteros, reservando el primero de
los bits disponibles para el signo y los t restantes para almacenar el código
binario del valor absoluto del exponente. Es más, aun a sabiendas de que no
es lo mejor, por sencillez permitiremos la duplicidad del exponente 0 y
consideraremos en los ejemplos que m = 1- 2t y M = 2t – 1. Fácilmente podrá
adaptarse cuanto se diga a otros valores del rango de exponentes.

Ejemplo:
Con un sistema de (s+1) = 24 bits para almacenar la mantisa y de
(t+1) = 8 bits para el exponente, el número –1024.37 se almacenaría como
sigue:
Expresión en coma flotante del número:
- 1.000000000001011110101110 ... ⋅ 210

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

Codificación del número:

0 0001010 1 00000000000101111010111

signo Valor absoluto signo Valor absoluto

EXPONENTE MANTISA •

Si se disponen de (s+1) bits para almacenar la mantisa (el primero para


su signo y los s restantes para su valor absoluto), el número codificado positivo
mayor es:
C = (1+1.2-1 + 1.2-2 + ....+ 1.2-s) ⋅ 2M = 2M-s ⋅ (2(s+1)-1)

Obviamente el menor número codificado es –C.

Los números reales no nulos codificados con menor valor absoluto que
se pueden codificar serían: c = ± (1.00....0) ⋅ 2m = ± 2m

En el proceso de codificación descrito, al no guardarse la parte entera de


la mantisa, no podría codificarse el número real 0. cuya representación en base
2 es 0.000000..... ⋅ 2e . Las técnicas de tratamiento de la mantisa nula que
corresponde al real “0.” son variadas y por ello, sin entrar en detalles,
admitiremos que este valor se codifica con un código adicional “especial”.

NOTA: Adviértase que los valores de C y c que se acaban de obtener


corresponden a los números codificados no nulos de mayor y menor valor
absoluto. Pero no son los números reales de mayor y menor valor absoluto que
pueden ser aproximados. Estos se determinarán en función de la técnica de
aproximación utilizada (redondeo o truncado). En el quinto ejercicio resuelto de
estos apuntes puede encontrarse, sobre un ejemplo concreto, cómo se podrían
definir estas cotas utilizando la técnica de redondeo.

40
Programación y Métodos Numéricos Errores de redondeo

La unidad de redondeo de un sistema de codificación como el descrito


(véase el apartado 3.5. considerando que sólo se almacenan s dígitos
decimales de la mantisa) está dada por:

⎧ 2− s si se aproxima por truncado


u = ⎨ − s−1
⎩2 si se aproxima por redondeo
Ejemplos:
1º) Si consideramos (t+1) = 8 y si se destinara un bit para almacenar el signo
del exponente, quedarían 7 bits para almacenar el valor absoluto de éste. Por
ello el mayor exponente que se podría almacenar sería:
M = +(1 ⋅ 26 + 1 ⋅ 25 + 1 ⋅ 24 + 1 ⋅ 23 + 1 ⋅ 22 + 1 ⋅ 21 + 1 ⋅ 20) = +(27 – 1) = +127
y el menor: m = -127.

Si además (s+1) = 24 (23 bits para el valor absoluto de la mantisa y un


bit para su signo), el mayor número codificado tiene el valor:

C = +(1+1 ⋅ 2-1 + 1 ⋅ 2-2 + 1 ⋅ 2-3 + ...... + 1 ⋅ 2-23) ⋅ 2127 = 2104 ⋅ (224-1)


(del orden de 3 ⋅ 1038)

y el menor será –C.

El número codificado estrictamente positivo de menor valor absoluto es:

c = 1 ⋅ 2-127 (del orden de 5 ⋅ 10-39)


y el negativo será –c.

La unidad de redondeo de este sistema de codificación sería:

Si se aproxima por truncado: u = 2-23 (del orden de 1 ⋅ 10-7)


Si se aproxima por redondeo: u = 2-24 (del orden de 6 ⋅ 10-8)

2º) Si consideramos (t+1) = 11 y si se destinara un bit para almacenar el signo


del exponente, quedarían 10 bits para almacenar el valor absoluto de éste. Por
ello el mayor exponente que se podría codificar sería:

M = +(1 ⋅ 29 + 1 ⋅ 28 + 1 ⋅ 27 +.... + 1 ⋅ 22 + 1 ⋅ 21 + 1 ⋅ 20) = +(210 – 1) = +1023

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

Si además (s+1) = 53, (52 bits para el valor absoluto de la mantisa y un


bit para su signo) el mayor número codificado es:

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.

El número codificado positivo de menor valor absoluto es:

c = 1 ⋅ 2-1023 (del orden de 1 ⋅ 10-308)


y el negativo será –c.

La unidad de redondeo de este sistema de codificación sería:

Si se aproxima por truncado: u = 2-52 = (del orden de 2.2 ⋅ 10-16)


Si se aproxima por redondeo: u = 2-53 (del orden de 1.1 ⋅ 10-16)

NOTA: Nuevamente conviene insistir en que las máquinas existentes, aunque


se adaptan en líneas generales a lo anteriormente expuesto, introducen
algunas técnicas que modifican los valores anteriores. Como ya se señaló el
responsable de estas modificaciones es el número 0 tanto en el escalado de
los exponentes para evitar la duplicidad del código para el exponente nulo, así
como en el tratamiento de la mantisa nula para reservar un código que permita
representar al real nulo. Ello hace que las cotas de los números manipulados
no sean exactamente las que se obtuvieron en los ejemplos precedentes. En
concreto el estándar recogido en la normativa IEEE por el que se rigen la
mayor parte (no todos) de los fabricantes de ordenadores opta por la
aproximación de redondeo y contempla los sistemas de codificación en binario
siguientes:
Bits de Bits de
Mantisa Exponente M m u
Simple precisión 24 8 128 -125 ∼ 6 ⋅ 10−8
Doble precisión 53 11 1024 -1021 ∼ 1.1⋅ 10 −16

Ejercicio propuesto 10º: Obtén la expresión codificada en coma flotante


binaria del número –14527.897123, suponiendo que se destinan 13 bits para
almacenar el exponente (el primero para el signo) y 19 bits para almacenar la

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.

3.7. Los “números máquina” binarios.


En un sistema de codificación en coma flotante binaria como el que se acaba
de describir, utilizándose s bits para los dígitos decimales de la mantisa y en el
que el exponente pueda variar entre los valores enteros m y M sólo se pueden
codificar sin error los números reales binarios de la forma:
±1.d1d2 ....ds−1ds ⋅ 2e m≤e≤M di ∈ {0,1} (i = 1,...,s)

Estos números expresados en base 10 se corresponden con:

( )
± 1 + d1 ⋅ 2−1 + d2 ⋅ 2−2 + .... + ds ⋅ 2− s ⋅ 2e , m ≤ e ≤ M , di ∈ {0,1} (i = 1,...,s)

Al conjunto de estos números, más el 0., se le denomina conjunto de números


máquina y se representa por F(s+1, m, M, 2) donde la letra F es la inicial de
“Flotante” (en referencia al sistema en coma flotante), s12 es el número de
dígitos decimales de las mantisas, m y M son el menor y el mayor exponente
permitido y “2” indica la base de numeración en la que se trabaja.

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:

± 1.00 ⋅ 2-2 , ± 1.01 ⋅ 2-2 , ± 1.10 ⋅ 2-2 , ± 1.11 ⋅ 2-2 ,


± 1.00 ⋅ 2-1 , ± 1.01 ⋅ 2-1 , ± 1.10 ⋅ 2-1 , ± 1.11 ⋅ 2-1 ,
± 1.00 ⋅ 20 , ± 1.01 ⋅ 20 , ± 1.10 ⋅ 20 , ± 1.11 ⋅ 20 ,
± 1.00 ⋅ 21 , ± 1.01 ⋅ 21 , ± 1.10 ⋅ 21 , ± 1.11 ⋅ 21 ,
± 1.00 ⋅ 22 , ± 1.01 ⋅ 22 , ± 1.10 ⋅ 22 , ± 1.11 ⋅ 22 ,
+ 0.00.2-2

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

Es decir, sólo 41 números reales pueden ser representados sin error en


este sistema. Estos números, en base 10 son:

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) } =

= {0., ± 0.25, ± 0.3125, ± 0.375, ± 0.4375,


± 0.5, ± 0.625, ± 0.75, ± 0.875,
± 1.0, ± 1.25, ± 1.5, ± 1.75,
± 2., ± 2.5, ± 3., ± 3.5
± 4., ± 5., ± 6. ± 7.}

Propiedad 6.
El conjunto de números máquina F(s+1, m, M, 2) está formado por:

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

de donde podemos concluir que:

C = 2M-s ⋅ (2(s+1)-1).

Obviamente, el número menor será –C.


c.q.d.

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

Obviamente el número estrictamente negativo de menor valor absoluto será –c.


c.q.d.

Ejemplo:
En el ejemplo antes desarrollado con (s+1) = 3, m = -2, M = 2 puede
comprobarse que:

• El conjunto de números máquina está formado por


23 ⋅ (2 – (-2) + 1) + 1 = 8 ⋅ 5 + 1 = 41 números

• El número mayor de F(3, -2, 2, 2) es:

C = 22-2 ⋅ (23-1) = 1 ⋅ ( 8 − 1) = 7
Y el número menor es –7.

• El número estrictamente positivo de menor valor absoluto es:


c = 2-2 = 0.25
y el estrictamente negativo de menor valor absoluto es –0.25.

45
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Los 2(s+1) ⋅ (M-m+1) + 1 números máquina de F(s+1, m, M, 2) pertenecen


al intervalo [-C, N]. Pero no se encuentran igualmente espaciados. En efecto, la
siguiente propiedad establece la distancia entre números máquina positivos
consecutivos y fácilmente puede extenderse para los números negativos.

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 }

es 2-2-s+1 = 2-2-3+1 = 2-4 = 0.0625.

La figura siguiente recoge la distribución en [-7, 7] de todos los números


máquina de F(3, -2, 2, 2).

46
Programación y Métodos Numéricos Errores de redondeo

Puede observarse que los números máquina de menor valor absoluto


están más próximos entre ellos que los de mayor valor absoluto. Ello, además
de ilustrar la propiedad 9ª, justifica gráficamente el hecho, demostrado
anteriormente en las propiedades 4ª y 5ª, de que la cota del error absoluto que
se cometerá al aproximar un número real de “alto” valor absoluto por un
número máquina sea mayor que la que se comete al trabajar con números de
“pequeño” valor absoluto.

Si se intenta codificar un número con valor absoluto tal que su


aproximación (por redondeo o por truncado) conduce a un número mayor que
C (máximo número máquina del sistema F(s+1, m, M, 2)), se produce un error
denominado error de overflow.

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

Comprobémoslo. Para ello expresemos como suma de potencias de 2 este


número:
7.5 = 22 + 21 + 20 + 2-1

lo que nos indica que su expresión binaria en coma flotante será: 1.111 ⋅22

Si se intenta redondear este número con una mantisa formada por 2


dígitos decimales se tendría el número: 1.00 ⋅ 23 que no es un número
máquina de F(3, -2, 2, 2) ya que el exponente sobrepasa el límite
superior permitido ( M = 2).

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.

En el caso de intentar codificar un número cuyo valor absoluto se


aproxime (ya sea por redondeo o por truncado) por un número inferior a c
(menor número máquina estrictamente positivo del sistema F(s+1, m, M, 2)), o
bien se asimila a 0 o bien se produce un error denominado error de underflow.

Ejercicio propuesto 12º: Determina los mayores números reales positivos


para los que se produciría error de underflow (o asimilación a 0.) en un sistema
F(s+1, m, M, 2)
a) si los números reales se aproximan por números máquina mediante
truncado

b) si los números reales se aproximan por números máquina mediante


redondeo.

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.

En este sentido consideraremos los números máquina decimales de un


cierto sistema de codificación F(s+1, m, M, 10), es decir todos los números de
la forma:
± 0.d1d2...ds ⋅ 10e

donde di ∈ {0,1,2,3,4,5,6,7,8,9} (i = 1, ..., s) , d1 ≠ 0 y m ≤ e ≤M.

Los ordenadores más comunes realizan las operaciones aritméticas


entre números máquina obteniendo los resultados con mantisas de (2 ⋅ s)
dígitos decimales y, tras ello, aproximan dichos resultados (ya sea por
redondeo o por truncado) por alguno de los números máquina de su sistema
(es decir con sólo s dígitos decimales en la mantisa). En esta aproximación del
resultado se introduce un error adicional al que ya tuvieran los números que se
operan. Debe resaltarse por tanto que en general aparecerá un error al realizar
una operación aritmética aun en el caso de operar con dos números que
admitan una representación exacta como números máquina.

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

cometiéndose un error en el resultado de la multiplicación de los números


aunque se ha partido, en este caso, de números máquina exactos.

4.1. Propagación de errores trabajando con números máquina.


Analicemos en primer lugar el error que se produce en las distintas operaciones
aritméticas entre números máquina.

A) Multiplicación y división de números máquina.


El proceso para multiplicar dos números máquina consiste en realizar los
siguientes pasos:

a) Multiplicar las mantisas de ambos números (cada una de ellas con s


dígitos decimales) almacenando su resultado exacto en un número
con (2 ⋅ s) dígitos decimales de mantisa.

b) Sumar los exponentes de ambos números y, en su caso, ajustar el


exponente resultante desplazando el punto decimal de la mantisa.

c) Aproximar el número así obtenido por un número máquina (con s


decimales en su mantisa) ya sea por truncado ya sea por redondeo.

En lo que sigue denotaremos por a ⋅ b el valor exacto del producto de dos


números máquina y por a : b al número máquina que aproxima dicho valor.

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

b) Sumando exponentes: -3 + 1 = -2, y ajustando el resultado por los


desplazamientos del punto decimal de la mantisa: -2 + (-1) = -3.

c) Aproximando 0.51101910 ⋅ 10-3 por el número máquina: 0.5110 ⋅10−3 .


50
Programación y Métodos Numéricos Errores de redondeo

En la multiplicación de dos números máquina se comete un error δ que


estará acotado, según las propiedades 1ª y 2ª por la unidad de redondeo “u”
(101-s si se aproxima el resultado por truncado o (1/2).101-s si se hace mediante
redondeo). Denotando por “a” y “b” a dos números máquina del sistema de
codificación F(s, m, M, 10) se puede expresar lo anterior mediante:

a : b = a ⋅ b ⋅ (1 + δ1 )

donde δ1 representa el error relativo cometido que verificará: δ1 ≤ u .

Si el número máquina obtenido se vuelve a multiplicar por otro número


máquina “c” se tendrá que:

(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 )

Dado que, en los sistemas de números máquina que se utilizan en los


ordenadores, los errores producidos en las aproximaciones de los números
son “pequeños” (inferiores a la unidad de error de redondeo que es del orden
de 10-8 o menor) una buena aproximación del resultado anterior es:

(a : b) : c ≈ a ⋅ b ⋅ c ⋅ (1 + δ1 + δ2 )

Ello nos indica que los errores de sucesivas multiplicaciones se


acumulan aditivamente.

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

Multiplicando ahora: (a : b) ⋅ c = 0.33650252 ⋅ 10 −1 se tiene que:

( 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

El error total en las dos operaciones puede ser estimado entonces


mediante:
δ1 + δ2 = 0.2887 ⋅ 10−4

En efecto, si se operara exactamente se tiene que:


a ⋅ b ⋅ c = .33650971454 ⋅ 10−1
por lo que:
a ⋅ b ⋅ c − (a : b) : c
= 0.2887.10-4
a ⋅b ⋅c

Obsérvese además que el error relativo total cometido en las dos


multiplicaciones es inferior al doble de la unidad de redondeo: 2.u = 101-s = 10-3.

Generalizando por inducción el razonamiento anterior se tiene la


propiedad siguiente:

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:

(((a0 : a1 ) : a2 ) : .......an ) = (a0 ⋅ a1 ⋅ a2 ⋅ .... ⋅ an ) ⋅ (1 + δ1 ) ⋅ (1 + δ2 ) ⋅ .... ⋅ (1 + δn ) ≈


≈ (a0 ⋅ a1 ⋅ a2 ⋅ .... ⋅ an ) ⋅ (1 + δ1 + δ2 + .... + δn )
con:
δ1 + δ2 + .... + δn ≤ n ⋅ u
Demostración:
Se deja como ejercicio propuesto al lector.
c.q.d.

52
Programación y Métodos Numéricos Errores de redondeo

En otros términos, como ya se señaló anteriormente, la cota del error


relativo del producto de n números puede aproximarse (despreciando
productos de menor orden) por: (n ⋅ u).

Pero la acumulación de los errores de redondeo relativos no es la única


consecuencia que tiene el operar en un sistema de codificación con las
mantisas limitadas a s dígitos decimales. Otra de las consecuencias es que la
multiplicación pierde la propiedad asociativa, es decir que en general:
( a : b ) : c ≠ a : (b : c )

En efecto, denotando por δab al error relativo producido al evaluar a : b ,


por δbc al producido al evaluar b : c , por δ(ab)c el producido al evaluar
(a : b) : c y por δa(bc ) al producido en el cálculo del número máquina
a : (b : c) se tiene que:
(a : b) : c = (a ⋅ b ⋅ c) ⋅ (1 + δab ) ⋅ (1 + δ(ab)c )
a : (b : c) = (a ⋅ b ⋅ c) ⋅ (1 + δbc ) ⋅ (1 + δa(bc ) )
por lo que:
(a : b) : c (1 + δab ) ⋅ (a + δ(ab)c )
= = 1+ γ
a : (b : c) (1 + δbc ) ⋅ (a + δa(bc ) )

En los sistemas de codificación habituales el valor de γ es “pequeño”


pero aun así, la presencia de este número hace que la propiedad asociativa del
producto entre números máquina sólo se verifique de una forma aproximada.

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

a ⋅ (b : c) = 0.25160520 ⋅ 10−5 ⇒ a : (b : c) = 0.2516 ⋅ 10 −5


produciéndose una diferencia en el último dígito de la mantisa.

53
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Para el caso de la división entre números máquina, en el caso de que el


denominador no sea “muy próximo” a 0., pueden realizarse consideraciones
análogas. El proceso para realizar la división de un número máquina “a” entre
otro número máquina no nulo “b” (ambos de F(s+1, m, M, 10)) consiste en:

a) Dividir las mantisas almacenando momentáneamente el resultado en


otro número máquina con 2.s dígitos decimales en su mantisa.

b) Ajustar los exponentes (sumando el obtenido en el paso anterior al


exponente del número máquina “a” y restando el valor del exponente
del número máquina “b”).

c) Aproximar, si es posible, el número anterior (que tiene 2.s bits en su


mantisa) por un número máquina de F(s+1, m, M, 10).

Obsérvese que, en general, el cociente de las mantisas de los dos


números máquina no puede representarse exactamente con 2.s dígitos
decimales (por ejemplo: 0.2/0.3 tiene infinitos decimales). Esto tampoco
representa un grave problema pues, a efectos de redondear, será el dígito
(s+1) el que deba ser estimado de forma precisa.

Con estas consideraciones, son aplicables a la división de números


máquina (con cociente no nulo) las mismas propiedades y observaciones que
se realizaron para la multiplicación.

En lo que sigue denotaremos por a / b el valor exacto del cociente entre


números máquina y por a ÷ b al número máquina que aproxima dicho valor.

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.

B) Sumas y restas de números máquina.


Como se pondrá de manifiesto a continuación las operaciones
aritméticas suma y resta de números máquina pueden tener un
comportamiento mucho peor que la multiplicación y la división. Esto será
especialmente cierto en el caso de sumar números de órdenes de magnitud
muy diferentes o de restar números muy parecidos.

Puesto que la resta a – b puede considerarse como la suma del número


“a” más el número “-b”, en muchos casos nos ocuparemos tan sólo de la
suma. Y siendo “a” y “b” dos números máquina (en base 10), denotaremos por
a ⊕ b al número máquina que aproxima el valor exacto de a+b.La operación de
sumar dos números máquina “a” y “b” se realiza en las siguientes etapas:

a) Ajuste de los exponentes de ambos números al mayor de ellos.


b) Suma de las mantisas y, en su caso, nuevo ajuste de exponentes.
c) Aproximación del resultado por un nuevo número máquina.

Antes de analizar teóricamente cómo se propaga el error, ilustremos


este proceso con algunos ejemplos realizados con números máquina del
sistema F(5, -99, 99, 10) y realizando en todos ellos la aproximación
correspondiente mediante redondeo.

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) Ajuste de exponentes: no es necesario pues el exponente de ambos


números es el mismo (101 para ambos).
b) Suma de mantisas y nuevo ajuste de exponentes:
0.9874 ⋅101 + 0.4325 ⋅101 = 1.4199 ⋅101 = 0.14199 ⋅102
c) Aproximación del resultado por un nuevo número máquina:
a ⊕ b = 0.1420 ⋅ 102

Como a + b = 0.14199 ⋅102 , el error relativo producido será:

(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:

a) Ajuste de exponentes: b = 0.0004325 ⋅101


b) Suma de mantisas y, en su caso, nuevo ajuste de exponentes:
0.9874 ⋅101 + 0.0004325 ⋅101 = 0.9878325 ⋅101
c) Aproximación del resultado por un nuevo número máquina:
a ⊕ b = 0.9878 ⋅ 101

Como a + b = 0.9878325 ⋅101 , el error relativo producido será:


(a + b) − (a ⊕ b)
= 0.3290 ⋅ 10−4
(a + b)

3º. Para sumar a = 0.9874 ⋅101 y b = 0.4325 ⋅10 −5 se procede como sigue:

a) Ajuste de exponentes: b = 0.0000004325 ⋅101


b) Suma de mantisas:
0.9874 ⋅101 + 0.0000004325 ⋅101 = 0.9874004325 ⋅101
c) Aproximación del resultado por un nuevo número máquina:
a ⊕ b = 0.9874 ⋅ 101 ( = a)

Como a + b = 0.9874004325 ⋅101 , el error relativo producido será:

(a + b) − (a ⊕ b)
= 0.4380 ⋅ 10−6
(a + b)

56
Programación y Métodos Numéricos Errores de redondeo

El tercero de los ejemplos anteriores pone de manifiesto que si se


suman números con órdenes de magnitud muy dispares, el resultado puede
coincidir con el número mayor. Y en general, en el resultado de una suma de
números con órdenes de magnitud diferentes sólo intervienen los “primeros”
dígitos de la mantisa del número de menor valor absoluto. De esta forma se
están perdiendo dígitos significativos del menor de dichos números. Este hecho
es el que se concreta en la siguiente propiedad.

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

Nótese que este error ( llamado en ocasiones error de pérdida de


significado en uno de los sumandos) en la suma de dos números no es
preocupante pues si se relativiza es un error inferior a la unidad de redondeo
de la máquina. Lo realmente preocupante de este error es su acumulación en
sumas sucesivas. Este hecho puede ilustrarse con el siguiente ejemplo:

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

n=1 S1 = 0.40005 ⋅101


n=2 S2 = 0.4001 ⋅101
n=3 S3 = 0.40015 ⋅101
n=4 S4 = 0.4002 ⋅101
n=5 S5 = 0.40025 ⋅101
n=6 S6 = 0.4003 ⋅101

Pero, por el contrario, el resultado que se obtendría operando con


números máquina es:
s1 = a ⊕ b = 0.4000 ⋅ 101 ⊕ 0.5000 ⋅ 10 −4 = 0.4000 ⋅ 101
s2 = (a ⊕ b) ⊕ b = 0.4000 ⋅ 101 ⊕ 0.5000 ⋅ 10 −4 = 0.4000 ⋅ 101
s3 = ((a ⊕ b) ⊕ b) ⊕ b = 0.4000 ⋅ 101 ⊕ 0.5000 ⋅ 10 −4 = 0.4000 ⋅ 101
.......
sn = 0.4000 ⋅101

La presencia del error de pérdida de significado hace aconsejable que,
siempre que se pueda, sea conveniente sumar los números máquina
comenzando por los de menor magnitud y terminando por los de mayor
magnitud. Con ello, la acumulación previa de los números menores,
produciendo números mayores, puede contribuir a una mayor precisión del
resultado final.

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).

Pero uno de los problemas que se plantean al tomar ε muy pequeño es


que si su orden de magnitud es excesivamente pequeño en comparación con
x*, puede darse el caso de que los números máquina que representan a ε y a
x*+ ε -x* no sean los mismos. Para ilustrar este hecho volvamos a situarnos en
el conjunto de números máquina F(5, -99, 99, 10) y tomemos como parámetros
x* = 0.1000 ⋅101 y ε = 0.1500 ⋅ 10−3 . Se tiene entonces que:
x * ⊕ε = 0.1001⋅ 101

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.

Por ejemplo, si se considera la función f(x) = x2 es obvio que f’(1) = 2. La


tabla siguiente recoge los valores que se obtienen aproximando la primera
derivada mediante la fórmula anterior para distintas elecciones del parámetro ε
si se utilizan sólo 4 dígitos significativos en las operaciones:
f(1 + ε ) − f(ε )
ε f’(1)
ε
1 3.000 2.000
-1
10 2.100 2.000
-2
10 2.000 2.000
-3
10 2.000 2.000
-4
10 0.000 2.000
-5
10 0.000 2.000
9
Extraído de L.F. Shampine, R.C. Allen, Jr. & S. Pruess (1997) Fundamentals of Numerical Computing.
Ed. John Wiley & Sons, Inc.

59
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Puede apreciarse que la aproximación mejora al reducir ε hasta una


centésima pero que valores muy pequeños en relación al número de dígitos
manejados (una diezmilésima y menores) conducen a malas aproximaciones
de la derivada.

Una forma de corregir esta deficiencia consiste en, dado un valor de ε


formar un incremento Δ de la forma siguiente:

Δ = ( x * ⊕ε ) ⊕ ( − x*)
y utilizar la fórmula:
f(x * +Δ ) − f(x*)
f '(x*) ≈
Δ

Con los valores antes considerados, la forma de proceder anterior nos


conduciría a Δ = 0.1000 ⋅ 10−3 .

4.2. Propagación de errores operando con números reales.


En el apartado anterior examinamos algunos aspectos sobre la propagación del
error en las operaciones aritméticas cuando se manipulaban números máquina,
esto es números que se podían codificar sin error alguno en el sistema de
coma flotante elegido. Pero dichos números son un subconjunto finito de los
números reales que deberían ser manipulados en la realidad. En otros
términos, y refiriéndonos por ejemplo a la operación “multiplicación”, en el
apartado 4.1. se examinó el error cometido al aproximar el valor exacto del
producto de dos números máquina ( a ⋅ b ) por otro número máquina (denotado
por a b ). Pero, en general, a ⋅ b es a su vez una aproximación de a ⋅ b, en la
que el número real “a” es aproximado por el número máquina a y el número
real “b” es aproximado por b , verificándose que:
a = a ⋅ (1 + δa ) y b = b ⋅ (1 + δb )
por lo que:
a b = a ⋅ b ⋅ (1 + δab ) = a ⋅ b ⋅ (1 + δa ) ⋅ (1 + δb ) ⋅ (1 + δab )

verificándose para los errores relativos que aparecen en la expresión anterior


que:
δa ≤ u , δb ≤ u , δab ≤ u
por lo que:

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

La cota anterior, con los valores habituales de la unidad de redondeo


puede aproximarse por 1 + 3.u, lo que nos permite escribir:
a b ≤ a ⋅ b ⋅ (1 + 3.u)

obteniéndose como “cota aproximada” del error relativo al multiplicar 2 números


reales la expresión (3.u).

En general si se multiplican n números reales el error relativo en el


resultado puede acotarse (aproximadamente) por: (2 ⋅ n – 1) ⋅ u. Este mismo
resultado puede extenderse a la división de números reales (con cocientes no
nulos).

En cuanto a la suma y sustracción de números reales cabría razonar de


forma similar. No obstante, en el caso de la sustracción de números reales
“parecidos” puede aparecer una fuente de error adicional que se conoce con el
nombre de error de cancelación debido a la anulación de los primeros dígitos
de la mantisa del número resultante produciendo como resultado números
“pequeños”. Ilustremos este hecho con un ejemplo.

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

Trabajando en un sistema de codificación F(6, -99, 99, 10) el valor


anterior se aproximaría por:
a − b = 0.15723 ⋅ 102

Pero en un ordenador no se aproxima el resultado final. Lo que sucede


en realidad es que, en primer lugar se aproximan los números a y b por:
a = 0.66667 ⋅ 100 ( δa = −0.5 ⋅ 10−5 )
b = 0.66509 ⋅ 100 ( δb = 0.6 ⋅ 10−5 )

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.

Para poder tener alguna información sobre la aparición del error de


cancelación es útil poder saber cuantos dígitos de la mantisa se anulan al
restar dos números. A esta cuestión da respuesta la siguiente propiedad:

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:

a − b = (0.a1a2 ....as ... − 0.b1b2 ....bs ... ⋅ 10q−p ) ⋅ 10p =


⎛ 0.b1b2 ....bs ... ⋅ 10q ⎞
= 0.a1a2 ....as ... ⋅ ⎜ 1 − ⎟ ⋅ 10
p

⎝ 0.a1a2 ....as .... ⋅ 10


p

62
Programación y Métodos Numéricos Errores de redondeo

Por la hipótesis realizada en el enunciado se tiene que:

⎛ 0.b1b2 ....bs ... ⋅ 10q ⎞


10−α ≤ ⎜ 1 − ⎟ < 10
−γ

⎝ 0.a1a2 ....as ... ⋅ 10


p

por lo que este número, comprendido entre 0 y 1, tendrá al menos los γ


primeros decimales nulos y a lo sumo sus (α − 1) primeros decimales nulos.
⎛ 0.b1b2 ....bs ... ⋅ 10q ⎞
Por tanto 0.a1a2 ....as ... ⋅ ⎜ 1 − ⎟ , siendo a1 ≠ 0, tendrá un
⎝ 0.a1a2 ....as .... ⋅ 10
p

número de decimales nulos que será al menos γ y a lo sumo α .
c.q.d.
Ejemplos:

1º. Consideremos los números a = 2 / 3 y b = 141 / 212. Se tiene que:

⎛ 141 212 ⎞ ⎛ 423 ⎞


⎜ 1 − 2 / 3 ⎟ = ⎜ 1 − 424 ⎟ = 0.002358490...
⎝ ⎠ ⎝ ⎠
verificándose que:

⎛ 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

2º. Consideremos los números a = 2 / 3 y b = 0.66599. Se tiene que:

⎛ 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)

donde εa y εb representan los errores absolutos cometidos al representar en el


sistema de codificación F(s, m, M, 10) los reales “a” y “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

por lo que εa − εb podrá expresarse como: εa − εb ≤ μ ⋅ 10e−s . Por otra parte, la


propiedad 13ª establece el rango de decimales que se anulan al realizar la
operación (a – b). Siendo η este número de decimales que se anulan, se tiene
que, con la notación de la propiedad 12ª, γ ≤ η ≤ α . Por tanto el valor de (a – b)
podrá expresarse como: a – b = σ ⋅ 10e −η .

Los razonamientos anteriores nos conducen a que:

(a − b) − (a − b) ε a − εb μ ⋅ 10e−s μ
= ≤ e −η
= ⋅ 10η−s
(a − b) (a − b) σ ⋅ 10 σ

Esta expresión establece una cota del error relativo en la sustracción de


números positivos. El error realmente cometido puede ser muy inferior al valor
de dicha cota. No obstante cuanto más próximo sean los valores de εa − εb y
de 10e-s más se acercará el error relativo de la sustracción a 10η−s por lo que si
en dicho caso el número de decimales que se anulan η es elevado mayor será
el error relativo de la sustracción en comparación con el error relativo de la
codificación de “a” y “b” (que estaba acotado por 101-s).

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

b = 0.66599 ⋅100 , b = 0.66599 ⋅ 100 , εb = 0.

por lo que: εa − εb = 0.33333 ⋅ 10 −5 .

Por otra parte: a – b = 0.67667 ⋅ 10-3 (se anulan η = 3 decimales). El


error relativo de la sustracción es en este caso:

εa − εb 0.33333 ⋅ 10−5 0.33333


= = ⋅ 103−5 = 0.49260 ⋅ 10−2
(a − b) 0.67667 ⋅ 10 −3 0.67667

siendo la cota que se determinaría con el desarrollo teórico anteriormente


realizado 10-2.

65
Errores de redondeo Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

5. COMENTARIOS SOBRE EL TEMA.

a) Conviene insistir nuevamente en que la realidad en los ordenadores es


más compleja de lo que aquí se ha descrito pues se trabaja en base 2 (o
en base 8 ó 16), se introducen “escalamientos” de exponentes, se
reserva uno de los códigos numéricos para almacenar el número real
nulo, etc.... No obstante, lo que hemos descrito en estos apuntes puede
generalizarse sin grandes dificultades a la realidad de cada máquina
concreta.

b) En la bibliografía sobre este tema (y en concreto en las referencias de


Viaño (1995) y de Shampine et al. (1997)) pueden encontrarse análisis
más extensos sobre la propagación de errores, realizados en bases de
numeración genéricas y combinando diferentes tipos de operaciones
aritméticas.

c) Existen sistemas de computación simbólica que permiten operar con los


números exactos, sin introducir aproximaciones para ellos. El problema
de tales sistemas es que cuando el volumen de cálculo es elevado
acaban produciéndose expresiones excesivamente largas (que pueden
ocupar al escribirlas varias hojas) y que, además de necesitar evaluarlas
y reducirlas a un número finito de decimales en algún momento, pueden
presentar problemas (de almacenamiento y de velocidad) al
manipularlas.

d) Numerosos sistemas de computación numérica existentes en la


actualidad permiten elegir el número de bits con los que se opera (al
menos entre algunas opciones como simple o doble precisión) y de esa
forma controlar el efecto de los errores de redondeo en los cálculos.

e) Es muy aconsejable a la hora de diseñar un proceso de cálculo sobre un


ordenador analizar el orden en el que se van a realizar las distintas
operaciones pues, como se puso de manifiesto en alguno de los
ejemplos antes presentados, ello puede condicionar el error que afecte
al resultado final del proceso.

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.

• Henrici, P. (1982). Essentials of Numerical Analysis with pocket calculator


demonstrations. Ed. John Wiley & Sons.

• Kincaid, D. y Cheney, W. (1994). Análisis numérico. Las matemáticas del


cálculo científico. Ed. Addison-Wesley Iberoamericana.

• Sanz-Serna, J. M. (1998). Diez lecciones de Cálculo Numérico. Ed.


Universidad de Valladolid.

• Shampine, L. F., Allen, R. C.,Jr. y Pruess, S. (1997). Fundamentals of


Numerical Computing. Ed. John Wiley & Sons, Inc.

• Stoer, J. y Bulirsch, R. (1993). Introduction to Numerical Analysis (Second


edition). Ed. Springer.

• Viaño, J. M. (1995). Lecciones de Métodos Numéricos. 1.- Introducción


general y análisis de errores. Ed. Tórculo Edicións.

67
UNIVERSIDAD POLITÉCNICA DE MADRID

ESCUELA TÉCNICA SUPERIOR DE


INGENIEROS DE MINAS

DEPARTAMENTO DE MATEMÁTICA APLICADA Y


MÉTODOS INFORMÁTICOS

Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS

Tema: INTERPOLACIÓN POLINÓMICA


Prof. Carlos Conde Lázaro
Prof. Arturo Hidalgo López
Prof. Alfredo López Benito

Marzo, 2007
ÍNDICE

Pág.

1. INTRODUCCIÓN HISTÓRICA. …………………………………….. 1

2. INTERPOLACIÓN POLINÓMICA DE LAGRANGE. ……………… 13


2.1. La fórmula de interpolación de Lagrange. ………………. 17
2.2. La fórmula del error en la interpolación de Lagrange. … . 25
2.3. La fórmula de interpolación de Newton. ………………… 43
2.4. Interpolación con soportes equidistantes: fórmulas con
diferencias finitas. ………………………………………. 62

3. INTERPOLACIÓN POLINÓMICA DE HERMITE. ……………….. 80


3.1. Interpolación de Hermite de primer orden: la fórmula de
interpolación de Hermite. ………………………………. 84
3.2. Interpolación polinómica de Hermite: caso general. …... 92
3.3. Análisis del error en la interpolación de Hermite. ………. 106
3.4. Interpolación de Hermite: la fórmula de Newton. ……….. 112
3.4.1. Planteamiento. …………………………………… 112
3.4.2. Generalización del concepto de diferencia
dividida. ……………………………………………. 117
3.4.3. La fórmula de Newton para el cálculo del polino-
mio interpolador de Hermite. ……………………. 129
3.4.4. ANEXO: Otra forma de definir las diferencias
divididas con puntos repetidos. …………………. 135

BIBLIOGRAFÍA SOBRE EL TEMA. …………………………………….. 143

i
Programación y Métodos Numéricos Interpolación polinómica

1. Introducción histórica

En numerosos procesos físicos y técnicos debe trabajarse con funciones de las


que tan sólo se conoce su valor (o el de sus derivadas) en un número finito de
puntos –llamado soporte- pero de las que es desconocida la expresión a la
que responden. Una de las maneras más extendidas para operar con dichas
funciones consiste en aproximarlas por otras funciones, de expresión conocida
(y, en la medida de lo posible, fácil de manipular). Una de las formas en que se
puede buscar esta función aproximada consiste en obligar a que la función
aproximadora (o sus derivadas) tome en los puntos del soporte los mismos
valores que la función que se quiere aproximar. En tal caso se dice que se ha
interpolado la función original siendo la función interpoladora aquella que la
aproxima.

Las técnicas de interpolación pueden clasificarse, en una primera subdivisión,


según el tipo de expresiones con las que se busque la función interpoladora.
Así existe la interpolación polinomial o polinómica (en la que las funciones
interpoladoras son polinomios), la interpolación trigonométrica (cuando la
función interpoladora es una combinación de funciones trigonométricas), la
interpolación exponencial (si las funciones interpoladoras son una combinación
de exponenciales), etc.... De entre todas ellas, las más frecuentemente
utilizadas son la interpolación polinómica y, en menor medida, la
trigonométrica. Al estudio de la primera de ellas dedicaremos este tema.

Aun sin el desarrollo de una teoría rigurosa, el uso de la interpolación


polinómica se pierde en la historia de los tiempos. Recordemos por ejemplo

1
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

que numerosos matemáticos griegos calcularon aproximaciones del número π


interpolando el área del círculo entre los valores de las áreas de dos polígonos
regulares de n lados, uno inscrito en la circunferencia perimetral del círculo y el
otro circunscrito a dicha circunferencia. O que en el siglo IX los matemáticos
árabes del califato de Bagdad, sabían resolver ciertas ecuaciones no lineales
mediante el método de regula falsi. En cada iteración de dicho método11,
conocidos dos valores de una función f(xi) y f(xi+1) (tales que f(xi)·f(xi+1) < 0 )
se debe buscar la recta que interpola a f(x) en los puntos (xi, f(xi)) y (xi+1, f(xi+1))
para determinar a continuación el punto en que corta al eje de abscisas,
reduciéndose así el intervalo de incertidumbre en el que se buscará una raíz de
la función f(x).

Pero fue en la misma época en que se fraguó y nació el cálculo infinitesimal en


la que se puede considerar que se consolidaron las técnicas de interpolación
polinómica y, junto a ellas, las de derivación e integración numérica.
Numerosos problemas prácticos, fundamentalmente vinculados al comercio, a
la cartografía y a la navegación, exigían en los siglos XVI y XVII el cálculo de
áreas encerradas bajo curvas o la determinación de tangentes a una curva en
un punto. El primero de dichos problemas, el cálculo de áreas encerradas bajo
tramos de curvas, sólo se sabía resolver en casos de curvas muy concretas12.
Del segundo, que antes de esta época se consideraba sin relación con el
primero, hubo que esperar a que el matemático francés Pierre de Fermat
(Beaumont de Lomagne ,17 de agosto de 1601 – Castres, 12 de enero de 1665)
ideara los primeros métodos suficientemente generales para el cálculo de la
tangente a una curva en un punto.

Y puesto que sí se sabía calcular el área existente bajo líneas poligonales


resulta fácil comprender que el cálculo de las áreas encerradas por otras
curvas más generales se comenzase a realizar aproximando aquellas –
interpolándolas – mediante líneas poligonales compuestas por segmentos
rectilíneos o, a lo sumo, parabólicos.

Como podrá comprobar el lector de los apartados siguientes, las fórmulas y


métodos de interpolación, así como los de integración numérica, llevan en

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

muchos casos el nombre de insignes matemáticos de esta época. Aunque no


está muy claro quien fue el primero en utilizar cada una de tales fórmulas (y
revisiones históricas modifican a menudo el papel que cada uno de aquellos
matemáticos jugó en la determinación de cada fórmula) intentaremos en las
líneas siguientes realizar un pequeño esbozo de las contribuciones de los
principales matemáticos que dan nombre a las fórmulas más usuales que se
encuentran en estos temas.

En terminología actual, el problema de interpolación que entonces se abordaba


puede formularse en la forma siguiente:

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).

Como veremos en apartados posteriores sólo existe un único polinomio pn(x)


que sea solución del problema anterior. Si se denota a tal polinomio por:

pn(x) = α0 + α1·x + α2·x2 + ..... + αn·xn

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.

A pesar de no ser cronológicamente el primero, parece obligado comenzar por


el más grande de todos ellos: Sir Isaac Newton (4 de enero de 1643, Woolsthorpe
(Lincolnshire, Inglaterra) - 20 de marzo de 1727, Londres (Inglaterra)). La
descripción de las numerosas aportaciones científicas de este gran matemático
y físico desbordarían con mucho los objetivos de esta breve introducción
histórica. Baste recordar que los trabajos de Newton en mecánica, con la

3
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

formulación de sus tres leyes, proporcionaron un marco físico que continuó


siendo plenamente vigente hasta la aparición de las teorías relativistas a
comienzos del siglo XX (y que el marco newtoniano continúa siendo en el que
se plantean los problemas para las escalas de velocidades pequeñas en
comparación con las de la luz). Recordemos también que los trabajos de
Newton sobre óptica revolucionaron los conocimientos de dicha disciplina. O
que el telescopio diseñado por él permitió ampliar el horizonte de observación
astronómica realizando mediciones mucho más precisas.

En un terreno más puramente matemático, debe comenzarse señalando que


Newton y Leibniz son considerados los creadores, de forma independiente, del
Cálculo Infinitesimal. Junto a ello, son debidos a Newton muchos otros avances
matemáticos: fue el primero en demostrar la fórmula del cálculo de la potencia
n-ésima de un binomio (el teorema binomial), el primero en hacer notar la
relación existente entre la derivación (cálculo de tangentes) y la integración
(cálculo de áreas), ....

Junto a estos méritos, el citar a Newton como el artífice de una fórmula de


interpolación polinómica puede parecer algo bastante insignificante. Pero sin
embargo debe resaltarse que Newton fue un hábil calculista y que en
numerosos desarrollos por él realizados se utilizan técnicas de interpolación.
La idea que subyace en el procedimiento de Newton para calcular el polinomio
interpolador pn(x) que pasa por los puntos (x0, f0), (x1, f1), ...., (xn, fn) consiste en
expresarlo en la forma:
pn(x) = a0 + a1·(x-x0) + a2·(x-x0)·(x-x1) + ..... + an·(x-x0)·(x-x1)····(x-xn-1)

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

pn(x2) = f2 ⇔ a0 + a1·(x2-x0) + a2·(x2-x0)·(x2-x1) = f2 ⇒

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

Los coeficientes así calculados son llamados diferencias divididas y se suelen


representar como ai = f[x0, x1, ..., xi]. Como se verá en apartados posteriores, su
cálculo puede realizarse de forma recursiva de manera muy simple mediante la
fórmula:

f [ xi+1,....,xi+k −1,xi+k ] − f [ xi ,xi+1,....,xi+k −1 ]


f [ xi ,xi+1,....,xi+k −1,xi+k ] =
xk − xi
con lo que el polinomio interpolador buscado responde a la fórmula:

n (i−1)
pn (x) = f [ x 0 ] + ∑ f [ x 0 ,..,xi ]·∏ (x − x j )
i=1 j= 0

Esta forma de proceder (aplicada a ejemplos concretos y obviamente descrita


con una terminología diferente a como se ha realizado anteriormente) fue
publicada en la obra de Newton Methodus differentialis aparecida en 1712, si
bien era utilizada por Newton y otros matemáticos desde años antes. Debido a
ello la fórmula anterior se conoce con el nombre de fórmula de Newton para el
cálculo del polinomio interpolador.


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:

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


f [ x,x + h] = =
(x + h) − x h

cuando h se hace tender hacia cero.

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

xi+1 = xi – f(xi) / f’(xi)

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

Precursor de algunos trabajos de Newton fue el matemático escocés James


Gregory (1638, Drumaoak (Escocia) – 1675, Edimburgo (Escocia)). Este
matemático se anticipó en muchos aspectos a Isaac Newton y otros
matemáticos posteriores. Escritos suyos, no publicados aunque recogidos en la
correspondencia que mantuvo con otros científicos de su época, parecen
indicar que utilizaba técnicas de cálculo infinitesimal en los años en que
Newton aún estaba diseñando estas herramientas. Una de sus obras – Optica
promota publicada en 1663- fue la base en la que se basó Newton para
construir su telescopio de refracción. No obstante una agria disputa que
mantuvo con el holandés Christian Huygens le hizo muy retraído a la hora de
publicar sus resultados. Gran parte de sus hallazgos son hoy conocidos por la
aparición de su correspondencia científica. Entre las cartas encontradas puede
resaltarse la que en 1671 dirige a un miembro de la Royal Society y que indica
que James Gregory conocía la expresión de los desarrollos en serie de Taylor
muchos años antes de que estos fuesen publicados por Brook Taylor en 1715.
Asimismo, la correspondencia hallada de él confirman que había demostrado
antes de 1670, anticipándose al propio Newton, la fórmula de cálculo de las

6
Programación y Métodos Numéricos Interpolación polinómica

potencias de un binomio así como la misma fórmula de interpolación de


Newton. Hoy, reconociendo parcialmente ese hecho, se conoce con el nombre
de fórmulas de Newton-Gregory a los casos particulares de la fórmula de
Newton en la que el soporte de interpolación está formado por puntos en los
que cada uno de ellos dista la misma magnitud del que le precede y le sigue
(llamados soportes equidistantes) y las diferencias divididas son sustituidas por
diferencias finitas progresivas o regresivas. También se debe a Gregory una de
las primeras fórmulas de integración numérica hallada por él en 1670.

Contemporáneo de Newton fue otro matemático inglés con una producción de


resultados mucho menor: Roger Cotes (10 de julio de 1683, Burbage (Inglaterra) –
5 de junio de 1716, Cambridge (Inglaterra) ). Este matemático, que sólo publicó un
artículo en vida, trabajó en cálculo integral y fue el encargado de coordinar la
publicación de la segunda edición de la principal obra de Newton, Philosophie
Naturalis Principia Matemática (abreviadamente conocida como Principia). Por
publicaciones posteriores que recogían algunos de sus trabajos, editadas por
Thomas Simpson, se pudo conocer el gran trabajo que desarrolló en el cálculo
de tablas de diferencias divididas y su aplicación al cálculo de integrales.
Reconociéndole este esfuerzo hoy se conocen como fórmulas de Newton-
Cotes a aquellas fórmulas de integración numérica que utilizan soportes
equidistantes.

De la misma época y también inglés, es el matemático James Stirling (nacido


en mayo de1692 en Garden (Escocia) y fallecido en Edimburgo (Escocia) el 5 de
Diciembe de 1770). Este matemático es fundamentalmente recordado por la
fórmula de Stirling que proporciona una expresión de n! utilizando el número e.
En el año 1730 publicó una obra, también titulada Methodus Differentialis, en
la que aborda el estudio de métodos de interpolación y de cuadratura. Por sus
aportes en este campo y el uso de los factoriales que en ella aparecen, una de
las fórmula de interpolación en la que se utilizan deferencias finitas centradas
con un soporte equidistante se conoce hoy en día con el nombre de fórmula de
Stirling.

Ligeramente posterior a los anteriores y entusiasta seguidor de las ideas


introducidas por Newton, es el matemático inglés Thomas Simpson (20 de
agosto de 1710 Market Bosworth (Inglaterra) – 14 de mayo de 1761, Bosworth
(Inglaterra)). Simpson, que ejerció como profesor particular de matemáticas y
logró ser miembro de la Royal Society, trabajó fundamentalmente en teoría de

7
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

probabilidades, en interpolación y en integración numérica. Él es el que da


nombre a una de las fórmulas más populares de integración numérica en la que
el área bajo un tramo de curva es aproximada por el área bajo un tramo
parabólico que coincide con la función a integrar al menos en los extremos del
intervalo de integración así como en el punto medio de dicho intervalo.

Antes de abandonar la Inglaterra de comienzos del siglo XVIII debemos


mencionar a otro matemático de esa época: Brook Taylor (18 de agosto de 1685,
Edmonton (Inglaterra) – 29 de diciembre de 1731, Londres (Inglaterra)). En el año
1715 Taylor publicó su obra Methodus incrementorum directa e inversa en la
que usa profusamente las diferencias finitas y proporciona, sin demostrar su
convergencia, el desarrollo en serie de una función en un punto que hoy se
conoce con el nombre de desarrollo en serie de Taylor y que es una de las
herramientas más utilizadas en el análisis que involucra funciones
diferenciables. Recordemos que la fórmula de Taylor es:

n
(x − x*)i (i
f(x) ≈ pn (x) = f(x*) + ∑ ·f (x*)
i=1 i!

El uso de este desarrollo en serie permite aproximar una función por un


polinomio de grado n en el que tanto la función como sus n primeras derivadas
coinciden en un punto dado con el valor del polinomio y los de sus n primeras
derivadas. En su honor se denomina interpolación de Taylor al proceso
mediante el que, conocidos los valores f(x0), f’(x0) , ...., f(n(x0), se determina una
función p(x) verificando que p(x0) = f(x0), p’(x0) = f’(x0), ...., p(n(x0) = f(n(x0).

Muchos otros matemáticos continuaron ocupándose de temas relativos a la


interpolación. Pero hubo que esperar hasta finales del siglo XVIII para que
Joseph Louis Lagrange (25 de enero de 1736, Turín (Italia) – 10 de abril de 1813,
París (Francia)) dedicase algunos de sus trabajos a la interpolación polinómica
de funciones y diseñara un método diferente al basado en las tablas de
diferencias finitas para construir el polinomio interpolador de una función. Al
igual que en el caso de Newton, los trabajos de Lagrange sobre interpolación
son considerados como trabajos menores dentro de su magna obra. En efecto,
Lagrange fue, al igual que muchos de los científicos de su época, un
matemático y físico muy polifacético. A él se le deben, en el campo
matemático, métodos de resolución de ecuaciones diferenciales, técnicas de
optimización con restricciones, la introducción del cálculo simbólico en el

8
Programación y Métodos Numéricos Interpolación polinómica

cálculo infinitesimal, la revalorización de la fórmula de Taylor, ... Pero sin duda


su obra mayor es la Mécanique Analitique en la que introduce un enfoque
entonces novedoso y riguroso en el estudio de la mecánica: el cálculo de
variaciones y los sistemas de coordenadas generalizadas.

En uno de sus tratados sobre astronomía, publicado en 1792, Lagrange


desarrolla su método de interpolación para obtener polinomios de grado n que
tomen en (n+1) puntos diferentes valores prefijados. El enfoque novedoso que
adopta Lagrange para diseñar su método puede describirse diciendo que él
busca el polinomio interpolador pn(x) que pasa por los puntos (x0, f0), (x1, f1), ....,
(xn, fn) expresándolo en la forma:

pn(x) = a0·(x-x1)·(x-x2)· ..... ·(x-xn) + a1·(x-x0)·(x-x2)· ..... ·(x-xn) + ...... +

n n
+an·(x-x0)·(x-x1)· ..... ·(x-xn-1) = ∑ ai·∏ (x − x j )
i=0 j= 0
j≠ i

De esta forma, de las igualdades pn(xk) = fk (k = 0, 1, ..., n) obtiene que:

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 )

Con ello Lagrange proporciona como expresión del polinomio interpolador:

⎛ 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

Esta fórmula es conocida desde entonces con el nombre de fórmula de


interpolación de Lagrange. En ella se expresa el polinomio interpolador pn(x)
como una combinación lineal de los polinomios:
n (x − x )
Li (x) = ∏
j

j=0 (x i − x j )
j≠i

que son denominados polinomios de base de Lagrange (ya que constituyen


una base del espacio vectorial formado por todos los polinomios de grado
menor o igual que n).

La fórmula de Lagrange fue ganándole terreno poco a poco a la fórmula de


Newton y su uso se mostró más adecuado para el análisis de problemas de
interpolación con funciones de varias variables. Técnicas numéricas
posteriores, como la de elementos finitos, se apoyaron en la fórmula de
Lagrange.

Por todo ello, en honor a este matemático, hoy se denomina interpolación


lagrangiana al proceso de obtención de funciones que en un conjunto de
puntos tomen valores dados.

La interpolación sería objeto de atención de otro de los grandes matemáticos


que vivieron en el siglo XIX, llamado a menudo El Príncipe de los Matemáticos.
Nos referimos a Johan Carl Friedrich Gauss (30 de abril de 1777, Brunswick
(Alemania) – 23 de febrero de 1855, Göttingen (Alemania)) que también tuvo una
producción científica excepcional no escapándose a su influjo prácticamente
ninguna de las áreas de la Matemática entonces existentes: estadística, teoría
de números, análisis complejo, series, análisis de funciones reales, cálculo
integral y diferencial, ecuaciones diferenciales, álgebra, geometría, .... A él se
le debe el estudio de la mejor manera para tomar los (n+1) puntos de un
soporte de forma que se minimice el error de las fórmulas de integración
numérica. Y en su honor a tales fórmulas se las denomina hoy en día fórmulas
de cuadratura gaussiana (o fórmulas de integración de Gauss).

El último de los matemáticos del siglo XIX en quien nos detendremos es el


francés Charles Hermite (24 de diciembre de 1822, Dieuze, Lorena (Francia) – 14
de enero de 1901, París (Francia)). Hermite fue un matemático muy creativo,
continuador en buena medida de los trabajos de Abel, Galois y Liouville sobre
estructuras algebraicas vinculadas a la resolución de ecuaciones. Fue Hermite

10
Programación y Métodos Numéricos Interpolación polinómica

el primero en demostrar que el número e no era un número algebraico y el que


allanó el camino para que poco después Lindemann demostrase que π
tampoco lo era (poniendo, de esta forma, el broche final al problema de la
cuadratura del círculo que desde la época de los griegos ocupó a numerosos
matemáticos). Junto a ello Hermite destacó notablemente en áreas
matemáticas menos aplicadas (en invariantes algebraicos, funciones elípticas,
...). Pero afortunadamente, a pesar de las críticas que muchos matemáticos le
han dirigido por ello, Hermite también dedicó un corto periodo de su vida, tres
años hacia 1870, al estudio de problemas de aproximación e interpolación
introduciendo técnicas que permiten calcular funciones interpoladoras que, en
los puntos de un soporte, coinciden tanto ellas como sus primeras derivadas
con los valores de la función que se interpola y las derivadas correspondientes.
De forma más concreta, Hermite se ocupó, entre otros tópicos, de un problema
de interpolación más general que los de interpolación de Lagrange e
interpolación de Taylor pues Hermite consideró que en cada uno de los (n+1)
puntos x0 < x1 < .... < xn se conocían los valores de una función f(x) y los de su
primera derivada f’(x), buscando el polinomio p2·n+1(x), de grado menor o igual
que (2·n+1), que verificaba que:

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.

El problema de interpolación de Hermite se generalizó en años posteriores


dando cabida a que en cada punto xi del soporte se supusieran conocidos el
valor de una función f(x) y los de sus mi primeras derivadas, buscándose

11
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

entonces un polinomio pα(x) de grado menor o igual que α, y donde el entero α


n
está dado por α = n + ∑ m , verificando:
i =0
i

p(αj (xi ) = f ( j (xi ) (j = 0, 1, ..., mi) (i = 0, 1, ..., n)


En honor a Charles Hermite este proceso se conoce con el nombre de
interpolación de Hermite. Obsérvese que la interpolación de Lagrange es un
caso particular de la de Hermite en el que se toman nulos todos los valores mi.
Asimismo, la interpolación de Taylor es un caso particular de la de Hermite en
la que el soporte de interpolación se reduce a un único punto x0.

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.

El siglo XX, y especialmente su segunda mitad en la que las técnicas de


interpolación pudieron implementarse sobre ordenadores, conoció un auténtico
estallido en el uso de la interpolación, derivación e integración numéricas. Los
métodos numéricos de resolución de ecuaciones diferenciales, ordinarias o
parciales -que rigen numerosos problemas de la física, la química o la
ingeniería- están basados en estas técnicas. Así los métodos en diferencias
finitas o elementos finitos que se estudian en otras asignaturas pueden ser
considerados como continuadores de las técnicas de interpolación
desarrolladas por Newton, Lagrange, Gauss, Hermite y muchos otros. Y baste
recordar que la existencia de tales métodos, junto a las máquinas de cálculo,
están presentes hoy en día en el estudio y diseño de aviones, cohetes,
vehículos, edificios, prótesis, hornos industriales, estabilidad de galerías y
taludes, ....

Esperamos que esta breve introducción a las técnicas de interpolación permita


al lector tener una visión general sobre el tema del que se ocupan estos
apuntes. Muchos y muy buenos matemáticos han contribuido al desarrollo que
ahora tiene. Y muy numerosos son los campos en los que se encuentran sus
aplicaciones.

12
Programación y Métodos Numéricos Interpolación polinómica

2. Interpolación polinómica de Lagrange

Consideraremos en esta sección el problema de interpolación de Lagrange


formulado de la manera siguiente:

Problema de Interpolación Polinómica de Lagrange


“Dados (n+1) puntos distintos {x0 , x1 , ... , xi ,... , xn} y (n+1)
valores {f0, f1, ..., fi, ..., fn}, encontrar un polinomio pn(x), de
grado menor o igual que n, verificando las igualdades:
pn(xi) = fi (i = 0, 1, ...., n) “

En tal problema denominaremos soporte de interpolación al conjunto de


puntos {x0 , x1 , ... , xi ,... , xn}. En los soportes que consideraremos
supondremos que el índice n es un entero estrictamente positivo (es decir que
al menos hay 2 puntos en el soporte) y que los (n+1) puntos del soporte son
distintos entre sí. Cuando la distancia entre puntos consecutivos sea siempre
la misma se dirá que el soporte es un soporte equidistante.

Al polinomio pn(x) se le denominará polinomio interpolador de Lagrange


sobre el soporte {x0 , x1 , ... , xi ,... , xn} para los valores {f0, f1, ..., fi, ..., fn}.
Cuando estos valores sean los valores que toma una cierta función f(x) en los
puntos del soporte, se dirá que pn(x) es el polinomio interpolador de Lagrange
de la función f(x) sobre el soporte {x0 , x1 , ... , xi ,... , xn}. No obstante, cuando
consideremos que no hay confusión sobre los puntos del soporte utilizados así
como sobre los valores en ellos, nos referiremos a pn(x) diciendo simplemente
que es el polinomio interpolador de Lagrange.

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

2º) El polinomio p3(x) = -x3 + 2·x2 – 3·x + 2 es el polinomio interpolador de


Lagrange de la función f(x) = x4 – 3·x3 + x2 – x + 2 sobre el soporte de 4 puntos
{-1, 0, 1, 2}. En efecto, habiendo 4 puntos el polinomio dado es un polinomio de
grado 3 que, además, verifica que:

p3(-1) = 8 (= f(-1)), p3(0) = 2 (= f(0)), p3(1) = 0 (= f(1)), p3(2) = -4 (= f(2))


En este apartado presentaremos diferentes técnicas para resolver el problema


de interpolación de Lagrange anteriormente formulado.

Una primera forma de determinar el polinomio buscado consiste en considerar


que pn(x) es un polinomio de la forma pn(x) = α0 + α1·x + α2·x2 + ... + αn·xn
para, a continuación, obtener un sistema de (n+1) ecuaciones lineales a partir
de las igualdades entre los valores conocidos en el soporte y los valores que
debe tomar el polinomio interpolador en los puntos del soporte. Más
concretamente:
pn(x0) = f0 ⇔ α0 + α1·x 0 + α 2 ·x 02 + .... + αn ·xn0 = f0
pn(x1) = f1 ⇔ α0 + α1·x1 + α 2 ·x12 + .... + αn ·x1n = f1
pn(x2) = f2 ⇔ α0 + α1·x 2 + α 2 ·x 22 + .... + αn ·xn2 = f2
……….. ………………….. …
pn(xn) = fn ⇔ α0 + α1·xn + α 2 ·xn + .... + αn ·xn = fn
2 n

El sistema anterior puede escribirse con notación matricial en la forma:

⎡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.

Denotando al polinomio buscado por: p3(x) = α0 + α1·x + α2·x2 + α3·x3 , se tiene


que:
p3(-1) = f0 ⇔ α0 - α1 + α2 - α3 = 8
p3(0) = f1 ⇔ α0 =2
p3(1) = f2 ⇔ α0 + α1 + α2 + α3 = 0
p3(2) = f3 ⇔ α0 + 2·α1 + 4·α2 + 8·α3 = -4
es decir:
⎡1 −1 1 −1⎤ ⎧α 0 ⎫ ⎧ 8 ⎫
⎢ ⎪ ⎪
⎢1 0 0 0 ⎥⎥ ⎪ α1 ⎪ ⎪⎪ 2 ⎪⎪
·⎨ ⎬ = ⎨ ⎬
⎢1 1 1 1 ⎥ ⎪α 2 ⎪ ⎪ 0 ⎪
⎢ ⎥
⎣1 2 4 8 ⎦ ⎩⎪α 3 ⎭⎪ ⎩⎪−4 ⎭⎪
de donde:
α0 = 2, α1 = -3, α2 = 2, α3 = -1

por lo que: p3(x) = 2 – 3·x + 2·x2 – 1·x3.

La figura siguiente recoge la gráfica de f(x) y de p3(x).

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.

Esta forma de calcular el polinomio interpolador de Lagrange, mediante la


resolución de un sistema de (n+1) ecuaciones con (n+1) incógnitas, es útil
cuando se trabaja con un soporte formado por un número de puntos
relativamente bajo. En el caso de que no sea así es necesario realizar un gran
esfuerzo computacional para resolver el sistema de ecuaciones al que se llega.

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 Lagrange.

16
Programación y Métodos Numéricos Interpolación polinómica

2.1. La fórmula de interpolación de Lagrange


Teorema 1 (Existencia y unicidad del polinomio interpolador de Lagrange)
Dados (n+1) valores {f0, f1, ..., fi, ..., fn}, y siendo Li(x) (i= 0, …, n) los
polinomios de base de Lagrange asociados al soporte formado por las (n+1)
abscisas distintas {x0, x1, ... , xi, ..., xn}, existe un único polinomio de grado
menor o igual que n, pn(x), verificando las (n+1) igualdades:

pn(xi) = fi (i = 0, 1, 2, ..., n) (1)

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

El método diseñado por Lagrange para el cálculo del polinomio interpolador,


utiliza los polinomios de base de Lagrange que se acaban de definir. La forma
en que se utilizan, se recogen en el siguiente teorema.

Teorema 2 (Fórmula de Lagrange para el polinomio interpolador)


Dados (n+1) valores {f0, f1, ..., fi, ..., fn}, y siendo Li(x) (i= 0, …, n) los
polinomios de base de Lagrange asociados al soporte formado por las (n+1)
abscisas distintas {x0, x1, ... , xi, ..., xn}, se verifica que el polinomio interpolador
de Lagrange sobre el soporte considerado y para los valores dados puede
expresarse como:
n
pn (x) = ∑ fi ·Li (x) (3)
i =0

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

Por tanto, el polinomio dado por la fórmula de interpolación de Lagrange (3) es


un polinomio de grado menor o igual que n (al ser una combinación lineal de
polinomios de grado n) que además verificará que:
n
pn(xk) = ∑ f ·L (x
i=0
i i k ) = fk·Lk(xk) = fk (k = 0, 1, ..., n)

Es, por ello, el polinomio interpolador de Lagrange sobre el soporte


considerado y para los valores dados en el enunciado.
c.q.d.

NOTA: La expresión (3) se conoce como fórmula de interpolación de


Lagrange.

Consecuencia inmediata del teorema anterior es el siguiente corolario

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⎠

Procedamos a continuación a calcular (y representar gráficamente) los


polinomios de base de Lagrange asociados a este soporte.

⎛ π⎞⎛ π⎞
⎜ 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

L0(x) L1(x) L2(x)

π/4

π/2

Con ayuda de estos polinomios de base se calcula el polinomio interpolador


utilizando la fórmula de interpolación de Lagrange:
1 ( −16·x + 8·π·x )
2
8·x 2 − 2·π·x
p2(x) = f0·L0(x) + f1·L1(x) + f2·L2(x) = · + 1· =
2 π2 π2
⎛ 8· 2 − 16 ⎞ 2 ⎛ 8 − 2· 2 ⎞
= ⎜⎜ ⎟·x + ⎜⎜ ⎟·x
⎝ 2·π2 ⎟⎠ ⎝ 2·π ⎟⎠

La figura siguiente recoge, además de las gráficas de los tres polinomios de


base, la gráfica de la función f(x) = sen(x) y la gráfica del polinomio interpolador
que se acaba de determinar.

π/4

π/2

Una aproximación del valor de sen(1) puede obtenerse entonces evaluando


p2(1):

sen(1) ≈ p2(1) = 0.82863992...

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.....

Examinemos alguna de las propiedades de los polinomios de base de


Lagrange.

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

es el único polinomio de grado menor o igual que n que verifica que:

⎧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.

La unicidad se infiere del hecho de que, en virtud del teorema de existencia y


unicidad del polinomio interpolador, sólo puede haber un polinomio de grado
menor o igual que n pasando por los (n+1) puntos (x0, 0), (x1, 0), ...., (xi-1, 0),
(xi, 0), (xi+1, 0), ...., (xn, 0).
c.q.d.

La gráfica siguiente representa el hecho que se acaba de demostrar


recogiendo los grafos de los 5 polinomios de base asociados al soporte
formado por las abscisas {0.25, 1.12, 4.56, 8.33, 11.45}.

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

3º) Justificar la veracidad o falsedad de la afirmación siguiente:

“Para cualquier polinomio de base de Lagrange Li(x) asociado a un


soporte genérico {x0, x1, ..., xi, ..., xn} se verifica que:

Li (x) ≤ 1 ∀x ∈ ( x 0 ,xn ) (i = 0, 1, ...., n) “

4º) Utilícese la fórmula de Lagrange para determinar el polinomio interpolador


⎧ π π π⎫
de Lagrange de la función cos(x) sobre el soporte ⎨0, , , ⎬ .
⎩ 6 3 2⎭
Represéntense las gráficas de los polinomios de base asociados a este soporte
e indíquese el valor interpolado que aproximaría cos(π/4).

5º) Determínese el polinomio interpolador de Lagrange, p5(x) , de la función


f(x) = x3 sobre el soporte {0, 1, 2, 3, 4, 5}. ¿Cuál es el error de interpolación en
el punto x = 2.5, es decir cual es el valor de |f(2.5) – p5(2.5)| ?.

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

2.2. Fórmula del error en la interpolación de Lagrange


Las técnicas de interpolación de Lagrange descritas hasta ahora (y las que se
describirán en subapartados siguientes) permiten encontrar un polinomio de
grado menor o igual que n que coincide con los valores de una función f(x) en
los puntos del soporte de interpolación {x0, x1, ..., xn}. Pero esta coincidencia de
valor no tiene por qué producirse en puntos no pertenecientes al soporte. Es
por ello que se puede definir una función error de interpolación de la forma
siguiente:

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

En general, si no se tiene información adicional sobre la función f(x) que se


está interpolando, poco se puede decir sobre el error de interpolación (salvo
que será nulo en los puntos del soporte). Pero si se admite una cierta
regularidad de la función f(x), más concretamente, si se admite que tanto la
función f(x) como sus primeras derivadas son continuas y acotadas, es posible
obtener cotas de la función error de interpolación en el intervalo (a, b) al que
pertenezcan los puntos del soporte. Dedicaremos este subapartado a concretar
esta afirmación.

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.

Consideremos pues el caso en que x* ∉{x0, x1,..., xn}. En esta situación se


puede definir el polinomio:
f(x*) − pn (x*) n
q(x) = pn(x) + n ·∏ (x − xi )
∏ (x * − xi ) i=0
i= 0

El polinomio q(x) es un polinomio de grado menor o igual que (n+1), pues es la


suma de un polinomio de grado menor o igual que n (pn(x)) más otro polinomio
n
de grado (n+1) (dado por ∏ (x − x ) )
i=0
i multiplicado por la constante

f(x*) − pn (x*)
n
.
∏ (x * − x )
i=0
i

Además dicho polinomio verifica que:

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

Por tanto q(x) es el polinomio interpolador de Lagrange de la función f(x) sobre


el soporte formado por los (n+2) puntos: {x0, x1,..., xn, x*} .

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:

0 = F(n+1( ξ * ) = f(n+1( ξ * ) – q(n+1( ξ * ) =

(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.

Una consecuencia inmediata del teorema anterior es el hecho, ya conocido por


el corolario 1 demostrado en el apartado anterior, de que si f(x) es una función
polinómica de grado menor o igual que n, al interpolarla con (n+1) abscisas
distintas de soporte el error que se comete es nulo (pues la derivada de orden
(n+1) de un polinomio de grado menor o igual que n es la función nula).

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

interpolación. En efecto, una consecuencia inmediata de dicho teorema es que


si se denota por M al valor:
M = Sup f (n+1(x)
x∈( a,b )

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 )

Además el incremento del número de puntos del soporte puede conducir a


polinomios interpoladores de alto grado que presenten oscilaciones muy
pronunciadas lo cual no siempre será acorde con la naturaleza de la función

27
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

f(x) que se interpole. Un ejemplo de lo que se acaba de señalar se recoge a


continuación.

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)

una cota del error de interpolación está dada por:

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

Puede observarse como un incremento en el número de puntos del soporte de


interpolación no conduce a una disminución de la cota de error. Pero
analicemos si estas cotas de error nos proporcionan alguna información útil.

28
Programación y Métodos Numéricos Interpolación polinómica

• Obsérvese que el polinomio interpolador obtenido para n= 2 se


obtendría con el soporte {x0 = 0, x1 = 2, x2 = 4} en el que la función toma
los valores:

f0 = sen(0) = 0, f1 = sen(4·π) = 0 , f2 = sen(16·π) = 0

lo que nos conduce a que p2(x) = 0 y a que el error de interpolación


realmente cometido es: E(x) = sen(π·x) – p2(x) = sen(π·x). En otros
términos el error real de interpolación toma valores comprendidos entre
-1 y 1 por lo que la cota de error obtenida en la tabla anterior es muy
superior al máximo del valor absoluto del error.

• Para n = 4 los puntos del soporte son {x0 = 0, x1 = 1, x2 = 2, x3 = 3,


x4 = 4}. En ellos los valores de la función son:

f0 = sen(0) = 0, f1 = sen(π) = 0 , f2 = sen(4·π) = 0,

f3 = sen(9·π) = 0 , f4 = sen(16·π) = 0

lo que nos conduce a que p4(x) = 0 y a que el error de interpolación


realmente cometido es: E(x) = sen(π·x) – p2(x) = sen(π·x). En otros
términos el error real de interpolación toma valores comprendidos entre
-1 y 1 por lo que la cota de error obtenida en la tabla anterior es muy
superior al máximo del valor absoluto del error.

• Para n = 6 el soporte de interpolación está formado por los puntos


{x0 = 0, x1 = 2/3 , x2 = 4/3, x3 = 2, x4 = 8/3 , x5 = 10/3 , x6 = 4 ,}

siendo los valores (aproximados por sus 4 primeros decimales) de la


función en él:

f0 = sen(0) = 0, f1 = sen(4·π/9) = 0.9848 ,


f2 = sen(16·π/9) = -0.6428, f3 = sen(4·π) = 0 ,
f4 = sen(64·π/9) = -0.3420, f5 = sen(100·π/9) = -0.3420,
f6 = sen(16·π) = 0

El dibujo siguiente recoge las gráficas de la función f(x) (punteada) y del


polinomio interpolador que se obtendría (en trazo continuo) y permite

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.

Soporte con 13 puntos

30
Programación y Métodos Numéricos Interpolación polinómica

Soporte con 14 puntos

Soporte con 14 puntos (ordenadas en [-100, 100])

NOTAS:

1ª. Cuando en un intervalo [a, b] se elige un soporte equidistante que incluya


a los extremos del intervalo, es decir un soporte de la forma:

(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)

donde C es una constante positiva.

2ª. La acotación del error anteriormente obtenida


n
M
∀x ∈ [ x 0 ,x n ] : |E(x)| = |f(x) – pn(x)| ≤ · Sup ∏ (x − xi )
(n + 1)! x∈( x0 ,xn ) i=0

indica que si se quiere minimizar el error de interpolación manteniendo el


número de puntos del soporte, estos puntos deberían ubicarse de forma que se
n
minimizase el valor de Sup ∏ (x − x ) .
x∈( x0 ,xn ) i=0
i El cálculo de la posición de estos

puntos conduce (tras un proceso algo laborioso) a que en un intervalo [a, b] la


mejor elección de los (n+1) puntos de soporte está dada por las fórmulas:

a+b b−a ⎛ (2·i + 1) ⎞


ξi = + ·cos ⎜ ·π ⎟ (i = 0, 1, ..., n)
2 2 ⎝ (2·n + 2) ⎠

Los soportes así formados se conocen con el nombre de soportes de


Chebyshev18. Con ellos puede demostrarse que:

n
(b − a)(n+1)
Sup ∏ (x − xi ) =
x∈( x0 ,xn ) i=0 2(2·n+1)

lo que nos permite establecer la cota de error:

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).

2º) Si se desea interpolar en el intervalo [0, 1] la función f(x) = ex utilizando 2


puntos de soporte, una cota del error de interpolación será:

e
∀x ∈ [0,1] : E(x) ≤ ·Sup((x − x 0 )·(x − x1 ))
2 x∈(0,1)

Denotemos por q(x) = (x-x0)·(x-x1) = x2 – (x0+x1)·x + x0·x1. Con esta notación es


evidente que la cota del error de interpolación será más pequeña cuanto menor
sea el máximo de |q(x)| en [0, 1]. Según lo indicado en el comentario realizado
en la 2ª de las “notas” anteriores, ello se logra ubicando los puntos del soporte
en las abscisas:

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

lo que nos conduce a que el soporte de Chebyshev, en este caso, es:


1 1 1 1
x0 = − y x1 = + .
2 2· 2 2 2· 2

La figura siguiente recoge el grafo de la función ex y de los polinomios de grado


1 (rectas) obtenidos con el soporte {0, 1} (recta “superior”), con el soporte
{0.499, 0.501} (recta “inferior”) y con el soporte de Chebyshev (recta
“intermedia”).

33
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

3º. Siendo f(x) = sen(5·x+2) , x0 = 0 y x1 = π/10 se tiene que los polinomios


de base de Lagrange están dados por las expresiones:
π
x−
10 x
L0 (x) = L1(x) =
π π

10 10

L0(x) L1(x)

El polinomio interpolador de Lagrange de f(x) sobre este soporte es:


π
x−
p1(x) = f(0)·L0(x) + f(π/10)·L1(x) = sen(2)· 10 + sen(2 + π )· x =
π 2 π

10 10
10 ⎛ ⎛4+π⎞ ⎞ 10
= sen(2) + ·⎜ sen ⎜ ⎟ − sen(2) ⎟·x = sen(2) + ·( cos ( 2 ) − sen(2) )·x
π ⎝ ⎝ 2 ⎠ ⎠ π

34
Programación y Métodos Numéricos Interpolación polinómica

f(x)
p1(x)

El error de interpolación en cada punto x* del intervalo [0, π/10], utilizando el


teorema que nos proporcionaba dicho error, responde a la expresión:

⎡ π⎤ 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 ⎠ ⎠⎠

Entre los diferentes ángulos que verifican la expresión anterior, tomaremos el


que pertenezca al intervalo [0, π/10] que, aproximado con 10 dígitos decimales,
es:
ξ* ≈ 0.1608142204 rad.

Puede verificarse que para este valor ambas expresiones del error conducen a
que: E(π/20) = 0.10213483....

Una cota del error de interpolación en este intervalo puede obtenerse de la


forma siguiente:
⎡ π⎤ 25 ⎛ π ⎞
∀x ∈ ⎢0, ⎥ : E(x) ≤ sup sen(5·x + 2)· sup x·⎜ x − ⎟
⎣ 10 ⎦ 2 x∈⎛ 0, π ⎞
⎜ ⎟
⎛ π ⎞
x∈⎜ 0, ⎟ ⎝ 10 ⎠
⎝ 10 ⎠ ⎝ 10 ⎠

En el intervalo [0, π/10] el argumento α = (5·x+2) de la función seno que


interviene en la acotación anterior toma valores comprendidos entre:

αi = 2

α
π
2≤ α ≤ 2+
2
αf = 2+π/2

Por tanto los valores extremos de sen(α) se alcanzarán en 2 y en (2+π/2).


Puesto que sen(2) = 0.909297426... y sen(2+π/2) = -0.416146836.... puede
concluirse que: M = sup sen(5·x + 2) = 0.909297426... < 0.909298 .
⎛ π ⎞
x∈⎜ 0, ⎟
⎝ 10 ⎠

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:

E’(x) = f’(x) – p’1(x) = 5·cos(5·x+2) – (10/π)·(cos(2)-sen(2))

Ello nos conduce al punto:

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

siendo el error máximo cometido en la interpolación:

E(c) = f(c) – p1(c) = 0.11265....

es decir menos de la mitad de la cota anteriormente hallada.

4º. Una función con la que frecuentemente se ilustra el buen comportamiento


de los soportes de Chebyshev es la denominada función de Runge que está
dada por:
1
f(x) =
1+ x2

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.

Si en lugar del soporte equidistante se trabajase con un soporte de Chebyshev


formado por los 7 puntos dados por la expresión:

⎛ 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

el error de interpolación máximo se reduciría notablemente. Ello puede


apreciarse en las gráficas de f(x) y del polinomio interpolador hallado de esta
forma que se recogen en la figura siguiente:

El incremento del número de puntos del soporte no ayuda a mejorar la


precisión en el caso de utilizarse soportes equidistantes aunque sí que lo hace
en este caso si se utilizan soportes de Chebyshev. Como ilustración de este
hecho, la 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
13 puntos {-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6}. Puede observarse el “alto”
valor del error de interpolación máximo.

Si los 13 puntos se hubieran escogido según la fórmula del soporte de


Chebyshev:

⎛ (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

la figura siguiente recoge la gráfica de la función f(x) y del polinomio


interpolador de Lagrange. En ella se aprecia la reducción del máximo valor del
error de interpolación.

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:

a) Determinar la expresión de los polinomios de base de Lagrange


asociados a dicho soporte y representarlos en el intervalo [0, 1].

b) Utilizar la fórmula de Lagrange para determinar la expresión del


polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, x1, x2}.

c) Representar gráficamente en [0, 1] la función f(x) y su polinomio


interpolador.

d) Utilícese el teorema 3 que proporciona la fórmula del error de


interpolación para determinar la expresión del error de interpolación en
este caso.

e) Determínese la expresión del error de interpolación como la diferencia


entre la función f(x) y el polinomio interpolador hallado.

40
Programación y Métodos Numéricos Interpolación polinómica

f) A partir de las dos expresiones del error calculadas en los apartados


anteriores obténgase alguno de los puntos ξ* ∈ [0,1] en los que se
verifica que el error de interpolación cometido en x*=0.4 está dado por la
fórmula obtenida en el apartado d).

g) Obténgase una cota del error de interpolación en cualquier punto


x ∈ [0,1] a partir de la expresión del apartado d).

h) Determínense, a partir de la expresión del error obtenida en el apartado


e) los puntos del intervalo [0, 1] en los que se hace máximo el valor
absoluto del error de interpolación y compárese el error máximo con la
cota obtenida en el apartado g).

2º) Repítase el ejercicio anterior utilizando un soporte de Chebyshev con tres


puntos en el intervalo [0, 1].

3º) Analícese la evolución de la cota del error de interpolación de Lagrange al


incrementar el número de puntos del soporte cuando se interpola en el intervalo
la función de Runge f(x) = (1+x2)-1 utilizando un soporte equidistante.

41
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

2.3. La fórmula de interpolación de Newton,

Otra forma de calcular el polinomio interpolador de Lagrange de una función


f(x) sobre un soporte {x0, x1, ..., xn} es a través de la denominada fórmula de
Newton. Dicha fórmula es muy eficiente cuando se persigue calcular el
polinomio interpolador o el valor de dicho polinomio en algún punto concreto ya
que los coeficientes del polinomio interpolador pueden obtenerse fácilmente a
partir de las tablas de diferencias divididas de la función en el soporte de
interpolación. Es además una fórmula que además permite actualizar
fácilmente la expresión del polinomio interpolador si se añade un nuevo punto
al soporte de interpolación.

Como ya se señaló en la introducción a este tema, la fórmula de Newton puede


obtenerse fácilmente si se expresa el polinomio interpolador de Lagrange de la
función f(x) sobre el soporte {x0, x1, ..., xn} mediante la expresión:

pn (x) = a0 + a1·(x − x 0 ) + a2 ·(x − x 0 )·(x − x1 ) + ... + an ·(x − x 0 )·(x − x1 )·...·(x − xn−1 ) =

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.

Observemos que si el soporte estuviera formado por un único punto {x0} el


polinomio interpolador sería una constante:
p0(x) = a0
y como p(x0) debe coincidir con f0 es obvio que: a0 = f0.

Si ahora se considera el soporte {x0, x1} el polinomio interpolador de Lagrange


sería un primer grado que tendría la expresión:

p1(x) = a0 + a1·(x – x0)

y al tener que verificarse que p(x0) = f0 y p(x1) = f1 se verificará que:

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

donde p0(x) es el polinomio interpolador de Lagrange en el soporte {x0}.

De forma análoga, si ahora se considera el soporte {x0, x1, x2} el polinomio


interpolador de Lagrange será de segundo grado y tendrá la expresión:

p2(x) = a0 + a1·(x-x0) + a2·(x-x0)·(x-x1)

y de las igualdades p(x0) = f0 , p(x1) = f1 y p(x2) = f2 se obtiene que:

f1 − f0 f2 − (a0 + a1 ( x 2 − x 0 ))
a0 = f0 , a1 = y a2 =
x1 − x 0 ( x 2 − x0 )·(x 2 − x1 )

lo que nos permite escribir el polinomio interpolador en la forma:

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}.

En general, siendo pk-1(x) el polinomio interpolador de Lagrange sobre el


soporte {x0, x1, ..., xk-1} y denotando por pk(x) al polinomio interpolador de
Lagrange sobre el soporte {x0, x1, ..., xk-1, xk} se verifica19 que:

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

y de la igualdad pk(xk) = fk se tendrá que:

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 )

Podemos observar además que en el cálculo de a0 sólo interviene el valor en


{x0}, que en el cálculo de a1 intervienen los valores en {x0 , x1}, y que, en
general, en el cálculo de ak intervienen los valores en {x0, x1, ..., xk}. Es por ello
habitual referirse a estos coeficientes con la notación a0 = f[x0], a1 = f[x0 ,x1], ...,
ak = f[x0, x1, ..., xk] (k = 0, 1, ..., n) poniendo así de manifiesto los puntos del
soporte que intervienen en su cálculo.

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 ,
.....,

fik − pk* −1(xik )


a = f ⎡⎣ xi0 ,xi1 ,...,xik ⎤⎦ =
*
ik
(k = 1, ...., n)
∏(x )
k −1

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

Pero puesto que el polinomio interpolador de Lagrange es único, ambas


expresiones conducen al mismo polinomio interpolador independientemente del
orden en que se tomen sus puntos. Por tanto el coeficiente de xi (i = 0, 1, ..., n)
en ambas expresiones debe ser el mismo. Ello implica que an* = an o con la
notación que hemos introducido anteriormente: f [ x 0 ,x1,...,x n ] = f ⎡⎣ xi0 ,xi1 ,..., xin ⎤⎦ .

Concretemos más estos aspectos. Según hemos detallado anteriormente, si


en la expresión del polinomio interpolador que estamos considerando en este
apartado sólo se consideran sus (k+1) primeros sumandos (con k < n), el
polinomio pk(x) correspondiente es el polinomio interpolador de f(x) sobre el
soporte {x0, x1, ..., xk} ya que, siendo un polinomio de grado menor o igual que
k se verifica que pk(xi) = fi (i = 0, 1, ..., k) . Ello permite interpretar la fórmula
anterior como una fórmula “recursiva” en la que a partir del polinomio de grado
k-1 que interpola a la función f(x) en el soporte {x0, x1, ..., xk-1}:

k −1 ⎛ i−1 ⎞
pk(x) = a0 + ∑ ⎜ ai ∏ (x − x j ) ⎟
i=1 ⎝ j= 0 ⎠

puede obtenerse fácilmente el polinomio interpolador de Lagrange, pk(x), de f(x)


sobre el soporte {x0, x1, ..., xk} mediante:

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á:

pn-1(x) = fi (i = 0, ..., (n-1))

Si al soporte anterior se le añade un nuevo punto xn, disitinto a los que


formaban el soporte anterior, obteniendo así el soporte de (n+1) puntos {x0, x1,
...., xn-1, xn} y se denota por fn al valor f(xn), el nuevo polinomio interpolador de
Lagrange, pn(x), de la función f(x) sobe este soporte deberá satisfacer las
igualdades:
pn(x) = fi (i = 0, …, (n-1), n)

45
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Si se denota por qn(x) al polinomio de grado n: qn(x) = pn(x) – pn-1(x) se tendrá


verifica que:
q(xi) = 0 (i = 0, ..., (n-1))

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

Y puesto que qn(x) = pn(x) – pn-1(x) se obtiene que:

(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

En particular para x = xn se tiene que:

pn (xn ) − pn−1(xn ) fn − pn−1(xn )


an = (n −1)
= (n−1)
∏ (xn − x j ) ∏ (xn − x j )
j= 0 j=0

Con esta expresión de an resulta finalmente que:


f − p (x ) (n−1)
pn (x) = pn−1(x) + (nn−1) n−1 n ·∏ (x − x j )
∏ (xn − x j ) j=0
j=0

Definición (Diferencias divididas)


Se denomina diferencia dividida de la función f(x) en el soporte {x0, ..., xn-1,
xn}, y se representa por f[x0, ..., xn-1, xn], al valor del coeficiente an previamente
obtenido, es decir:
f − pn−1(xn )
f [ x 0 ,x1,...,xn−1,xn ] = n
(n −1)

∏ (x
j =0
n − xj )

46
Programación y Métodos Numéricos Interpolación polinómica

Denotemos por f[xi] = fi (i = 0, 1, ..., n). Según el desarrollo anterior, si se


considera un soporte formado por el punto {x0} se verifica que p0(x0) = a0 = f0
(= f[x0]). A partir de este polinomio, si se añade un nuevo punto al soporte para
tener {x0, x1} se tendrá que:

p1(x)= p0(x) + f[x0, x1]·(x-x0) = f[x0] + f[x0, x1]·(x-x0)

Añadiendo ahora al soporte el punto x2 para tener {x0, x1, x2} resultará que:

p2(x)= p1(x) + f[x0, x1, x2]·(x-x0)·(x-x1) =

= f[x0] + f[x0, x1]·(x-x0) + f[x0, x1, x2]·(x-x0)·(x-x1)

En general se tendrá que:

pn(x)= pn-1(x) + f[x0, x1,…, xn-1, xn]·(x-x0)·(x-x1)·...(x-xn-1) =

n ⎛ (i−1)

= f[x 0 ] + ∑ ⎜ f [ x 0 ,...,xi ]·∏ (x − x j ) ⎟
i=1 ⎝ j= 0 ⎠

La fórmula anterior se conoce como fórmula de interpolación de Newton. Su


uso, por el momento, sólo plantearía la dificultad de calcular las diferencias
divididas que en ella intervienen.

Demostremos algunas propiedades de las diferencias divididas que nos


permitirán desarrollar una forma más cómoda de calcularlas.

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 )
( )

Si ahora se considera el mismo soporte pero reordenado en la forma


{ }
x j0 ,x j1 ,...,x jm −1 ,x jm puede repetirse el proceso obteniendo como polinomios
interpoladores:

{ }
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 )
( )

En virtud del teorema 1 en el que se demostró la existencia y unicidad del


polinomio interpolador de Lagrange, se verifica que qm(x) y pm(x) son el mismo
polinomio pues interpolan a f(x) sobre el mismo soporte (aunque ordenado de

48
Programación y Métodos Numéricos Interpolación polinómica

formas distintas). Identificando los coeficientes que multiplican a xm en ambos


coeficientes se tiene que:

f ⎡⎣ xi0 ,xi1 ,...,x im ⎤⎦ = f ⎡⎣ x j0 ,x j1 ,...,x jm ⎤⎦


c.q.d.

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:

f ⎡ x i ,...,xim −1 ,xim ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦


f ⎡⎣ x i 0 ,x i1 ,...,x im −1 ,x im ⎤⎦ = ⎣ 1
xim − x i0

donde f[xk] = f(xk) (k = i0, i1, ..., im).

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

de Lagrange de f(x) (que será de grado menor o igual que m) responde a la


expresión:

pm(x) = pm-1(x) + f ⎡⎣ xi 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ · x − xi0 ·( x − xi1 )·...·( x − xim −1 ) =


( )

= f ⎣⎡ xi0 ⎦⎤ + f ⎣⎡ xi0 ,xi1 ⎦⎤·(x − xi0 ) + f ⎣⎡ xi0 ,xi1 ,xi2 ⎦⎤·(x − xi0 )·(x − xi1 ) + ….+

+ f ⎡⎣ xi 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ · x − xi0 ·( x − xi1 )·...·( x − xim − 2 )(


( ) · x − xim −1 )

{
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:

Sobre {xim } : q0(x) = fim = f ⎡⎣ xim ⎤⎦

Sobre {xim ,xim −1 } : q1(x) = q0(x) + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim ) =

49
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

= f ⎡⎣ xim ⎤⎦ + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim )

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 ⎡⎣ xim ,xim −1 ,xim − 2 ,...,x i1 ⎤⎦·( x − xim )(


· x − xim −1 )·...·( x − xi2 ) +

+ f ⎡⎣ xim ,xim −1 ,xim − 2 ,...,xi1 ,xi0 ⎤⎦·( x − xim )(


· x − xim−1 )·...·( x − xi2 )(
· x − xi1 )

En virtud del teorema 1 (de existencia y unicidad del polinomio interpolador de


Lagrange) el polinomio interpolador de f(x) sobre el soporte de (m+1) puntos
{ }
xi 0 ,xi1 ,...,x im −1 ,x im es único y no depende del orden en que se tomen los puntos.

Por tanto qm(x) = pm(x). Identificando los coeficientes de xm en las expresiones


de pm(x) y qm(x) se tiene que:

f ⎡⎣ xi 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ = f ⎡⎣ xim ,xim −1 ,xim − 2 ,...,xi1 ,xi0 ⎤⎦

Identificando ahora los coeficientes que multiplican a xm-1 se tiene que:

( )
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 ⎤⎦

Y puesto que, en virtud de la propiedad anterior el orden en que se tomen los


puntos no altera el valor de la diferencia dividida, la igualdad anterior se puede
rescribir en la forma:
( )
f ⎡⎣ xi0 ,xi1 ,...,xim −1 ,xim ⎤⎦ · xim − xi0 = f ⎡⎣ xi1 ,xi2 ,...,x im ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦

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.

La propiedad anterior permite calcular fácilmente las diferencias divididas


ordenando los cálculos en la forma recogida en la tabla siguiente (construida
para un soporte de 5 puntos) en la que los cálculos se irán realizando columna
a columna:

x0 → f [ x0 ] → f [ x 0 ,x1 ] → f [ x 0 , x1, x 2 ] → f [ x 0 ,x1,x 2 , x 3 ] → f [ x 0 , x1, x 2 ,x 3 ,x 4 ]


x1 → f [ x1 ] → f [ x1,x 2 ] → f [ x1,x 2 , x 3 ] → f [ x1, x 2 , x 3 ,x 4 ]
x2 → f [ x 2 ] → f [ x 2 ,x 3 ] → f [ x 2 ,x 3 ,x 4 ]
x3 → f [ x3 ] → f [ x3 , x 4 ]
x4 → f [x4 ]

Esta forma de proceder es la que se recoge en el siguiente algoritmo de


construcción de la tabla de diferencias divididas sobre un soporte de (n+1)
puntos.

Algoritmo de construcción de la tabla de diferencias divididas20.

Datos: n, {x0, x1, ...., xn } y {f0, f1, ...., fn}

Para i desde i = 0 hasta i = n con paso 1 hacer:


f[xi] = fi
Fin bucle en i.

Para j desde j = 1 hasta j = n con paso 1 hacer:


Para i desde i = 0 hasta i = (n-j) , con paso 1, hacer:
f[xi, ..., xi+j] = (f[xi+1, ..., xi+j]- f[xi, ..., xi+j-1]) /(xi+j – xi)
Fin bucle en i.
Fin bucle en j.

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],

f2 = f(1/2) ≈ 0.01831564 = f[x2] , f3 = f(1) ≈ 0.00495750 = f[x3]

Con estos valores y utilizando la relación de recurrencia:


f [ xi+1,..., xi+k −1,xi+k ] − f [ xi ,xi+1,..., xi+k −1 ]
f [ xi ,...,xi+k ] =
x i+k − x i

se puede construir la tabla de diferencias divididas:

i xi f[xi] f[xi,xi+1] f[xi,xi+1,xi+2] f[xi,xi+1,xi+2, xi+3]

0 0 0 0.07134799 -0.20830025 0.21742906

1 1/3 0.02378266 -0.03280214 0.00912881

2 1/2 0.01831564 -0.02671627

3 1 0.00495750

por lo que utilizando la fórmula de Newton se tiene que:

p3(x) = 0 + 0.07134799·(x-0) + (-0.20830025)·(x-0)·(x – 1/3) +

+ 0.21742906·(x-0)·(x-1/3)·(x-1/2) =

= 0.1770195813· x - 0.3894911370·x2 + 0.2174290601·x3

La figura siguiente recoge la gráfica de la función f(x) (en trazo discontinuo) y


del polinomio interpolador de Lagrange.

52
Programación y Métodos Numéricos Interpolación polinómica

f(x)

p3(x)

2º) Calcúlese la expresión del polinomio interpolador de Lagrange de la


misma función que en el ejercicio anterior, f(x) = 2·x·e-(4·x+2) sobre el soporte
{ 0, 1/3, 1/2 , 2/3, 1}.

El soporte de interpolación es el del ejercicio anterior añadiéndole el punto 2/3.


Si denotamos por x0 = 0, x1 = 1/3, x2 = ½, x3 = 1 y x4 = 2/3 puede
completarse la tabla de diferencias divididas como sigue (se han escrito en
cursiva los nuevos valores que ha sido necesario calcular):

i xi f[xi] f[xi,xi+1] f[xi,xi+1,xi+2] f[xi,xi+1,xi+2, xi+3] f[x0,x1,x2, x3, x4]

0 0 0 0.07134799 -0.20830025 0.21742906 -0.25991085

1 1/3 0.02378266 -0.03280214 0.00912881 0.044155155

2 1/2 0.01831564 -0.02671627 0.02384719

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

p4(x) = p3(x) + (-0.25991085)·(x-0)·(x-1/3)·(x-1/2)·(x-1) =

= 0.1770195813· x - 0.3894911370·x2 + 0.2174290601·x3 –

-0.25991085 · (x-0)·(x-1/3)·(x-1/2)·(x-1) =

= 0.22033805·x – 0.64940199·x2 + 0.69393230·x3 –0.25991085·x4

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(x n )-pn-1(xn ) f (n (ξ)


∃ξ=ξ(x n ) / n −1
=
n!
∏ (x
j=0
n − xj)

siendo el lado izquierdo de la igualdad anterior la diferencia dividida en {x0, ..,


xn}. En resumen si f ∈ Cn ((a,b)) , para todo soporte de (n+1) puntos distintos {x0,
.., xn} de (a, b), se vrifica que:

f (n (ξ)
∃ξ / f [ x 0 ,x1,...,xn−1,xn ] =
n!
c.q.d.

Una consecuencia inmediata de la propiedad anterior es que si f(x) es una


función polinómica de grado m, las diferencias divididas construidas sobre más
de (m+1) puntos serán nulas (pues la derivada de orden (m+1) de un polinomio
de grado m siempre es nula)21.

El error de interpolación también puede expresarse en términos de diferencias


divididas. Esto es lo que se hace en el siguiente teorema

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

proceder se sustenta en considerar que si el sumatorio tiene una expresión


polinómica de grado “m”, es decir si

n
f(n) = ∑ i·(i − 1)·(i − 2) = a0 + a1·n + ... + am·nm
i= 2

podemos interpolar el polinomio f(x) en un soporte formado por abscisas


enteras y la fórmula buscada se obtendrá evaluándolo en x = n. Además por
ser f(x) un polinomio de grado m, todas sus diferencias divididas construidas
sobre más de (m+1) puntos se anularán. Por ello si se interpola con más de
(m+1) puntos (entendidos aquí como abscisas enteras) se obtendrá el
polinomio buscado.

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.

xi f[xi] f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3]


2 0 6 9 3
3 6 24 18
4 30 60
5 90

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

¿Será suficientemente alto el número de puntos del soporte? En principio no


podemos estar seguros de ello pues las últimas diferencias divididas no se han
anulado. Para salir de dudas añadamos uno más y modifiquemos la tabla:

xi f[xi] f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3] f[xi,..,xi+4]


2 0 6 9 3 ¼
3 6 24 18 4
4 30 60 30
5 90 120
6 210

La tabla anterior nos muestra que, al menos, se necesitan 5 puntos para


obtener la expresión exacta del sumatorio (pues la última diferencia dividida
obtenida no es nula). Pero ¿serán necesarios más puntos?. Añadamos uno
más y reconstruyamos la tabla:

xi f[xi] f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3] f[xi,..,xi+4] f[xi,..,xi+5]


2 0 6 9 3 ¼ 0
3 6 24 18 4 ¼
4 30 60 30 5
5 90 120 45
6 210 210
7 420

La última de las diferencias divididas halladas ya tiene el valor 0. Ello parece


indicar que el polinomio buscado podrá determinarse con 5 puntos de soporte.
No obstante para asegurarnos de que lo anterior no es una casualidad
podemos variar el último de los puntos escogidos (sustituyendo “7” por ejemplo
por “9”). Si así se hace obtenemos que:
xi f[xi] f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3] f[xi,..,xi+4] f[xi,..,xi+5]
2 0 6 9 3 ¼ 0
3 6 24 18 4 ¼
4 30 60 30 11/2
5 90 120 115/2
6 210 350
9 1260

57
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Al volver a ser nula la última diferencia dividida podemos tener alguna


esperanza de que el polinomio buscado sea de grado 4 (suposición que
deberemos verificar a posteriori). Aplicando la fórmula de Newton se tiene que:

f(n) = 0+ 6·(n-2) +9·(n-2)·(n-3) + 3·(n-2)·(n-3)·(n-4) + (¼)·(n-2)·(n-3)·(n-4)·(n-5) =


2·n − n2 − 2·n3 + n4
=
4
En resumen,
n
2·n − n2 − 2·n3 + n4

i= 2
i·(i − 1)·(i − 2) =
4

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

2º) a) Utilícese la fórmula de Newton para calcular el polinomio interpolador de


Lagrange de la función f(x) = x5 sobre el soporte {-2, -1, 0, 1, 2}.

b) Calcúlese el nuevo polinomio interpolador de Lagrange de f(x) = x5, si al


soporte anterior se le añade un nuevo punto x5.

3º) Calcúlese la expresión polinómica en la variable entera “n” que proporciona


el valor del sumatorio:
n

∑ i ·(i − 2)
i=1
2 3

4º) En el método de Gauss para la resolución de sistemas de n ecuaciones


lineales con n incógnitas se realizan:

(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

Obténgase la expresión polinómica en la variable entera n que proporciona el


número total de operaciones y demuéstrese que cuando n es elevado el
número total de operaciones es del orden de (2·n3/3).

5º) En el método de Cholesky para la resolución de sistemas definidos


positivos de n ecuaciones lineales con n incógnitas se realizan:

(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

Obténgase la expresión polinómica en la variable entera n que proporciona el


número total de operaciones y demuéstrese que cuando n es elevado el
número total de operaciones es del orden de (n3/3).

6º) En el método LDLT para factorizar una matriz simétrica de n filas y


columnas puede programarse realizándose el siguiente número de
operaciones:

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

Obténgase la expresión polinómica en la variable entera n que proporciona el


número total de operaciones y demuéstrese que cuando n es elevado el
número total de operaciones es del orden de (n3/2).

60
Programación y Métodos Numéricos Interpolación polinómica

2.4. Interpolación con soportes equidistantes: Fórmulas con diferencias


finitas.
Por la simplicidad que representa es muy frecuente trabajar con soportes de
interpolación equidistantes. Recuérdese que se denominaban así aquellos
soportes en los que la distancia entre dos puntos consecutivos era siempre la
misma. Más concretamente, denotando por h a la distancia entre puntos
consecutivos del soporte, se define un soporte equidistante de (n+1) como
aquel en el que sus puntos se generan a partir del primero, x0, mediante la
expresión: xi = x0 + i·h (i = 1, …, n).

Cuando se desea calcular el polinomio interpolador de Lagrange de una


función f(x) sobre un soporte equidistante de (n+1) puntos, pueden utilizarse los
métodos vistos para el caso general (resolución de un sistema de (n+1)
ecuaciones con (n+1) incógnitas, fórmula de Lagrange o fórmula de Newton).
Pero el número de cálculos a realizar puede reducirse si en lugar de aquellos
se emplean métodos en diferencias finitas como los que desarrollaremos en
este subapartado.
Comencemos definiendo que entendemos por diferencias finitas. Para ello
supondremos en todo este subapartado que el soporte {x0, x1, ...., xn} es un
soporte equidistante y que la distancia entre puntos consecutivos del soporte
es h. Asimismo denotaremos por fi al valor de la función que se desea
interpolar f(x) en el punto xi: fi = f(xi) (i = 0, 1, ..., n).

Definición (Diferencia finita progresiva de primer orden)


Se denomina diferencia finita progresiva (o en adelanto) de primer orden de
la función f(x) en el punto xi, y se representa por Δfi, al valor:
Δfi = fi+1 – fi (i = 0, 1, ..., (n-1))

De forma más general se proporciona la siguiente definición:

Definición (Diferencia finita progresiva de orden k)


Siendo k un entero superior o igual a 1 e inferior a (n+1), se denomina
diferencia finita progresiva (o en adelanto) de orden k de la función f(x) en el
punto xi, y se representa por Δkfi, al valor:
Δkfi = Δ(k-1)fi+1 – Δ(k-1)fi (1 < k < n), (i = 0, 1, ..., (n-k))

donde Δ0fi = fi (i = 0, 1, ..., n)

61
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

De manera análoga pueden definirse diferencias finitas regresivas tal cual se


hace en las siguientes definiciones:

Definición (Diferencia finita regresiva de primer orden)


Se denomina diferencia finita regresiva (o en retroceso) de primer orden de
la función f(x) en el punto xi, y se representa por ∇fi, al valor:

∇fi = fi – fi-1 (i = 1, ..., n)

Definición (Diferencia finita regresiva de orden k)


Siendo k un entero superior o igual a 1 e inferior a (n+1), se denomina
diferencia finita regresiva (o en retroceso) de orden k de la función f(x) en el
punto xi, y se representa por ∇kfi, al valor:

∇kfi = ∇ (k-1)fi+1 – ∇ (k-1)fi (1 < k < n), (i = k, ..., n)

donde Δ0fi = fi (i = 0, 1, ..., n).


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

Tabla de diferencias finitas progresivas

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

Tabla de diferencias finitas regresivas

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 Δ2fi Δ3fi Δ4fi Δ5fi


0 0 0 -20 -66 -48 0
1 0 -20 -86 -114 -48
2 –20 -106 -200 -162
3 –126 -306 -362
4 –432 -668
5 –1100

Asimismo, la tabla de diferencias finitas regresivas será

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))

Δkfi = ∇kfi+k (2 < k < n), (i = 0, 1, ..., (n-k))

Demostración:
Demostremos en primer lugar la primera igualdad. Según las definiciones de
diferencia progresiva y regresiva de primer orden se verifica que:

Δfi = fi+1 - fi = ∇fi+1 (i = 0, 1, …, (n-1))

Para demostrar la segunda igualdad dada en la propiedad procederemos por


inducción. Para ello supongamos que para algún valor (k-1) se verifique que:

Δ (k-1)fi = ∇(k-1)fi+k-1 (i = 0, 1, ..., (n-k+1))

Obsérvese que, al menos para (k-1) = 1 la igualdad es cierta pues se reduce a


la primera de las igualdades recogidas en la propiedad y que hemos
demostrado previamente.

Con esta hipótesis se tiene que para todo entero i tal que 0 < i < (n-k) se
verifica:

Δkfi = Δ(k-1)fi+1 - Δ(k-1)fi = ∇(k-1)fi+1+k-1 - ∇(k-1)fi+k-1 =

= ∇(k-1)fi+k - ∇(k-1)fi+k-1= ∇kfi+k


c.q.d.

La fórmula de interpolación de Newton presentada en el subapartado 2.3.


puede rescribirse en términos de diferencias finitas. Ello se realiza de forma
sencilla apoyándose en la siguiente propiedad:

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:

Δkfi = k!·hk·f[xi, xi+1, …, xi+k] (0 < k < n), (i = 0, 1, .., (n-k))

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)

por lo que la igualdad es cierta para k = 0.

Admitiendo entonces que se verifica la propiedad para algún valor (k-1)


demostremos que también es cierta para el valor k. Por verificarse para (k-1) se
tendrá que:
Δ (k-1)fi = (k-1)!·h(k-1)·f[xi, xi+1, …, xi+k-1] (i = 0,1, …, (n-k+1))

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.

Análogamente las diferencias finitas regresivas se relacionan con las


diferencias divididas según la igualdad que se recoge en la siguiente
propiedad:

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:

∇kfi = k!·hk·f[xi-k, xi-k+1, …, xi] (0 < k < n), (i = k, k+1, .., n)

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.

Utilizando la propiedad 2 la fórmula de Newton puede ser escrita en la forma:


n⎛ (i−1)
⎞ n ⎛ Δi f0 (i−1) ⎞
pn(x) = f0 + ∑ ⎜ f [ x 0 ,...,xi ]·∏ (x − x j ) ⎟ = Δ0f0 + ∑ ⎜ i ·∏ (x − x j ) ⎟
i=1 ⎝ j= 0 ⎠ i=1 ⎝ i!·h j= 0 ⎠

La fórmula anterior es utilizada en ocasiones realizando el cambio de variable:


x = x0 + t·h
con lo que:
(x – xj) = (x0 + t·h) – (x0 + j·h) = (t – j)·h
y podemos escribir la denominada fórmula de interpolación de Newton-
Gregory progresiva:
n ⎛ Δi f0 (i−1) ⎞ n ⎛t⎞ i
pn(x) = ∑ ⎜ i∏ ·
i=0 ⎝ i!·h j= 0
(t − j)·h ⎟ = ∑ ⎜ ⎟ Δ f0
⎠ i=0 ⎝ i ⎠
⎛t⎞
donde se ha utilizado 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!

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

por lo que el polinomio interpolador, utilizando la fórmula de Newton, será:


1
(1 − 2) ⎛ π⎞ 4· 2 − 2 8·(1 − 2) 2
p2(x) = 0 + 2 ·(x-0) + 2 (
· x − 0 )·⎜ x − ⎟ = ·x + ·x
π ⎛ π ⎞ ⎝ 4 ⎠ π π 2
1!· 2!·⎜ ⎟
4 ⎝4⎠
2·(1 + 2· 2)
por lo que: sen(π/3) ≈ p2(π/3) = = 0.85076158...
9
Si se deseara utilizar la fórmula de Newton-Gregory hubiéramos procedido de
la forma siguiente:
π
π π 4
= 0 + t· ⇒ t = 3 =
3 4 π 3
4
por lo que:
2
⎛4 / 3⎞ i ⎛ 4 / 3⎞ ⎛ 4 / 3⎞ 1 ⎛ 4 / 3⎞
p2(π/3) = ∑ ⎜ ⎟ Δ f0 = ⎜ ⎟·0 + ⎜ ⎟· +⎜ ⎟·(1 − 2) =
i= 0 ⎝ i ⎠ ⎝ 0 ⎠ ⎝ 1 ⎠ 2 ⎝ 2 ⎠
⎛4⎞ ⎛ 4⎞⎛ 1⎞
⎜ 3 ⎟ 1 ⎜ 3 ⎟·⎜ 3 ⎟ 4 1 4 2·(1 + 2· 2)
= ⎝ ⎠· + ⎝ ⎠ ⎝ ⎠·(1 − 2) = · + ·(1 − 2) =
1! 2 2! 3 2 18 9

67
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

De forma análoga, utilizando la propiedad 3 la fórmula de Newton puede ser


escrita en la forma:
n ⎛ (i−1)
⎞ n ⎛ ∇i fi (i−1) ⎞
pn(x) = f0 + ∑ ⎜ f [ x 0 ,...,x ]
i ∏ (x − x j ) ⎟ = Δ f0 +
· 0
∑ ⎜ i ·∏ (x − x j ) ⎟
i=1 ⎝ j=0 ⎠ i=1 ⎝ i!·h j= 0 ⎠

La fórmula anterior es utilizada en ocasiones realizando el cambio de variable:


x = x0 + t·h
con lo que:
(x – xj) = (x0 + t·h) – (x0 + j·h) = (t – j)·h

y podemos escribir la denominada fórmula de interpolación de Newton-


Gregory regresiva:
n ⎛ ∇i fi (i−1) ⎞ n ⎛t⎞
pn(x) = ∑ ⎜ i ·∏ (t − j)·h ⎟ = ∑ ⎜ ⎟ ∇i fi
i= 0 ⎝ i!·h j=0 ⎠ i=0 ⎝ i ⎠

⎛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

Determinemos, usando la fórmula de Newton-Gregory regresiva, el valor de su


polinomio interpolador de Lagrange en el punto x = 3. Para ello comenzamos
construyendo la tabla de diferencias finitas regresivas:

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

Puesto que en el soporte considerado se verifica que h = 2, se tiene que:

3 = 0 + t·2 ⇒ t = 3/2 = 1.5

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

Para conocer “a priori” el grado de la expresión polinómica que se está


buscando podemos razonar de la forma que sigue. Siendo m un entero
cualquiera se verificará que:
m +1 m m +1 m +1 m +1 m m
Δfm = fm+1 − fm = ∑ i·(m + 1 − i) − ∑ i·(m − i) = ∑ m·i + ∑ i − ∑ i2 − ∑ m·i + ∑ i2 =
i= 0 i=0 i= 0 i=0 i=0 i=0 i= 0

⎛ m+1 m ⎞ m+1 ⎛ m+1 m


⎞ m +1
= m·⎜ ∑ i − ∑ i ⎟ + ∑ i − ⎜ ∑ i2 − ∑ i2 ⎟ = m·(m + 1) + ∑ i − (m + 1)2 =
⎝ i = 0 i =0 ⎠ i =0 ⎝ i= 0 i= 0 ⎠ i=0

(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

Sustituyendo m por (m+1) se tiene que: Δ 2 fm+1 = m + 2 por lo que:


Δ 3 fm = m + 2 − m − 1 = 1

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

en estos puntos son: f0 = 0, f1 = 0, f2 = 1 y f3 = 4 y la tabla de diferencias finitas


progesivas es:
xi ∇ 0f i ∇fi ∇ 2f i ∇ 3f i
0 0 0 1 1
1 0 1 2
2 1 3
3 4
Usando la fórmula de Newton-Gregory progresiva, el valor interpolado en el
entero “n” es

⎛n⎞ ⎛n⎞ ⎛n⎞ ⎛ n ⎞ n·(n-1) n·(n-1)·(n-2) n3 − n


0· ⎜ ⎟ +0· ⎜ ⎟ +1· ⎜ ⎟ +1· ⎜ ⎟ = + =
⎝0⎠ ⎝ 1⎠ ⎝ 2⎠ ⎝3⎠ 2! 3! 6

70
Programación y Métodos Numéricos Interpolación polinómica

lo que nos permite concluir que:


n
n3 − n
∑ i·(n − i) =
i=0 6

En ocasiones los soportes equidistantes se toman, además, centrados. Más


concretamente, un soporte equidistante centrado con (2·n+1) puntos se
genera a partir de un punto x0 considerándose los demás puntos del soporte en
la forma:
xi = x 0 + i·h (i = -n, -n+1, ...., -2, -1, 1, 2, …, n-1, n)

y donde h es la distancia entre dos puntos consecutivos del soporte.

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.

Definición (Diferencia finita centrada de primer orden)


Se denomina diferencia finita centrada (o central) de primer orden de la
función f(x) en el punto xi+1/2, y se representa por δfi+1/2, al valor:
δfi+1/2 = fi+1 - fi (i = -n, -n+1, ..., -1, 0, 1, …, n-1)


La definición de las diferencias finitas centradas de mayor orden se realiza a
continuación.

Definición (Diferencia finita centrada de orden k)


Siendo k un número natural tal que 1 < k < 2·n:
• Si k es par se denomina diferencia finita centrada (o central) de orden
k de la función f(x) en el punto xi, y se representa por δkfi, al valor:
δkfi = δ(k-1)fi+1/2 - δ(k-1)fi-1/2 (i = -n+(k/2), ..., 0, …, n-(k/2))
• Si k es impar se denomina diferencia finita centrada (o central) de
orden k de la función f(x) en el punto xi+1/2, y se representa por δkfi+1/2, al
valor:
δkfi+1/2 = δ(k-1)fi+1 - δ(k-1)fi-1 (i = -n+(k-1)/2,...,0,…, n-(k+1)/2)

En el caso k = 0 se define δ0fi = fi (i = -n, ...., 0, ..., n).

71
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

El cálculo de las diferencias finitas centradas puede organizarse también en


una tabla como la que se recoge a continuación para un soporte con 9 puntos y
en la que los cálculos se realizan columna a columna.
x-4 f-4
δf-7/2
x-3 f-3 δ2f-3
δf-5/2 δ3f-5/2
x-2 f-2 δ2f-2 δ4f-2
δf-3/2 δ3f-3/2 δ5f-3/2
x-1 f-1 δ2f-1 δ4f-1 δ6f-1
δf-1/2 δ3f-1/2 δ5f-1/2 δ7f-1/2
x0 f0 δ2f0 δ4f0 δ6f0 δ8f0
δf1/2 δ3f1/2 δ5f1/2 δ7f1/2
x1 f1 δ2f1 δ4f1 δ6f1
δf3/2 δ3f3/2 δ5f3/2
x2 f2 δ2f2 δ4f2
δf5/2 δ3f5/2
x3 f3 δ2f3
δf7/2
x4 f4

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 =

= δ(k-1)fi+(k+1)/2 - δ(k-1)fi+(k-1)/2 = δ(k-1)fi+k/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.

Asimismo se entre las diferencias finitas regresivas y las centradas existe la


relación recogida en la propiedad siguiente:

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) + …. +

+ f[x0, x1,x-1,x2, …, xn, x-n]·(x-x0)·(x-x1)·(x-x-1)·….(x-xn)


y puesto que:

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

que es la denominada fórmula de interpolación de Gauss progresiva.

Otra fórmula equivalente puede obtenerse considerando el soporte ordenado


de la forma: {x0, x-1, x1, x-2, x2, ..., x-n., xn}. En este caso la fórmula de Newton
será:
p2·n(x) = f[x0] + f[x0, x-1]·(x-x0) + f[x0,x-1, x1]·(x-x0)·(x-x-1) +

+ f[x0, x-1,x1,x-2]·(x-x0)·(x-x-1)·(x-x1) + …. +

+ f[x0, x-1,x1,x-2, …, x-n, xn]·(x-x0)·(x-x-1)·(x-x1)·….(x-x-n)

lo que nos conduciría a la fórmula de interpolación de Stirling (también


denominada fórmula de interpolación de Gauss regresiva) siguiente:

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

lo que nos conduciría a:

76
Programación y Métodos Numéricos Interpolación polinómica

x −0 (x − 0)·(x − 1) (x − 0)·(x − 1)·(x + 1)


p4(x) = -1 + (0) · + (2) · 2
+ 114· =
1!·1 2!·1 3!·13

= 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:

a) Sobre el soporte {0, 1, 2, 3, 4} usando la fórmula de Newton-Gregory


progresiva.
b) Sobre el soporte {0, 1, 2, 3, 4, 5} usando la fórmula de Newton-Gregory
regresiva

77
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

c) Sobre el soporte {0, 1, 2, 3, 4, 5, 6} usando la fórmula de Gauss progresiva.

d) Según los resultados anteriores, señálese si se puede escribir con ellos la


m
expresión exacta, dependiente sólo de m, del valor que toma ∑ i 2 .(m − i)2 . En
i=0
caso afirmativo justifíquese el motivo de ello. Y en caso negativo indíquese
cual, entre las obtenidas en las opciones anteriores, se aproximará más a la
expresión exacta y cual es la cota del error que se comete.

2º) De una función f(x) se conocen los siguientes valores:


x -1 0 1 2 3
f(x) 7 1 -1 -17 -41

Utilícese la fórmula de Stirling para obtener el polinomio interpolador de


Lagrange de la función f(x) en el soporte {-1,0,1,2, 3}. Obténgase, además, una
1
cota del error de interpolación de esta función sabiendo que Sup f (v (x) = .
x∈( −1,3 ) 2

3º) Para el caso de interpolaciones con soportes equidistantes:


a) Obténgase una expresión del error de interpolación en un punto x* en la
que intervengan las diferencias finitas progresivas de una función.
b) Idem con diferencias finitas regresivas.
c) Idem con diferencias centradas.

78
Programación y Métodos Numéricos Interpolación polinómica

3. Interpolación polinómica de Hermite.


El problema de interpolación polinómica de Lagrange, tratado en el apartado
anterior, consiste en determinar un polinomio pn(x), de grado menor o igual que
n, que en los puntos de un soporte de (n+1) puntos tome los valores de la
función f(x) que se interpola. Nada obliga a que los valores de las derivadas de
f(x) en los puntos del soporte coincidan con los de las derivadas del polinomio
interpolador. Es por ello que el problema de interpolación polinomial puede
plantearse en un marco más amplio, conocido con el nombre de problema
interpolación polinómica de Hermite. Más concretamente, puede formularse el
siguiente problema:

Problema de Interpolación Polinómica de Hermite


“Dados (n+1) puntos distintos {x0 , x1 , ... , xi ,... , xn} y (n+1)
valores enteros no negativos {α0, α1, ..., αi, ..., αn}, siendo
n
m = n + ∑ αi y conocidos los (m+1) valores
i= 0

{f(0
0 ,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1 ,...,fn( αn }

encontrar un polinomio pm(x), de grado menor o igual que m,


verificando las (m+1) igualdades:

(k
pm (xi ) = fi(k (i = 0, 1, ...., n) , (k = 0, …, αi) “

Si los valores fi(k se consideran como el valor de la k-ésima derivada de una


cierta función f(x) en el punto del soporte xi, fi(k = f (k (xi ) , al polinomio pm(x)
solución del problema anterior se le denomina “polinomio interpolador de
Hermite sobre el soporte {x0 , x1 , ... , xi ,... , xn} para los enteros {α0, α1, ..., αi,
{
..., αn} y para los valores f0(0 ,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1,...,fn( αn ”. }
Cuando esté claro el soporte sobre el que se trabaja y los enteros que se
utilizan, simplemente diremos que pm(x) es el polinomio interpolador de Hermite
de la función f(x).

Obsérvese que el problema de interpolación polinómica de Lagrange es un


caso particular de este en el que α0 = α1 = .... = αn = 0.

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:

p4(0) = 1 (=cos(0)), p’4(0) = 0 (= cos’(0) = -sen(0) )


⎛π⎞
p4 ⎜ ⎟ = 0 ( = cos(π/2) )
⎝2⎠
p4(π) = -1 ( = cos(π) ), p’4(π) = 0 (= cos’(π) = -sen(π) )

Una primera forma de determinar el polinomio interpolador de Hermite consiste


en considerar que pm(x) es un polinomio de la forma pm(x) = β0 + β1·x + β2·x2 +
... + βm·xm para, a continuación, obtener un sistema de (m+1) ecuaciones
lineales a partir de las igualdades que proporcionan los valores que debe tomar
el polinomio interpolador y sus derivadas en los puntos del soporte. Más
concretamente:

pm(x0) = f0(0 ⇔ β0 + β1·x 0 + β2 ·x 02 + .... +βm ·xm0 = f0(0


p’m(x0) = f0(1 ⇔ β1 + 2·β2 ·x 0 + .... +m·βm ·xm0 −1 = f0(1
p”m(x0) = f0(2 ⇔ 2·β2 + .... +m·(m − 1)·βm ·xm0 −2 = f0(2
…….. ……………………………………
( α0
pm (x0)= f0 ⇔ α0 !·βα0 + ... + m·(m − 1)·...·(m − α 0 + 1)·βm ·xm0 −α0 = f0( α0
( α0

pm(x1) = f1(0 ⇔ β0 + β1·x1 + β2 ·x12 + .... +βm ·x1m = f1(0


p’m(x1) = f1(1 ⇔ β1 + 2·β2 ·x1 + .... +m·βm ·x1m−1 = f1(1
p”m(x1) = f1(2 ⇔ 2·β2 + .... +m·(m − 1)·βm ·x1m−2 = f1(2
…….. ……………………………………
p(mα1 (x1)= f1( α1 ⇔ α1 !·βα1 + ... + m·(m − 1)·...·(m − α1 + 1)·βm ·x1m−α1 = f1( α1
…….. ……………………………………
…….. ……………………………………
pm(xn) = fn(0 ⇔ β0 + β1·xn + β2 ·xn2 + .... +βm ·xnm = fn(0
p’m(xn) = fn(1 ⇔ β1 + 2·β2 ·xn + .... +m·βm ·xnm−1 = fn(1
p”m(xn) = fn(2 ⇔ 2·β2 + .... +m·(m − 1)·βm ·xnm−2 = fn(2
…….. ……………………………………
( αn ( αn
pm (xn)= fn ⇔ αn !·βαn + ... + m·(m − 1)·...·(m − αn + 1)·βm ·xnm−αn = fn( αn

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 ⎭

En x0 =0 se tiene que: f0(0 = f(0) = 1 y f0(1 = f '(0) = 0


π ⎛π⎞
En x1 = : f1(0 = f ⎜ ⎟ = 0
2 ⎝2⎠
Y en x2 = π: f2 = f( π) = −1 y f2(1 = f '( π) = 0
(0

Al haber 5 condiciones se podrán determinar 5 coeficientes y por ello se


interpolará mediante un polinomio de grado menor o igual a 4 que es de la
forma:
p4(x) = β0 + β1·x + β2·x2 + β3·x3 + β4·x4
y debe verificar:

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⎠

p4(x2) = f2(0 ⇔ β0 + β1·π + β2·π2 + β3· π3 + β4· π4 = -1

p’4(x2) = f2(1 ⇔ β1 + 2·β2·π + 3·β3· π2 + 4·β4· π3 =0

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 π

La figura siguiente recoge las gráficas de f(x) y de p4(x) en el intervalo [-1, 4]


pudiendo observarse la “buena concordancia” entre la función f(x) y p4(x) en el
intervalo [0, π].

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.

Esta forma de calcular el polinomio interpolador de Hermite, mediante la


resolución de un sistema de (m+1) ecuaciones con (m+1) incógnitas, es útil
cuando se trabaja con un soporte formado por un número de puntos
relativamente bajo. En caso de no ser así exige realizar un gran esfuerzo
computacional para resolver el sistema de ecuaciones al que se llega.

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

3.1. Interpolación de Hermite de primer orden: la fórmula de interpolación


de Hermite.
Por simplicidad en la exposición, comenzaremos ocupándonos del problema de
determinar un polinomio p2·n+1(x) de grado menor o igual a (2·n+1) que en los
puntos de un soporte formado por (n+1) puntos distintos {x0, x1, ..., xn} verifique
las (2·n+2) condiciones siguientes:

p2·n+1(xi) = fi(0 (i = 0, 1, ..., n)


p'2·n+1(xi ) = fi(1 (i = 0, 1, ..., n)

{ }
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

es evidente que los polinomios de base de Hermite satisfacen que:


⎧0 si i ≠ k
H0,i(xk) = δik = ⎨ (i, k = 0, 1, …, n)
⎩ 1 si i = k
H1,i(xk) =0 (i, k = 0, 1, …, n)
Por tanto:
n n
p2·n+1(xk ) = ∑ fi(0 ·H0,i (xk ) + ∑ fi(1·H1,i (xk ) = fk(0
i=0 i= 0

Además, para cualquier par de índices 0 < i, k < n se tiene que :


H'0,i (x) = −2·L'i (xi )·(Li (x) ) + 2·(1 − 2·(x − x i )·L'i (x i ) )·Li (x)·L'i (x) ⇒
2

( )
⇒ 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

⇒ H1,i' (xk ) = (Li (x k ) ) + 2·(x k − x i )·Li (x k )·L'i (xk ) ⇒


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

Ello demuestra que el polinomio p2·n+1(x) dado por (2) es el polinomio


interpolador de Hermite.

b) Demostremos ahora, por reducción al absurdo, la unicidad del polinomio


interpolador de Hermite.

Supongamos que hubiera dos polinomios distintos, p2·n+1(x) y q2·n+1(x), de grado


menor o igual que (2·n+1) verificando:
p2·n+1(xi) = fi(0 , p'2·n+1(xi ) = fi(1 (i = 0, 1, 2, ..., n)
q2·n+1(xi) = fi(0 , q'2·n+1(xi ) = fi(1 (i = 0, 1, 2, ..., n)

Denotemos entonces por r(x) al polinomio definido mediante:


r(x) = p2·n+1(x) - q2·n+1(x)

Este polinomio será de grado menor o igual a (2·n+1) ya que es la diferencia de


dos polinomios de grado menor o igual a (2·n+1). Además este polinomio
verificará que:
r(xi) = p2·n+1(xi) – q2·n+1(xi) = 0 (i = 0, 1, ..., n)

r '(xi ) = p'2·n+1(xi ) − q'2·n+1(xi ) = 0 (i = 0, 1, ..., n)

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:

r(x) ≡ 0 ⇔ p2·n+1(x) − q2·n+1(x) ≡ 0 ⇔ p2·n+1(x) ≡ q2·n+1(x)

en contra de la suposición inicial de que eran dos polinomios distintos. Por


tanto es absurdo suponer que exista más de un polinomio interpolador de
Hermite.
c.q.d.

85
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Ilustremos el método de cálculo que proporciona el teorema anterior con un


ejemplo.

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

En primer lugar se tiene que los polinomios de base de Lagrange sobre el


soporte {0, 1, 2} son:
x 2 − 3·x + 2 x2 − x
L0 (x) = , L1(x) = − x 2 + 2·x , L 2 (x) =
2 2
y:
−3 3
L’0(0) = , L’1(1) = 0, L’2(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

−3·x 5 + 13·x 4 − 17·x 3 + 7·x 2


H0,2 (x) = (1 − 2·(x − 2)·L'2 (2))·(L 2 (x))2 =
4
y:

x 5 − 6·x 4 + 13·x 3 − 12·x 2 + 4·x


H1,0 (x) = (x − 0)·(L0 (x))2 =
4

H1,1(x) = (x − 1)·(L1(x))2 = x 5 − 5·x 4 + 8·x 3 − 4·x 2

x 5 − 4·x 4 + 5·x 3 − 2·x 2


H1,2 (x) = (x − 2)·(L 2 (x))2 =
4

86
Programación y Métodos Numéricos Interpolación polinómica

Las figuras siguientes recogen los gráficos de estos polinomios de base de

Hermite.

H0,0(x)

H0,1(x)

H0,2(x)

π/4 rad H1,0(x)

H1,1(x)

H1,2(x)

Con estos polinomios de base de Hermite se tiene finalmente que el polinomio


interpolador de Hermite está dado por:

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:

Abscisa x0 ... xi-1 xi xi+1 .... xn


f(0 0 ... 0 1 0 .... 0
f(1 0 ... 0 0 0 .... 0

88
Programación y Métodos Numéricos Interpolación polinómica

Análogamente sólo habrá un polinomio de grado menor o igual a (2·n+1) que


en el soporte {x0, ..., xi, ... ,xn} tome los valores:

Abscisa x0 ... xi-1 xi xi+1 .... xn


f(0 0 ... 0 0 0 .... 0
f(1 0 ... 0 1 0 .... 0
c.q.d.

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

Sea f(x) la función unidad: f ≡ 1. Obviamente en los puntos de cualquier soporte


se verifica que: fi(0 = f(xi ) = 1 y fi(1 = f '(xi ) = 0 (i = 0, 1, ..., n). Además como
esta función es un polinomio de grado 0 (perteneciente a cualquier espacio
formado por los polinomios de grado menor o igual que (2·n+1) sea cual sea n)
se verifica que el polinomio interpolador de Hermite, p2·n+1(x), de f(x) es la
propia función. Por tanto:
n n n
∀x : 1 ≡ p2·n+1(x) = ∑ 1·H0i (x) + ∑ 0·H1i (x) = ∑ H01(x)
i=0 i=0 i= 0

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

∑ xi·H0,i (x) + ∑ H1,i (x) = x


i=0 i=0

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

3º) Determínese el polinomio interpolador de Hermite de la función f(x) = x4


sobre el soporte {0, 1, 3} a partir de los valores de la función y de su primera
derivada en los puntos del soporte. ¿Cuál es el error de interpolación en el
punto x = 2.5, es decir cual es el valor de |f(2.5) – p5(2.5)| ?.

4º) Utilícese la fórmula de interpolación de Hermite para determinar el


polinomio interpolador de Hermite de la función cos(x) sobre el soporte
⎧ π π⎫
⎨0, , ⎬ a partir de los valores de la función de su primera derivada en los
⎩ 6 2⎭
puntos del soporte. Represéntense las gráficas de los polinomios de base
asociados a este soporte e indíquese el valor interpolado que aproximaría
cos(π/4).

5º) Demuéstrese que los polinomios de base de Hermite asociados al soporte


{x0, x1, ..., xi, ..., xn} forman una base del espacio vectorial P2·n+1 formado por
todos los polinomios (de variable y coeficientes reales) de grado menor o igual
que (2·n+1).

90
Programación y Métodos Numéricos Interpolación polinómica

3.2. Interpolación polinómica de Hermite: caso general.


Ocupémonos ya del problema general de interpolación polinómica de Hermite.
Este problema, según se describió anteriormente, puede formularse en la
forma:

Problema de Interpolación Polinómica de Hermite


“Dados (n+1) puntos distintos {x0 , x1 , ... , xi ,... , xn}, (n+1)
valores enteros no negativos {α0, α1, ..., αi, ..., αn}, siendo
n
m = n + ∑ αi y conocidos los (m+1) valores
i= 0

{f(0
0 ,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1 ,...,fn( αn }

encontrar un polinomio pm(x), de grado menor o igual que m,


verificando las (m+1) igualdades:

(k
pm (xi ) = fi(k (i = 0, 1, ...., n) , (k = 0, …, αi) “

En otros términos buscamos un polinomio de grado menor o igual que m y tal


que en cada punto xi del soporte él y sus αi primeras derivadas tomen valores
predeterminados. La existencia y unicidad del polinomio interpolador de
Hermite, así como una manera de construirlo, se justifican con el siguiente
teorema.

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)

Además dicho polinomio está dado por la expresión:

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 ⎠

donde los polinomios Hk,j(x), llamados polinomios de base de Hermite, pueden


construirse mediante el proceso recursivo siguiente:

Hαi ,i (x) = hαi ,i (x) (i = 0, 1, ..., n)

α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)

siendo denotados por hk,j(x) los polinomios dados por:

α 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:

grado(hαi ,i (x)) = m , grado(hαi −1,i (x)) = m − 1, .... , grado(h0,i (x)) = m − αi

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

Por el mismo motivo, para i = 0, 1, 2, ..., n, todos los polinomios:

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.

Por otra parte, fácilmente se verifica por inducción que:

⎧ 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

lo que implica que:

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 ⎠

y por tanto que pm(x) es solución del problema de interpolación de Hermite.

b) Demostremos ahora, por reducción al absurdo, que el polinomio pm(x) es la


única solución del problema de Hermite.

Supongamos que hubiera dos polinomios distintos, pm(x) y qm(x), de grado


menor o igual que m y verififcando:

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}.

Comencemos evaluando la función y sus derivadas en los puntos del soporte

• 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

Evaluemos ahora los polinomios hk,i(x) dados en el teorema anterior:

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

1 1 19 119 4 95 3 100 2 4000


= ·x 7 − ·x 6 − ·x 5 + ·x + ·x − ·x − ·x
279936 46656 23328 34992 1458 729 2187

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

Evaluemos ahora los valores de las derivadas que intervendrán en el cálculo de


los polinomios de base de Hermite:

−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

Tras los cálculos previos anteriores ya se pueden determinar los polinomios de


base de Hermite utilizando las expresiones dadas en el teorema anterior:

“Asociados” a x0 = -8:

H3,0(x) = h3,0(x) =

1 1 19 119 4 95 3 100 2 4000


= ·x 7 − ·x 6 − ·x 5 + ·x + ·x − ·x − ·x
279936 46656 23328 34992 1458 729 2187

H2,0 (x) = h2,0 (x) − h'''2,i (x 0 )·H3,0 (x) =

7 1 161 485 25 3 125 2 5000


= ·x 7 − ·x 6 − ·x 5 + ·x 4 + ·x − ·x − ·x
2239488 124416 186624 279936 324 1458 2187

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) =

95 11 2249 755 3625 3 125 2 23125


= ·x 7 − ·x 6 − ·x 5 − ·x 4 + ·x + ·x − ·x
80621568 13436928 6718464 10077696 104976 26144 19683

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) =

3205 215 75763 168865


= ·x 7 + ·x 6 − ·x 5 − ·x 4 +
17414258688 2902376448 1451188224 2176782336

120275 3 67375 2 128125


+ ·x + ·x − ·x
22674816 5668704 531441

“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

H1,2 (x) = h1,2 (x) − h"1,2 (x 2 )·H2,2 (x) =

−29 43 271 1192 1072 3 5248 2 9728


= ·x 7 − ·x 6 + ·x 5 + ·x 4 − ·x − ·x − ·x
94478400 15746400 3936600 1476225 492075 98415 59049

H0,2 (x) = h0,2 (x) − h'0,2 (x 2 )·H1,2 (x) − h"0,2 (x 2 )·H2,2 (x) =

511 587 10753 8989


= ·x 7 + ·x 6 − ·x 5 − ·x 4 +
8503056000 1417176000 708588000 66430125

22324 63616 2 109184


+ ·x 3 + ·x + ·x
22143375 4428675 2657205

98
Programación y Métodos Numéricos Interpolación polinómica

Antes de construir el polinomio interpolador verifiquemos que los polinomios de


base de Hermite satisfacen:
⎧ 1 si i = s y j = j
H(k,ij (x s ) = δ jk ·δis = ⎨ ( 0 < j,k < αs) , ( 0 < i, s < 2)
⎩0 en otro caso

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.

Tabla de valores de H00(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 1 0 0 0

−128125 67375 120275


x1 0
531441 2834352 3779136

23725
x2 0 0 0
248832

Tabla de valores de H10(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 1 0 0

−23125 125 3625


x1 0
19683 13122 17496

1925
x2 0 0 0
3456

Tabla de valores de H20(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 0 1 0

−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

Tabla de valores de H30(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 0 0 1

−4000 −200 95
x1 0
2187 729 243

5
x2 0 0 0
4

Tabla de valores de H01(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 0 0 0

1 −21 −303
x1 1
5 400 8000

−19683
x2 0 0 0
128000

Tabla de valores de H02(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 0 0 0

109184 127232 44648


x1 0
2657205 4428675 7381125

7099
x2 1 0 0
121500

Tabla de valores de H12(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 0 0 0

−9728 −10496 −2144


x1 0
59049 98415 164025

−511
x2 0 1 0
1350

100
Programación y Métodos Numéricos Interpolación polinómica

Tabla de valores de H22(x)


Función 1ª derivada 2ª derivada 3ª derivada
x0 0 0 0 0

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

27699871744 19112886821 2 21826921472 3


=1+ ·x − ·x − ·x +
147132134305 735660671525 3678303357625

3908797597 1162926472 9254121 4204394


+ ·x 4 + ·x 5 − ·x 6 − ·x 7
18391516788125 18391516788125 18391516788125 18391516788125

La figura siguiente recoge, en el intervalo [-11, 11] el grafo de la función de


Runge (en trazo discontinuo) y del polinomio interpolador de Hermite hallado
(en trazo continuo). Como puede apreciarse, después de los largos cálculos
anteriores, existe una buena aproximación entre el polinomio hallado y la

102
Programación y Métodos Numéricos Interpolación polinómica

función que se interpola en los entornos de los puntos del soporte no


sucediendo lo mismo en puntos alejados de los del soporte. Y al estar los
puntos del soporte “alejados” entre sí se aprecian zonas en las que la precisión
del polinomio interpolador es bastante pobre. En los ejercicios propuestos se
encontrarán casos en los que el polinomio interpolador tiene un
comportamiento más parecido a la función que interpola.


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).

2º) Constrúyase el polinomio interpolador de Hermite de la función de Runge


f(x) = (1+x2)-1 sobre el soporte {-2, 0, 2} para los enteros {2, 2, 2}.
Represéntense gráficamente, en el intervalo [-2, 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

verifican las igualdades:

⎧ 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

3.3. Análisis del error en la interpolación de Hermite.


Al igual que se señaló en el caso de la interpolación de Lagrange puede
definirse el error de interpolación de Hemite como sigue:

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).

En general, si sobre la función f(x) que se está interpolando sólo se conocen


los valores de ella y algunas de sus derivadas en los puntos del soporte, poco
se puede decir sobre el error de interpolación (salvo que será nulo en los
puntos del soporte). Pero si se admite una cierta regularidad de la función f(x),
más concretamente, si se admite que tanto la función f(x) como sus primeras
derivadas son continuas y acotadas, es posible obtener cotas de la función
error de interpolación en el intervalo (a, b) al que pertenezcan los puntos del
soporte. De forma más concreta, demostremos el siguiente:

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

pm(x) al polinomio interpolador de Hermite, sobre el soporte considerado y para


los enteros dados, de una función f(x) de clase C(m+1)((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 el error de interpolación de Hermite en x* está
dado por la expresión:

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

El polinomio q(x) es un polinomio de grado menor o igual que (m+1), pues es la


suma de un polinomio de grado menor o igual que m (pm(x)) más otro polinomio
n
de grado (m+1) (el polinomio ∏ (x − x )
i=0
i
αi +1
) multiplicado por la constante

f(x*) − pm (x*)
n
.
∏ (x * − x )
i=0
i
αi +1

Además dicho polinomio verifica que:

q(j(xi) = p(jm(xi) = f(j(xi) (i = 0, ..., n), (j = 0, ..., αi)

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

Por tanto q(x) es el polinomio interpolador de Hermite de la función f(x) sobre el


soporte formado por los (n+2) puntos: {x0, x1,..., xn, x*} y para los enteros {α0,
α1, ..., αn, 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:

0 = F(m+1( ξ * ) = f(m+1( ξ * ) – q(n+1( ξ * ) =


24
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”.

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.

Con la misma notación que la utilizada en el teorema precedente, una


consecuencia inmediata es que si f(x) es una función polinómica de grado
menor o igual que m, el error que se comete al interpolarla es nulo (pues la
derivada de orden (m+1) de un polinomio de grado menor o igual que m es la
función nula).

En la práctica el teorema anterior se utiliza para obtener cotas del error de


interpolación. En efecto, una consecuencia inmediata de dicho teorema es que
si se denota por M al valor:
M = Sup f (n+1(x)
x∈( a,b )

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

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 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 )

independiente de m. Por otra parte el incremento del número de puntos del


soporte puede conducir a polinomios interpoladores de alto grado que
presenten oscilaciones muy pronunciadas lo cual no siempre será acorde con
la naturaleza de la función f(x) que se interpole.

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!

Busquemos una cota del error. Para ello se tiene que:

(iv 384·x 4 288·x 2 24


f (x) = − +
(1 + x ) (1 + x )
2 5 2 4
(1 + x 2 )3
cuyo máximo valor absoluto se alcanza en x = 0 y es: |f(iv(0)| = 24. Por tanto:

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)

Determinemos el máximo de q(x) = (x+1)2·(x-1)2 =(x2 – 1)2.Puesto que:

q’(x) =4·x·(x2 –1)


se tiene que la primera derivada de q(x) se anula en los puntos x(1) = -1, x(2) = 0
y x(3) = 1. Puesto que q(-1) = q(1) = 0 y q(0) = 1 puede concluirse que:

sup ⎡⎣(x + 1)2 ·(x − 1)2 ⎤⎦ = 1


x∈( −1,1)

lo que nos conduce a la acotación de error siguiente:

∀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.

Determinemos el error realmente cometido y su máximo valor. Para ello


debemos determinar el polinomio interpolador de Hermite. Dejamos al lector la
tarea de realizar los cálculos detallados que nos conducen a que:

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

Su primera derivada está dada por:

−2·x x 1
E’(x) = + = ·x·((1 + x 2 )2 − 4)
(1 + x )
2 2
2 2·(1 + x )
2 2

que se anula en x = 0 y en la solución de (1+x2)2 – 4 = 0, es decir:

(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

lo que proporciona como raíces rales los valores x = -1 y x = 1. Puesto que


3 1
E(-1) = E(1) = 0 y E(1) = 1 − = puede concluirse que:
4 4

1
max E(x) = E(0) =
x∈( −1,1) 4

Los razonamientos anteriores demuestran que el máximo valor del error de


interpolación es, en este caso, la cuarta parte de la cota obtenida.

La figura siguiente recoge los grafos de f(x) y de p3(x).

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

3.4. Interpolación de Hermite: la fórmula de interpolación de Newton.


3.4.1. Planteamiento
Las dos maneras presentadas anteriormente para determinar el polinomio
interpolador de Hermite (a través de la resolución del correspondiente sistema
de ecuaciones o mediante la fórmula de interpolación de Hermite en la que se
utilizan los polinomios de base de Hermite) no son los únicos caminos posibles.
En efecto, la fórmula de Newton que se presentó en el subapartado 2.3. para el
cálculo del polinomio interpolador de Lagrange puede generalizarse al caso de
la interpolación de Hermite. Pero para ello es necesario generalizar el concepto
de diferencia dividida. Todo ello es el objetivo de este subapartado.

En todo cuanto sigue se considerará que se trabaja en un soporte formado por


(n+1) puntos distintos {x0, x1, .., xn} y que en cada punto xi se conoce el valor de
una cierta función f(x) así como el de sus αi primeras derivadas. A tales
valores, se les denotará indistintamente por fi(0 , fi(1 , ..., fi( αi o por f(xi), f’(xi), ...,
n
f ( αi (xi ) . Además denotaremos por m al valor obtenido mediante: m = n + ∑α .
i=0
i

Este número entero no negativo indica, como se ha visto en apartados


anteriores, el grado del polinomio interpolador de Hermite de f(x) sobre el
soporte {x0, x1, .., xn} y para los enteros {α 0 , α1,..., αn } .

La idea básica de la fórmula de Newton consiste en expresar el polinomio


interpolador de Hermite, pm(x), en la forma:
( α0 )
0 + a0 ·(x − x 0 ) + a 0 ·(x − x 0 ) + ... + a0
pm(x) = a(0) (1) (2) 2
·(x − x 0 )α0 +

( )
+ 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:

0 + a0 ·(x − x 0 ) + a1 ·(x − x 0 ) + a1 ·(x − x 0 ) ·(x − x1 )


p3(x) = a(0) (1) (0) 2 (1) 2

lo que nos permitirá razonar como sigue:

p3(x0) = f0(0 ⇒ a(0)


0 = f0
(0
( que denotaremos como f[x0])

p’3(x0) = f0(1 ⇒ a(1)


0 = f0
(1
(que denotaremos como f[x0, x0] )

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] )

f1(1 − f[x 0 ,x 0 ] 2·f [ x 0 ,x 0 ,x1 ]


p’3(x1) = f1(1 ⇒ a1(1) = −
(x1 − x 0 )2 ( x1 − x 0 )
lo que, denotando por f[x1, x1] al valor f1(1 se puede
expresar como:

f[x1,x1 ] − f[x 0 ,x 0 ] f[x 0 ,x1 ] − f[x 0 ,x 0 ]



a1(1) =
( x1 − x 0 ) −
( x1 − x 0 ) =
(x1 − x 0 ) ( x1 − x 0 )

f[x1,x1 ] − f[x 0 ,x1 ] f[x 0 ,x1 ] − f[x 0 ,x 0 ]

=
( x1 − x 0 ) −
( x1 − x 0 ) =
(x1 − x 0 ) ( x1 − x 0 )

f[x 0 ,x1,x1 ] f [ x 0 ,x 0 ,x1 ]


= − = f[x0, x0, x1, x1]
(x1 − x 0 ) ( x1 − x0 )

El procedimiento de cálculo de estos coeficientes puede realizarse de forma


simple si se organizan en una tabla como la que a continuación se detalla. En
ella, los valores resaltados en letra negrita se corresponden con los
coeficientes y los valores que se proporcionan en cursiva se corresponden con

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

x0 --- f0( 1 = f[x0, x0]

x1 f1( 0 f[x0, x1] f[x0, x0, x1]

x1 -- f1(1 = f[x1, x1] f[x0, x1, x1] f[x0, x0, x1, x1]

2º) Consideremos ahora el problema de interpolación de Hermite planteado


sobre un soporte de 2 puntos {x0, x1} y para los enteros {2, 1}. La fórmula de
Newton consistiría básicamente en buscar el polinomio interpolador p4(x) en la
forma:
0 + a0 ·(x − x 0 ) + a0 ·(x − x 0 ) + a1 ·(x − x 0 ) + a1 ·(x − x 0 ) ·(x − x1 )
p4(x) = a(0) (1) (2) 2 (0) 3 (1) 3

lo que nos permitirá razonar como sigue:

p4(x0) = f0(0 ⇒ a(0)


0 = f0
(0
( que denotaremos como f[x0])

p’4(x0) = f0(1 ⇒ a(1)


0 = f0
(1
(que denotaremos como f[x0, x0] )

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

f1(0 − f0(0 f0(2


− f0(1
(x − x 0 ) 2
= 1 − =
(x1 − x 0 )2
(x1 − x 0 )

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

f1(1 − f[x 0 ,x 0 ] 2·f [ x 0 ,x 0 ,x 0 ] 3·f [ x 0 ,x 0 ,x 0 ,x1 ]


p’4(x1) = f(1
⇒a (1)
= − − =
( x1 − x0 )
1 1
(x1 − x 0 )3 2
(x1 − x 0 )

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 [ x1,x1 ] − f[x 0 ,x 0 ] f [ x 0 ,x 0 ,x 0 ] 3·f [ x 0 ,x 0 ,x1 ]


= + − =
(x1 − x 0 )3 ( x1 − x0 ) (x1 − x 0 )2
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 [ x1,x1 ] − f[x 0 ,x1 ] f [ x 0 ,x 0 ,x 0 ] f [ x 0 ,x1 ] f [ x 0 ,x 0 ]


= + − 2· + 2· =
(x1 − x 0 )3 ( x1 − x0 ) (x1 − x 0 )3 (x1 − x 0 )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 ,x1,x1 ] − f [ x 0 ,x 0 ,x1 ] f [ x 0 ,x 0 ,x1 ] − f [ x 0 ,x 0 ,x 0 ]


= − =
(x1 − x 0 )2 ( x1 − x0 )
2

f [ x 0 ,x 0 ,x1,x1 ] f [ x 0 ,x 0 ,x 0 ,x1 ]
= −
(x1 − x 0 ) ( x1 − x 0 )

(que denotaremos como f[x0, x0, x0, x1, x1]).

Al igual que en el ejemplo anterior, el procedimiento de cálculo de estos


coeficientes puede realizarse de forma simple si se organizan en una tabla
como la que a continuación se detalla. En ella, los valores resaltados en letra
negrita se corresponden con los coeficientes y los valores que se proporcionan
en cursiva se corresponden con datos del problema. El resto se calcula de
forma similar a como se detalló para las diferencias divididas

114
Programación y Métodos Numéricos Interpolación polinómica

x0 f0( 0

x0 --- f0( 1 = f[x0, x0]

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]

Las tablas de los ejemplos anteriores permiten vislumbrar la simplicidad del


proceso de aplicación la fórmula de Newton al cálculo del polinomio
interpolador de Hermite: basta con modificar las “primeras” columnas de la
tabla para ir calculando los coeficientes del polinomio interpolador de forma
similar al caso de la interpolación de Lagrange.

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

3.4.2. Generalización del concepto de diferencia dividida

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

por pmk −1 (x) al polinomio interpolador de Hermite de la función f(x) sobre el


soporte {x0, x1, ..., xk-1} y para los enteros {α0 , α1,..., αk −1} . Se verifica entonces
que pmk −1 (x) es un polinomio de grado inferior o igual a mk-1 que satisface las
(mk-1 + 1) igualdades:

p(mj k −1 (xi ) = f ( j (xi ) ( 0 ≤ j ≤ αi ; 0 ≤ i ≤ k − 1)

Procedamos a añadir un nuevo punto, xk, al soporte anterior y denotemos por


mk al entero positivo mk = mk −1 + 1 . El nuevo polinomio interpolador de Hermite
de f(x) sobre el soporte {x0, x1, ..., xk-1, xk} para los enteros {α0 , α1,..., αk −1,0} ,
que denotaremos por pmk (x) , será el (único) polinomio de grado inferior o igual
a mk que satisfaga las (mk+1) igualdades:

p(mj k (xi ) = f ( j (xi ) ( 0 ≤ j ≤ αi ; 0 ≤ i ≤ k − 1) (1.1.)

pmk (xk ) = f(xk) (1.2.)

La determinación de pm(x) puede realizarse a partir de pm-1(x) según se indica


en la propiedad siguiente:

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

donde la constante C que aparece en la expresión anterior está dada por:

116
Programación y Métodos Numéricos Interpolación polinómica

f(xk ) − pmk −1 (xk )


C= k −1

∏(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

Por tanto el grado de pmk (x) es el que se afirma en la propiedad.


Por otra parte las igualdades (1.1.) son evidentes pues:

∀(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

Además, en el punto xk se verifica la igualdad (1.2) pues:

k −1 f(xk ) − pmk −1 (xk ) k −1


pmk (xk ) = pmk −1 (xk ) + C·∏ (xk − xi )αi +1 = pmk −1 (xk ) + k −1
·∏ (xk − xi )αi +1 =
∏ ( x k − x i ) i i=0
i=0 α +1

i=0

= pmk −1 (xk ) + f(xk ) − pmk −1 (xk ) = f(xk )


c.q.d.

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

0 < i < k-1 y el punto xk una vez, al valor:

f(xk ) − pmk −1 (xk )


C= k −1

∏(x − xi )
αi +1
k
i=0

A esta diferencia dividida la denotaremos por:

117
Interpolación polinómica. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

f [ x0 (α0 + 1),x1(α1 + 1),...,xk −1(αk −1 + 1),xk (1)] .



Sea ahora {β0 ,.., βk ,..., βr } un conjunto de (r+1) enteros no nulos siendo, al
⎛ r ⎞
menos, jk>0. Denotemos por m al valor m = r + ⎜ ∑ βk ⎟ − 1 y por pm (x) al
⎝ i=0 ⎠
polinomio interpolador de Hermite de funa función f(x) sobre el soporte {x0, ...,
xk-1, xk, xk+1, ..., xr} y para los enteros {β0 ,.., βk −1, ( βk − 1) , βk +1,..., βr } . Dicho
polinomio es el único de grado menor o igual que m que satisface las (m + 1)
igualdades:

p(mj (x i ) = f ( j (x i ) ( 0 ≤ j ≤ βi; i = 0,...,k − 1,k + 1,...,r )


p(mj (x k ) = f ( j (x k ) ( 0 ≤ j ≤ βk − 1)

Procedamos entonces a determinar el polinomio interpolador de Hermite de f(x)


sobre el mismo soporte {x0, ..., xk-1, xk, xk+1, ..., xr} pero añadiendo una
condición más en las derivadas que deben hacerse coincidir en xk, es decir
para los enteros {β0 ,.., βk −1, βk , βk +1,..., βr } . Dicho polinomio, que denotaremos por
pm+1(x), es el único polinomio de grado inferior o igual a (m+1) que satisface las
(m+2) condiciones:

p(mj +1(xi ) = f ( j (x i ) ( 0 ≤ j ≤ αi; i = 0,...,k − 1,k + 1,...,n ) (2.1.)

p(mj +1(x k ) = f ( j (x k ) ( 0 ≤ j ≤ βk − 1) (2.2.)

p(mβ+k 1+1(xk ) = f ( βk +1(xk ) (2.3.)

La determinación de pm+1(x) puede realizarse según se indica en la siguiente


propiedad.

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 ⎠

donde la constante C que aparece en la expresión anterior está dada por:

f ( βk (xk ) − p(mβk (xk )


C= r
βk !·∏ ( xk − xi )
αi +1

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

Por tanto el grado de pm+1(x) es el que se afirma en la propiedad.

Por otra parte las igualdades (2.1.) son evidentes pues:

∀(s, j) / {0 ≤ j ≤ βs ,s ∈ {0,...,k − 1,k + 1,...,r}} :

⎛ ⎞
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

Asimismo las igualdades (2.2.) también se satisfacen pues:

∀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

Además también se verifica la igualdad (2.3.) pues:

r
p(mβ+k 1(xk ) = pm(βk (xk ) + C·( βk !)·∏ (xk − xi )βi +1 =
i= 0
i≠ k

f ( βk (xk ) − p(mβkk−1 (xk ) r


( βk
= p (x k ) +
m r
·(βk !)·∏ (xk − x i )βi +1 =
βk !·∏ ( xk − xi )
βi +1 i=0
r ≠k
i= 0
r ≠k

= p(mβk (xk ) + f (βk (xk ) − p(mβk (xk ) = f (βk (xk )


c.q.d.
Definición 2.
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
r

i ∈ {0,...,k − 1,k,k + 1,...,n} , al valor:

f ( βk (xk ) − p(mβk (xk )


C= r
βk !·∏ ( xk − xi )
βi +1

i=0
i≠k

A esta diferencia dividida la denotaremos por:

f [ x0 (α0 + 1),...,xk −1(αk −1 + 1),xk (βk + 1),xk +1(αk +1 + 1),...,xn (αn + 1)]

Las propiedades 1 y 2 muestran una forma de calcular el polinomio interpolador


de Hermite. De ella nos ocuparemos en el subapartado siguiente. Pero antes
de ello será necesario que examinemos algunas de las propiedades de las
diferencias divididas. La primera propiedad, que se demuestra en el teorema
siguiente, asegura la unicidad del valor de la diferencia dividida con
independencia del orden en que se tomen los puntos con que se define. Más
concretamente:

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

f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn (αn + 1)] = f ⎡⎣ x j0 (α j0 + 1),x j1 (α j1 + 1),...,x jn (α jn + 1)⎤⎦

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:

f [ x 0 (α 0 + 1),...,x n (αn + 1)]

Denotemos ahora por qm’(x) al polinomio interpolador de Hermite de la función


f(x) sobre el mismo soporte ordenado en la forma x j0 ,x j1 ,...,x jn y para los { }
enteros {α j0 }
, α j1 ,..., α jn − 1 . Según la propiedad 2 antes demostrada, el

polinomio interpolador de Hermite de la función f(x) sobre el soporte


{ } { }
x j0 ,x j1 ,...,x jn para los enteros α j0 , α j1 ,..., α jn será el polinomio qm(x) de grado

m = m’+1 dado por la expresión:

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)⎤⎦

Por la unicidad del polinomio interpolador de Hermite puede concluirse que


qm (x) ≡ pm (x) y por consiguiente los coeficientes de los términos del mismo
grado deben coincidir. Por tanto:

f [ x 0 (α 0 + 1),...,x n (αn + 1)] = 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

El teorema siguiente nos proporciona una forma cómoda de calcular las


diferencias divididas con puntos repetidos y en las que interviene más de un
punto.

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:

(x k − x i )·f [ x 0 ( j0 + 1),...,xi ( ji + 1),...,xk ( jk + 1),...,x n ( jn + 1)] =

= f [ x 0 ( j0 + 1),...,xi ( ji ),...,x k ( jk + 1),...,xn ( jn + 1)] −

− f [ x 0 ( j0 + 1),...,x i ( ji + 1),...,xk ( jk ),...,xn ( jn + 1)]


Demostración:
n
Sea m = n + ∑ ji y denotemos por pm-2(x) al polinomio de grado (m-2) que
i= 0

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)]

Incrementando ahora en una unidad el orden de derivación que se hace


coincidir en xk se tendrá el polinomio:

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)]

Podemos repetir este mismo proceso, a partir de pm-2(x), pero incrementando


primero el orden de derivación en xk y posteriormente en xi. Se tendrían así los
polinomios:
⎛ ⎞
⎜ n ⎟
rm−1(x) = pm−2 (x) + C'k ⎜ ∏ ( x − x s ) ⎟·( x − xi ) i ·( x − xk ) k
js +1 j j

⎜ 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.

Identificando ahora los coeficientes de los términos en xm-1, y teniendo en


cuenta que como se acaba de demostrar Ck = C’i, se tiene que:

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 )

Sustituyendo Ck, C’k y Ci por sus expresiones como diferencias divididas


escritas anteriormente, se tiene demostrado este teorema.
c.q.d.

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.

La segunda forma de proceder, que desarrollamos a continuación, consiste en


seguir el mismo proceso con el que se han definido las diferencias divididas en
este apartado. Para ello comencemos determinando, en el teorema siguiente,

124
Programación y Métodos Numéricos Interpolación polinómica

la expresión del polinomio interpolador cuando se tiene un único punto {xi} en el


soporte y se conocen en él los valores de una función f(x) y los de sus βi
primeras derivadas.

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)]

Si ahora contemplamos el caso en que βi = 1 el nuevo polinomio interpolador


estará dado por p1(x) = f(xi) + f’(xi)·(x-xi). Si, por analogía con el proceso
seguido anteriormente, buscamos expresar este polinomio en la forma:

p1(x) = p0(x) + f[xi(2)]·(x-xi) = f(xi) + f[xi(2)]·(x-xi)

deberemos definir la diferencia dividida f[xi(2)] como f[xi(2)] = f’(xi), con lo que:

p1(x) = f[xi(1)] + f[xi(2)]·(x-xi)

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

Procedamos por recurrencia, admitiendo26 que para algún valor (k-1) el


polinomio interpolador de Hermite de f(x) sobre el soporte {xi} para el entero
(k-1):

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

Se tiene entonces que el polinomio interpolador de Hermite de f(x) sobre el


soporte {xi} para el entero k:

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

sin más que denominar diferencia dividida f[xi(k+1)] al valor:

1 (k
f [ xi (k)] = f (xi )
k!

Las definiciones y propiedades anteriores justifican el uso de tablas de


diferencias divididas análogas a las desarrolladas para el cálculo del polinomio
interpolador de Lagrange mediante la fórmula de Newton. En la página
siguiente se recoge un ejemplo de tal tipo de tablas, para el caso concreto de
una interpolación de Hermite sobre un soporte con tres puntos {x0, x1, x2} y para
los valores {3, 1, 2}.

En el subapartado siguiente, tras concretar la fórmula generalizada de Newton


desarrollaremos algún ejemplo concreto.

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!

x1 f(x1) f[x0(1),x1(1)] f[x0(2),x1(1)] f[x0(3),x1(1)] f[x0(4),x1(1)]

x1 ---- f’(x1) f[x0(1),x1(2)] f[x0(2),x1(2)] f[x0(3),x1(2)] f[x0(4),x1(2)]

x2 f(x2) f[x1(1),x2(1)] f[x1(2),x2(1)] f[x0(1),x1(2),x2(1)] f[x0(2),x1(2),x2(1)] f[x0(3),x1(2),x2(1)] f[x0(4),x1(2),x2(1)]

x2 ---- f’(x2) f[x1(1),x2(2)] f[x1(2),x2(2)] f[x0(1),x1(2),x2(2)] f[x0(2),x1(2),x2(2)] f[x0(3),x1(2),x2(2)] f[x0(4),x1(2),x2(2)]

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

3.4.3. La fórmula de Newton para el cálculo del polinomio interpolador de


Hermite.
El uso del teorema 10 del subapartado anterior así como el uso reiterado de las
propiedades 1ª y 2ª allí demostradas nos permite expresar el polinomio
interpolador de Hermite de una función f(x) sobre el soporte {x0, x1, x2, ..., xn}
para los enteros {α 0 , α1, α 2 ,..., αn } en la forma:

pm (x) = f [ x 0 (1)] + f [ x 0 (2)]·(x − x 0 ) + f [ x 0 (3)]·(x − x 0 )2 + ... + f [ x 0 (α 0 + 1)]·(x − x 0 )α0 +

+ 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 +

+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (1)]·( x − x 0 )


α0 +1
(x − x1 )α1 +1 +

+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (2)]·( x − x 0 )


α0 +1
(x − x1 )α1 +1(x − x 2 ) +

+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (3)]·( x − x 0 )


α0 +1
(x − x1 )α1 +1(x − x 2 )2 + .... +

+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (α 2 + 1)]·( x − x 0 )


α0 +1
(x − x1 )α1 +1(x − x 2 )α2 +

+ ............................................................................................. +

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

La fórmula anterior puede escribirse más abreviadamente como:

α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 ⎠

que se conoce con el nombre de fórmula de Newton para el cálculo del


polinomio interpolador de Hermite (o fórmula generalizada de interpolación
de Newton).

En ella puede apreciarse que los únicos valores de la tabla de diferencias


divididas que intervienen son los ubicados en el extremo derecho de cada fila.
Los restantes valores de la tabla sólo son utilizados para calcular los que
intervienen en esta fórmula.

Ilustremos el uso de la fórmula con un ejemplo:

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:

f(-π/2) = -1 (= f[x0(1)]), f’(-π/2) = 0 (= f[x0(2)]) , (½)·f”(-π/2) = ½ (= f[x0(3)])

( 13! ) f '''( −π 2 ) = 0 (= f[x0(4)])


f(0) = 0 (= f[x1(1)])

f(π/2) = 1 (= f[x2(1)]) , f’(π/2) = 0 (= f[x2(2)]), (½)·f”(π/2) = -½ (= f[x2(3)])

Con estos valores podemos calcular las diferencias divididas:

f [ x1(1)] − f [ x 0 (1)] 0 − ( −1) 2


f [ x 0 (1),x1(1)] = = =
x1 − x 0 π
2 π
f [ x 0 (1),x1(1)] − f [ x 0 (2)] (2π) − 0 = 4
f [ x 0 (2),x1(1)] = =
x1 − x 0 π
2 π2

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 [ x1(1),x 2 (1)] − f [ x 0 (1),x1(1)] ( 2π) − (2π) = 0


f [ x 0 (1),x1(1),x 2 (1)] = =
x 2 − x0 π

f [ x 0 (1),x1(1),x 2 (1)] − f [ x 0 (2),x1(1)] 0 − ( 4 π2 ) 4


f [ x 0 (2),x1(1),x 2 (1)] = = =−
x2 − x0 π π3

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 2 (2)] − f [ x1(1),x 2 (1)] (0) − ( 2 π ) = − 4


f [ x1(1),x 2 (2)] = =
x 2 − x1 π
2 π2

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 π

f [ x 0 (2), x1(1),x 2 (2)] − f [ x 0 (3),x1(1),x 2 (1)] 0 − ( − 12 π4 + 1


) = 12 − 1
f [ x 0 (3),x1(1), x 2 (2)] = = π2

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

f [ x 2 (3)] − f [ x1(1),x 2 (2)] ( − 12 ) − ( − 4 π ) 8 1


f [ x1(1),x 2 (3)] =
2
= = −
x 2 − x1 π
2 π3 π

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 π

f [ x 0 (3), x1(1),x 2 (3)] − f [ x 0 (4), x1(1),x 2 (2)] 0 − ( 30 π6 − 4


) = − 40 + 4
f [ x 0 (4),x1(1), x 2 (3)] = = π4

x2 − x0 π π7 π5

La tabla siguiente recoge los valores numéricos de estas diferencias divididas.

−π
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

A partir de la tabla anterior, usando la formula de Newton, se obtiene el


polinomio interpolador de Hermite de la función sen(x) sobre el soporte
{−π 2 ,0, π 2} y para los enteros {3, 0, 1} :

p7 (x) = -1 + 0·( x + π 2 ) + 12·( x + π 2 ) + 0·( x + π 2 ) + ( 16 π4 − )·( x + )


2 3 4
2
π2
π
2 +

+ ( -28 π5 + )·( x + ) ·x + ( − 4 π4 )·( x + π 2 ) ·x·( x − π 2 ) +


4 4
3 π 40
π3 2 π6

+ ( -40 π7 + )·( x + ) ·x·( x − ) 4 2


4
π5
π
2
π
2 ⇒

⇒ 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

La figura siguiente muestra el grafo de sen(x) y de p7(x) observándose en ella


la “buena coincidencia” en el intervalo [ −π 2 , π 2 ] entre la función sen(x) y su
polinomio interpolador.

sen(x)
p7(x)

Para poder apreciar mejor la diferencia (sen(x) – p7(x)) se recoge en la figura


siguiente la gráfica de este error (inferior en valor absoluto a 3·10-5 en todo el
intervalo [ −π 2 , π 2 ] ).

132
Programación y Métodos Numéricos Interpolación polinómica

Ejercicio propuesto:

Escribe un programa (en MAPLE, MATLAB, FORTRAN, C++, o en el lenguaje


de programación que mejor conozcas) para:
a) Calcular la tabla de diferencias finitas generalizadas

b) Calcular el polinomio interpolador de Hermite sobre un soporte de (n+1)


puntos y para (n+1) enteros no negativos dados

c) Utiliza dicho programa para calcular el polinomio interpolador de Hermite


de la función de Runge f(x) = (1 + x2)-1 sobre el soporte {-8, -4, 0, 5, 10}
para los enteros { 1, 2, 3, 2, 1}.

d) Representa en el intervalo [-10, 10] la función de Runge y su polinomio


interpolador.

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.

Consideraremos en todo este subapartado que f(x) es una función diferenciable


en todos los puntos de un intervalo (a, b). Comencemos considerando un punto
x* de (a, b) y, siendo h un valor no nulo, un soporte formado por los dos puntos
{x*, x*+h}. Según se definió en el apartado 5º la diferencia dividida (clásica) en
este soporte está dada por:

f(x * +h) − f(x*)


f[x*, x*+h] =
h

por lo que:

f(x * +h) − f(x*)


f[x*,x*] = lim f[x*,x * +h] = lim = f '(x*)
h →0 h→0 h

De esta forma es natural introducir la definición siguiente:

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:

f[xi, xi] = f’(xi)


Generalicemos el proceso anterior suponiendo ahora que la función f(x) es n


veces diferenciable en el intervalo (a, b) y, siendo h un valor no nulo,
consideremos el soporte formado por los (n+1) puntos {x0 = x*, x1 = x*+h, ....,
xn = x*+n·h} todos ellos pertenecientes al intervalo (a, b). Se tiene, por
recursión que:

134
Programación y Métodos Numéricos Interpolación polinómica

f [ x*,x * +h,...,x * +(n − 1)·h,x * +n·h] =

f [ x * +h,...,x * +(n − 1)·h,x * +n·h] − f [ x*,x * +h,...,x * +(n − 1)·h,]


= =
n·h

1 ⎡ f [ x * +2·h,...,x * +n·h] − f [ x * +h,...,x * +(n − 1)·h]


= ·⎢ −
n·h ⎣ (n − 1)·h

f [ x * +h,...,x * +(n − 1)·h] − f [ x*,...,x * +(n − 2)·h] ⎤


− ⎥ =
(n − 1)·h ⎦

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⎠ ⎠

Por otra parte, al haber supuesto que f era n veces continuamente


diferenciable, la fórmula del desarrollo en serie de Taylor nos permite escribir
que:

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!

Entrando con estos desarrollos en la expresión de la diferencia dividida se tiene


que:

n!· f [ x*,x * +h,...,x * +(n − 1)·h,x * +n·h] =

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!

Si se hace tender h hacia 0, todos los puntos xi = x*+i·h tenderán a x* y además


todos los puntos ξi ∈ [ x*,x * +(n − i)·h] también tenderán a x*. Ello nos conduce
a que, tomando límites, se verifica:

⎛ 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! ⎠

por lo que, finalmente se tiene que:


f (n (x*)
f[x*, x*, …..,x*,x*] =
n!
(n+1) veces

De esta forma es natural introducir la definición siguiente:

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.

Ocupémonos, por último, de demostrar los lemas utilizados anteriormente para


definir la diferencia dividida f[xi(k+1)].

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

Particularizando esta expresión para m = n se tiene que:

n
n!
∑ (−1) ·(n − i)!·i!
i=0
i
=0

lo que demuestra la primera de las igualdades de esta propiedad.

Obsérvese además que la igualdad que se acaba de demostrar es un caso


particular de la segunda igualdad dada en el enunciado (obtenida para j = 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!

en donde, habida cuenta de la suposición realizada, en el caso m = n, el primer


sumatorio es nulo por lo que:

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!

en donde, volviendo a utilizar la suposición de la que se partió, ahora con


m = (n-1), se puede concluir que:

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

igualdad que, en el proceso de inducción seguido, se utilizó para m = n y para


m = (n-1). Ello nos obliga a que n sea mayor o igual que 2 (pues si n fuese 1 la
hipótesis no sería cierta ya que estaríamos admitiendo que 00 = 0). Es por ello
que, detallando el proceso de inducción para los primeros valores de n se tiene:

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

Ello justifica que en la igualdad de la propiedad anterior los valores de j deban


estar comprendidos entre 0 < j < (n-1). Para el caso j = n el valor del sumatorio
correspondiente se recoge en el lema siguiente.

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

Se tendrá entonces que:


n
n! (n − i)n n
n! (n − i)(n−1)

i=0
( −1)i
· ·
(n − i)!·i! n!
= ∑ (−1)i·
i=0 (n − i)!·i!
·
n!
·(n − i) =

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!

Por el lema 1º demostrado anteriormente resultará que el primer sumatorio de


la expresión anterior es nulo. Por tanto:

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)!

lo que, según la hipótesis que hemos realizado, demuestra que:

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

BIBLIOGRAFÍA SOBRE EL TEMA

[1] Burden, R.L. y Fiares, J.D. (1998). Análisis Numérico. Ed. International
Thomsom Editores

[2] Crouzeix, M. et Mignot, A.L. (1983) Analyse numérique des équations


differentielles. Ed. Masson.

[3] Gasca, M. (1995) Cálculo Numérico I. Ed. Universidad Nacional de


Educación a Distancia (UNED).

[4] Michavila, F. y Conde, C. (1987) Métodos de Aproximación. Ed. Depto. de


Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad
Politécnica de Madrid.

[5] Sanz-Serna, J.M (1998 ) Diez lecciones de análisis numérico. Secretariado


de Publicaciones de la Universidad de Valladolid

[6] Shampine, L.F., Allen Jr., R.C. and Pruess, S. (1997) Fundamentals of
numerical computing. Ed. John Wiley & Sons, Inc.

[7] Stoer, J. and Bulirsch, R. (1993) Introduction to numerical analysis (2nd


edition). Ed. Springer

[8] Viaño, J.M. y Burguera, M. (2000) Lecciones de Métodos Numéricos, 3:


Interpolación. Ed. Tórculo

142
UNIVERSIDAD POLITÉCNICA DE MADRID

ESCUELA TÉCNICA SUPERIOR DE


INGENIEROS DE MINAS

DEPARTAMENTO DE MATEMÁTICA APLICADA Y


MÉTODOS INFORMÁTICOS

Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS

Tema: INTERPOLACIÓN DE LAGRANGE


POLINÓMICA POR TRAMOS
Prof. Carlos Conde Lázaro
Prof. Arturo Hidalgo López
Prof. Alfredo López Benito

Marzo, 2007
ÍNDICE
Pág.
1. MOTIVACIÓN. ………………………………………………………… 1

2. INTERPOLACIÓN DE LAGRANGE POLINÓMICA POR TRAMOS. 9


2.1. Espacios de Lagrange de funciones polinómicas por
tramos. ………………………………………………………. 9
2.2. Interpolación de Lagrange con funciones polinómicas de
primer grado por tramos. …………………………………. 28
2.3. Interpolación de Lagrange con funciones polinómicas de
segundo grado por tramos. ………………………………. 50
2.3. Interpolación de Lagrange con funciones polinómicas por
tramos: caso general. …….………………………………. 78

BIBLIOGRAFÍA SOBRE EL TEMA. …………………………………….. 91

ii
Programación y Métodos Numéricos Interpolación polinómica por tramos

1. Motivación

Considérese la función f(x) = (1+x2)-1/2 . El grafo de esta función en el


intervalo [-8, 8] se recoge en la figura siguiente:

Su polinomio interpolador de Lagrange, p4(x), sobre un soporte


equidistante que esté formado por los 5 puntos {-8, -4, 0, 4, 8} tiene el grafo
que se muestra en la figura siguiente:

La menor cota del valor absoluto del error de interpolación en el intervalo


[-8, 8] es |f(x) – p4(x)| ≤ 0.3768.... ≈ 0.38 ∀x ∈ [−8,8 ] .

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

Estas figuras ponen de manifiesto que en este caso un aumento del


número de puntos del soporte de interpolación, lejos de disminuir la cota del
error de interpolación, conduce a cotas de error que son mayores que en el
caso del soporte con 5 puntos. El motivo de que así suceda radica en que los
polinomios de grado elevado pueden presentar comportamientos muy
oscilantes si poseen un número “elevado” de raíces en intervalos relativamente
“pequeños”. En este sentido parece aconsejable evitarlos cuando se interpolan
funciones que tengan un comportamiento “suave”.

Pero incluso cuando se interpolan funciones con comportamientos


oscilatorios también pueden ser desaconsejables los polinomios de grado
elevado. Ejemplo de ello son los polinomios representados en la figura
siguiente que interpolan a la función f(x) = sen( π·x 2 ) (dibujada en rojo) en el
intervalo [0, π ] utilizando soportes equidistantes con 5 , 9 y 17 puntos y en los
que el primer punto es siempre 0 y el último π .

Nuevamente puede apreciarse como el incremento del número de


puntos del soporte de interpolación no implica reducciones en la cota de error si
no, al contrario, incrementa dicha cota.

3
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Para mejorar la precisión, tal y como se indicó en el tema dedicado al


estudio de la interpolación polinómica de Lagrange hay dos vías: 1ª) ubicar los
puntos del soporte de manera más eficiente (como se logra, por ejemplo,
utilizando los soportes de Chebyshev introducidos al estudiar la interpolación
de Lagrange), y 2ª) realizar el proceso de interpolación por tramos. Esta
segunda forma de proceder es la que se desarrolla en el presente tema.

Antes de profundizar en ella observemos que la función considerada


inicialmente, f(x) = (1+x2)-1/2 , es interpolada sobre el soporte {-8, -4} por el
1 ⎛⎜ 1 ⎞ 1 ⎛⎜ 1 ⎞
polinomio v (1) (x) = − ⎜⎜ x + 1⎟⎟⎟ + ⎜⎜ x + 2⎟⎟⎟ . Representando el gráfico de
65 ⎝ 4 ⎠ 17 ⎝ 4 ⎠
f(x) y de v(1)(x) en el intervalo [-8, 4] se tiene la figura siguiente:

Análogamente el polinomio v(2)(x) que interpola a f(x) sobre el soporte


1 ⎛⎜ 1 ⎞⎟ ⎛⎜ x ⎞
⎜⎜ x⎟⎟ + ⎜⎜ + 1⎟⎟⎟ . Las gráficas de f(x) y de v (x) en el
(2)
{-4, 0} es v (2) (x) = −
17 ⎝ 4 ⎠ ⎝ 4 ⎠
intervalo [-4, 0] son la que se muestran en la figura siguiente:

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.

Finalmente, el polinomio v(4)(x) que interpola a f(x) sobre el soporte {4, 8}


1 ⎛⎜ x⎞ 1 ⎛⎜ x ⎞⎟
⎜⎜2 − ⎟⎟⎟ +
(4)
es v (4) (x) = ⎜⎜ − 1⎟⎟ y las gráficas de f(x) y de v (x) son las
17 ⎝ 4⎠ 65 ⎝ 4 ⎠
que se recogen en la figura siguiente:

Si consideramos entonces una función v(x) definida por tramos en el


intervalo [-8, 8] de la forma:

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

es evidente que dicha función satisface v(xi) = f(xi) ∀x i ∈ {−8,−4,0,4,8} . En


otros términos la función v(x) interpola en el sentido de Lagrange a f(x) sobre el
soporte {-8, -4, 0, 4, 8}.

Obsérvese que la función v(x) no es un polinomio. Cada uno de los 4


tramos usados para definirla es un polinomio de primer grado, pero en su
conjunto la función v(x) no lo es. Asimismo podemos observar que v(x) es una
función continua (no presenta “saltos”) en el intervalo ]-8 , 8[ .

La figura siguiente recoge, en el intervalo [-8, 8] los gráficos de v(x) y de


f(x), gráficos que pueden considerarse la “unión” de los 4 gráficos anteriores.

La cota del error de interpolación |E(x)| = |f(x) – v(x)| en el intervalo [0, 8]


se determinará en este caso como la mayor de las cotas de los errores de
interpolación en cada tramo. Así es fácil demostrar que:

6
Programación y Métodos Numéricos Interpolación polinómica por tramos

|f(x) – v(1)(x) | ≤ 0.02 ∀x ∈ [−8,−4 ]


|f(x) – v(2)(x) | ≤ 0.18 ∀x ∈ [−4,0 ]
|f(x) – v(3)(x) | ≤ 0.18 ∀x ∈ [0,4 ]
|f(x) – v(1)(x) | ≤ 0.02 ∀x ∈ [ 4,8 ]

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] ⎪⎭⎪

= Sup {0.02, 0.18, 0.18, 0.02} = 0.18

Puede comprobarse como, actuando por tramos, hemos logrado reducir


la cota de error de interpolación obteniendo una función que, pese a no ser un
polinomio, es fácil de manipular (pues en cada uno de los tramos está definida
por una expresión polinómica) y muy sencilla de calcular (pues en cada tramo
el cálculo de su expresión se reduce a seguir un proceso de interpolación con
un “bajo” número de puntos de soporte).

El ejemplo que se acaba de desarrollar es un caso particular de lo que


se conoce como interpolación polinómica por tramos (o “a trozos”). En
general se denomina así a todo proceso de interpolación (ya sea de Lagrange
o ya sea de Hermite) en el que la función interpoladora se define por tramos a
partir de los polinomios interpoladores resultantes en cada uno de los
subintervalos en que se subdivida el intervalo al que pertenezcan los puntos del
soporte original. Si los subintervalos que se escojan no tienen por extremos
puntos del soporte no se garantizará la continuidad de la función interpoladora.
Si por el contrario los subintervalos se construyen de forma tal que sus
extremos son puntos del soporte, la función interpoladora v(x) será continua
(aun en el caso de que la función que se interpola, f(x), no lo sea). En estos
apuntes nos consideraremos sólo esta segunda situación, es decir que nos
centraremos en la búsqueda de funciones interpoladoras que sean continuas
en el intervalo en el que se interpola.

Por otra parte, el grado de las expresiones polinómicas que definen a la


función interpoladora v(x) en cada tramo se relacionará con el número de
puntos de soporte en cada subintervalo y con las condiciones (igualdades de

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.

En los apartados que siguen analizaremos el proceso de interpolación


por tramos, refiriéndonos al caso de interpolación de Lagrange en el que sólo
se obliga a que la función a interpolar, f(x), y la función interpoladora, v(x),
tomen los mismos valores en los puntos del soporte. Este tipo de interpolación
puede generalizarse con interpolación de tipo Hermite (en el que en cada punto
del soporte se hacen coincidir el valor de f(x) y de v(x) así como el de las
derivadas de ambas funciones hasta un grado prefijado). También existen otros
tipos de interpolación por tramos que no contemplamos en estos apuntes como
es la interpolación spline, en la que obligando a la coincidencia de valor de las
funciones f(x) y v(x) en todos los puntos del soporte más a alguna coincidencia
del valor de las primeras derivadas en alguno de los puntos del soporte se
pueden obtener funciones polinómicas por tramos continuas y con mayor
regularidad (como por ejemplo con las primeras derivadas de la función
interpoladora continuas en todo el intervalo en el que se realice la
interpolación).

El planteamiento general de la interpolación por tramos nos obligará a


tener que complicar la notación con subíndices y superíndices. Esperamos que
esta complejidad en la notación no hagan perder al lector la simplicidad de la
idea que subyace en el proceso de interpolación por tramos y que hemos
intentado plasmar en el ejemplo de motivación desarrollado anteriormente:
realizar en cada tramo una interpolación de Lagrange o Hermite con pocos
puntos del soporte.

1
Consúltese el tema anterior para mayor detalle.

8
Programación y Métodos Numéricos Interpolación polinómica por tramos

2. Interpolación de Lagrange polinómica por tramos.

2.1. Espacios de Lagrange de funciones polinómicas por tramos.


Al estudiar los procesos de interpolación polinómica en el tema anterior
buscábamos polinomios interpoladores del grado “adecuado”, es decir
funciones interpoladoras que pertenecieran al espacio vectorial formado por
todos los polinomios de grado menor o igual que un cierto valor entero “m”. De
forma análoga, al enfrentarnos ahora al proceso de interpolación de Lagrange
por tramos debemos concretar, en primer lugar, los espacios vectoriales en los
que se buscarán las funciones interpoladoras.

Una diferencia notable entre los procesos de interpolación polinómica


abordados en el tema anterior y los de interpolación polinómica por tramos que
consideraremos aquí es que mientras los espacios de polinomios están
formados por funciones (los polinomios) definidas sobre toda la recta real los
espacios de funciones interpoladores que consideraremos en este tema están
formados por funciones definidas sólo en un cierto intervalo [x0, xn] y vinculados
a una “partición” de dicho intervalo. Es por ello que antes de introducir estos
espacios recordaremos algunos aspectos sobre las particiones.

Dado un intervalo I = [x0, xn] denominaremos partición de I a cualquier


subdivisión del mismo en k subintervalos I1 = [x0, a1] , I2 = [a1, a2], ......,
Ik = [ak-1, xn] tales que:

k
• su unión coincida con [x0, xn]: ∪ Ij ≡ [ x 0 ,xn ]
j=1

• la intersección del interior de dos subintervalos distintos cualesquiera


sea siempre vacía: I j ∩ Ii = {∅} 1 ≤ i, j ≤ k, i ≠ j .

Entre las infinitas particiones posibles que se podrían realizar en un


intervalo [x0, xn] nos interesaremos sólo por aquellas que se realizan utilizando
como extremos de los subintervalos Ij puntos de un soporte {x0, x1, ..., xn}
previamente definido en [x0, xn]. A tales particiones las denotaremos como
∆ = {I1, I2, ..., Ik}.

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

la expresión de la función en ese intervalo sin importarnos lo que suceda fuera


de él. En ese sentido consideraremos como la misma función a todas aquellas
que tengan la misma expresión en [x0, xn] aunque difieran fuera de este
intervalo (2).

Comencemos definiendo el espacio que denotaremos por L1(∆) . Para


ello sea {x0, x1,....., xn} un soporte formado por (n+1) puntos distintos que
supondremos ordenados de menor a mayor y consideremos la partición del
intervalo [x0, xn] dada por:

∆ = {I1 = [ x 0 ,x1 ],I2 = [ x1,x 2 ],...,Ii = [ xi−1,xi ],...,In = [ xn−1,xn ]}

Para esta partición ∆ denominaremos espacio de Lagrange asociado a


la partición ∆, y lo representaremos como L1(∆), al conjunto formado por
todas las funciones continuas(3) en [x0, xn] tales que en cada intervalo
Ii (i = 1, ..., n) tienen una expresión polinómica de grado menor o igual a
uno(4). En otros términos el espacio L1(∆) está formado por todas aquellas
funciones u(x) que son continuas en [x0, xn] y tales que, para todo valor del
índice “i” comprendido entre 1 y n, existe algún polinomio de grado inferior o
igual a 1, p1,i(x), verificando que la expresión de u(x) en el intervalo Ii coincide
con la de p1,i(x):

L1(∆) = {u(x) ∈ C0 ([ x 0 ,xn ]) / ∀x ∈ Ii : u(x) ≡ p1,i (x) ∈ P1 (1 ≤ i ≤ n)}

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).

Ilustrémoslo con algunos ejemplos.

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]}

1º) La función f(x) = x es una función de L1(∆) pues es continua en [0, 9] y en


cada uno de los subintervalos Ii ( I = 1, 2, 3, 4, 5) su expresión es un polinomio
de grado 1 (el polinomio p1,i(x) = x).

2º) La función f(x) = x2 no pertenece a L2(∆) pues aunque es continua en [0, 9]


su expresión en cada subintervalo no es un polinomio de grado menor o igual
que 1(en todos los subintervalos es el polinomio de 2º grado x2).

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

función no es continua en [0, 9] al presentar un “salto” entre el límite por la


izquierda y el límite por la derecha cuando x tiende a 3.

⎧⎪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.

La partición considerada para definir el espacio L1(∆) utiliza subintervalos


Ii = [xi-1, xi] (i = 1, ..., n) tales que en cada uno de ellos sólo hay dos puntos del
soporte, precisamente sus extremos xi-1 y xi. El hecho de que sólo existan dos
puntos del soporte en cada subintervalo obliga a que en cada uno de ellos sólo
se pueda interpolar con polinomios de grado menor o igual que 1.

Pero, obviamente, podrían considerarse otras particiones diferentes. En


efecto, supongamos por ejemplo que n es un número par y consideremos la
partición ∆ siguiente:

∆ = {I1 = [ x 0 ,x 2 ],I2 = [ x 2 ,x 4 ],...,Ii = ⎡⎢⎣ x 2(i−1) ,x 2i ⎤⎥⎦ ,...,In 2 = [ xn−2 ,xn ]}

13
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Ahora en cada subintervalo Ii = [x2(i-1) , x2i] (i = 1, ..., n/2) existen tres


puntos del soporte: x2(i-1), x2(i-1) y x2i. Por ello en cada subintervalo podremos
interpolar con un polinomio de grado menor o igual que 2. Es por ello natural
definir espacio de Lagrange asociado a la partición ∆, que representaremos
por L2(∆), como el espacio formado por todas las funciones continuas(5) en el
intervalo [x0, xn] tales que en cada intervalo Ii (i = 1, ..., n/2) tienen una
expresión polinómica de grado menor o igual a dos(6). En otros términos el
espacio L2(∆) está formado por todas aquellas funciones u(x) que son
continuas en [x0, xn] y tales que, para todo valor del índice “i” comprendido
entre 1 y n/2, existe algún polinomio de grado inferior o igual a 2, p2,i(x),
verificando que la expresión de u(x) en el intervalo Ii coincide con la de p2,i(x):

L 2 (∆) = {u(x) ∈ C0 ([ x 0 ,xn ]) / u(x) ≡ p2,i (x) ∈ P2 ∀x ∈ Ii , 1 ≤ i ≤ n 2}

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

aunque su expresión en cada uno de los tres subintervalos es un polinomio de

15
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

grado menor o igual que dos, no es continua en el intervalo [0, 10]


(presentando un “salto” en el punto x = 3).

Obviamente existen muchas otras posibilidades para realizar la partición


del intervalo [x0, xn]. En general, siendo k un entero positivo, y dados k enteros
positivos m1, m2, ... y mk, tales que su suma sea n, supondremos que en el
soporte {x0, ..., xn} hay (m1 + m2 + ... + mk +1) = (n+1) puntos distintos y
ordenados de menor a mayor, escribiendo, según convenga en cada caso, el
soporte con alguna de las tres notaciones equivalentes siguientes:

{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,...,xm1,1,x1,2 ,...,xm2 ,2 ,x1,3 ,...,xm3 ,3 ,.....,xmk−1,k−1,x1,k ,...,xmk ,k }

{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

Obsérvese que la diferencia entre las dos últimas notaciones es que,


para 1 < j < k, denotaremos indistintamente a los puntos xm1+m2 +..+mj como xm j ,j
o como x 0,j+1 según consideremos que dicho punto es el último punto del
soporte del intervalo Ij o el primero de los puntos del soporte de Ij+1.

Con estas notaciones designaremos por ∆ a la partición del intervalo


[ x 0 ,xn ] en los k subintervalos Ij = ⎡⎢⎣ x 0,j ,xmj ,j ⎤⎥⎦ (j = 1, ..., k). De esta manera al
subintervalo Ij pertenecen (mj + 1) puntos del soporte.

La figura siguiente ilustra estas notaciones en el caso de un soporte con 16


puntos y una partición en la que el intervalo se subdivide en k = 6 subintervalos

16
Programación y Métodos Numéricos Interpolación polinómica por tramos

habiendo 4 puntos en el primero, 2 en el segundo, 5 en el tercero, 3 en el


cuarto, 4 en el quinto y 3 en el sexto (es decir que m1 = 3, m2 = 1, m3 = 4,
m4 = 2, m5 = 3 y m6 = 2).

I1 I2 I3 I4 I5 I6

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15


x0,1 x1,1 x2,1 x3,1 x0,3 x1,3 x2,3 x3,3 x4,3 x0,5 x1,5 x2,5 x3,5
x0,2 x1,2 x0,4 x1,4 x2,4 x0,6 x1,6 x2,6

Con la partición ∆ así formada en el subintervalo Ij = ⎡⎢ x 0,j ,xm j ,j ⎤⎥ ( j = 1, ..,


⎣ ⎦
k) puede interpolarse en el sentido de Lagrange con un polinomio de grado
menor o igual que mj. Por ello denominaremos espacio de Lagrange
asociado a la partición ∆, y lo representaremos por Lm1 ,m2 ,..,mk ( ∆ ) , al espacio
formado por todas las funciones continuas en el intervalo [ x 0 ,x n ] tales que
en cada intervalo Ij (j = 1, ..., k) tienen una expresión polinómica de grado
menor o igual a mj. En el caso en que todos los índices m1, m2 , ..., mk tengan
el mismo valor (m1= m2 = ...= mk = m) el espacio se denotará más brevemente
por Lm(∆).

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]}

el número de puntos del soporte existente en cada subintervalo y el grado


máximo de los polinomios interpoladores de Lagrange que con ellos se pueden
obtener se recogen en la tabla siguiente:

17
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Intervalo Nº de puntos soporte Grado polinomio


I1 = [0, 3] 4 3
I2 = [3, 4] 2 1
I3 = [4, 8] 5 4
I4 = [8, 10] 3 2
I5 = [10, 13] 4 3
I6 = [13, 15] 3 2

Por tanto el espacio L3,1,4,2,3,2(∆) será el espacio formado por todas aquellas
funciones continuas en [0, 15] y que

• en [0, 3] se definan con un polinomio de grado menor o igual que 3,


• en [3, 4] se definan con un polinomio de grado menor o igual que 1,
• en [4, 8] se definan con un polinomio de grado menor o igual que 4,
• en [8, 10] se definan con un polinomio de grado menor o igual que 2,
• en [10, 13] se definan con un polinomio de grado menor o igual que 3, y
• en [13, 15] se definan con un polinomio de grado menor o igual a 2.

Por ejemplo, la función

⎪⎧⎪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 ⎪

de la que se recoge su grafo en la figura siguiente, es una función del espacio


L3,1,4,1,3,2(∆) pues es continua en el intervalo [0, 15] (obsérvese que sus únicos
puntos de discontinuidad se producen por la diferencia entre el valor de f(15) y
el límite cuando x tiende a 15 por la derecha y en x = 20, estando ambos casos
fuera del intervalo [0, 15]) y en cada uno de los subintervalos de la partición ∆
tiene una expresión polinómica de grado menor o igual a los señalados

18
Programación y Métodos Numéricos Interpolación polinómica por tramos

anteriormente (obsérvese que las expresiones no polinómicas tienen lugar


fuera de [0, 15])(7).

Una vez introducidos los espacios de funciones polinómicas por tramos


que se utilizan en la interpolación de Lagrange examinemos algunas
propiedades de ellos. En primer lugar demostremos que estos espacios de
funciones tienen efectivamente una estructura de espacio vectorial(8).

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 ⎪⎪⎪⎭

Designemos entonces por w(x) a la función que se obtiene mediante:


w(x) = λ·u(x) + µ·v(x) . Obviamente w(x) es una función continua(9). Además en
cualquier subintervalo Ij (j = 1, ..., k) de la partición ∆ la función w(x) estará
definida por:
w ( j) (x) = λ·u( j) (x) + µ·v ( j) (x) ∀x ∈ I j

Y puesto que el producto de un escalar (λ o µ ) por un polinomio de


grado menor o igual que mj (u(j)(x) o v(j)(x) respectivamente) es un polinomio de
grado menor o igual que mj y la suma de dos polinomios de grado menor o
igual que mj ( (λ·u( j) (x)) y (µ·v ( j) (x)) ) es otro polinomio de grado menor o igual
que mj, podemos concluir que w(j)(x) es un polinomio de grado menor o igual
que mj. Por tanto w(x) ∈ Lm1,m2 ,...,mk (∆) .
c.q.d.

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:

dim (Lm1,m2 ,...,mk ) = n + 1


k
donde n = ∑ mk
j=1

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

la expresión u(2)(x) para el tramo I2 pues en el punto que separa ambos


subintervalos debe garantizarse la igualdad de valor. Este razonamiento
muestra que en conjunto habrá tantas restricciones como extremos comunes
de subintervalos contiguos, es decir (k-1). En resumen, la funciones del
⎡ k ⎤ ⎡ k ⎤
espacio Lm1,m2 ,...,mk (∆) presentan ⎢⎢ ∑ (m j + 1) − (k − 1)⎥⎥ = ⎢⎢ ∑ (m j ) + 1)⎥⎥ grados de
⎣ j=1 ⎦ ⎣ j=1 ⎦
k
libertad por lo que llamando n = ∑ mk queda demostrado que la dimensión
j=1

del espacio es n+1.


c.q.d.

El hecho de que Lm1,m2 ,...,mk (∆) sea un espacio vectorial de dimensión


(n+1) implica que toda función de dicho espacio podrá expresarse como una
combinación lineal de una base de Lm1,m2 ,...,mk (∆) formada por (n+1) funciones.
En este sentido el teorema siguiente nos determina una base de Lm1,m2 ,...,mk (∆)
que nos será de utilidad en los apartados siguientes.

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

[ x0, xn] en los k subintervalos:

I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ , I2 = ⎡⎢ xm1 ,xm1+m2 ⎤⎥ , .….., Ik = ⎡⎢ xm1+m2 +...+mk −1 ,xn ⎤⎥


⎣ ⎦ ⎣ ⎦ ⎣ ⎦

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).

En la primera de estas situaciones se verificará que (m1+...+ms-1) < j <


(m1+...+ms-1 + ms) y basta con considerar que los polinomios p j,r (x) que definen
a la función ϕ j (x) en los intervalos Ir son todos nulos si r ≠ s mientras que
pj,s(x) es el polinomio interpolador de Lagrange obtenido al interpolar sobre el
soporte {xm1+...+ms−1 ,...,x j−1,x j ,x j+1,...,xm1+...+ms−1+ms } cualquier función que en

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 (∆) .

En la segunda de las situaciones se verificará que (m1+...+ms-1) = j y basta con


considerar que los polinomios p j,r (x) que definen a la función ϕ j (x) en los
intervalos Ir son todos nulos si r ∉ {s-1, s} mientras que pj,s-1(x) es el polinomio
interpolador de Lagrange obtenido al interpolar sobre el soporte
{xm1+...+ms−2 ,...,xm1+...+ms−1+ms−1−1,xm1+...+ms−1+ms−1 } cualquier función que en dichos
puntos tome los valores {0, ..., 0, 1} y pj,s(x) es el polinomio interpolador de
Lagrange obtenido al interpolar sobre el soporte
{xm1+...+ms−1 ,xm1+...+ms−1+1,...,xm1+...+ms−1+ms } cualquier función que en dichos puntos
tome los valores {1, 0 ..., 0} . Estos polinomio tendrán respectivamente grados
menores o iguales que ms-1 y que ms. Además por la forma en que se han
construido se verifica que:

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

En resumen, en cualquier caso existen (n+1) funciones del espacio que


toman los valores dados en el enunciado.

b) Demostremos ahora que las (n+1) funciones {ϕ j (x)}


n
consideradas en el
j=0

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.

Una de las ventajas de conocer una base de un espacio vectorial es que


cualquier elemento del espacio queda definido de forma única por las
coordenadas(10) que tiene en dicha base. La ventaja que, frente a otras bases,
nos aporta trabajar con la base de Lagrange del espacio Lm1,m2 ,...,mk (∆) es que
las coordenadas de cualquier función u(x) del espacio en dicha base son
precisamente los valores de u(x) en los puntos del soporte {x0, ..., xn} (que a
partir de ahora denominaremos valores nodales de u(x) en el soporte y
denotaremos por {u0, u1, ..., un}). Este hecho se demuestra en el teorema
siguiente:

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.

Demostremos que además es la única función que toma estos valores


nodales. Para ello supongamos que hubiera alguna otra función v(x), diferente
a u(x), que tomase estos mismos valores nodales. En dicho caso se verificaría
que la función w(x) = u(x) – v(x) sería una función de Lm1,m2 ,...,mk (∆) con valores
nodales w(xi) = v(xi) – w(xi) = 0 (i = 0, ..., n). Ello equivaldría a que el polinomio
p(s)(x) de grado menor o igual que ms que define w(x) en el intervalo Is (s = 1,
..., k), toma valores nulos en los (ms+ 1) puntos del soporte que pertenecen al
subintervalo Is (es decir en los puntos del soporte
{xm1+...+ms−1 ,xm1+...+ms−1+1,...,xm1+...+ms−1+ms } ). Pero el único polinomio de grado menor
o igual que ms que admite (ms +1) raíces es el polinomio idénticamente nulo.

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.

Los teoremas 1 y 2 resumen el proceso de interpolación de Lagrange


polinómica por tramos. En los subapartados 2.2. y 2.3. concretaremos este
aspecto en los dos casos particulares correspondientes a trabajar en L1(∆) y en
L2(∆)(11). Pero antes de ello utilicémoslos para inferir una propiedad más de las
funciones de base de Lagrange.

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

[ 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 (∆) 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.

El 4º de los ejercicios propuestos a continuación generaliza la propiedad


anterior.

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 ) .

2º. Considérese el soporte {0, 1, 2, 3, 4, 5, 6, 7} y la partición:

∆ = { [0, 2], [2, 6], [6, 7]}


Determina de forma razonada qué funciones entre las siguientes pertenecen al
espacio L2,4,1(∆)


⎪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:

a) Pmj ⊂ Lm1,m2 ,...,mk (∆) (1 < j < k)


b) P Inf (m j ) ⊂ Lm1,m2 ,...,mk (∆)
1≤ j≤k

c) P1 ⊂ Lm1,m2 ,...,mk (∆)

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

2.2. Interpolación de Lagrange con funciones polinómicas de primer


grado por tramos.
Consideremos un soporte formado por (n+1) puntos distintos {x0, x1, .....,
xn} que supondremos ordenados de menor a mayor. En el intervalo [x0, xn] al
que pertenecen todos los puntos del soporte realizaremos la partición ∆ de la
forma:
∆ = {I1 = [ x 0 ,x1 ],I2 = [ x1,x 2 ],...,Ii = [ xi−1,xi ],...,In = [ xn−1,xn ]}

y denotaremos por L1(∆) al espacio de Lagrange asociado a la partición ∆.

Comencemos explicitando la base de Lagrange de L1(∆) asociada al


soporte {x0, x1, ....., xn}.

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:

⎪⎧1 si i = 0 ⎧⎪1 si i = j ⎧⎪1 si i = n


ϕ 0 (xi ) = ⎪⎨ , ϕ j (xi ) = ⎪⎨ (0 < j < n), ϕn (xi ) = ⎪⎨
⎪⎪⎩0 si i ≠ 0 ⎪⎪⎩0 si i ≠ j ⎪⎪⎩0 si i ≠ n

28
Programación y Métodos Numéricos Interpolación polinómica por tramos

lim ϕ 0 (x) = 1, lim ϕ 0 (x) = 0 ( 0 < i < n) , lim− ϕ 0 (x) = 0


x → x+
0
x → xi x → xn

∀j ∈ {1,..,n − 1} : lim ϕ j (x) = 0 ,


x → x+
0

⎪⎧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

por lo que puede concluirse que las funciones {ϕ j (x)}


n
son continuas en el
j=0

intervalo [x0, xn].

Por otra parte en cada subintervalo Ii = [xi-1 , xi] (i = 1, ..., n) la expresión


{ϕ j (x)}j
n
de todas las funciones es un polinomio de grado 0 (caso de que
=0

tomen en él el valor nulo) o de grado 1 (en los tramos en que no se anulan).

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

Lagrange del espacio L1(∆).


c.q.d.

Las figuras siguientes recogen los grafos de las funciones de la base de


Lagrange.

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

x0 ....... xj ... xn-1 xn

29
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Obsérvese que la función ϕ j (x) es la única función de la base de


Lagrange que toma valor no nulo en el nodo xj. En ese sentido diremos que la
función ϕ j (x) es la función de la base de Lagrange asociada al nodo xj.

Ejemplo:
Determinemos las funciones de la base de Lagrange del espacio L1(∆)
asociado al soporte {0, 1, 3, 5}.

La partición ∆ correspondiente a este soporte es:


∆ = { I1 = [0, 1], I2 = [1, 3], I3 = [3, 5]}
y las 4 funciones de la base de Lagrange estarán dadas por:
⎧⎪ x − 1
⎪ = 1− x si x ∈ [0,1]
ϕ 0 (x) = ⎪⎨ 0 − 1
⎪⎪
⎪⎩ 0 en caso contrario
⎧⎪ x − 0
⎪⎪ =x si x ∈ [0,1]
⎪⎪ 1− 0
⎪⎪
x −3 3 1
ϕ1(x) = ⎪⎨ = − x si x ∈ [1,3 ]
⎪⎪ 1− 3 2 2
⎪⎪
⎪⎪0 en caso contrario
⎪⎪⎩
⎧⎪ x − 1 1 1
⎪⎪ = x− si x ∈ [1,3 ]
⎪⎪ 3 − 1 2 2
⎪⎪
x −5 5 3
ϕ 2 (x) = ⎪⎨ = − x si x ∈ [3,5 ]
⎪⎪ 3 − 5 2 2
⎪⎪
⎪⎪0 en caso contrario
⎪⎪⎩
⎧⎪ x − 3 1 3
⎪⎪ = x− si x ∈ [3,5 ]
ϕ 3 (x) = ⎨ 5 − 3 2 2
⎪⎪
⎪⎩ 0 en caso contrario
Los grafos de estas funciones de base se recogen en la figura siguiente:

30
Programación y Métodos Numéricos Interpolación polinómica por tramos

Determinada la base de Lagrange asociada al soporte {x0, ..., xn} del


espacio L1(∆), el teorema 2 demostrado en el apartado 2.1. nos indica cómo
calcular la función de dicho espacio que interpola en el sentido de Lagrange a
cualquier función f(x) de la que se conozcan sus valores en los puntos del
soporte. La forma de proceder para ello se concreta en el teorema siguiente:

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

es la única función de L1(∆) que satisface las igualdades:

u(xj) = f(xj) ( j = 0,..., n)

A dicha función u(x) se la denomina función interpoladora de Lagrange de


f(x) del espacio L1(∆) sobre el soporte {x0, ..., xn}.

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).

Las funciones de la base de Lagrange de L1(∆) asociadas a este soporte


ya fueron calculadas en el ejemplo anterior de este apartado.

Por otra parte, los valores de la función en los puntos del soporte son los
siguientes:

f0 = sen (0) = 0, f1 = sen( π /2) = 1, f2 = sen(3· π /2) = -1, f3 = sen(5 π /2) = 1.

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

Detallemos el resultado de la combinación lineal que conduce a u(x).


{ϕ j (x)}j
3
Puesto que las funciones de base están definidas por tramos las
=0

operaciones correspondientes deben ser realizadas tramo a tramo. Más


concretamente:

• En el intervalo I1 = [0, 1] se tiene que:


ϕ 0 (x) = 1− x , ϕ1(x) = x , ϕ 2 (x) = 0 y ϕ 3 (x) = 0
por lo que en dicho tramo:
u(x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x) = x – 0 + 0 = x
• En el intervalo I2 = [1, 3] se tiene que:
3 1 1 1
ϕ 0 (x) = 0 , ϕ1(x) = − x , ϕ 2 (x) = x − y ϕ 3 (x) = 0
2 2 2 2
por lo que en dicho tramo:
⎛3 1 ⎞ ⎛ 1 1⎞
u(x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x) = ⎜⎜ − x⎟⎟⎟ − ⎜⎜ x − ⎟⎟⎟ = 2 − x
⎝⎜ 2 2 ⎠ ⎝⎜ 2 2⎠
• Finalmente en el intervalo [3, 5] se tiene que:
5 3 1 3
ϕ 0 (x) = 0 , ϕ1(x) = 0 , ϕ 2 (x) = − x y ϕ 3 (x) = x −
2 2 2 2
por lo que en dicho tramo:
⎛5 3 ⎞ ⎛ 1 3⎞
u(x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x) = −⎜⎜ − x⎟⎟⎟ + ⎜⎜ x − ⎟⎟⎟ = −4 + x
⎜⎝ 2 2 ⎠ ⎝⎜ 2 2⎠
Resumiendo:
⎧⎪x si x ∈ [0,1]
⎪⎪

u(x) = ⎨2 − x si x ∈ [1,3 ]
⎪⎪
⎪⎪⎩−4 + x si x ∈ [3,5 ]
Gráficamente:

Tramo I1 Tramo I2 Tramo I3


32
Programación y Métodos Numéricos Interpolación polinómica por tramos

Puesto que el grado de todos los tramos polinómicos de las funciones de


L1(∆) es 0 ó 1, la propiedad 3 (también demostrada en 2.1.) nos garantiza que:
n n

∑ ϕ (x) = 1
j=0
j ∀x ∈ [ x 0 ,xn ] y ∑ x ·ϕ (x) = x
j=0
j j ∀x ∈ [ x 0 ,xn ]

Ambas igualdades se pueden resumir en la siguiente propiedad:

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.

La propiedad anterior garantiza que las (restricciones a [x0, xn] de las)


funciones f(x) que en [x0, xn] sean polinomios de grado menor o igual que
1 tienen como función interpoladora en L1(∆) la misma (restricción de la )
función f(x). Es más, el teorema 3 demostrado anteriormente nos permite
afirmar que si f(x) es una función de L1(∆) su función interpoladora es ella
misma.

Aún puede refinarse más este resultado con la propiedad siguiente:

Propiedad 6.
Dado el soporte {x0, ..., xn}, sea ∆ la partición de [x0, xn] dada por :

∆ = {I1 = [x0, x1], ..., Ij = [xj-1, xj], ..., In = [xn-1, xn] }

denotemos por f(x) a una función cualquiera y por u(x) a su función


interpoladora del espacio L1(∆). Considerando que estas funciones, en cada
tramo, estén definidas por las expresiones:

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.

Ilustremos la propiedad anterior con un ejemplo.

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

Calculemos la función de L1(∆) que la interpola. Para ello partimos de que


los valores nodales de f(x) son:
⎛π⎞
f0 = f(0) = sen(0) = 0, f1 = f(1) = sen ⎜⎜ ⎟⎟⎟ = 1 , f2 = f(2) = sen (π) = 0,
⎜⎝ 2 ⎠
⎛ π⎞ ⎛ π⎞
f3 = f(3) = sen ⎜⎜3 ⎟⎟⎟ = -1, f4 = f(4) = cos (2π) = 1, f5 = f(5) = cos ⎜⎜5 ⎟⎟⎟ = 0
⎜⎝ 2 ⎠ ⎜⎝ 2 ⎠
f6 = f(6) = cos (3π) = -1

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)

Las expresiones de las funciones de la base de Lagrange, según la propiedad


4, están dadas por(13):

⎧⎪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

Con estas expresiones se tiene que:


u(x) = ϕ1(x) − ϕ 3 (x) + ϕ 4 (x) − ϕ 6 (x)

que operando tramo a tramo nos conduce a:

• En [0, 1]: ϕ1(x) = x , ϕ 3 (x) = ϕ 4 (x) = ϕ 6 (x) = 0 por lo que:


u(x) =x ∀ ∈ [0,1]
• En [1, 2]: ϕ1(x) = 2 − x , ϕ 3 (x) = ϕ 4 (x) = ϕ 6 (x) = 0 por lo que:
u(x) = 2 - x ∀ ∈ [1,2]
• En [2, 3]: ϕ1(x) = 0 , ϕ 3 (x) = x − 2 , ϕ 4 (x) = ϕ 6 (x) = 0 por lo que:
u(x) = 2 - x ∀ ∈ [ 2,3 ]
• En [3, 4]: ϕ1(x) = 0 , ϕ 3 (x) = 4 − x , ϕ 4 (x) = x – 3, ϕ 6 (x) = 0 por lo que:
u(x) = 2x - 7 ∀ ∈ [3,4 ]
• En [4, 5]: ϕ1(x) = ϕ 3 (x) = 0 , ϕ 4 (x) = 5 – x, ϕ 6 (x) = 0 por lo que:
u(x) = 5 - x ∀ ∈ [ 4,5 ]
• En [5, 6]: ϕ1(x) = ϕ 3 (x) = ϕ 4 (x) = 0 , ϕ 6 (x) = x − 5 por lo que:
u(x) = 5 - x ∀ ∈ [5,6 ]

Puede observase como en el intervalo [3, 4] la función interpoladora u(x) tiene


la misma expresión que la función f(x), lo cual concuerda con lo que afirma la
propiedad 6.

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 ]

La representación gráfica en [0, 6] de f(x) y de u(x) se recoge en la figura


siguiente:

Se deja propuesto al lector comprobar que la suma de las 7 funciones de la


base de Lagrange conduce a la función unidad en el intervalo [0, 6].

Existen formas menos laboriosas de calcular la expresión de la función
interpoladora que la que hasta aquí se ha desarrollado pues ¡al fin y al cabo
sólo se están sustituyendo tramos de la función f(x) por segmentos rectilíneos!.
De forma más precisa podemos decir que el proceso descrito en el teorema 3
nos permite calcular la función interpoladora globalmente, es decir, es una
expresión válida sobre todo el intervalo [x0, xn]. Pero si se determina la función
interpoladora localmente, es decir, “subintervalo a subintervalo” el proceso
puede simplificarse pues se reduce a calcular tramos de polinomios
interpoladores sobre soportes de dos puntos. Las propiedades siguientes
recogen dos formas de determinar la función interpoladora(14) localmente.
14
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.

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

Además la función interpoladora de Lagrange de f(x) del espacio L1(∆)


sobre el soporte {x0, ..., xn} queda definida por la expresión:

⎪ f0 ·L(1) (1)
si x ∈ I1 = [ x 0 ,x1 ]
⎪ 0 + f1·L1 (x)



⎪........................ ....



u(x) = ⎨⎪f j−1·L(0j) + fj ·L(1j) (x) si x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎥⎦



⎪........................ ....




⎪ f ·L(n) + fn ·L(n) 1 (x) si x ∈ In = [ xn−1,xn ]

⎩ n−1 0
Demostración:
Según las expresiones dadas para las funciones de base de Lagrange en la
propiedad 4ª las expresiones aquí dadas para ellas son inmediatas. Además,
según estas expresiones, es evidente que en Ij = [xj-1, xj] todas las funciones de
la base de Lagrange son nulas salvo las funciones ϕ j−1(x) y ϕ j (x) que, en ese
subintervalo, están dadas por:
∀x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎥⎦ : ϕ j−1(x) = L(0j) (x), ϕ j (x) = L(1j) (x)
por lo que:
n
∀x ∈ Ij = ⎡⎢⎣ x j−1,x j ⎤⎦⎥ : u(x) = ∑ fi ·ϕi (x) = fj−1·ϕ j−1(x) + fj ·ϕ j (x) = fj−1·L(0j) (x) + fj ·L(1j) (x)
i=0

c.q.d.

38
Programación y Métodos Numéricos Interpolación polinómica por tramos

Obsérvese que el tramo de la función interpoladora en Ij (j = 1, ..., n) puede


ser calculado, según la propiedad 7ª, utilizando la fórmula de Lagrange para
calcular el polinomio interpolador de Lagrange sobre el soporte {xj-1, xj}. Ahora
bien, según se detalló en el tema dedicado a la interpolación polinómica, el
polinomio interpolador de Lagrange también puede calcularse mediante la
fórmula de Newton. En este sentido, la propiedad que sigue proporciona las
expresiones correspondientes a calcular localmente la función interpoladora
utilizando la fórmula de interpolación de Newton.

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.

Ocupémonos ahora del error de interpolación. Para ello denotemos por


f(x) a una cierta función y por u(x) a la función de L1(∆) que la interpola sobre el
soporte {x0, x1, ..., xn}. 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, ..., n). Pero esta coincidencia de valor no tiene por qué producirse en
cualquier otro punto x perteneciente al intervalo [x0, xn]. 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 2 puntos.

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

Una primera consecuencia del teorema anterior es la ratificación de la


propiedad 6ª. En efecto si en el subintervalo Ij la función f(x) tuviera una
expresión polinómica de grado menor o igual a 1, será nula su segunda
derivada en cualquier punto interior a Ij y en consecuencia el error en todo
punto de Ij es nulo. En otros términos, en ese caso la función f(x) coincidirá con
la función interpoladora en todo punto del intervalo Ij.

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[.

b) La segunda acotación concreta la primera. En efecto, siendo hj la


longitud del intervalo [xj-1, xj], la distancia de un punto de dicho intervalo
al extremo izquierdo xj-1 puede expresarse como α hj para algún valor de
α tal que 0 < α < 1. Con esta notación es obvio que |x – xj| = (1- α )hj y
por tanto:
|(x – xj-1)·(x - xj)| = |(x – xj-1)|·|(x - xj)| = α ·(1- α )·(hj)2
El mayor valor de |(x – xj-1)·(x - xj)| en el intervalo ]xj-1, xj[ se alcanzará
entonces para aquel valor α * que maximice el valor de la función
g( α ) = α ·(1- α ) cosa que sucede en el punto en que se anule g’( α ).
Resolviendo g’( α *) = 0 se tiene que:

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

Introduciendo este valor en la expresión de la acotación a) se obtiene


finalmente que:
1
∀x ∈ ⎤⎦⎥ x j−1,x j ⎡⎣⎢ : E(x) = f(x) − u(x) ≤ Mj ·h2j
8
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 dicha expresión.

De las acotaciones locales anteriores pueden extraerse acotaciones


globales sin más que considerar que la cota global del error en [x0, xn] será la
mayor de las cotas locales que se obtengan en cada intervalo. En este sentido
el corolario siguiente recoge acotaciones globales.

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 ⎡⎢
⎦ ⎣

b) 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 derecha en
xj, entonces:

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
⎦ ⎣

c) Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio


L1(∆) sobre el soporte {x0, ..., xn} y suponiendo que f ∈ C2 (]x 0 ,xn [) y que
f(x) es continua por la derecha en x0 y que f(x) es continua por la
derecha en xn, entonces:
1
∀x ∈ [ x 0 ,xn ] : E(x) = f(x) − u(x) ≤ K·h2
8
donde K = Sup f "(x) , hj = |xj – xj-1| y h = Max {h j } .
x∈]x0 ,xn [ 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

Obsérvese que al ser f(x) una función polinómica de primer grado en el


intervalo ]3, 4[, el error de interpolación es nulo en dicho intervalo.

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 ⎠ ⎠⎟

y la longitud de todos los subintervalos es la unidad, las expresiones locales del


error pueden acotarse aplicando el corolario 1º por:
π2 π2 π2
∀x ∈ ]0,1[ : E(x) ≤ , ∀x ∈ ]1,2[ : E(x) ≤ , ∀x ∈ ]2,3[ : E(x) ≤
32 32 32
2
π π2
∀x ∈ [3,4 ] : E(x) = 0 , ∀x ∈ ]4,5[ : E(x) ≤ , ∀x ∈ ]5,6[ : E(x) ≤
32 32

π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 [0, 1] los extremos de E(x) se alcanzarán el los puntos x1*


en que se anule la primera derivada del error, es decir:
2 ⎛ 2⎞
E’(x1*) = ( π 2 ).cos(x1 * . π 2 ) − 1 = 0 ⇒ x1 * = arc cos ⎜⎜ ⎟⎟⎟
π ⎜
⎝π⎠
en donde se tiene que: E(x1*) = 0.210... < 0.211.

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.

Finalmente en el intervalo [4, 6] los extremos de E(x) se alcanzarán en los


puntos x3* del intervalo [4, 6] en los que:

⎪ 2 ⎛ 2⎞

⎪ 4 + arcsin ⎜⎜ ⎟⎟⎟
⎪ π ⎜⎝ π ⎠
E’(x3*) = −( π 2 ).sin(x 3 * . π 2 ) + 1 = 0 ⇒ x 2 * = ⎪


⎪ 2 ⎛ 2 ⎞⎟
⎪ 6 − arcsin ⎜

⎪ π ⎜⎝ π ⎠⎟⎟


En dichos puntos se tiene que: |E(x3*)| = 0.210... < 0.211.

En resumen el máximo de la función |E(x)| en [0, 6] es 0.210 .....

La cota hallada anteriormente fue π2


32 ≈ 0.308... que, efectivamente, es
mayor que el máximo valor que toma el error.

Ejercicio resuelto:
Considérese el soporte equidistante formado por los 7 puntos:
{x0 = 0, x1 = 1, x2 = 2, x3 = 3, x4 = 4, x5 = 5, x6 = 6}

45
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

a) Denotando por ∆ a la partición del intervalo [0, 6] en los subintervalos:


∆ = { [0, 1], [1, 2] , [2, 3] , [3, 4], [4, 5], [5, 6] }

y por L1(∆) al espacio de las funciones a trozos que en cada subintervalo de la


partición ∆ pueden definirse mediante un polinomio de grado menor o igual que
1, se pide determinar las funciones ϕ5(x) y ϕ6(x) que pertenecen a la base de
Lagrange de L1(∆) asociada al soporte antes dado y que verifican ϕ5(5) = 1 y
ϕ6(6) = 1 respectivamente. También se pide representar la gráfica de ambas
funciones de base en el intervalo [0, 6].

b) Siendo {ϕi(x)}0<i<6 las 7 funciones de base de Lagrange del espacio L1(∆)


considerado en el apartado a) y que están asociadas al soporte dado {xi}0<i<6,
se pide razonar de forma detallada la veracidad o falsedad de la siguiente
expresión:
6
∀x : ∑ (i + 1)·ϕ ' (x) = 1
i= 0
i

c) Sea g(x) la función:


⎧6 − x si x < 3
g(x) = ⎨
⎩ x − 1 si x ≥ 3

y denotemos por v(x) a la función interpoladora de Lagrange de g(x) sobre el


soporte dado perteneciente al espacio L1(∆) considerado en el primer apartado.
Indíquese de forma razonada si se verifica que:

v(x) = g(x) ∀x ∈ [0,6] .

d) Sea f(x) la función f(x) = 2 + 3·x – x2. Determínese la expresión de la función


u(x) del espacio L1(∆) que interpola a f(x) y hállese una cota del error de
interpolación que sea válida en todo punto del intervalo [0, 6].

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

Lagrange, sobre el soporte dado, a la función (x+1). Puesto que la función


(x+1) es un polinomio de primer grado sobre toda la recta real también lo es en
cada uno de los subintervalos de la partición ∆. Por tanto (x+1) es una función
de L1(∆) lo cual garantiza, debido a la unicidad de la función interpoladora, que:
6
∀x ∈ [0,6] : ∑ (i + 1)·ϕ (x) = 1 + x
i
i=0

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.

No obstante la expresión anterior no sería correcta fuera del intervalo [0,


6] pues, para 0 < i < 6, las funciones de base ϕi(x) no están definidas fuera del
intervalo de interpolación. Tampoco sería correcta la igualdad en los puntos del
soporte pues en el punto xi , para 0 < i < 6, la función de base ϕi(x) no es
derivable. En dichos puntos sólo se podría afirmar que:
'
⎛ 6 ⎞
∀x ∈ S : ⎜ ∑ (i + 1)·ϕi (x) ⎟ = 1
⎝ i=0 ⎠
c) La función g(x) es una función cuya restricción a cada uno de los
subintervalos de ∆ es un polinomio de grado menor o igual que 1. No obstante,
la función g(x) no es una función del espacio L1(∆) ya que no es continua en
todos los puntos de [0, 6]. En efecto en x = 3 se tiene que:
lim− g(x) = lim− (6 − x) = 3 ≠ lim+ g(x) = lim+ (x − 1) = 2
x →3 x →3 x →3 x →3

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

d) Utilicemos la fórmula de Newton para calcular los tramos de la función


interpoladora. Para ello con f(x) = 2 + 3x – x2 se tiene que:
f(0) = 2
f[0, 1] = 2
f(1) = 4
f[1, 2] = 0
f(2) = 4
f[2, 3] = -2
f(3) = 2
f[3, 4] = -4
f(4) = -2
f[4 , 5] = -6
f(5) = -8
f[5, 6] = -8
f(6) = -16

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 ¼ .

• En [1, 2]: u(x) = 4 + 0·(x-1) = 4 cometiéndose un error de interpolación


dado por: E1(x) = f(x) - u(x) = 2 + 3x – x2 – 4 = -2 +3x – x2 cuyo máximo
en [1, 2] se alcanza para x = 3 2 y tiene el valor ¼ .

• En [2, 3]: u(x) = 4 -2·(x-2) = 8–2x cometiéndose un error de interpolación


dado por: E1(x) = f(x) - u(x) = 2 + 3x – x2 – 8 + 2x = -6 +5·x – x2 cuyo
máximo en [2, 3] se alcanza para x = 5 2 y tiene el valor ¼ .

• En [3, 4]: u(x) = 2 - 4·(x - 3) = 14 – 4x cometiéndose un error de


interpolación dado por: E1(x) = f(x) - u(x) = 2 + 3·x – x2 – 14 + 4·x =
-12 +7·x – x2 cuyo máximo en [3, 4] se alcanza para x = 7 2 y tiene el
valor ¼ .

• En [4, 5]: u(x) = -2 - 6·(x - 4) = 22 – 6x cometiéndose un error de


interpolación dado por: E1(x) = f(x) - u(x) = 2 + 3·x – x2 – 22 + 6·x =
-20 +9·x – x2 cuyo máximo en [4, 5] se alcanza para x = 9 2 y tiene el
valor ¼ .

48
Programación y Métodos Numéricos Interpolación polinómica por tramos

• En [5, 6]: u(x) = -8 - 8·(x - 5) = 32 – 8x cometiéndose un error de


interpolación dado por: E1(x) = f(x) - u(x) = 2 + 3·x – x2 – 32 + 8·x =
-30 +11·x – x2 cuyo máximo en [5, 6] se alcanza para x = 112 y tiene el
valor ¼ .

En resumen la función interpoladora buscada es:


⎧2 + 2·x si x ∈ [0,1]

⎪4 si x ∈ [1,2]
⎪⎪8 − 2·x si x ∈ [ 2,3]
u(x) = ⎨
⎪14 − 4·x si x ∈ [3,4]
⎪22 − 6·x si x ∈ [ 4,5]

⎪⎩32 − 8·x si x ∈ [5,6]

y el máximo valor que alcanza el error en [0, 6] es 0’25.

Las figuras siguientes recogen la gráfica de f(x), u(x) y de la función de error.

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:

1º. a) Determinar la función interpoladora en L1(∆) de f(x) = x2 para el soporte


de 5 puntos: { x0 = -3, x1 = 1, x2 = 0, x3 = 1, x4 = 3}.
b) Calcular y dibujar las funciones de la base de Lagrange del espacio
usado en el apartado anterior.
c) Determinar una cota del error de interpolación válida en el intervalo
[-3, 3].

2º. a) Determinar la función interpoladora de L1(∆) para la partición de [0, 2] con


los puntos de soporte {x0 = 0, x1 = ½ , x2 = 1, x3 = 3 2 , x4 = 2} de la
función f(x) = |e-x – ½ |. Hallar una cota de error válida en todo el intervalo
[0, 2].
b) Razónese si las funciones de base de Lagrange del espacio L1(∆) usado en
2
⎛ 4 ⎞
el apartado anterior verifican ∫ ⎜ ∑ i·ϕi (x) ⎟ dx = 4 .
0 ⎝ i=0 ⎠

50
Programación y Métodos Numéricos Interpolación polinómica por tramos

2.3. Interpolación de Lagrange con funciones polinómicas de segundo


grado por tramos.
Siendo k un número entero positivo, consideremos un soporte formado
por (2k+1) puntos distintos {x0, x1, ....., x2k} que supondremos ordenados de
menor a mayor. En el intervalo [x0, x2k] al que pertenecen todos los puntos del
soporte utilizaremos en todo este subapartado la partición ∆ de la forma:

∆ = {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 ⎤⎦⎥ }

y denotaremos por L2(∆) al espacio de Lagrange asociado a la partición ∆.


Obsérvese que a cada subintervalo Ij (j = 1, ..., k) de la partición ∆ pertenecen
los tres puntos del soporte {x2(j-1), x2j-1, x2j}. Y nótese además que dim(L2(∆)) =
2k+1. Comencemos explicitando la base de Lagrange de L2(∆) asociada al
soporte {x0, x1, ....., x2k}.

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

lim ϕ 0 (x) = 1, lim ϕ 0 (x) = 0 ( 0 < i < 2k) , lim− ϕ 0 (x) = 0


x → x+
0
x → xi x → x 2k

∀j ∈ {1,..,2k − 1} : lim ϕ j (x) = 0 ,


x → x+
0


⎪1 si i = j
lim ϕ j (x) = ⎪
⎨ (0 < i < 2k),
x → xi ⎪
⎩0 si i ≠ j

lim ϕ j (x) = 0
x → x−
2k

y:

lim ϕ 2k (x) = 0 , lim ϕ 2k (x) = 0 ( 0 < i < 2k) , lim− ϕ 2k (x) = 1


x → x+
0
x → xi x → x 2k

por lo que puede concluirse que las funciones {ϕ j (x)}


2k
son continuas en el
j=0

intervalo [x0, x2k].

Por otra parte en cada subintervalo Ii = [x2(i-1) , x2i] (i = 1, ..., k) la


expresión de todas las funciones {ϕ j (x)}
n
es un polinomio de grado 0 (caso
j=0

de que tomen en él el valor nulo) o de grado 2 (en los tramos en que no se


anulan).

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

son la base de Lagrange del espacio L1(∆).


c.q.d.

52
Programación y Métodos Numéricos Interpolación polinómica por tramos

Las figuras siguientes recogen los grafos de las funciones de la base de


Lagrange.

Función ϕ 0 (x) : 1

x0 x1 x2 ... xj ... x2k

Función ϕ 2 j−1(x) ( j = 1, ..., k): 1

x0 ... x2(j-1) x2j-1 x2j x2j+1 x2(j+1) ... x2k

Función ϕ 2 j (x) ( j = 1, ..., k-1):


1

x0 ... x2(j-1) x2j-1 x2j x2j+1 x2(j+1) ... x2k

1
Función ϕ 2k (x)
x0 ....... xj ... x2(k-1) x2k-1 x2k

Obsérvese que la función ϕ j (x) es la única función de la base de


Lagrange que toma valor no nulo en el nodo xj. En ese sentido diremos que la
función ϕ j (x) es la función de la base de Lagrange de L2(∆) asociada al
nodo xj.

Ejemplo:
Determinemos las funciones de la base de Lagrange del espacio L2(∆)
asociado al soporte {0, 1, 3, 5, 6}.

La partición ∆ correspondiente a este soporte es:

∆ = { I1 = [0, 3], I2 = [3, 6]}

y las 5 funciones de la base de Lagrange están dadas por:

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

Los grafos de estas funciones de base se recogen en la figura siguiente:

ϕ1 ϕ2 ϕ3
ϕ0 ϕ4

I1 I2

Determinada la base de Lagrange asociada al soporte {x0, ..., x2k} del


espacio L2(∆), el teorema 2 demostrado en el apartado 2.1. nos indica cómo

54
Programación y Métodos Numéricos Interpolación polinómica por tramos

calcular la función de dicho espacio que interpola en el sentido de Lagrange a


cualquier función f(x) de la que se conozcan sus valores en los puntos del
soporte. La forma de proceder para ello se concreta en el teorema siguiente:

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

es la única función de L2(∆) que satisface las igualdades:

u(xj) = f(xj) ( j = 0,..., 2k)

A dicha función se la denomina función interpoladora de Lagrange de f(x)


del espacio L2(∆) sobre el soporte {x0, ..., x2k}.

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).

Las funciones de la base de Lagrange de L2(∆) asociadas a este soporte ya


fueron calculadas en el ejemplo anterior de este apartado.

Por otra parte, los valores de la función en los puntos del soporte son los
siguientes:

f0 = sen (0) = 0, f1 = sen( π /2) = 1, f2 = sen(3· π /2) = -1,

55
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

f3 = sen(5 π /2) = 1, f4 = sen(6 π /2) = 0

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)

Detallemos el resultado de la combinación lineal que conduce a u(x). Puesto


{ϕ j (x)}j=0
4
que las funciones de base están definidas por tramos las

operaciones correspondientes deben ser realizadas tramo a tramo. Más


concretamente:

• En el intervalo I1 = [0, 3] se tiene que:

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

por lo que en dicho tramo:

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

• En el intervalo I2 = [3, 6] se tiene que:

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

por lo que en dicho tramo:

u(x) = ϕ1(x) − ϕ 2 (x) + ϕ 3 (x) =

⎛ 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

La representación gráfica de f(x) (en color negro) y de u(x) (su primer


tramo en azul y su segundo tramo en rojo) se recoge en la figura siguiente:

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 ]

Ambas igualdades se pueden resumir en la siguiente propiedad:

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

La propiedad anterior garantiza que las (restricciones a [x0, x2k] de las)


funciones f(x) que en [x0, x2k] sean polinomios de grado menor o igual que
2 tienen como función interpoladora en L2(∆) la misma (restricción de la )
función f(x). Es más, el teorema 5 demostrado anteriormente nos permite
afirmar que si f(x) es una función de L1(∆) su función interpoladora es ella
misma.
Aún puede refinarse más este resultado con la propiedad siguiente:

Propiedad 11.
Dado el soporte {x0, ..., x2k}, sea ∆ la partición de [x0, x2k] dada por :

∆ = {I1 = [x0, x2], ..., Ij = [x2(j-1), x2j], ..., Ik = [x2(k-1), x2k] }

y denotemos por f(x) a una función cualquiera y por u(x) a su función


interpoladora del espacio L2(∆). Considerando que estas funciones, en cada
tramo, estén definidas por las expresiones:


⎪ 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.

Ilustremos la propiedad anterior con un ejemplo.


Ejemplo:
Determinemos la función del espacio L2(∆) que interpola sobre el soporte de
7 puntos {0,1, 2, 3, 4,5, 6} a la función f(x) definida por:


⎪ 1

⎪ x si x ≤ 2

⎪ 2


f(x) = ⎪
⎨cos (πx) si 2 < x < 4





⎪25 − 10x + x 2 si 4 ≤ x


El grafo de la función f(x) que queremos interpolar se recoge en la figura


siguiente:

Calculemos la función de L2(∆) que la interpola. Para ello sabemos que los
valores nodales de f(x) son:

f0 = f(0) = 0, f1 = f(1) = ½ , f2 = f(2) = 1, f3 = f(3) = cos(3π)= -1,

f4 = f(4) = 25 – 10·4 + 42= 1, f5 = f(5) = 25 – 10·5 + 52= 0

f6 = f(6) = 25 – 10·6 + 62= 1

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) =

= ( 12 )ϕ1(x) + ϕ 2 (x) − ϕ 3 (x) + ϕ 4 (x) + ϕ 6 (x)

Las expresiones de las funciones de la base de Lagrange, según la propiedad


9, están dadas por(17):

⎧⎪ 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

La figura siguiente recoge las gráficas de estas funciones de base.

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

Con estas expresiones se tiene que:

u(x) = ( 12 )ϕ1(x) + ϕ 2 (x) − ϕ 3 (x) + ϕ 4 (x) + ϕ 6 (x)


que operando tramo a tramo nos conduce a:
1 1
• En [0, 2]: ϕ1(x) = 2x − x 2 , ϕ 2 (x) = − x + x 2 , ϕ 3 (x) = 0 , ϕ 4 (x) = 0 y
2 2
ϕ 6 (x) = 0 por lo que:

u(x) = x –( ½)x2 + (-½)x + ( ½)x2 = ( ½)x ∀ ∈ [ 0,2]

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

u(x) = (6 – (-8) +3) + ( − 7 2 − 6 − 5 2 ) x + ( 12 − ( −1) + 12 ) x 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

u(x) =(15 + 10) – (112 + 9 2 ) x + ( 12 + 12 ) x 2 = 25 – 10x + x2 ∀ ∈ [ 4,6 ]

61
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Puede observase como en [0, 2] y en [4, 6] la función interpoladora u(x) tiene la


misma expresión que la función f(x), tal cual nos asegura la propiedad 11(18).

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 ]
⎪⎪⎩

La representación gráfica en [0, 6] de f(x) y de u(x) se recoge en la


figura siguiente:

Se deja al lector comprobar que la suma de las 7 funciones de la base de


Lagrange proporciona como resultado la función unidad en el intervalo [0, 6].

Al igual que se señaló en el caso de funciones polinómicas a trozos de


primer grado, existen formas menos laboriosas de calcular la expresión de la
función interpoladora. En efecto, el proceso descrito en el teorema 5 nos
proporciona una expresión global de la función interpoladora, es decir, una
expresión válida sobre todo el intervalo [x0, x2k]. Pero si se determina la función
interpoladora localmente, es decir, “subintervalo a subintervalo” el proceso
puede simplificarse pues se reduce a calcular tramos de polinomios

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

interpoladores sobre soportes de tres puntos. Las propiedades siguientes


recogen dos formas de determinar la función interpoladora(19) localmente.

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)

a los polinomios de base de Lagrange asociados al soporte {x2(j-1), x2j-1, x2j} se


verifica que las funciones de la base de Lagrange del espacio L2(∆) pueden
definirse mediante las expresiones :

⎧⎪L(1) (x) si x ∈ [ x 0 ,x 2 ]
ϕ 0 (x) = ⎪⎨ 0
⎪⎪⎩ 0 en otro caso

⎪⎧⎪L(1j) (x) si x ∈ ⎡⎢ x 2( j−1) ,x 2 j ⎤⎥


ϕ 2 j−1(x) = ⎨ ⎣ ⎦ (j = 1, ..., k)
⎪⎪ 0 en otro caso

⎧⎪L( j−1) (x) si x ∈ ⎡ x ⎤


⎪⎪ 2 ⎢⎣ 2( j−1) ,x 2 j ⎥⎦

ϕ 2 j (x) = ⎨⎪L(0j) (x) si x ∈ ⎢⎣⎡ x 2 j ,x 2( j+1) ⎥⎦⎤ (j = 1, ...., k-1)
⎪⎪
⎪⎪0 en otro caso
⎪⎩

⎪⎧⎪L(k2 ) (x) si x ∈ ⎡⎢ x 2(k−1) ,x 2k ⎤⎥


ϕ 2k (x) = ⎨ ⎣ ⎦
⎪⎪ 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

Además la función interpoladora de Lagrange de f(x) del espacio L2(∆)


sobre el soporte {x0, ..., xn} queda definida por las expresiones:

⎧⎪f ·L(1) + f ·L(1) (x) + f ·L(1) (x) si x ∈ I1 = [ x 0 ,x 2 ]


⎪⎪ 0 0 1 1 2 2
⎪⎪
⎪⎪........................ ....
⎪⎪
u(x) = ⎪⎨f2( j−1) ·L(0j) + f2 j−1·L(1j) (x) + f2 j ·L(2j) (x) si x ∈ Ij = ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎥⎦
⎪⎪
⎪⎪........................ ....
⎪⎪
⎪⎪
f ·L(k ) + f2k−1·L(k1 ) (x) + f2k ·L(k2 ) (x) si x ∈ Ik = ⎡⎢⎣ x 2(k−1) ,x 2k ⎤⎥⎦
⎪⎩⎪ 2(k−1) 0

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.

Además, según estas expresiones, es evidente que en Ij = [x2(j-1), x2j] todas


las funciones de la base de Lagrange son nulas salvo las funciones ϕ 2( j−1) (x) ,
ϕ 2 j−1(x) y ϕ 2 j (x) que, en ese subintervalo, están dadas por:

∀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

= f2( j−1) ·L(0j) (x) + f2 j−1·L(1j) (x) + f2 j ·L(2j) (x)


c.q.d.

Obsérvese que el tramo de la función interpoladora en Ij (j = 1, ..., k) puede


ser calculado, según la propiedad 12ª, utilizando la fórmula de Lagrange para
calcular el polinomio interpolador de Lagrange sobre el soporte {x2(j-1), x2j-1, x2j}.
Ahora bien, según se detalló en el tema dedicado a la interpolación polinómica,
el polinomio interpolador de Lagrange también puede calcularse mediante la
fórmula de Newton. En este sentido, la propiedad que sigue proporciona las
expresiones correspondientes a calcular localmente la función interpoladora
utilizando la fórmula de interpolación de Newton.

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:

⎧⎪f + f [ x ,x ]·(x − x ) + f [ x ,x ,x ]·(x − x )·(x − x ) si x ∈ I1 = [ x 0 ,x 2 ]


⎪⎪ 0 0 1 0 0 1 2 0 1
⎪⎪
⎪⎪............................ ....
⎪⎪
u(x) = ⎪⎨f2( j−1) + f ⎡⎢⎣ x 2( j−1) ,x 2 j−1 ⎤⎥⎦·(x − x 2( j−1) ) + f ⎡⎢⎣ x 2( j−1) ,x 2 j−1,x 2 j ⎤⎥⎦·(x − x 2( j−1) )·(x − x 2 j−1 ) si x ∈ Ij = ⎡⎢⎣ x 2( j−1) ,x 2 j ⎤⎥⎦
⎪⎪
⎪⎪............................ ....
⎪⎪
⎪⎪
⎡ ⎤ ⎡ ⎤ si x ∈ Ik = ⎡⎢⎣ x 2(k −1) ,x 2k ⎤⎦⎥
⎪⎪⎩f2(k −1) + f ⎣⎢ x 2(k −1) ,x 2k −1 ⎦⎥·(x − x 2(k −1) ) + f ⎣⎢ x 2(k −1) ,x 2k −1,x 2k ⎦⎥·(x − x 2(k −1) )·(x − x 2k −1 )

donde f[x2(j-1), x2j-1] y f[x2(j-1), x2j-1, x2j] son las diferencias divididas:

f(x 2 j−1 ) − f(x 2( j−1) )


f ⎡⎣⎢ x 2( j−1) ,x 2 j−1 ⎤⎦⎥ =
x 2 j−1 − x 2( j−1)

f(x 2 j ) − f(x 2 j−1 ) f(x 2 j−1 ) − f(x 2( j−1) )



x 2 j − x 2 j−1 x 2 j−1 − x 2( j−1)
f ⎡⎢⎣ x 2( j−1) ,x 2 j−1,x 2 j ⎤⎥⎦ =
x 2 j − x 2( j−1)

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

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:
∀x ∈ ⎤⎥⎦ x 2( j−1) ,x 2 j ⎡⎢⎣ ∃ξ j =∈ ⎤⎥⎦ x 2( j−1) ,x 2 j ⎡⎢⎣ / E(x) = f(x) − u(x) =
f ''' ( ξ j )
= (x − x 2( j−1) )·(x − x 2 j−1 )·(x − x 2 j )
6
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 {x2(j-1), x2j-1, x2j}
basta con aplicar el teorema que nos proporciona la expresión del error de
interpolación polinómica(20) a este caso particular.
c.q.d.
Una primera consecuencia del teorema anterior es la ratificación de la
propiedad 11ª. En efecto si en el subintervalo Ij la función f(x) tuviera una
expresión polinómica de grado menor o igual a 2, será nula su tercera derivada
en cualquier punto interior a Ij y en consecuencia el error en todo punto de Ij es
nulo. En otros términos, en ese caso la función f(x) coincidirá con la función
interpoladora en todo punto del intervalo Ij.

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[.

b) La segunda acotación concreta la primera especificando una cota de


|(x-x2(j-1))·(x-x2j-1)·(x-x2j)|. En efecto, dicha cota se busca para x diferente
a los puntos del soporte (pues en ellos la expresión que se quiere acotar
se anula) y denotando por hj a la longitud del intervalo [x2(j-1), x2j], y a la
distancia del punto x de dicho intervalo al extremo izquierdo x2(j-1) por
α hj donde α es algún valor tal que 0 < α < 1. Con esta notación es
obvio que |x – x2j| = (1- α )hj. En cuanto a la distancia de x al punto del
soporte interior, x2j-1, es evidente que se verificará, una de las dos
desigualdades siguientes:
b-1ª) Si x > x2j-1 entonces |x – x2j-1| < α hj por lo que:
|(x-x2(j-1))·(x-x2j-1)·(x-x2j)| ≤ α·α·(1 − α )h3j = α 2 ·(1 − α )h3j

Los extremos de la función g(α ) = α 2 ·(1 − α ) se alcanzan para los


valores α * tales que g'(α*) = 0 , es decir:
⎧ α* = 0
2α *·(1 − α *) − ( α * ) = 0 ⇒ ⎨
2

⎩α * = 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

b-2ª) Si x < x2j-1 entonces |x – x2j-1| < (1−α ) hj por lo que:


|(x-x2(j-1))·(x-x2j-1)·(x-x2j)| ≤ α·(1 − α )·(1 − α )h3j = α·(1 − α )2 h3j

Los extremos de la función g(α ) = α·(1 − α )2 se alcanzan para los


valores α * tales que g'(α*) = 0 , es decir:
⎧ α* = 1
(1 − α*)2 − 2·α *·(1 − α * ) = 0 ⇒ ⎨
⎩α * = 13

67
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

La solución unidad no presenta interés (conduce a un punto x que


coincide con x2j en donde ya sabemos que el error es nulo) mientras
que la otra solución nos permite escribir que:
14 4 3
|(x-x2(j-1))·(x-x2j-1)·(x-x2j)| ≤ α·(1 − α )2 h3j ≤ · ·h3j = hj
39 27
En ambos casos:
4 3
∀x ∈ ⎤⎦ x 2( j−1) ,x 2 j ⎡⎣ : |(x-x2(j-1))·(x-x2j-1)·(x-x2j)| ≤ hj
27
Introduciendo esta desigualdad en la expresión de la acotación a) se
obtiene finalmente que:

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.

De las acotaciones locales anteriores pueden extraerse acotaciones


globales sin más que considerar que la cota del error global en [x0, xn] será la
mayor de las cotas locales que se obtengan en cada intervalo. En este sentido
el corolario siguiente recoge acotaciones globales.

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 ⎡⎢
⎦ ⎣

b) 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

68
Programación y Métodos Numéricos Interpolación polinómica por tramos

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) ≤ M·h3
81
donde Mj = Sup f '''(x) , hj =|x2j–x2(j-1)|, M = Max {Mj } y h = Max {h j } .
x∈⎤⎥ x 2( j−1) ,x 2 j ⎡⎢ 1≤ j≤k 1≤ j≤k
⎦ ⎣

c) Siendo u(x) la función interpoladora de Lagrange de f(x) en el espacio


L2(∆) sobre el soporte {x0, ..., x2k} y suponiendo que f ∈ C3 (]x 0 ,x 2k [) y
que f(x) es continua por la derecha en x0 y que f(x) es continua por la
izquierda en x2k, entonces:
2
∀x ∈ [ x 0 ,x 2k ] : E(x) = f(x) − u(x) ≤ M·h3
81

donde M = Sup f '''(x) , hj = |x2j – x2(j-1)| y h = Max {h j } .


x∈]x0 ,x 2k [ 1≤ j≤k

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

Verifiquémoslo. La función de error en ]2, 4[ está dada por:

E(x) = f(x) – u(x) = cos(πx) – 17+ 12x – 2x2

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).

70
Programación y Métodos Numéricos Interpolación polinómica por tramos

En el intervalo [2, 4] los extremos de E(x) se alcanzarán en los puntos21


en que se anule la primera derivada del error, es decir:

x1* = 2.32733971... , x *2 = 3 , y x 3* = 3.67266028...

en donde se tiene que:

E(x1*) = 0.611273... < 0.612, E(x2*) = 0 y E(x3*) = 0.611273... < 0.612

En resumen el máximo de la función |E(x)| en [0, 6] es 0.6112....

La cota hallada anteriormente fue 16·π3


81 ≈ 6.124... que, efectivamente, es
mayor que el máximo valor que toma el error.

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}

a) Denotando por ∆ a la partición del intervalo [0, 6] en los 3 subintervalos:

∆ = { [0, 2], [2, 4] , [4, 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].

b) Siendo {ϕi(x)}0<i<6 las 7 funciones de base de Lagrange del espacio L2(∆)que


están asociadas al soporte S, razónese de forma detallada la veracidad o
falsedad de la siguiente expresión:
6
⎛ 6 2 ⎞
∫0 ⎜⎝ ∑
i=0
i ·ϕi (x) ⎟ dx = 72

21
Se deja como ejercicio propuesto al lector aplicar alguno de los métodos de resolución de
ecuaciones vistos en otros temas de la asignatura para determinar los puntos en que el Error
toma sus valores extremos.

71
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

c) Siendo f(x) la función:


⎧2 − 10·x + 4·x 2 si x ≤ 2
f(x) = ⎨
⎩ 14 − 2·x si x > 2

determínese la función u(x) del espacio L2(∆) considerado en el primer


apartado que interpola a f(x) sobre el soporte S. Asimismo dedúzcase de forma
razonada una cota del error de interpolación válida para todos los puntos del
intervalo [0, 6].

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)

Gráficas de las funciones de base pedidas

b) En primer lugar observemos que con el soporte S dado puede escribirse


que:
6 6
v(x) = ∑ i2 ·ϕi (x) = ∑ xi2 ·ϕi (x)
i= 0 i=0

72
Programación y Métodos Numéricos Interpolación polinómica por tramos

La expresión anterior se corresponde con la función de L2(∆) que interpola


sobre el soporte S a la función f(x) = x2. Pero la propia función f(x) = x2
pertenece al espacio L2(∆) (ya que evidentemente es una función continua y en
cada uno de los tramos de ∆ es un polinomio de segundo grado). Por tanto
v(x) ≡ f(x) ∀x ∈ [0,6] lo que implica que:

6 6
⎛ 6 2 ⎞ 1
∫0 ⎜⎝ ∑
i=0
i ·ϕi (x) ⎟ dx = ∫ x 2dx = 63 = 72
⎠ 0
3

En resumen la expresión dada es correcta.

c) La función f(x) es una función cuya restricción al intervalo [0, 6] puede


definirse en cada uno de los subintervalos de ∆ por un polinomio de grado
menor o igual que 2. No obstante, la función f(x) no es una función del espacio
L2(∆) ya que no es una función continua en [0, 6] pues:

lim f(x) = lim− (2 − 10x + 4x 2 ) = −2 ≠ lim+ f(x) = lim+ (14 − 2x) = 10


x → 2− x →2 x →2 x →2

La función interpoladora u(x) coincidirá con la expresión de f(x) en el intervalo


[0,2] y en el intervalo [4, 6]. Por tanto en dichos intervalos el error de
interpolación será nulo. En el intervalo [2, 4] la función es continua en todos
sus puntos interiores pero no es continua por la derecha en el extremo
izquierdo x = 2 ( en dicho punto la función toma el valor –2 mientras que su
límite por la derecha es 10). Por ello no son aplicables a dicho intervalo ni el
teorema 6 ni sus corolarios 3 y 4 que trataban sobre el error de este tipo de
interpolación. El error de interpolación deberemos tratarlo entonces
determinando la función de error como E(x) = f(x) – u(x). Para ello, en el
intervalo [2, 4], con el soporte {2, 3, 4} se tiene que:

f(2) = -2, f(3) = 8, f(4) = 6

por lo que la tabla de diferencias divididas correspondiente es:

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

siendo el polinomio interpolador en este tramo:


-2 +10(x-2) –6(x-2)(x-3) = -58 + 40x – 6x2

por lo que la función interpoladora es:


⎧ 2 − 10x + 4x 2 x ∈ [0,2]

u(x) = ⎨−58 + 40x − 6x 2 x ∈ [2,4]
⎪ 14 − 2x x ∈ [ 4,6]

De esta forma, en el subintervalo ]2, 4[ el error de interpolación está dado por:


E(x) = (14 – 2x) – (-58 + 40x – 6x2) = 6x2 – 42x + 72

Este error de interpolación tiene un punto crítico en la abscisa para la que se


anula E’(x) es decir en x* = 42 / 12 = 3.5. En dicho punto E(x) = -1.5.

Por otra parte cuando x tiende a los extremos del intervalo ]2, 4[ se tiene que:

lim+ E(x) = lim+ ( 6x 2 − 42x + 72 ) = 12


x →2 x →2

lim E(x) = lim− ( 6x 2 − 42x + 72 ) = 0


x → 4− x→4

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]

La figura siguiente recoge la gráfica del valor absoluto de la función de error:

74
Programación y Métodos Numéricos Interpolación polinómica por tramos

2º. La deformación transversal w(x) de una viga doblemente empotrada sobre


la que actúa una fuerza constante f viene dada por la función:
2M0 - f.L2 2 f.L2 3 f
w(x) = x + x - x4
4.b 6.b 24.b
donde L es la longitud de la viga, b es la resistencia a la flexión (producto del
módulo de elasticidad por el momento de inercia) y M0 es el momento flector en
el extremo izquierdo de la viga. En un cierto sistema de unidades y para una
viga determinada los valores de los parámetros anteriores son:
M0 = 4, f = 2, b = 1, L = 6
Siendo u(x) la función polinómica a trozos de segundo grado que interpola a
12
w(x) sobre un soporte de 13 puntos equidistantes {x i }i=0 , tales que se verifica:
0 = x0 < x1 < x2 < ..... < x12 = L
se pide:
a) evalúese el error que se comete en la interpolación realizada en el punto
11·L
x* = .
24
b) Obténgase una cota del error de interpolación válida en todo [0, L]

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}

y la partición de [0, 6] a considerar es:


∆ = {I1 = [0,1], I2 = [1,2], I3 = [ 2,3], I4 = [3,4], I5 = [ 4,5], I6 = [5,6]}

75
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Puesto que lo único que se pide es el error cometido en x* = 11/4 y este


punto pertenece al subintervalo I3 = [2, 3], será suficiente con determinar el
polinomio de grado no mayor que 2 que define a la función u(x) de L2(∆) que
interpola a w(x) en el intervalo [2, 3]. Para ello sabemos que, con los datos del
enunciado, w(x) = -16·x2 + 12·x3 – (1/12)·x4 y por tanto:

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

Ello, utilizando la fórmula de Newton para el cálculo del polinomio interpolador,


nos conduce a que:
92 3429 3401
∀ ∈ I3 = [ 2,3] : u(x) = + (x − 2) + (x − 2)·( x − 5 2 )
3 32 48

En particular en x* se verifica que:

92 3429 11 3401 11 95477


u* = u ( 114 ) = + ( 4 − 2) + ( 4 − 2 )·(114 − 5 2 ) =
3 32 48 768

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

• calcular todos los tramos de la función interpoladora u(x) y tras ello


obtener el máximo en [0, 6] de la función |E(x)| = |w(x) – u(x)| o,

• sin necesidad de calcular la función u(x) y puesto que w(x) es una


función de clase C3( R ), aplicar la última de las expresiones de acotación
del error presentadas en el corolario 4.

Siguiendo este último camino se tiene que:

w(x) = -16·x2 + 12·x3 – (1/12)·x4 Æ w’(x)= -32·x + 36·x2 – (1/3)·x3 Æ

Æ w”(x)= -32 + 72·x –x2 Æ w’’’(x)= 72 –2x

por lo que: M = Sup ( w '''(x) ) = 72 .


x∈]0,6[

Ello unido a que la longitud de todos los subintervalos de la partición es la


unidad nos lleva a que:

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}.

b) Calcular y dibujar las funciones de la base de Lagrange del espacio


usado en el apartado anterior.

c) Determinar una cota del error de interpolación válida en todo [-3, 3].

2º. a) Determinar la función interpoladora de L2(∆) para la partición de [0, 2] con


los puntos de soporte {0, ½ , 1, 3 2 , 2} de la función f(x) = |e-x – ½ |. Hallar una
cota de error válida en todo el intervalo [0, 2]. Comparar los resultados con los
obtenidos en el 2º ejercicio propuesto del apartado 2.2.

77
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

b) Razónese si las funciones de base de Lagrange del espacio L2(∆) usado en


4
el apartado anterior verifican ∑ i·ϕ ' (x) = 2
i ∀x ∈ [0,2] .
i=0

3º. Demuestra, a apartir del teorema 6, el siguiente corolario:

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 )) , que f(x) es continua por la
derecha en x2(j-1) , que f(x) es continua por la izquierda en x2j , y que
(x2j – x2j-1) = (x2j-1 – x2(j-1)) entonces:

2
∀x ∈ ⎤⎦⎥ x 2( j−1) ,x 2 j ⎡⎣⎢ : E(x) = f(x) − u(x) ≤ Mj ·h3j ,
72 3

donde Mj = Sup f '''(x) y hj = |x2j – x2(j-1)|.


x∈⎤⎥ x 2( j−1) ,x 2 j ⎡⎢
⎦ ⎣

78
Programación y Métodos Numéricos Interpolación polinómica por tramos

2.4. Interpolación de Lagrange con funciones polinómicas por tramos:


caso general.
Ocupémonos ahora de generalizar el proceso de interpolación por
tramos que, en los dos subapartados anteriores, se realizó en los espacios
L1(∆) y L2(∆). Para ello siendo k un entero positivo, y dados k enteros positivos
m1, m2, ... y mk, tales que su suma sea n, supondremos que en el soporte {x0,
..., xn} hay (m1 + m2 + ... + mk +1) = (n+1) puntos distintos y ordenados de
menor a mayor, escribiéndolo según convenga, al igual que se hizo en el
subapartado 2.1., con alguna de las tres notaciones equivalentes siguientes:

{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,...,xm1,1,x1,2 ,...,xm2 ,2 ,x1,3 ,...,xm3 ,3 ,.....,xmk−1,k−1,x1,k ,...,xmk ,k }

{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 }

Con esta notación designaremos en todo este subapartado por ∆ a la


partición del intervalo [ x 0 ,x n ] en los k subintervalos Ij = ⎡⎢ x 0,j ,xm j ,j ⎤⎥ (j = 1, ..., k).
⎣ ⎦
De esta manera al subintervalo Ij pertenecen (mj + 1) puntos del soporte.

Además, para aligerar la notación, denotaremos simplemente por L(∆) al


espacio Lm1,m2 ,..,mk (∆) , formado por todas las funciones continuas en el intervalo
[ x 0 ,xn ] tales que en cada intervalo Ij (j = 1, ..., k) tienen una expresión
polinómica de grado menor o igual a mj.

Puesto que, para cada valor entero del


índice “j” comprendido entre 1 y k, al intervalo
Ij = ⎡⎢ x 0,j , x m j ,j ⎤⎥ pertenecen los (mj + 1) puntos del
⎣ ⎦ xm
j-1
,j-1 xm j+1,j+1
soporte {x 0,j , x1,j , ...., xmj ,j } pueden definirse los
x0,j x1,j xm ,j
j
polinomios de la base de Lagrange asociados a
Ij
estos puntos. Tales polinomios los denotaremos
por:
mj
( x − x s,j )
Li (x) = ∏
( j)
(i = 0, ..., mj)
s=0 ( x i,j − x s,j )
m≠i

79
Interpolación polinómica por tramos. Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid

Con esta notación el teorema siguiente explicita las expresiones de las


funciones de base de Lagrange del espacio L(∆).

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

polinomios de base de Lagrange asociados al número de puntos de soporte


existentes en cada subintervalo es evidente que toda función de base es sobre
cualquier subintervalo Ij o bien la función nula o bien un polinomio de grado
menor o igual que mj. En resumen el tramo de cada función de base en Ij es un
polinomio de grado menor o igual que mj. Por otra parte si xs no es un nodo
común a dos subintervalos, ϕ s (x) será una función que coincide con un
polinomio que se anula en los extremos del intervalo al que pertenezca el nodo
xs y será nula fuera de dicho subintervalo. Por tanto en ese caso ϕ s (x) es
continua. Y si xs es un nodo común a los subintervalos Ij e Ij+1, entonces
ϕ s (x) será una función que coincide con un polinomio que se anula en el
extremo izquierdo de Ij y en el extremo derecho de Ij+1, tomando valor unidad
en el extremo común de ambos intervalos, y anulándose en los demás
subintervalos. Por tanto también en ese caso ϕ s (x) es continua.

80
Programación y Métodos Numéricos Interpolación polinómica por tramos

Por tanto las funciones {ϕ j (x)}


n
son (n+1) funciones de L(∆). Además,
j=0

según se han definido, verifican que si xs = xi,j:

ϕ s (x s ) = L(i j) (x i,j ) = 1 , ϕ s (xr ) = 0 si s ≠ r

Por tanto, en virtud del teorema 1 demostrado en el apartado 2.1., puede


concluirse que {ϕ j (x)}
n
forman la base de Lagrange de L(∆).
j=0

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:

( x − 5)(· x − 6)(· x − 7)(· x − 8) 1 4 13 3 251 2 533


L(3)
0 (x) = = x − x + x − x + 70
(4 − 5)(· 4 − 6)(· 4 − 7)(· 4 − 8) 24 12 24 12
( x − 4)(· x − 6)(· x − 7)(· x − 8) 1 25 3 115 2 460
L(3)
1 (x) = = − x4 + x − x + x − 224
(5 − 4)(· 5 − 6)(· 5 − 7)(· 5 − 8) 6 6 3 3
( x − 4)(· x − 5)(· x − 7)(· x − 8) 1 4 211 2
L(3)
2 (x) = = x − 6x 3 + x − 201x + 280
(6 − 4)(· 6 − 5)(· 6 − 7)(· 6 − 8) 4 4
( x − 4)(· x − 5)(· x − 6)(· x − 8) 1 23 3 97 2 356
L(3)
3 (x) = = − x4 + x − x + x − 160
(7 − 4)(· 7 − 5)(· 7 − 6)(· 7 − 8) 6 6 3 3
( x − 4)(· x − 5)(· x − 6)(· x − 7) 1 4 11 3 179 2 319
L(3)
4 (x) = = x − x + x − x + 35
(8 − 4)(· 8 − 5)(· 8 − 6)(· 8 − 7) 24 12 24 12

82
Programación y Métodos Numéricos Interpolación polinómica por tramos

Con ayuda de estos polinomios de base podemos definir las funciones de la


base de Lagrange de L(∆) como sigue:

⎧⎪ (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

La figura siguiente recoge las gráficas de estas funciones de base.

Al igual que en el caso de interpolación con funciones polinómicas por


tramos de grado no superior a 2, en el caso general la función interpoladora
también puede expresarse de forma única como combinación de las funciones
de base de Lagrange. Más concretamente:

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

es la única función de L(∆) que satisface las igualdades:

u(xj) = f(xj) ( j = 0,..., n)

A dicha función se la denomina función interpoladora de Lagrange de f(x)


del espacio L(∆) sobre el soporte {x0, ..., xn}.

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]:

∆ = {[0, 3] , [3, 4], [4, 8] }

se calcularon en el ejemplo anterior las 9 funciones de la base de Lagrange del


espacio L(∆) correspondiente. La función u(x) de L(∆) que interpola en el
sentido de Lagrange a f(x) = sen(xπ/2) está dada por:

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)

Determinemos, subintervalo a subintervalo, la función u(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

• En I2 = [3, 4]: ϕ1(x) = 0 , ϕ 3 (x) = −x + 4 y ϕ 5 (x) = ϕ 7 (x) = 0 por lo que:


∀x ∈ [3,4 ] : u(x) = −(−x + 4) = x − 4

• En I3 = [0, 3]: ϕ1(x) = ϕ 3 (x) = 0 ,


1 25 3 115 2 460
ϕ 5 (x) = − x 4 + x − x + x − 224 , y
6 6 3 3
1 23 3 97 2 356
ϕ 7 (x) = − x 4 + x − x + x − 160 por lo que:
6 6 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

La figura siguiente recoge el grafo de f(x) – en color negro - y el grafo de u(x)


–en colores azul, rojo y verde según los respectivos tramos-.

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

sea ∆ la partición de [x0, xn] dada por :


{
∆ = I1 = ⎡⎢ x 0 ,xm1 ⎤⎥ ,...,Ij = ⎡⎢ x m1+..+mj−1 ,x m1+..+m j−1+m j ⎤⎥ ,...,Ik = ⎡⎢ xm1+..+mk−1 ,xm1+..+mk−1+mk ⎤⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ }
y denotemos por f(x) a una función cualquiera y por u(x) a su función
interpoladora del espacio L(∆) correspondiente. Considerando que estas
funciones, en cada tramo, estén definidas por las expresiones:
⎧⎪f1(x) si x ∈ I1 ⎧⎪u1(x) si x ∈ I1
⎪⎪ ⎪⎪
⎪⎪.... .......... ⎪⎪.... ...........
⎪⎪ ⎪⎪
f(x) = ⎪⎨f j (x) si x ∈ Ij , u(x) = ⎪⎨u j (x) si x ∈ Ij
⎪⎪ ⎪⎪
⎪⎪.... ........... ⎪⎪.... ..........
⎪⎪ ⎪⎪
⎪⎪fk (x) si x ∈ Ik ⎪⎪uk (x) si x ∈ Ik
⎩ ⎩

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

En otros términos, si fj(x) es un polinomio de grado menor o igual que mj


resultará que fj(x) es el único polinomio de grado menor o igual que mj que
verifica las (mj+1) igualdades: f(xs) = f(xs) ( s = m0+ ... + mj-1 , ......,
m0+...+mj-1+mj). Y puesto que ui(x) debe ser un polinomio de grado menor o
igual que mj verificando que u(xs) = f(xs) ( s = m0+...+mj-1 , ..., m0+...+mj-1+mj),
puede concluirse que los polinomios ui(x) y fi(x) son el mismo.
c.q.d.

La expresión de la función interpoladora dada en el teorema 7 es una


expresión global (es decir, es válida para todo el intervalo [x0, xn]). No obstante,
existen expresiones locales, que nos permiten definirla en cada subintervalo Ij
de la partición, como son las que se recogen en la propiedad siguiente:

Propiedad 17.
n
Dado el al soporte {x 0 , x1, ..., x m1 , ..., xm1+m2 , ......, xm1+m2 +...+mk } , con n = ∑ m j ,
j=1

sea ∆ la partición de [x0, xn] dada por :

{
∆ = 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

polinomio de base de Lagrange asociado al soporte


{x m0 +..+m j−1 ,xm0 +..+m j−1+1,....,x m0 +..+m j−1+mj }

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.

Ocupémonos ahora de analizar el error de la interpolación de Lagrange


por tramos en el caso general.

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

proporciona la expresión del error de interpolación polinómica23 a este caso


particular. c.q.d.
Una primera consecuencia del teorema anterior es la ratificación de la
propiedad 16ª. En efecto si en el subintervalo Ij la función f(x) tuviera una
expresión polinómica de grado menor o igual a mj, será nula su derivada de
orden (mj+1) en cualquier punto interior a Ij y en consecuencia el error en todo
punto de Ij es nulo. En otros términos, en ese caso la función f(x) coincidirá con
la función interpoladora en todo punto del intervalo Ij. Pero el teorema anterior
también nos permite obtener cotas locales del error de interpolación como la
que se indica en el corolario siguiente:

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

∀x ∈ I j : E(x) = f(x) − u(x) ≤ Mj ·Sup ∏ x − xm0 +...+m j−1+i


(m j + 1)! D
x∈ I j i=0
(m j +1
donde m0 = 0 y Mj = Sup f (x)
D
x∈ I 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

I j = ⎤⎥ xm0 +...´+mj−1 , x m0 +...´+m j−1+mj ⎡⎢ y el valor de


⎦ ⎣ ∏( x − x
i=0
m0 +...+m j−1 +i ) por su supremo
en I j = ⎤⎥ xm0 +...´+mj−1 , x m0 +...´+m j−1+mj ⎡⎢ .
⎦ ⎣
c.q.d.

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:

∆ = { I1 = [x0, x3], ..., Ij = [x3(j-1), x3j] , …, Ik = [x3(k-1), x3k] }

y por L3(∆) al espacio de las funciones polinómicas de tercer grado a tramos


asociado a dicha partición.

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

BIBLIOGRAFÍA SOBRE EL TEMA

[1] Burden, R.L. y Fiares, J.D. (1998). Análisis Numérico. Ed. International
Thomsom Editores

[2] Crouzeix, M. et Mignot, A.L. (1983) Analyse numérique des équations


differentielles. Ed. Masson.

[3] Gasca, M. (1995) Cálculo Numérico I. Ed. Universidad Nacional de


Educación a Distancia (UNED).

[4] Michavila, F. y Conde, C. (1987) Métodos de Aproximación. Ed. Depto. de


Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad
Politécnica de Madrid.

[5] Sanz-Serna, J.M (1998 ) Diez lecciones de análisis numérico. Secretariado


de Publicaciones de la Universidad de Valladolid

[6] Shampine, L.F., Allen Jr., R.C. and Pruess, S. (1997) Fundamentals of
numerical computing. Ed. John Wiley & Sons, Inc.

[7] Stoer, J. and Bulirsch, R. (1993) Introduction to numerical analysis (2nd


edition). Ed. Springer

[8] Viaño, J.M. y Burguera, M. (2000) Lecciones de Métodos Numéricos, 3:


Interpolación. Ed. Tórculo

93
UNIVERSIDAD POLITÉCNICA DE MADRID

ESCUELA TÉCNICA SUPERIOR DE


INGENIEROS DE MINAS

DEPARTAMENTO DE MATEMÁTICA APLICADA Y


MÉTODOS INFORMÁTICOS

Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS

Tema: DERIVACIÓN NUMÉRICA


Prof. Carlos Conde Lázaro
Prof. Arturo Hidalgo López
Prof. Alfredo López Benito

Marzo, 2007
Programación y Métodos Numéricos Derivación Numérica

ÍNDICE
Pág.
1. INTRODUCCIÓN Y MOTIVACIÓN. ………………………………… 1

2. FÓRMULAS DE DERIVACIÓN NUMÉRICA. ………..…………… 4

3. FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPO-


LATORIO PARA APROXIMAR LA PRIMERA DERIVADA DE
UNA FUNCIÓN. ……………………………………………….. 10

4. EXPRESIONES DEL ERROR EN LAS FÓRMULAS DE DERIVA-


CIÓN NUMÉRICA DE TIPO INTERPOLATORIO QUE
APROXIMAN LA PRIMERA DERIVADA DE UNA FUNCIÓN .. 19

5. ALGUNAS FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO


INTERPOLATORIO USUALES PARA APROXIMAR PRIME-
RAS DERIVADAS ……………………………………………….. 29
5.1. Fórmulas con dos puntos de soporte. ……………………. 29
5.1.1. Casos particulares. ………………………………. 31
5.2. Fórmulas con tres puntos de soporte. ……………………. 33
5.2.1. Casos particulares con soporte equidistante. . 36

6. OTROS MÉTODOS PARA LA OBTENCIÓN DE FÓRMULAS DE


DERIVACIÓN NUMÉRICA DE TIPO INTERPOLATORIO. …. 39
6.1. Mediante la combinación de desarrollos en serie
de Taylor. ……………………………………..…………… 39
6.2. Método de coeficientes indeterminados. …………………. 43

7. FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPO-


LATORIO PARA LA APROXIMACIÓN DE DERIVADAS DE
ORDEN SUPERIOR. ……………………………………………. 47
7.1. Obtención de fórmulas de derivación de tipo interpolato-
rio mediante el método de los coeficientes indetermi-
nados. ………………………………………………………. 63

8. MEJORA DE LA PRECISIÓN DE LAS FÓRMULAS DE DERIVA-


CIÓN NUMÉRICA. MÉTODO DE EXTRAPOLACIÓN DE
RICHARDASON. …………………………………………………… 67

BIBLIOGRAFÍA SOBRE EL TEMA. …………………………………….. 74

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

De muchas funciones con las que se trabaja en la práctica no se conoce su


expresión analítica y tan sólo se dispone de su valor en un conjunto de puntos
(llamado soporte por analogía con la terminología utilizada en los temas de
interpolación). No obstante, en ocasiones es necesario proceder al cálculo del
valor de alguna derivada de tales funciones en un punto concreto. Es obvio que
en este tipo de situaciones no se puede utilizar el concepto riguroso de
derivada (pues se desconoce la expresión de la función). Surge así la
conveniencia de diseñar métodos numéricos que permitan aproximar el valor
de las derivadas de una función en algún punto a partir del conocimiento de los
valores de la función en un soporte dado.

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.

Es más, muchas de las técnicas de derivación numérica que se abordarán en


este tema están en la base de diferentes métodos utilizados para la resolución
de ecuaciones diferenciales, es decir de ecuaciones en las que intervienen
derivadas de funciones “incógnita”. Es el caso, por ejemplo, de los llamados
métodos en diferencias finitas.

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

forma de interpolar. No obstante conviene indicar que para otras técnicas de


interpolación podrían diseñarse técnicas de derivación numérica de forma
análoga a como se plantearán las recogidas en este tema.

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

El ejemplo anterior pone de manifiesto que, en la práctica, al trabajar en


aritmética finita, reducciones “excesivas” del valor de h empeora la precisión
del cociente incremental.

El ejemplo anterior pone de manifiesto que cabe distinguir, al menos, dos


fuentes de error en las técnicas de aproximación numérica. La primera de ellas,
que se designa habitualmente como error del método o error de truncatura,
es debida a sustituir la expresión de la derivada (a través del cálculo de un
límite) por una fórmula en la que se combinan valores de la función en
determinados puntos. La segunda fuente de error es debida a los errores de
redondeo que se cometen en las operaciones que contemple la fórmula
numérica. En este tema nos ocuparemos de analizar la primera de las fuentes
de error remitiendo al lector interesado en el análisis de los errores de
redondeo al primero de los temas de esta asignatura.

3
Programación y Métodos Numéricos Derivación Numérica

2. Fórmulas de derivación numérica


Sea f(x) una función 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 además, en todo cuanto sigue, 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 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

donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o


pesos) de la fórmula de derivación

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.

En general el valor aproximado f*' y el valor exacto f’(x*) diferirán,


cometiéndose un error en la aproximación de f’(x*). Es por ello que junto a la
definición de una fórmula numérica conviene precisar de forma rigurosa la
definición del error que con ella se comete. En este sentido se introduce la
siguiente definición:

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

se denomina error de truncamiento de la fórmula en el punto x*y para


la función f al valor Rf(x*) = f’(x*) - f*'

Obviamente se verificará que: f '(x*) = f*' + R f (x*) por lo que considerando la


fórmula en cuestión aplicada a todos los puntos x de un dominio dado
puede definirse la función error de truncamiento de la fórmula derivación
numérica para la función f considerada como la función:
Rf : I Æ R
x Æ Rf(x) = f’(x) - f*'

En el análisis del error de truncamiento de las fórmulas de derivación numérica


se perseguirá encontrar cotas del valor de esta función de error Rf(x) en el
intervalo I sobre el que se trabaje.

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 )

Para el caso particular de la función f(x) = x2 el cociente incremental


considerado conduce a la expresión:
( x + h )2 − x02
f0' = 0 = 2.x0 + h
h
por lo que el error de truncatura cometido es en este caso Rf(x0) = h.
Obsérvese que la acotación antes realizada conduciría (para esta función x2) a
la acotación |Rf(x0)| ≤ h coincidente con el error de truncatura realmente
cometido1.

Las fórmulas que conducen al valor exacto de la derivada se denominan


fórmulas exactas. Más concretamente:

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

es una fórmula exacta para la función f(x) = x2, en el punto x* = 1 y para el


soporte {x0 = 0, x1 = 2}. En efecto, f’(1) = 2 y:

−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

es exacta de orden k para la familia de funciones de clase C1([x0 , xn]):


{φ0 (x), φ1(x),..., φk (x),....}
cuando es nulo el error de truncatura cometido al aplicar la fórmula para
la estimación de la primera derivada de cualquiera de las (k+1) primeras
funciones de la familia y en cualquier punto x* perteneciente al intervalo
[x0 , xn]: Rϕk (x) = 0 ∀x ∈ [x 0 ,xn ]

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

orden k para la familia de funciones {ϕ0 (x), ϕ1(x),..., ϕk (x),....} entonces es


exacta para cualquier combinación lineal de las (k+1) primeras funciones
de la familia

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

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' = ∑ c i .f(xi )
i=0

puede concluirse que:


R f (x*) = 0 ∀x* ∈ [ x 0 ,xn ]

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.

Las fórmulas de derivación numérica más utilizadas en la práctica son exactas,


de algún orden k, para la familia de funciones formada por los monomios, es
decir: {1, x, x2, ...,xk, ....}. En este tema nos referiremos en exclusiva a esta
familia de funciones y por ello cuando digamos que una fórmula es de orden k
se sobreentenderá que “es de orden k para la familia de los monomios”, es
decir que permite estimar sin error alguno la primera derivada de cualquier
función polinómica de grado menor o igual que k en cualquier punto x*.

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

3. Fórmulas de derivación numérica de tipo interpolatorio para aproximar


la primera derivada de una función.
Como se ha comentado en el apartado anterior, las fórmulas más utilizadas en
la práctica se buscan de forma que sean exactas para polinomios de grado
menor o igual que n (es decir fórmulas de orden de exactitud n). Una manera
natural de construir fórmulas exactas de orden n consiste en recordar que el
polinomio pn(x) que interpola en el sentido de Lagrange y sobre un soporte de
(n+1) puntos a una función f(x) que sea polinómica de grado menor o igual que
n coincide con dicha función2. Por ello es equivalente derivar la función
polinómica f(x) que derivar la su polinomio interpolador pn(x). A todas las
fórmulas de derivación que se obtienen derivando la expresión del polinomio
interpolador de Lagrange se las denomina fórmulas de derivación de tipo
interpolatorio.

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.

Una fórmula de derivación numérica de tipo interpolatorio puede obtenrse de


cualquiera de las expresiones del polinomio interpolador. Recordando la
expresión del polinomio interpolador en función de los polinomios de base de
Lagrange puede deducirse la expresión de los pesos que intervienen en dicha
fórmula. En efecto:

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

coeficientes satisfagan las igualdades:

ci = L'i ( x*) (i = 0, 1, ..., n)

donde se ha denotado por Li(x) a los (n+1) polinomios de base de


Lagrange3 sobre el soporte {x0, x1, ..., xn}.

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

de donde, en cualquier punto x* se puede considerar la aproximación:

n
f '(x*) ≈ pn' (x*) = ∑ L'i (x*) ⋅ f(x i )
i=0

Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes


están dados por la expresión:

c i = L'i (x*) (i = 0, ..., n)

b) Demostremos que si la fórmula de derivación numérica satisface c i = L'i (x*)


(i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el
polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede
n
expresar como: pn(x) = ∑ f(x )·L (x)
i=0
i i se tiene que si se verifican las igualdades

consideradas para los coeficientes:

⎛ 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 ⎠

lo que demuestra que el valor de la primera derivada en x* se aproxima con el


valor de la primera derivada del polinomio interpolador en x*.
c.q.d.

La propiedad anterior caracteriza a las fórmulas de derivación numérica de tipo


interpolatorio que permiten aproximar primeras derivadas. Además nos permite
obtener otras propiedades que deben satisfacer los coeficientes de las fórmulas
de tipo interpolatorio. Por ejemplo:

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

En particular para el punto x* se tendrá que:


n n

∑ L'i (x*) = ∑ ci = 0
i=0 i=0

c.q.d.

Ocupémonos ahora de analizar el error en las fórmulas de derivación numérica


de tipo interpolatorio. Denotando por ε(x) a la función error de interpolación
cometido al aproximar una función f(x) por su polinomio interpolador de
Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que:

f(x) = pn(x) + ε(x) ∀x ∈ (x 0 ,xn )


por lo que:
f '(x*) = pn' (x*) + ε '(x*)

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

sea exacta de orden n es que sea de tipo 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

por lo que f’(x) = p’n(x) ∀x . En particular para cualquier punto x* se


tendrá que:

f '(x*) = pn' (x*) ≡ fx*'

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.

b) Demostremos ahora que la condición anterior también es necesaria, es


decir que si la fórmula construida sobre el soporte de (n+1) puntos es
exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello
partimos del hecho de que, al ser la fórmula exacta de orden n, para
cualquier función polinómica de grado menor o igual que n, p(x), se debe
verificar que:
n
p'(x*) = ∑ c i .p(xi )
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

de donde su primera derivada en el punto x* estará dada por:

n
p'(x*) = ∑ L'i (x*).p(xi )
i= 0

Identificando las dos expresiones de la primera derivada de p(x) en x* se


tiene que:
n n

∑ ci .p(xi ) = ∑ L'i (x*).p(xi )


i =0 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

además que los polinomios de base de Lagrange verifican:

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

Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene


que:
n n

∑ c .L
i =0
i 0 (xi ) = ∑ L'i (x*).L0 (xi ) ⇒ c 0 = L'0 (x*)
i=0

Al hacerlo para el polinomio L1(x) resultará que:


n n

∑ ci .L1(xi ) = ∑ L'i (x*).L1(xi ) ⇒ c1 = L'1(x*)


i =0 i= 0

Y en general al particularizar para cualquier polinomio de base Lj(x)


obtendremos que:
n n

∑ ci .L j (xi ) = ∑ L'i (x*).L j (xi ) ⇒ c j = L' j (x*)


i =0 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).

Figura 1: Interpretación gráfica del proceso de aproximación de la derivada primera


de una función mediante la fórmula de tipo interpolatorio con soporte de un punto.

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:

f '(x*) ≈ fx*' = p0' (x*) = 0 = 0.f(x 0 )

Obviamente esta fórmula sólo sería exacta en el caso de derivar constantes (es
decir, polinomios de grado 0).

2º) Si se considera un soporte de 2 puntos {x0, x1} el polinomio interpolador de


la función f(x) en el sentido de Lagrange está dado por:

(x − x1 ) (x − x 0 )
p1 (x) = f(x 0 ). + f(x1 ).
(x 0 − x1 ) (x1 − x 0 )

La derivada de este polinomio es:

1 1 f(x1 ) − f(x 0 )
p1' (x) = f(x 0 ). + f(x1 ). =
(x 0 − x1 ) (x1 − x 0 ) (x1 − x 0 )

Al no depender del punto en el que se evalúe la derivada podemos concluir que


para cualquier abscisa x* el valor de la primera derivada de la función en ella,
f’(x*), se aproximará mediante:

f(x1 ) − f(x 0 )
f '(x*) ≈ fx*' =
x1 − x 0

Esta expresión se corresponde con el cociente incremental que se utilizó en los


ejemplos de los apartados anteriores. Puede observarse que los pesos de la
fórmula son: c0 = -1/(x1 – x0) y c1 = 1/(x1 – x0) por lo que su suma se anula. La
gráfica de la figura 2 representa junto a los grafos del polinomio interpolador y
de la función f(x) la tangente geométrica al grafo de f(x) en un punto (x*, f(x*)).

16
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.

Figura 2: Interpretación gráfica del proceso de aproximación de la derivada primera


de una función mediante la fórmula de tipo interpolatorio con soporte de dos puntos.

Obviamente esta fórmula de derivación numérica será exacta sobre cualquier


polinomio de grado menor o igual que 1 (es decir sobre líneas rectas).

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]

La primera derivada de esta función estará dada por:

f[x 0 ,x1,....,xn ,x + h] − f[x 0 ,x1,....,xn ,x]


g’(x)= lim = lim f[x 0 ,x1,....,x n ,x,x + h]
h →0 (x + h) − x h →0

que representaremos por:


g'(x) = f[x 0 ,x1,....,xn ,x,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.

La expresión anterior, teniendo un interés teórico, también es de difícil


aplicación práctica. 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.

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

∑ c i ⋅ xik = (xk )'x = x* ⇒ ∑ c i ⋅ xik = k.(x * )(k −1)


i=0 i=0
(k = 0,..., 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

Para cada uno de estos puntos, al haber supuesto la función f(x)


suficientemente regular, se puede considerar el desarrollo en serie de Taylor
siguiente:
θ2 .h2 θn .hn (n
f(xi ) = f(x * +θi .h) = f(x*) + θi .h.f '(x*) + i .f "(x*) + .... + i .f (x*) +
2 n!
θn+1.hn+1 (n+1
+ i .f (x * +δi .h)
(n + 1)!

Por tanto la fórmula de derivación numérica de tipo interpolatorio considerada


podrá rescribirse en la forma:

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

Simplifiquemos la expresión que se acaba de obtener. El coeficiente que


multiplica a f(x*) es nulo pues es la suma de los pesos de la fórmula (véase la
propiedad 3.2.). Para simplificar otros sumandos de la expresión utilizaremos
las dos propiedades siguientes:

Propiedad 4.2.
n
Con la notación introducida anteriormente y siendo fx*' = ∑ c i .f(xi ) una
i= 0

fórmula de derivación numérica de tipo interpolatorio con n > 0, se


verifica que:
n
1
∑ c .θ
i=0
i i =
h
Demostración:
Con la notación que estamos utilizando se tiene que:

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

x en el punto x*. Por ello su valor será 1. En resumen:


n
1

i=0
c i .xi =
h
c.q.d.

Propiedad 4.3.
n
Con la notación introducida anteriormente y siendo fx*' = ∑ c i .f(xi ) una
i= 0

fórmula de derivación numérica de tipo interpolatorio, con n>1, se


verifica que:
n

∑ 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⎠

Al ser la fórmula de tipo interpolatorio será exacta para cualquier polinomio de


grado menor o igual que n. En particular, al haber considerado n > 1 si se
toman valores de k tales que 2 ≤ k ≤ n se debe verificar para todo valor del
n
entero j comprendido entre 0 y (k-1) que el sumatorio ∑ c .x
i=0
i
(k − j)
i coincide con el

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

cuyo valor es nulo(véase la propiedad 3.2.). Por tanto:

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 ⎠⎠

Puesto que6 se verifica que:

(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.

Estas dos propiedades junto a la expresión que obtuvimos antes de enunciarlas


nos permiten demostrar fácilmente el siguiente teorema:

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

derivación numérica de tipo interpolatorio:


n
f '(x*) ≈ fx*' = ∑ c i .f(x i )
i=0

existen (n+1) valores δi pertenecientes al intervalo [-1 , 1] tales que:

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:

1ª) Obsérvese que en el término del error se ha descompuesto hn+1 en la forma


hn·h, dejando sólo como factor común del sumatorio hn y expresando en cada
uno de los sumandos del término de error θi·h como hi. El motivo de ello es que
los coeficientes ci de la fórmula de derivación dependen en general de los
valores hi por lo que procediendo de esta manera el término de error podrá
expresarse en función de los valores de las derivadas f(n+1(ξi) (siendo ξi los
puntos x*+δi·h), de hn y de (n+1) constantes γi = ci·θin·hi/(n+1)!. En los ejemplos
del siguiente apartado se ilustrará este hecho.

2ª) La expresión anterior se resume frecuentemente indicando que el error es


de orden O(hn).

3ª) Para algunas funciones y en algunos puntos se verificará que el término


que multiplica a la derivada de orden (n+1) en el desarrollo en serie de Taylor
del que se partía también se anula. En dichos casos, si f(x) es lo
suficientemente regular, puede ampliarse el desarrollo en serie considerado
truncándolo en el primero de los términos que no se anule (que será posterior a
aquel en el que interviene la derivada n-ésima).

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).

5ª) Cuando el soporte es equidistante los cálculos anteriores suelen rehacerse


designando como h a la distancia entre los puntos del soporte.

Habitualmente el error se acota en valor absoluto, |Rf(x*)|. A partir del teorema


anterior es fácil obtener una cota de este error utilizando el lema siguiente:

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

intervalo [a, b], entonces existe un punto ξ ∈ [a,b ] tal que:


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:

αi .gm ≤ αi .g(ξi ) ≤ αi .gM (i = 0, 1, ..., n)

Sumando las expresiones anteriores se tiene 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

Las desigualdades anteriores, junto a la hipótesis realizada sobre la


continuidad de la función g(x) en el intervalo [a, b], nos muestran que, por
aplicación del teorema del valor medio, existirá en [a, b] al menos un punto
ξ para el que se verifique que:

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.

El lema precedente y el teorema 4.1. nos permiten demostrar fácilmente el


siguiente teorema:

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

existe algún punto ξ ∈ [ x 0 ,x n ] y alguna constante real positiva β para los


que se verifica:
|Rf(x*)| ≤ β.hn .f (n+1 (ξ)
Demostración:
Según el teorema 4.1., y utilizando la misma notación que en él, se tiene que:

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⎠

Analicemos, utilizando la fórmula del binomio de Newton7, el primero de los


sumandos del lado derecho de esta igualdad:

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

y demostremos que en ese caso también se anula el sumatorio para el entero


k. En efecto, con esta suposición:

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.

5.1. Fórmula con dos puntos de soporte


Si se considera el soporte {x0 , x1} y una función f(x) de la que se conoce su
valor en los puntos del soporte, el polinomio interpolador de Lagrange de tal
función sobre el soporte escogido está dado por:

(x − x1 ) (x − x 0 )
p(x) = f(x 0 ). + f(x1 ).
(x 0 − x1 ) (x1 − x 0 )

Por tanto la expresión de la fórmula que permite aproximar f’(x*) se obtendrá


derivando la expresión de este polinomio de manera que:

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

siendo los coeficientes de la fórmula c0 = -(1 / H) y c1 = (1 / 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º).

2ª) En la obtención de esta fórmula se ha partido de la expresión del polinomio


interpolador que utiliza los polinomios de base de Lagrange. Cualquier otra
expresión del polinomio interpolador nos hubiese conducido a idéntico
resultado pues el polinomio interpolador de Lagrange, sobre un soporte dado,
es el mismo se utilice el método que se utilice para determinarlo. Así por
ejemplo si se hubiera partido de la fórmula de Newton en diferencias divididas:

p(x) = f(x0) + f[x0, x1].(x-x0)

29
Programación y Métodos Numéricos Derivación Numérica

que al derivarlo, teniendo en cuenta la expresión de la diferencia dividida nos


proporciona:
f(x1 ) − f(x 0 )
p’(x) = f[x0, x1].(x-x0) = .(x − x 0 )
x1 − x 0

por lo que particularizando esta expresión en el punto x = x* y denotando por H


a la distancia entre puntos se tiene finalmente que:

−1 1
f(x*) ≈ fx*' = p '(x*) = .f(x 0 ) + .f(x1 )
H H

En este caso, al haber sólo dos puntos de soporte, se puede considerar el


soporte equidistante y podrían haberse utilizado las expresiones del polinomio
interpolador en diferencias finitas (centradas, regresivas o progresivas)
obteniéndose la misma fórmula. Se deja el desarrollo detallado de estos casos
como ejercicio propuesto al lector.

3ª) La figura 2ª representada anteriormente (ver apartado 3º) recoge la


interpretación gráfica de este proceso de aproximación.

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 "(ξ)

En el caso de ser x* un punto cualquiera el orden del error de la fórmula de


derivación numérica es 0(h) donde h representa la mayor de las distancias del
punto x* a los extremos del intervalo. Más frecuente aún que la expresión del
error anterior es la que se obtiene al expresar dicha fórmula en función de la
distancia entre los puntos del soporte (H). Fácilmente se obtiene esta nueva
expresión sin más que considerar que h = μ.H (con ½ < μ < 1) por lo que la
expresión del error queda en el caso más general en la forma:

Rf(x*) = ρ.H.f”(ξ)

La fórmula de derivación con dos puntos de soporte suele utilizarse cuando x*


es uno de los puntos extremos del intervalo o el punto medio del mismo (caso,
este último, en el que el orden del error de la fórmula se incrementa en una
unidad). A continuación se desarrollan estos casos particulares de la fórmula
de derivación con un soporte de dos puntos.

5.1.1. Casos particulares

A) Caso en el que x* = x0

En este caso h = H, θ0 = 0 y θ1 = 1 y la fórmula se puede escribir en la


forma:
f(x * +h) − f(x*)
fx*' =
h
denominándose “aproximación mediante la diferencia finita progresiva de
primer orden” (o en adelanto). El error de esta fórmula, si f(x) es
suficientemente regular puede obtenerse particularizando en la
expresión antes obtenida resultando:

h
R f (x*) = f(x*) − fx*' = − .f "(x * +δ.h) δ ∈ [0,1]
2

Por tanto en este caso la fórmula es exacta de orden 1.

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:

f(x * +h) − f(x*) 1 1


f’(x*) = − .h.f "(x*) − .... = fx*' − .h.f "(x*) − ....
h 2 2

B) Caso en el que x* = x1

En este caso h = H, θ0 = −1 y θ1 = 1 y la fórmula se puede escribir en la


forma:
f(x*) − f(x * −h)
fx*' =
h
denominándose “aproximación mediante la diferencia finita regresiva de
primer orden” (o en retroceso o upwind). El error de esta fórmula, si f(x)
es suficientemente regular puede obtenerse particularizando en la
expresión antes obtenida resultando:
h
R f (x*) = f(x*) − fx*' = .f "(x * −δ.h) δ ∈ [0,1]
2

Por tanto, en este caso la fórmula es exacta de orden 1.

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:

f(x*) − f(x * −h) 1 1


f’(x*) = + .h.f "(x*) − .... = fx*' + .h.f "(x*) − ....
h 2 2

C) Caso en que x* es el punto medio del intervalo: x* = (x0 + x1) / 2

En este caso h = H/2, θ0 = −1 y θ1 = 1 pudiéndose rescribir la fórmula


de derivación numérica en la forma:

f(x * +h) − f(x * −h)


fx*' =
2.h

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

No obstante la expresión anterior nos deja con la duda de si no podrán


anularse más términos del desarrollo en serie de Taylor a partir del cual
se obtuvo la expresión del error. En efecto, en este caso si se admite
que f(x) es suficientemente regular se podrían considerar los desarrollos
en serie de Taylor de f(x) con más términos que los antes planteados, es
decir:
h3 h4 (iv
2
f(x0) = f(x*-h) = f(x*) – h.f’(x*) + (½).h f”(x*) - .f '''(x*) + .f (x*) − ....
6 24
h3 h4 (iv
f(x1) = f(x*+h) = f(x*) + h.f’(x*) + (½).h2f”(x*) + .f '''(x*) + .f (x*) + ....
6 24
por lo que:
h3 h5 (v
f(x+h) – f(x-h) = 2.h.f’(x*) + .f '''(x*) + .f (x*) + ...
3 60
de donde:
f(x * +h) − f(x * −h) h2 h4 (v
fx*' = = f '(x*) + .f '''(x*) + .f (x*) + ....
2.h 6 120
y por tanto:
h2 h4 (v
Rf(x*) = f’(x*) - fx*' = − .f '''(x*) − .f (x*) − ....
6 120
En resumen, si f(x) es de clase C3((x0, x1)) puede afirmarse en este caso
que:
h2
R f (x*) = − .f '''(x * +δh) δ ∈ [0,1]
6
por lo que en este caso la fórmula es exacta de orden 2.

5.2. Fórmula con tres puntos de soporte


Sea ahora el soporte de tres puntos x0 < x1 < x2 y consideremos un punto x*
perteneciente al intervalo [x0, x2]. Sea además f(x) una función de la que se
conocen sus valores en los puntos del soporte. El polinomio interpolador de
Lagrange de f(x) sobre este soporte puede expresarse, utilizando la fórmula de
Newton en diferencias divididas, mediante:

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))

lo que nos conduce a que la fórmula de derivación numérica de tipo


interpolatorio con este soporte está dada por:

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.

2ª) En la expresión anterior pueden sustituirse las diferencias divididas que


intervienen por sus expresiones respectivas8. Ello hace que la fórmula tome un
aspecto más “engorroso” para su manipulación.

3ª) En el sentido de lo expresado en la primera de estas “notas” el polinomio


interpolador podría haberse expresado en la forma:

p2(x) = f(x0).L0(x) + f(x1).L1(x) + f(x2).L2(x)

con:

(x − x1 ).(x − x 2 ) (x − x 0 ).(x − x 2 ) (x − x 0 ).(x − x1 )


L0 (x) = , L1 (x) = , L 2 (x) =
(x 0 − x1 ).(x 0 − x 2 ) (x1 − x 0 ).(x1 − x 2 ) (x 2 − x 0 ).(x 2 − x1 )

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 )

En esta última expresión los coeficientes de la fórmula aparecen de forma más


explícita y toman la expresión:

(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 )

4ª) La interpretación gráfica del proceso de derivación numérica seguido con


esta fórmula consiste en sustituir la tangente trigonométrica del ángulo formado
entre el eje de abscisas y la tangente geométrica al grafo de f(x) en el punto
(x*, f(x*)) por la tangente trigonométrica del ángulo formado entre el eje de
abscisas y la tangente geométrica en el punto (x*, p2(x*)) al grafo de la
parábola p2(x) que pasa por los puntos (x0 , f(x0)), (x1 , f(x1)) y (x2 , f(x2)). La
figura 3 ilustra este proceso.

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

En lo que se refiere al error de truncatura de esta fórmula, su expresión puede


acotarse, si f∈C3((x0 , x1)), utilizando el teorema 4.2. mediante:

R f (x*) ≤ β.h2 . f ''' (ξ)

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.

5.2.1. Casos particulares con soporte equidistante

En este caso, denotando por H a la distancia entre puntos consecutivos del


soporte las diferencias divididas que intervienen en la fórmula pueden ser
expresadas mediante:

f(x1 ) − f(x 0 ) f(x 2 ) − 2.f(x1 ) + f(x 0 )


f[x 0 ,x1 ] = f[x 0 ,x1,x 2 ] =
H 2.H2

por lo que la fórmula de derivación numérica de tipo interpolatorio se convierte


en:

f(x1 ) − f(x 0 ) f(x 2 ) − 2.f(x1 ) + f(x 0 )


f '(x*) ≈ fx*' = + 2
.((x * − x 0 ) + (x * − x1 ))
H 2.H

H H

x0 x1 x2

A) Caso de soporte equidistante en el que x* = x0

Si se toma como punto x* el extremo izquierdo del soporte se tiene que:


x0 = x*, x1 = x* + H y x2 = x* + 2.H. Con ello (x* - x0) = 0 y (x* - x1) = -H
por lo que:

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.

Si se admite que f(x) es una función suficientemente mente regular, el error


de derivación puede obtenerse fácilmente combinando los desarrollos en
serie de Taylor:

f(x* + 2.H) = f(x*) + 2.H.f’(x*) +2.H2.f”(x*) + (8/6).H3.f’’’(x*) + …


f(x* + H) = f(x*) + H.f’(x*) + (½ ) H2.f”(x*) + (1/6).H3.f’’’(x*) +...

por lo que:

-f(x*+2.H) + 4.f(x*+H) – 3.f(x*) = 2.H.f’(x*) – (2/3).H3.f’’’(x*) + ….

de donde:

− f(x * +2.H) + 4.f(x * +H) − 3.f(x*) 1 2


f’(x*) = + .H .f '''(x*) + ....
2.H 3

pudiéndose concluir que si f(x) es al menos de clase C3((x0 , x1)) entonces:

Rf(x*) = f(x*) – fx*’ = (1/3).H2.f’’’(ξ)

B) Caso de soporte equidistante en el que x* = x1

Si se toma como punto x* el punto medio del soporte se tiene que:


x0 = x* - H, x1 = x* y x2 = x* + H. Con ello (x* - x0) = H y (x* - x1) = 0 por
lo que:
f(x1 ) − f(x 0 ) f(x 2 ) − 2.f(x1 ) + f(x 0 ) f(x 2 ) − f(x 0 )
f '(x*) ≈ fx*' = + = =
H 2.H 2.H

f(x * +H) − f(x * −H)


=
2.H

37
Programación y Métodos Numéricos Derivación Numérica

fórmula que coincide con la que se obtuvo al utilizar un soporte de 2 puntos


y aproximar la derivada en el punto medio de ellos.

C) Caso de soporte equidistante en el que x* = x2

Si se toma como punto x* el punto derecho del soporte se tiene que:


x0 = x* - 2.H, x1 = x*- H y x2 = x*. Con ello (x*-x0) = 2.H y (x*-x1) = H por
lo que:

f(x1 ) − f(x 0 ) f(x 2 ) − 2.f(x1 ) + f(x 0 )


f '(x*) ≈ fx*' = + .(3.H) =
H 2.H2

3.f(x 2 ) − 4.f(x1 ) + f(x 0 ) 3.f(x*) − 4.f(x * −H) + f(x * −2.H)


= =
2.H 2.H

expresión que se conoce como fórmula de derivación numérica en


derivadas regresivas de segundo orden.

Si f(x) es suficientemente regular pueden combinarse los desarrollos en


serie de Taylor:

f(x* - 2.H) = f(x*) - 2.H.f’(x*) +2.H2.f”(x*) - (8/6).H3.f’’’(x*) + …


f(x* - H) = f(x*) - H.f’(x*) + (½ ) H2.f”(x*) - (1/6).H3.f’’’(x*) +...

obteniendo:

3.f(x*) – 4.f(x*-H) + f(x*-2.H) = 2.H.f’(x*) – (2/3).H3.f’’’(x*) - ....

de donde, si f(x) es al menos de clase C3((x0, x2) se obtiene que:

Rf(x*) = f(x*) – fx*’ = (1/3).H2.f’’’(ξ)

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.

6.1. Mediante la combinación de desarrollos en serie de Taylor.


El proceso seguido en el apartado 4º para determinar el error de derivación
numérica muestra otra manera de calcular las fórmulas de derivación. En
efecto, una alternativa al proceso de obtención de fórmulas de derivación
numérica mediante el cálculo de la primera derivada del polinomio interpolador
de Lagrange de la función f(x) en los (n+1) puntos del soporte, consiste en
combinar los desarrollos de Taylor en torno al punto x* de f(x0), f(x1), ..., f(xn)
buscando que en dicha combinación se anulen el mayor número posible de los
primeros términos salvo, obviamente, el que multiplica a f’(x*). Despejando
después f’(x*) de esta combinación se obtendrá la fórmula de derivación y el
término de error. De forma más detallada, si se denota por hi = xi – x* (i = 0, ..,
n) y se admite que f(x) posee la regularidad necesaria, se puede escribir que:

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

En general el número de ecuaciones que así se pueden formar es de n


ecuaciones quedando un sistema con (n+1) incógnitas (α0, ..., αn) y tan sólo n
ecuaciones. Ello es debido a que con el coeficiente de f’(x*) se debe añadir la
n
inecuación ∑ α ·h
i =0
i 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

quedarán en función del valor que libremente se le asigne a uno de ellos.

n
En todo caso, una vez calculados estos coeficientes, denotando por α = ∑ αi ·hi
i= 0

se tendrá que los coeficientes de la fórmula de derivación se obtienen


mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya
podido anular en la expresión (1) se podrá inferir fácilmente la expresión del
error de derivación.

Ilustremos estos extremos con un ejemplo.

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:

4·h2 8·h3 16·h4 (iv


f(x*-2·h) =f(x*) –2·h·f’(x*) + ·f "(x*) − ·f '''(x*) + ·f (x*) −
2 6 24
32·h5 (v
− ·f (x*) + ...
120

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

3 3 9·h2 27·h3 91·h4 (iv


f(x*+ ·h) =f(x*) + · h·f’(x*) + ·f "(x*) + ·f '''(x*) + ·f (x*) +
2 2 8 48 384
273·h5 (v
+ ·f (x*) + ...
3840
de donde:
1 1 3
α0 ·f(x * −2·h) + α1·f(x * − ·h) + α 2 ·f(x * + ·h) + α 3 ·f(x * + ·h) =
2 2 2

= ( α 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 ⎠

Si se desea que la fórmula tenga el mayor orden posible se obligará a que:

α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

de donde9, dejando como incógnita libre α1, se tiene:

−8 −66 3
α0 = ·α1 , α2 = ·α1 , α3 = ·α1
455 65 91

Si se asigna a α1 el valor α1 = 1 se tiene que:


−8 −66 3
α0 = , α1 = 1, α2 = , α3 =
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

De esta igualdad se infiere que la fórmula buscada es:

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 ⎠

y que con ella, si f∈C4((x*-2·h, x*+3·h/2)), se comete un error dado por:

1 3 (iv
R f (x*) = − ·h ·f (ξ)
192

para algún valor ξ∈(x*-2·h, x*+3·h/2). Es decir un error de orden 3.

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.

Siendo “h” un valor estrictamente positivo en función del cual se puedan


escribir, para valores convenientes de γi (i = 0, ...,n), los puntos del soporte en
la forma xi = x* + γ ih , el sistema anterior puede simplificarse si en lugar de
aplicar la fórmula a los monomios {1, x, ..., xn} se aplica a los polinomios:

{ 1, (x-x*), (x-x*)2, ...., (x-x*)n}

En efecto, la aplicación de la fórmula a f(x) = 1 conduce a que:


n

∑c
i=0
i =0

Si n > 0, su aplicación a f(x) = (x – x*) proporciona la ecuación:

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

En resumen, los coeficientes de la fórmula de tipo interpolatorio se obtienen


resolviendo el sistema:

⎡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 ⎪⎭

Una vez determinada la fórmula, su error puede también ser calculado si se


busca en la forma Rf(x*) = K·h(m-1)·f(m(ξ) aplicándolo al primer binomio (x-x*)m
(cuya derivada m-ésima es una constante no nula) para el que la fórmula deja
de ser exacta (hecho que tendrá lugar para m > n).

Ilustremos esta forma de proceder obteniendo nuevamente la fórmula de


derivación numérica hallada en el subapartado anterior mediante
combinaciones de desarrollos en serie de Taylor.

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.

Según se ha visto anteriormente, los coeficientes de la fórmula se pueden


obtener resolviendo el sistema:
⎡ 1 1 1 1 ⎤ ⎧c 0 ⎫ ⎧ 0 ⎫
⎢ 3 ⎥ ⎪c ⎪ ⎪1 ⎪
⎢ −2 2 ⎥⎪ 1⎪ ⎪ h⎪
−1 1
=
2 2
⎨ ⎬ ⎨ ⎬
⎢ 4 14 14 9 4 ⎥ ⎪c 2 ⎪ ⎪ 0 ⎪
⎢ ⎥
⎣ −8 −18 18 27 8 ⎦ ⎪⎩c 3 ⎭⎪ ⎩⎪ 0 ⎭⎪

o, eliminando denominadores, el sistema equivalente:

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 ⎭⎪

La solución del sistema anterior nos proporciona los valores:

2 −13 11 −1
c0 = ,c1 = ,c 2 = ,c 4 =
105·h 12·h 10·h 28·h

Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4.


La primera derivada de dicha función en x* es:

f’(x*) = 4.(x*-x*)3 = 0

siendo el valor aproximado dado por la fórmula:

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

En resumen la fórmula buscada es:

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 ⎠

y el error de derivación numérica está dado por:

−1 3 (iv
R f (x*) = h f (ξ)
192

45
Programación y Métodos Numéricos Derivación Numérica

Ejercicio propuesto:

a) Siendo h un parámetro estrictamente positivo, determinar la fórmula de


derivación numérica que permite aproximar el valor de f’(x*) sobre el
soporte: x0 = x* +h, x1 = x* + 2h y x2 = x* + ( 5 2 ) h . Suponiendo que f(x)
es suficientemente regular en el intervalo [x*, x2], determínese también la
expresión de su error e indíquese la regularidad que se le debe exigir a
f(x) para que dicha expresión sea válida. Obténgase la fórmula pedida y
su error:
i) Derivando el correspondiente polinomio interpolador de
Lagrange,
ii) Combinando desarrollos en serie de Taylor, y
iii) Mediante el método de coeficientes indeterminados.

b) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de


un valor aproximado de la primera derivada de la función f(x) = ecos(x) con
los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 = 0.0001
y h4 = 0.00001. Realícense los cálculos en coma flotante usando
mantisas con 5 decimales significativos.

c) Obténgase una cota del error de derivación numérica válida en el


intervalo [x*, x2] para la función considerada en el apartado anterior. El
error realmente cometido ¿es en todos los casos inferior a la cota
hallada? Si no lo fuese justifíquese el motivo.

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.

Los métodos de obtención de fórmulas numéricas para aproximar primeras


derivadas pueden extenderse fácilmente para deducir fórmulas de derivación
numérica que permitan aproximar derivadas de orden superior al primero.
Destinaremos este apartado a describir este proceso con detalle.

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

donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o


pesos) de la fórmula de derivación.

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

En general el valor aproximado f*(k y el valor exacto f(k(x*) diferirán,


cometiéndose un error en la aproximación de f(k (x*). Es por ello que junto a la
definición anterior conviene precisar la definición del error que con la fórmula
se comete. En este sentido se introduce la siguiente definición:

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

se denomina error de truncamiento de la fórmula en el punto x* al


valor Rf(x*) = f (k(x*) - f*(k

Obviamente se verificará que: f (k (x*) = f*(k + R f (x*) por lo que considerando


la fórmula en cuestión aplicada a todos los puntos x de un dominio dado
puede definirse la función error de truncamiento de la fórmula derivación
numérica para la función f considerada como la función:
Rf : I Æ R
x Æ Rf(x)

En el análisis del error de truncamiento de las fórmulas de derivación numérica


se perseguirá encontrar cotas del valor de esta función de error Rf(x) en el
intervalo I sobre el que se trabaje.

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:

f(x 2 ) − 2·f(x1 ) + f(x 0 )


f "(x1 ) ≈ f1" = 2·f [ x 0 ,x1,x 2 ] =
h2

conduce a una fórmula en la que sus coeficientes son c0 = (1/h2) , c1 = (-2/h2) y


c2 = (1/h2). Una forma de acotar el error de truncamiento de esta fórmula, si se
supone que f(x) es al menos de clase C3([x0, x1]) consiste en considerar los
desarrollos en serie de Taylor siguientes:

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!

f(x2) = f(x*+h) = f(x*) + h.f’ x*) +


h2 h3 h4
+ .f "( x*) + .f '''( x*) + .f ( iv ( x * +θ1 .h ) θ1 ∈ (0,1)
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

expresión que puede acotarse por:

h2
Rf ( x0 ) = f "( x0 ) − f0 " ≤ . Sup {f ( iv ( x )}
12 x∈( x0 ,x1 )

Para el caso particular de la función f(x) = x4 en que f”(x*) = 12·(x*)2 se tiene


que:

(x * +h)4 − 2·(x*)4 + (x * +h)4


f* " = = 12·(x*)2+ 2·h2
h2

por lo que el error de truncatura cometido es en este caso Rf(x0) = -2·h2.


Obsérvese que la acotación antes realizada conduciría (para esta función x4) a
la acotación |Rf(x0)| ≤ 2·h2 coincidente con el valor absoluto del error de
truncatura realmente cometido10.

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

es exacta de orden m para la familia de funciones de clase Ck([x0 , xn]):

{ϕ0 (x), ϕ1(x),..., ϕm (x),....}

cuando es nulo el error de truncatura cometido al aplicar la fórmula para


la estimación de la k-ésima derivada de cualquiera de las (m+1) primeras
funciones de la familia en cualquier punto x* perteneciente al intervalo
[x0 , xn]: Rϕ j ( x ) = 0 ∀x ∈ [ x0 ,xn ], ( j = 0,...,m )

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

orden m para la familia de funciones {ϕ0 (x), ϕ1(x),..., ϕm (x),....} entonces


es exacta para cualquier combinación lineal de las (m+1) primeras
funciones de la familia

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

puede concluirse que:


R f (x) = 0 ∀x ∈ [ x 0 ,xn ]

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.

Las fórmulas de derivación numérica más utilizadas en la práctica son exactas,


de algún orden m, para la familia de funciones formada por los monomios, es
decir: {1, x, x2, ...,xm, ....}. En este tema nos referiremos en exclusiva a esta
familia de funciones y por ello cuando digamos que una fórmula es de orden de
exactitud m se sobreentenderá que “es de orden de exactitud m para la familia
de los monomios”, es decir que permite estimar sin error alguno la k-ésima
derivada de cualquier función polinómica de grado menor o igual que m.

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

es una fórmula exacta de orden 3. En efecto, para la función p(x) = 1 se verifica


que:
1 − 2·1 + 1
p* " = = 0 = p"( x*) ∀x *
h2

Asimismo para la función p(x) = x se tiene que:

( 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

Y para la función p(x) = x3 se verifica que:

( 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.

Entre las fórmulas de derivación numérica para aproximar las derivadas de


orden k de una función f(x), las más frecuentemente utilizadas son aquellas que
se pueden obtener derivando k veces el polinomio interpolador de la función
f(x). A tales fórmulas se las denomina fórmulas de tipo interpolatorio.

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.

2ª) Si el orden de derivación k fuese superior o igual al número de puntos (n+1)


las fórmulas de tipo interpolatorio correspondientes se reducirían a f(k(x*) = 0,
pues la derivada de orden k de un polinomio de grado menor o igual que n, si n
es inferior a k, es nula. Por dicho motivo, en todo cuanto sigue, se supondrá
que n > k. •

52
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.

Una fórmula de derivación numérica de tipo interpolatorio puede obtenerse a


partir de cualquiera de las expresiones del polinomio interpolador. Recordando
la expresión del polinomio interpolador en función de los polinomios de base de
Lagrange puede deducirse la expresión de los pesos que intervienen en dicha
fórmula. En efecto:

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

satisfagan las igualdades:

ci = L(i k ( x*) (i = 0, 1, ..., n)

donde se ha denotado por Li(x) a los (n+1) polinomios de base de


Lagrange11 sobre el soporte {x0, x1, ..., xn}.

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

de donde, en cualquier punto x* se puede considerar la aproximación:

n (x*) = ∑ Li (x*) ⋅ f(x i )


f (k (x*) ≈ p(k (k

i=0

Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes


están dados por la expresión:
c i = L(ki (x*)

⎛ 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

b) Demostremos que si la fórmula de derivación numérica satisface c i = L(ki (x*)


(i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el
polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede
n
expresar como: pn(x) = ∑ f(x )·L (x)
i=0
i i se tiene que si se verifican las igualdades

consideradas para los coeficientes:

(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 ⎠

lo que demuestra que el valor de la k-ésima derivada en x* se aproxima con el


valor de la k-ésima derivada del polinomio interpolador en x*.
c.q.d.

De la propiedad anterior se deduce fácilmente la siguiente:

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

⎜∑ i ⎟L (x) = ∑ L(ki (x) = 0 ∀x


⎝ i=0 ⎠ i=0

En particular para el punto x* se tendrá que:


n n

∑L
i=0
(k
i (x*) = ∑ c i = 0
i= 0

c.q.d.

Denotando por ε(x) a la función error de interpolación cometido al aproximar


una función f(x) por su polinomio interpolador de Lagrange pn(x) sobre el
soporte de (n+1) puntos considerado, se verifica que:

54
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.

f(x) = pn(x) + ε(x) ∀x ∈ (x 0 ,xn )


por lo que:
f (k (x*) = p(k
n (x*) + ε (x*)
(k

lo que nos conduce a poder expresar el error en el punto x* de la fórmula de


derivación numérica mediante:

R f (x*) = ε(k (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, 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

sea exacta de orden n es que sea de tipo 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

55
Programación y Métodos Numéricos Derivación Numérica

por lo que f(k(x) = p(k


n (x) ∀x . En particular, al ser la fórmula de
derivación de tipo interpolatorio, para cualquier punto x* se tendrá que:

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.

b) Demostremos ahora que la condición anterior también es necesaria, es


decir que si la fórmula construida sobre el soporte de (n+1) puntos es
exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello
partimos del hecho de que, al ser la fórmula exacta de orden n, para
cualquier función polinómica de grado menor o igual que n, p(x), se debe
verificar que:
n
p(k (x*) = ∑ c i .p(xi )
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

de donde su k-ésima derivada en el punto x* estará dada por:

n
p(k (x*) = ∑ L(ki (x*).p(xi )
i= 0

Identificando las dos expresiones de la primera derivada de p(x) en x* se


tiene que:
n n

∑ ci.p(xi ) = ∑ L(ki (x*).p(xi )


i=0 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

además que los polinomios de base de Lagrange verifican:

⎧0 si i ≠ j
Li (x j ) = ⎨
⎩ 1 si i=j

Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene


que:
n n

∑ ci.L0 (xi ) = ∑ L(ki (x*).L0 (xi ) ⇒ c 0 = L(k0 (x*)


i=0 i=0

Al hacerlo para el polinomio L1(x) resultará que:

n n

∑ ci.L1(xi ) = ∑ L(ki (x*).L1(xi ) ⇒ c1 = L(k1 (x*)


i=0 i= 0

Y en general al particularizar para cualquier polinomio de base Lj(x)


obtendremos que:

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:

p2 (x) = f(x 0 ) + f [ x 0 ,x1 ]·(x − x 0 ) + f [ x 0 ,x1,x 2 ]·(x − x 0 )·(x − x1 )

por lo que la fórmula de derivación numérica que aproxima derivadas segundas


sobre este soporte es:
f "(x*) ≈ f " x* = p"2 (x) = 2·f [ x 0 ,x1,x 2 ]

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:

p3 ( x ) = f ( x0 ) + f [ x0 , x1 ]·( x − x0 ) + f [ x0 , x1, x2 ]·( x − x0 )·( x − x1 ) +


+f [ x0 , x1, x2 , x3 ]·( x − x0 )·( x − x1 )·( x − x2 )

57
Programación y Métodos Numéricos Derivación Numérica

por lo que la fórmula que aproxima f”(x) es:

f "( x*) ≈ fx*'' = p" 3 ( x*) = 2·f [ x0 ,x1 ,x2 ] + 2·f [ x0 , x1, x2 , x3 ]·(3·x * − x0 − x1 − x2 )

y para la aproximación de la tercera derivada:

f '''( x*) ≈ fx*''' = p''' 3 ( x*) = 6·f [ x0 ,x1 ,x2 ,x3 ]


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.

En cuanto al error de las fórmulas de derivación que permiten aproximar


derivadas de orden mayor que 1 puede realizarse un análisis similar al descrito
anteriormente para las fórmulas que aproximaban la primera derivada.
Dejamos al lector interesado la tarea de adaptar las propiedades y teoremas
desarrollados en el apartado 4º a este tipo de fórmulas. Nosotros nos
centraremos en la descripción del proceso que permite obtener fórmulas de
derivación de tipo interpolatorio, junto a la expresión de su error, combinando
desarrollos en serie de Taylor para funciones que tengan la suficiente
regularidad.

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)

En general el número de ecuaciones que así se pueden formar es de n


ecuaciones, obteniéndose un sistema con (n+1) incógnitas (α0, ..., αn) y tan
sólo n ecuaciones. Ello es debido a que con el coeficiente de f(k(x*) se debe
n
añadir la inecuación ∑ α ·h
i=0
i
k
i ≠ 0.

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

quedarán expresados en función del valor que libremente se le asigne a uno de


ellos.

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

se tendrá que los coeficientes de la fórmula de derivación se obtienen


mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya
podido anular en la expresión (1) se podrá inferir fácilmente la expresión del
error de derivación.

Ilustremos estos extremos con un ejemplo.

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.

Para ello, si suponemos que f(x) es suficientemente regular en (x*-2·h, x*+2·h)


podemos considerar los desarrollos en serie de Taylor:

4·h2 8·h3 16·h4 (iv


f(x*- 2·h) =f(x*) –2·h·f’(x*) + ·f "(x*) − ·f '''(x*) + ·f (x*) −
2 6 24
32·h5 (v 64·h6 (vi 128·h7 (vii
− ·f (x*) + ·f (x*) − ·f (x*)...
120 720 5040

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

4·h2 8·h3 16·h4 (iv


f(x*+2·h) =f(x*) +2·h·f’(x*) + ·f "(x*) + ·f '''(x*) + ·f (x*) +
2 6 24
32·h5 (v 64·h6 (vi 128·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 ·f(x * −2·h) + α1·f(x * −h) + α 2 ·f(x*) + α 3 ·f(x * +h) + α 4 ·f(x * +2·h) =

= ( α 0 + α1 + α 2 + α 3 + α 4 )·f(x*) +

+ ( −2·α 0 − α1 + α 3 + 2·α 4 )·h·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*))

de donde12, dejando como incógnita libre α3, se tiene:

α0 = −α 4 , α1 = 2·α 4 , α2 = 0 , α 3 = −2·α 4 , α 4 ∈ R

Cualquier elección no nula de α4 nos conducirá a la fórmula buscada.


Obsérvese que se descarta la opción α4 = 0 ya que ello anularía el coeficiente
de f’’’(x) con lo que no lo podríamos despejar del desarrollo resultante. Si se
asigna a α4 el valor α4 = 1 se tiene que:

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:

− f(x * −2·h) + 2·f(x * −h) − f(x * +h) + 2·f(x * +2·h) =

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

De esta igualdad se infiere que la fórmula buscada es:

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

y que con ella, si f∈C5((x*-2·h, x*+2·h)), se comete un error dado por:

1
R f (x*) = − ·h2 ·f (v (ξ)
4

para algún valor ξ∈(x*-2·h, x*+2·h). Es decir un error de orden 0(h2).13

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.

Un método alternativo para la determinación de fórmulas de derivación de tipo


interpolatorio soportadas en (n+1) puntos se basa en que, según el teorema
7.2. toda fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}.
n
Por tanto, si se busca una fórmula cuya expresión sea: f (k (x*) ≈ f*(k = ∑ c i f(xi ) ,
i=0
j
su aplicación a los binomios (x-x*) (0 < j < n) nos conduce a un sistema de
ecuaciones cuya solución nos proporciona los pesos de la fórmula. De forma
más concreta, siendo “h” un valor estrictamente positivo en función del cual se
puedan escribir, para valores convenientes de γi (i = 0, ...,n), los puntos del
soporte en la forma xi = x* + γ ih , la aplicación de la fórmula a los binomios
f(x) = (x-x*)j (j = 0, ..., n) conduce a que, si k < n:

n
⎧ 0 si j ≠ k
∑c γ j
i i =⎨ j
si j = k
i=0 ⎩ j!/ h

En resumen, los coeficientes de la fórmula de tipo interpolatorio se obtienen


resolviendo el sistema:

⎡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
...

Una vez determinada la fórmula, su error puede también ser calculado si se


busca en la forma Rf(x*) = K·h(m-k)·f(m(ξ) aplicándolo al primer binomio (x-x*)m
(cuya derivada m-ésima es m!) para el que la fórmula deja de ser exacta
(hecho que tendrá lugar para m > n).

63
Programación y Métodos Numéricos Derivación Numérica

Ilustremos esta forma de proceder obteniendo nuevamente la fórmula de


derivación numérica hallada en el subapartado anterior mediante
combinaciones de desarrollos en serie de Taylor.

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.

Según se ha visto anteriormente, los coeficientes de la fórmula, soportada por 4


puntos, se pueden obtener resolviendo el sistema obtenido al aplicar la fórmula
a los cuatro binomios {1, (x-x*), (x-x*)2, (x-x*)3} . Tal sistema es:

⎡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 ⎭⎪

cuya solución nos proporciona los valores:

−1 1 −1 1
c0 = 3
, c1 = 3 , c2 = 3 , c4 =
2·h h h 2·h3

Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4.


La tercera derivada de dicha función en x* es:

f’’’(x*) = 4·3·2.(x*-x*) = 0

siendo el valor aproximado dado por la fórmula:

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
.

siendo ahora el valor aproximado:

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:

R( x − x *)5 ( x *) = 0 − 30·h 2 = −30·h 2

Si buscamos la expresión genérica del error en la forma:

Rf ( x *) = K ·h 2 ·f (v (ξ )

es fácil verificar, aplicándolo a (x-x*)5, que:

−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

En resumen la fórmula buscada es:

f*''' =
1
2h3
( −f ( x * −2h) + 2f ( x * −h) − 2f ( x * +h ) + f ( x * +2h ) )

y el error de derivación numérica, si f ∈ C 5 ([ x * −2h, x * +2h ]) está dado por:

−1 2 (v
Rf ( x *) = h f (ξ )
4

es decir un error de orden 2.

65
Programación y Métodos Numéricos Derivación Numérica

Ejercicio propuesto:

d) Siendo h un parámetro estrictamente positivo, determinar la fórmula de


derivación numérica que permite aproximar el valor de f”(x*) sobre el
soporte: x0 = x* -h, x1 = x*, x2 = x* + 2h y x3 = x* + ( 5 2 ) h . Suponiendo
que f(x) es suficientemente regular en el intervalo [x0, x3], determínese
también la expresión de su error e indíquese la regularidad que se le
debe exigir a f(x) para que dicha expresión sea válida. Obténgase la
fórmula pedida y su error:
i) Derivando el correspondiente polinomio interpolador de
Lagrange,
ii) Combinando desarrollos en serie de Taylor, y
iii) Mediante el método de coeficientes indeterminados.

e) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de


un valor aproximado de la segunda derivada de la función f(x) = ecos(x)
con los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 =
0.0001 y h4 = 0.00001. Realícense los cálculos en coma flotante
usando mantisas con 5 decimales significativos.

f) Obténgase una cota del error de derivación numérica válida en el


intervalo [x0, x2] para la función considerada en el apartado anterior. El
error realmente cometido ¿es en todos los casos inferior a la cota
hallada? Si no lo fuese justifíquese el motivo.

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:

h0 = 0.5, V0 = 1.042190610987.... |Error|=0.0421906...


h1 = 0.25, V1 = 1.010449267232.... |Error|=0.0104492...
h2 = 0.125, V2 = 1.002606201928.... |Error|=0.0026062...
h3 = 0.0625, V3 = 1.000651168835.... |Error|=0.0006511...
h4 = 0.03125,V4 = 1.000162768364.... |Error|=0.0001627...

pudiendo observarse como el error se reduce de una aproximación a la


siguiente al reducir el paso a la mitad. Nótese que el error se reduce
aproximadamente a la cuarta parte alreducir el paso a la mitad al ser el orden
del error de la fórmula empleada O(h2).

67
Programación y Métodos Numéricos Derivación Numérica

La reducción del “paso” h utilizado en una fórmula que presente un error de


orden p proporciona una sucesión de valores aproximados {V} j=0 que, si se

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

sucesiones con mayor velocidad de convergencia hacia el valor exacto. Para


describir este proceso, consideremos una fórmula de derivación numérica en la
que el error sea de orden p y que pueda expresarse como:

⎛ n ⎞
f (k (x*) = ⎜ ∑ c i ·f(x i ) ⎟ + α·f (m (x*)·hp + β·f (m+1(x*)·hp+1 + ...
⎝ i=0 ⎠

y denominemos Ve al valor exacto que se está aproximando, V0 al valor


obtenido con el paso h y V1 al obtenido con paso q·h (donde supondremos que
q < 1). Se tendrá que:

Ve = V0 + α·f (m (x*)·hp + β·f (m+1(x*)·hp+1 + ...


Ve = V1 + α·f (m (x*)·qp ·hp + β·f (m+1(x*)·qp+1·hp +1 + ...

Restando ambas igualdades se obtiene:

V1 – V0 = α·f (m (x*)·(1 − qp )·hp + β·f (m+1(x*)·(1 − qp +1 )·hp+1 + ... ⇒

V1 − V0
·( β·f (m+1(x*)·(1 − qp+1 )·hp +1 + ...)
1
⇒ α·f (m (x*)·hp = −
1− q p
1 − qp

Sustituyendo esta expresión en la primera de las expresiones del valor exacto


resulta que:
V −V ⎛ 1 − qp+1 ⎞ p+1
Ve = V0 + 1 p0 + β·f (m+1(x*)·⎜ 1 − p ⎟
·h + ...
1− q ⎝ 1 − q ⎠

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

aproxima al valor exacto Ve con un error de orden (p+1).

Análogamente, si se considera el valor V1, obtenido con paso (q·h) y el valor V2


obtenido con paso (q2h) se tiene que:

Ve = V1 + α·f (m (x*)·qp ·hp + β·f (m+1(x*)·qp+1·hp +1 + ...


Ve = V2 + α·f (m (x*)·q2p ·hp + β·f (m+1(x*)·q2p+ 2 ·hp +1 + ...

de donde un proceso análogo al que se acaba de describir nos conduce a que:

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).

De manera más general, si dado un valor del parámetro h se consideran las


aproximaciones V0,j ( j = 0, 1, ...) obtenidas con un paso (qj·h) usando una
fórmula de derivación numérica que presente un error de orden p, pueden
construirse los valores:
V0,j − qp ·V0,j−1
V1,j = (j = 1, 2, ...)
1 − qp
verificándose, si f(x) es suficientemente regular, que:

⎛ 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

Según lo anterior la sucesión de valores {V1,j } j=1 converge, cuando ha tiende


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.

En general, si se parte de un método que converge con velocidad de orden p,


el método de extrapolación de Richardson consiste en:

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

k = 1, 2, ...., N, mediante la fórmula de recurrencia:

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:

f(x * +h) − f(x*)


f '(x*) ≈ f* ' =
h
que presenta un error de orden 1 (es decir O(h)).

Para ello partiremos inicialmente del paso h = ½ y posteriormente lo iremos


reduciendo a la mitad diez veces. Con ello se obtienen los valores V0,j que
figuran en la segunda columna de la tabla siguiente, siendo V0,j el valor
obtenido para el paso hj =(½)(j+1). Las columnas 3ª, 4ª y 5ª de la tabla se
corresponden con los valores V1,j , V2,j y V3,j respectivamente que proporciona
la aplicación del método de extrapolación de Richardson.

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:

f '(1) = e 2 ·π·cos( π) = −5.1796106318....


1

Los cálculos se han realizado con el programa MAPLE 7 utilizando una


precisión de 20 dígitos (aunque en la tabla se muestran redondeados a 5
decimales significativos).

71
Programación y Métodos Numéricos Derivación Numérica

Aproximaciones

j (h = 2−( j+1) ) V0,j V1,j V2,j V3,j


0 −4.91921
1 −5.66420 −6.40919
2 −5.55380 −5.44340 −5.12148
3 −5.39593 −5.23805 −5.16960 −5.17648
4 −5.29456 −5.19320 −5.17825 −5.17948
5 −5.23872 −5.18288 −5.17944 −5.17960
6 −5.20957 −5.18041 −5.17959 −5.17961
7 −5.19469 −5.17981 −5.17961 −5.17961
8 −5.18717 −5.17966 −5.17961 −5.17961
9 −5.18340 −5.17962 −5.17961 −5.17961
10 −5.18151 −5.17961 −5.17961 −5.17961

Error de las 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

La tabla de errores muestra cómo estos se reducen a, aproximadamente, la


mitad ((1/2)1) al pasar de un valor al siguiente en la primera columna, la cuarta
parte ((1/2)2) al pasar de un valor al siguiente en la segunda columna, la
octava parte ((1/2)3) al pasar de un valor al siguiente en la tercera columna y la
decimosexta parte ((1/2)4) al pasar de un valor al siguiente en la cuarta
columna. Este hecho puede verse más claramente en la figura siguiente en la

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|)

Puede comprobarse en la gráfica como las pendientes (indicativas del orden de


convergencia) de las curvas de error son más pronunciadas cuanto más se
itera en la aplicación del método de extrapolación de Richardson.

73
Programación y Métodos Numéricos Derivación Numérica

BIBLIOGRAFÍA SOBRE EL TEMA

[1]. BURDEN, R. L. y FAIRES, J. D. (1.998). Análisis numérico. (6ª edición).


Ed. International Thomson editores.

[2]. KINCAID, D. y CHENEY, W. (1.994). Análisis numérico. Las


matemáticas del cálculo científico. Ed. Addison-Wesley
Iberoamericana.

[3]. MICHAVILA, F. y CONDE, C. (1.988). Métodos de Aproximación. Ed.


Depto. de Mat. Aplic. Y Mét. Informáticos. – Univ. Politécnica de Madrid.

[4]. STOER, J. y BULIRSCH, R. (1.980). Introduction to numerical analysis.


Ed. Springer Verlag.

[5]. VIAÑO, J.M. y BURGUERA, M. (2000) Lecciones de métodos


numéricos, 3: Interpolación. Ed. Tórculo edicions.

74
UNIVERSIDAD POLITÉCNICA DE MADRID

ESCUELA TÉCNICA SUPERIOR DE


INGENIEROS DE MINAS

DEPARTAMENTO DE MATEMÁTICA APLICADA Y


MÉTODOS INFORMÁTICOS

Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS

Tema: INTEGRACIÓN NUMÉRICA


Prof. Carlos Conde Lázaro
Prof. Arturo Hidalgo López
Prof. Alfredo López Benito

Marzo, 2007
ÍNDICE
Pág.
1. INTRODUCCIÓN Y MOTIVACIÓN. ………………………………… 1

2. GENERALIDADES SOBRE LAS FÓRMULAS DE INTEGRACIÓN


NUMÉRICA. ………………………………….……..…………….. 6

3. FÓRMULAS DE INTEGRACIÓN NUMÉRICA DE TIPO INTERPO-


LATORIO. ………………………………………………............... 11

4. EXPRESIONES DEL ERROR DE LAS FÓRMULAS DE INTEGRA-


CIÓN NUMÉRICA. …………………………………………... 18

5. ALGUNAS FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO


INTERPOLATORIO USUALES PARA APROXIMAR PRIME-
RAS DERIVADAS ……………………………………………….. 29
5.1. Fórmulas con dos puntos de soporte. ……………………. 29
5.1.1. Casos particulares. ………………………………. 31
5.2. Fórmulas con tres puntos de soporte. ……………………. 33
5.2.1. Casos particulares con soporte equidistante. . 36

6. OTROS MÉTODOS PARA LA OBTENCIÓN DE FÓRMULAS DE


DERIVACIÓN NUMÉRICA DE TIPO INTERPOLATORIO. …. 39
6.1. Mediante la combinación de desarrollos en serie
de Taylor. ……………………………………..…………… 39
6.2. Método de coeficientes indeterminados. …………………. 43

7. FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPO-


LATORIO PARA LA APROXIMACIÓN DE DERIVADAS DE
ORDEN SUPERIOR. ……………………………………………. 47
7.1. Obtención de fórmulas de derivación de tipo interpolato-
rio mediante el método de los coeficientes indetermi-
nados. ………………………………………………………. 63

8. MEJORA DE LA PRECISIÓN DE LAS FÓRMULAS DE DERIVA-


CIÓN NUMÉRICA. MÉTODO DE EXTRAPOLACIÓN DE
RICHARDASON. …………………………………………………… 67

BIBLIOGRAFÍA SOBRE EL TEMA. …………………………………….. 74

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

proporcionarnos un valor aproximado de la integral buscada. No obstante el


valor exacto podrá ser diferente del así calculado por lo que también convendrá
analizar con detalle el error cometido.

Entre las distintas técnicas de interpolación existentes nos centraremos en las


técnicas de interpolación polinómica de Lagrange a partir de las cuales
obtendremos las fórmulas de integración numérica objeto de este tema. No
obstante conviene indicar que para otras técnicas de interpolación podrían
diseñarse otras fórmulas de integración numérica siguiendo un camino análogo
al que desarrollaremos en apartados posteriores.

Conviene además tener presente el significado geométrico de la integral


b
definida. En este sentido recodemos que el valor de ∫ f(x)·dx
a
puede

interpretarse como el área que se encierra entre el grafo de f(x) y el eje de


abscisas en el tramo (a, b) asignándose valor positivo al área encerrada por la
parte del grafo correspondiente a valores positivos de f(x) y valor negativo a la
encerrada por la parte del grafo correspondiente a valores de f(x) negativos.

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

Asimismo ilustramos la idea de las fórmulas de integración compuestas con la


fórmula conocida con el nombre de fórmula del punto medio compuesta 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 de los dos rectángulos dibujados en la figura siguiente:

3
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

f(x)

a (3a+b)/4 (a+b)/2 (a+3b)/4 b

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.

La misma integral evaluada por alguna de las fórmulas del rectángulo se


aproximaría por:

Con soporte en el extremo izquierdo: Vrect − = f(0)·(1 − 0) = 0


Con soporte en el extremo derecho : Vrect + = f(1)·(1 − 0) = 1

cometiéndose en ambos casos un error de integración numérica.

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

que difiere del valor exacto.

La misma integral evaluada por alguna de las fórmulas del rectángulo se


aproximaría por:

Con soporte en el extremo izquierdo: Vrect − = f(0)·(1 − 0) = 0


Con soporte en el extremo derecho : Vrect + = f(1)·(1 − 0) = 1

cometiéndose en ambos casos un error de integración numérica.

La fórmula del trapecio nos proporciona el valor:


f(0) + f(1) 1
Vtrap = ·(1 − 0) =
2 2
cometiéndose también un error de integración.

Por último, la fórmula del punto medio compuesta nos conduce a:

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).

Cabe distinguir, al menos, dos fuentes de error en las técnicas de derivación


numérica. La primera de ellas, que se designa habitualmente como error del
método o error de truncatura, es debida a sustituir la expresión exacta de la
integral (a través del cálculo del límite de las sumas de Riemann) por una
fórmula en la que se combinan valores de la función en un número finito de
puntos. La segunda fuente de error es debida a los errores de redondeo que
se cometen en las operaciones que contemple la fórmula numérica. En este
tema también nos ocuparemos de analizar la primera de las fuentes de error
remitiendo al primero de los temas de esta asignatura al lector que esté
interesado en el análisis de los errores de redondeo.

5
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

2. Generalidades sobre las fórmulas de integración numérica


Sea f(x) una función definida en un cierto intervalo (a, b) de la recta real.
Consideremos además un soporte1 de (n+1) puntos {x0, x1, ..., xn} en el que se
suponen conocidos los valores de la función f(x). Por simplicidad supondremos
además, en todo cuanto sigue, 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 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

∫ f(x)·dx ≈ = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) = ∑ c .f(x )


i=0
i i
a

donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o


pesos) de la fórmula de derivació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.

En general el valor exacto de la integral y el valor aproximado diferirán,


cometiéndose un error aun en el caso de que se operase sin introducir errores
de redondeo en los cálculos. Es por ello que junto a la definición de una
fórmula numérica conviene precisar de forma rigurosa la definición del error
que con ella se comete. En este sentido se introduce la siguiente definición:

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

sin error de redondeo según la fórmula de integración numérica:


b n
f’(x*) ≈ f*' = ∫ f(x)·dx ≈ V = ∑ ci.f(xi )
a i=0

se denomina error de truncamiento de la fórmula en el intervalo (a,b)


b
al valor Rf((a,b)) = ∫ f(x)·dx − V
a


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

En el análisis del error de truncamiento de las fórmulas de derivación numérica


se perseguirá encontrar cotas del valor de este error de integración numérica
Rf((a,b)) válidas para cualquier intervalo de integración (a, b).

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

∫ f(x)·dx = F(b) − F(a)


a

Una forma de acotar el error de truncamiento de esta fórmula, si se supone que


F(x) es al menos de clase C3((a, b)), (es decir que f(x) se supone, al menos, de
clase C2((a, b)) ) consiste en considerar el desarrollo de Taylor siguiente:
h2
F(b) = F(a+h) = F(a) + h.F’(a) + .F"(a + θ.h) θ ∈ (0,1)
2
de donde:
h2 h3
F(b) − F(a) = h·F'(a) + ·F"(a) + .F'''(a + θ.h) θ ∈ (0,1)
2 6

que, como F’(x) = f(x) y F”(x) = f’(x), se puede escribir en la forma:

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)

Por otra parte, al verificarse que:

f(b) = f(a+h) = f(a) + h·f’(a) +(h2/2)· f’(a+µ·h) µ ∈ (0,1)


se tiene que:
h h h2
V = ·(f(a) + f(b)) = ·(f(a) + f(a) + h·f '(a) + ·f "(a + µ·h)) =
2 2 2
2 3
h h
= h·f(a) + ·f '(a) + ·f "(a + µ·h) µ ∈ (0,1)
2 4
Por tanto:
b
h3
R f ((a,b)) = ∫ f(x)·dx − V = . ( 4·f "(a + θ.h) − 6·f "(a + µ.h) ) θ, µ ∈ (0,1)
a
24

Las fórmulas de integración numérica suelen diseñarse de forma que sean
exactas para determinados tipos de funciones, es decir para que al aplicarlas a
la estimación de las integrales de tales funciones, independientemente del
intervalo de integración (a, b) que se considere, se obtenga el valor exacto de
la integral siendo nulo el error de truncatura que la fórmula introduce. Más
concretamente puede darse la definición siguiente:

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

es exacta de orden k para la familia de funciones


{ϕ0 (x), ϕ1(x),..., ϕk (x),....} cuando es nulo el error de truncatura cometido al
aplicar la fórmula para la estimación de la integral de cualquiera de las
(k+1) primeras funciones de la familia y en cualquier intervalo de
integración (a, b), es decir: Rϕk ((a,b)) = 0 ∀a,b ∈ R

Propiedad 2.1.
b n
Si la fórmula de integración numérica ∫ f(x)·dx ≈ V = ∑ ci.f(xi ) es exacta
a i =0

de orden k para la familia de funciones {ϕ0 (x), ϕ1(x),..., ϕk (x),....} entonces


es exacta para cualquier combinación lineal de las (k+1) primeras
funciones de la familia

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

∫ ϕ j (x)·dx = ∑ c i.ϕ j (xi )


a i=0
∀a,b ∈ R

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

puede concluirse que:


R f (x) = 0 ∀a,b ∈ R

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.

Las fórmulas de integración numérica más utilizadas en la práctica son exactas,


de algún orden k, para la familia de funciones formada por los monomios, es
decir: {1, x, x2, ...,xk, ....}. En este tema nos referiremos en exclusiva a esta
familia de funciones y por ello cuando digamos que una fórmula es de orden k
se sobreentenderá que “es de orden k para la familia de los monomios”, es
decir que permite estimar sin error alguno la integral de cualquier función
polinómica de grado menor o igual que k extendida a cualquier intervalo (a, b).

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

Asimismo para la función p(x) = x se tiene que:

b
(b2 − a2 ) (b − a) (b2 − a2 )
= ∫ x·dx = V = ·( b + a ) =
2 a
2 2

Pero para la función q(x) = x2, en general, ya no coincidirá el valor de la integral


en (a, b) con el valor estimado mediante la fórmula del trapecio ya que:

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

anteriormente, la fórmula es de orden 1 permitiendo integrar sin error cualquier


polinomio de grado menor o igual que 1.

10
Programación y Métodos Numéricos Integración numérica

3. Fórmulas de integración numérica de tipo interpolatorio.


Las fórmulas más utilizadas en la práctica se buscan de forma tal que sean
exactas para polinomios de grado menor o igual que n, es decir de orden n.
Una manera natural de construir fórmulas exactas de orden n consiste en
recordar que el polinomio interpolador de Lagrange, pn(x), sobre un soporte de
(n+1) puntos de una función f(x) que sea polinómica de grado menor o igual
que n coincide con dicha función2. Por ello es equivalente derivar el polinomio
f(x) que derivar su polinomio interpolador pn(x). A todas las fórmulas de
derivación que se obtienen derivando la expresión del polinomio interpolador de
Lagrange se las denomina fórmulas de derivación de tipo interpolatorio. Más
concretamente:

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

obtenida integrando en (a, b) la expresión del polinomio interpolador de


Lagrange construido sobre un soporte de 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 integrar también la expresión del
polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de
integración de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir
a las fórmulas que se obtienen al integrar la expresión del polinomio
interpolador de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y
simplemente diremos fórmula de integración numérica de tipo interpolatorio.

Una fórmula de integración numérica de tipo interpolatorio puede inferirse de


cualquiera de las expresiones del polinomio interpolador pues recuérdese que
el polinomio interpolador de Lagrange de una función sobre un soporte de
(n+1) puntos es único. Utilizando la fórmula de Lagrange puede deducirse la
expresión de los pesos que intervienen en las fórmula de integración de tipo
interpolatorio. En efecto, se verifica la siguiente propiedad:

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

coeficientes satisfagan las siguientes igualdades:


b
c i = ∫ Li (x)·dx (i = 0, 1, ..., n)
a

donde se ha denotado por Li(x) a los (n+1) polinomios de base de


Lagrange3 sobre el soporte {x0, x1, ..., xn}.

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

de donde, en cualquier intervalo de integración (a, b) puede considerarse la


aproximación:
b b n ⎛b ⎞
∫a f(x)·dx ≈ ∫a p n (x)·dx = ∑ ⎜ ∫
i =0 ⎝ a
L i (x)·dx ⎟ ⋅ f(xi )

Esta fórmula es una fórmula de derivación numérica en la que los coeficientes


de la fórmula están dados por la expresión:
b
c i = ∫ Li (x)·dx
a

b) Demostremos ahora que si los coeficientes de la fórmula de integración


b n b

∫ f(x)·dx ≈ V = ∑ ci.f(xi ) satisfacen las igualdades c i = ∫ Li (x)·dx (i = 0, .., n),


a i =0 a

entonces la fórmula es de tipo interpolatorio. En efecto, considerando que el


polinomio interpolador de Lagrange de f(x) en el soporte {x0, ..., xn} se puede

⎛ 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

igualdades contempladas en el enunciado:


b n n ⎛b ⎞ n ⎛b ⎞
∫a f(x)·dx ≈ V = ∑ c i ·f(x i ) = ∑ ⎜ ∫
i=0 ⎝ a
L i (x)·dx ⎟·f(x i ) = ∑ ⎜ ∫ f(xi )·Li (x)·dx ⎟ =
i= 0 ⎠ i= 0 ⎝ a ⎠
b b
⎛ n ⎞
= ∫ ⎜ ∑ f(x i )·Li (x) ⎟·dx = ∫ pn (x)·dx
a ⎝ i= 0 ⎠ a

lo que demuestra que el valor aproximado se puede obtener integrando el


polinomio interpolador de f(x) y que por tanto la fórmula es de tipo
interpolatorio.
c.q.d.

La propiedad anterior, que caracteriza las fórmulas de tipo interpolatorio, nos


permite obtener otras igualdades que deben satisfacer los coeficientes de las
fórmulas de integración numérica de tipo interpolatorio. Por ejemplo se tiene
que:

Propiedad 3.2.
En toda fórmula de derivación numérica de tipo interpolatorio
b n n

∫ f(x)·dx ≈ V = ∑ c .f(x ) se verifica que: ∑ c


a i=0
i i
i=0
i = (b − a)

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.

Ocupémonos ahora de analizar el orden de exactitud de las fórmulas de


integración numérica de tipo interpolatorio. Denotando por ε(x) a la función
error de interpolación cometido al aproximar f(x) por su polinomio interpolador
de Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica
que:
f(x) = pn(x) + ε(x) ∀x ∈ (a,b)

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

lo que nos conduce a poder expresar el error de la fórmula de integración


numérica mediante:
b
R f ((a,b)) = ∫ ε(x)·dx
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

∫ f(x)·dx ≈ V = ∑ ci.f(xi ) , sea exacta de orden n es que sea de tipo


a i=0

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.

b) Demostremos ahora que la condición anterior también es necesaria, es


decir que si la fórmula es exacta de orden n entonces también es de tipo
interpolatorio. Para ello partimos del hecho de que, al ser la fórmula
exacta de orden n, para cualquier función polinómica de grado menor o
igual que n, p(x), se debe verificar que:
b 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

de donde su integral en (a, b) estará dada por:


b n ⎛b ⎞
∫a p(x)·dx = ∑ ⎜ ∫
i= 0 ⎝ a
L i (x)·dx ⎟·p(xi )

Identificando las dos expresiones de la integral de p(x) en (a, b) se tiene


que:
n n ⎛b ⎞
∑ c i ·p(x i ) = ∑ ⎜ ∫ Li (x)·dx ⎟·p(xi )
i= 0 ⎝ a
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

además que los polinomios de base de Lagrange verificaban:

⎧0 si i ≠ j
Li (x j ) = ⎨
⎩ 1 si i=j

15
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene


que:
n n ⎛b ⎞ b

∑ 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 ⎠

Al hacerlo para el polinomio L1(x) resultará que:


n n ⎛b ⎞ b

∑ c .L
i 1 (x i ) = ∑ ⎜ ∫ i
i=0 ⎝ a
L (x)·dx ⎟ .L1 (x i ) ⇒ c 1 = ∫a L1(x)·dx
i=0 ⎠

Y en general al particularizar para cualquier polinomio de base Lj(x)


obtendremos que:
n n ⎛b ⎞ b

∑ 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)

La fórmula de integración numérica de tipo interpolatorio sobre el soporte


considerado estará dada por:
b b
f(x1 ) − f(a) (b − a)2
∫a f(x)·dx ≈ V = ∫a 2
p (x)·dx = f(a)·(b − a) + 2·
(b − a)
·
2
+

b
f(b) − 2·f(x1 ) + f(a)
+2· ·∫ (x − a)·(x − x1 )·dx
(b − a)2 a

Esta última integral puede calcularse fácilmente por partes:


b
b
⎛ (x − a)2 ⎤ b (x − a)2
∫a (x − a)·(x − x1 )·dx = ⎜⎝ 2 ·(x − x1 )⎦⎥ − ∫a 2 ·dx =
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

Esta fórmula, conocida con el nombre de fórmula de Simpson, equivale a


integrar en el intervalo (a, b) la parábola que pasa por los puntos (a, f(a)),
((a+b)/2, f((a+b)/2) ) y (b, f(b)).

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

Interpretación gráfica de la fórmula de Simpson

Obviamente esta fórmula permitirá integrar sin error ninguno funciones


polinómicas de grado menor o igual que 2 (ya que el polinomio interpolador de
Lagrange de cualquier función polinómica de grado menor o igual que 2 es la
propia función). Luego, al menos es una fórmula exacta de orden 2.

Como veremos más adelante la fórmula de Simpson es de un orden de


exactitud mayor que el que se acaba de señalar (es decir, también permitirá
integrar sin error ninguno funciones polinómicas de grado 3).

17
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

4. Relación entre el orden de exactitud y la posición de los puntos del


soporte en las fórmulas de tipo interpolatorio
Según se ha demostrado en el apartado anterior toda fórmula de integración
numérica de tipo interpolatorio construida sobre un soporte de (n+1) puntos es,
al menos, exacta de orden n. Pero si los puntos del soporte no se eligen de
forma arbitraria y se ubican en posiciones predeterminadas es posible
aumentar el orden de exactitud de la fórmula de integración numérica. En este
sentido, el teorema siguiente permite relacionar la posición de los puntos del
soporte con el orden de exactitud de las fórmulas de tipo interpolatorio.

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

(n+q) es que se verifiquen las q igualdades:


b n

∫ 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

lo cual demuestra que las q condiciones se verifican.

18
Programación y Métodos Numéricos Integración numérica

b) Demostremos ahora que las q condiciones dadas son también suficientes,


es decir que si estas condiciones se verifican entonces la fórmula de tipo
interpolatorio es de orden (n+q).

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

Es evidente que ϕk (x) es un polinomio de grado (n+k+1), por lo que estos q


polinomios son linealmente independientes entre sí y además también son
linealmente independientes de { L0(x), L1(x), ..., Ln(x) }.

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

cualquier punto del soporte que:


n q−1
p(x j ) = ∑ αi ·Li (x j ) + ∑ βk ·ϕk (x j ) = α j ( j = 0,...,n)
i= 0 k =0

lo que nos permite escribir que:


b n
∀p ∈ Pn+ q : ∫ p(x)·dx = ∑ c i·p(xi )
a i=0

y por tanto concluir que la fórmula es exacta de orden (n+q).


c.q.d.
Ejemplos:
1º. Si se utiliza un soporte de un único punto x0 la fórmula de tipo interpolatorio
correspondiente responde a la expresión:
b

∫ 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

¿Podría construirse alguna fórmula de integración numérica con un único punto


de soporte que fuese de orden 2?. Comprobemos que no es posible. En efecto,
si tal fórmula existiese debería ser de tipo interpolatorio (pues al ser de orden 2
debería permitie integrar sin error cualquier polinomio de grado menor o igual
que 2, y en concreto los polinomios de grado 0 por lo que debería ser de tipo
interpolatorio). Y además, si tal fórmula existiera debería verificar las
igualdades:
b b

∫ (x − x
a
0 )·dx = 0 y ∫ x·(x − x
a
0 )·dx = 0

La primera de estas igualdades, según hemos visto anteriormente, nos


conduciría a que x0 = (a+b)/2. Pero para esta elección de x0 se tendría que:
b
a+b 1
∫a x·(x − 2 )·dx = 12·(b − a)
3

que sólo puede anularse en el caso particular en que a = b.


2º. El polinomio interpolador de Lagrange de una función f(x) construido sobre


un soporte de dos puntos {x0, x1} puede expresarse usando la fórmula de
Newton como:
f(x1 ) − f(x 0 )
p1(x) = f(x 0 ) + ·(x − x 0 )
x1 − x 0
La fórmula de integración numérica de tipo interpolatorio correspondiente es
entonces:
b b

∫ 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

En efecto, si se desea que con 2 puntos de soporte la fórmula correspondiente


sea de orden 2 ya no podremos elegir arbitrariamente la posición de los dos
puntos. Tan sólo se podrá elegir (casi arbitrariamente) la posición de uno de
ellos estando la posición del otro determinada a partir de entonces. En efecto,
para que la fórmula fuese de orden 2 los puntos del soporte deben satisfacer:
b

∫ (x − x
a
0 )·(x − x1 )·dx = 0

de donde integrando por partes se tiene que:


1 1
⎡⎣(b − x 0 )2 ·(b − x1 ) − (a − x 0 )2 ·(a − x1 )⎤⎦ − ·⎡⎣(b − x 0 )3 − (a − x 0 )3 ⎤⎦ = 0
2 6

Al disponerse de una ecuación y dos incógnitas, puede elegirse una de ellas


quedando entonces la otra supeditada a que se verifique la ecuación. Por
ejemplo, considerando que a ≠ b, si se toma x0 = a la abscisa x1 debería
tomarse según:
1 1 (b − a)2
⎡⎣(b − a)2 ·(b − x1 )⎤⎦ − ·⎡⎣ (b − a)3 ⎤⎦ = 0 ⇔ ·[3·(b − x1 ) − (b − a)] = 0 ⇔
2 6 6

a + 2·b
⇔ x1 =
3

Muchas otras elecciones de la posición de x0 serían posibles. Y para cada una


de ellas se obtendría una posición en la que ubicar x1. Pero no todas las
elecciones de la posición de un punto estarían permitidas pues alguna de ellas
puede hacer que la única solución de la ecuación sea b = a (lo cual no tiene
interés práctico alguno). Proponemos al lector que verifique que en este caso
eso sucede únicamente si se toma uno de los puntos en la posición (a+b)/2.

En resumen, si se sacrifica la libertad de elegir arbitrariamente la posición de


los dos puntos del soporte pueden construirse fórmulas de integración
numérica de orden de exactitud 2. ¿Sería posible incrementar una unidad el
orden de la fórmula?. Veremos más adelante que sí es posible encontrar
fórmulas de integración numérica construidas sobre un soporte de 2 puntos que
sean exactas de orden 3 (la llamada fórmula de integración gaussiana con
soporte de 2 puntos).

22
Programación y Métodos Numéricos Integración numérica

3º. La fórmula de Simpson hallada en uno de los ejemplos anteriores es:


b
(b − a) ⎛ ⎛a+b⎞ ⎞
∫a f(x)·dx ≈ 6 ·⎜⎝ f(a) + 4·f ⎜⎝ 2 ⎟⎠ + f(b) ⎟⎠
Al estar construida sobre un soporte de 3 puntos puede afirmarse que, al
menos es de orden de exactitud 2. Pero ¿será de mayor orden?. Para
demostrar que sí verifiquemos que:
b 2 b
a+b
∫a ∏
j= 0
(x − x j )·dx = ∫
a
(x − a)·(x −
2
)·(x − b)·dx = 0

El cálculo de la integral anterior puede realizarse de forma cómoda


considerando el cambio de variable que transforma el intervalo [-1 , 1] en el
intervalo de integración [a, b], es decir el cambio:
a+b b−a
x= + ·ξ
2 2
Con este cambio se tiene que
b−a ⎛ a+b⎞ b−a b−a
(x – a) = ·(ξ + 1) , ⎜ x − = ·ξ y (x – b) = ·(ξ − 1)
2 ⎝ 2 ⎟⎠ 2 2
siendo además:
b−a
dx = ·dξ
2
Por tanto:
b b 4 1
2
a+b ⎛b−a⎞
∫a ∏
j= 0
(x − x j )·dx = ∫ (x − a)·(x −
a
2
)·(x − b)·dx = ⎜ ⎟ · ∫ (ξ + 1)·ξ·(ξ − 1)·dξ =
⎝ 2 ⎠ −1
4 1 4
⎛b−a⎞ ⎛b−a⎞ ⎛1 1 1 1 ⎞
=⎜ ⎟ · ∫ (ξ3 − ξ)·dξ = ⎜ ⎟ ·⎜ ·ξ 4 ⎤⎦ − ·ξ2 ⎤⎦ ⎟ = 0
⎝ 2 ⎠ −1 ⎝ 2 ⎠ ⎝4 − 1 2 −1

Ello nos indica que la fórmula es de orden de exactitud 3.

Verifiquemos que no es de orden 4. En efecto, con el mismo cambio de


variable se tiene ahora que:
b 4 1
2
⎛b−a⎞ a+b b−a
∫a x·∏
j= 0
(x − x j )·dx = ⎜ ⎟ ·∫ (
⎝ 2 ⎠ −1 2
+
2
·ξ)·(ξ + 1)·ξ·(ξ − 1)·dξ =
4 1 5 1
⎛b−a⎞ a+b ⎛b−a⎞
=⎜ ⎟ · · ∫ (ξ + 1)·ξ·(ξ − 1)·dξ + ⎜ ⎟ · ∫ ξ·(ξ + 1)·ξ·(ξ − 1)·dξ =
⎝ 2 ⎠ 2 −1 ⎝ 2 ⎠ −1
⎛b−a⎞ ⎛ 1 5⎤ 1 3 ⎤ ⎞ −4 ⎛ b − a ⎞
5 1 5 1 1 5
⎛b−a⎞
=0+⎜ ⎟ · ∫ (ξ − ξ )·dξ = ⎜ 2 ⎟ ·⎜⎜ 5·ξ ⎥ − 3·ξ ⎥ ⎟⎟ = 15 ·⎜ 2 ⎟ ≠ 0
4 2

⎝ 2 ⎠ −1 ⎝ ⎠ ⎝ ⎦ −1 ⎦ −1 ⎠ ⎝ ⎠

lo que demuestra que no es una fórmula de orden 4.


23
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

El teorema 4.1 nos muestra la forma de proceder en la elección de los puntos


del soporte de una fórmula de tipo interpolatorio de manera que su orden de
exactitud sea (n+q). En efecto basta para ello con que se verifiquen las
b n

∫ x ·∏ (x − xi )·dx = 0
k
ecuaciones: (k = 0, ..., q-1). Ello podría hacernos pensar
a i= 0

en la posibilidad de elegir q arbitrariamente elevado construyendo así fórmulas


de integración con n puntos de soporte que sean del orden de exactitud que se
desee. No obstante debe observarse que los puntos del soporte son (n+1) y
b n

∫ x ·∏ (x − xi )·dx = 0 puede servir


k
que cada una de las ecuaciones (no lineales)
a i= 0

para fijar la posición (o posiciones) de uno de ellos con lo cual no se podrían


imponer más de (n+1) condiciones. Este razonamiento parece indicar que en
la práctica el entero q que interviene en el teorema anterior sólo puede tomar
valores comprendidos entre 0 y n. En otros términos, parece que no puede
haber fórmulas de integración construidas sobre un soporte de n puntos que
presenten un orden de exactitud mayor que (2·n+1). Este hecho se demuestra
de forma más rigurosa en el siguiente teorema:

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

Y en efecto así sucede para el polinomio:


2
⎛ n ⎞
p2n+2(x) = ⎜ ∏ (x − xi ) ⎟ = (x-x0)2·.....·(x-xn)2
⎝ i=0 ⎠
Comprobémoslo utilizando la técnica de reducción al absurdo. En primer lugar
observemos que el polinomio p2n+2(x) no es el polinomio idénticamente nulo y
que, al ser el cuadrado de un polinomio de grado 2·n+1, su integral en
cualquier domino (a, b) es siempre estrictamente positiva. Supongamos
entonces que la fórmula de integración fuese de orden (2·n+2) y consideremos
el polinomio:
n
rn+1(x) = ∏ (x − x ) = (x − x
i=0
i 0 )·....·(x − xn ) = α 0 + α1·x + ... + α n ·xn + xn+1

24
Programación y Métodos Numéricos Integración numérica

Si la fórmula fuese de orden (2·n+2) se debería verificar, el teorema 3.2 para el


valor q = n+2, es decir que se deberían satisfacer las relaciones:
b n

∫ x ·∏ (x − xi )·dx = 0
k
(k = 0, ..., n+1)
a i= 0

Pero ello implicaría que entonces:


b b n b n

∫ p2n+2 (x)·dx = ∫ rn+1(x)·∏ (x − xi )·dx = α0 ·∫ ∏ (x − xi )·dx + ...... +


a a i= 0 a i= 0
b n b n
+αn ·∫ x n ·∏ (x − xi )·dx + ∫ xn+1·∏ (x − xi )·dx = 0
a i= 0 a i=0

lo cual es falso pues como se razonó anteriormente la integral de p2n+2(x)


siempre es estrictamente positiva.

Por tanto es absurdo suponer que la fórmula considerada es de orden (2·n+2).


c.q.d.

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

b) Demuestra que para cualquier solución de la ecuación 4·z6 – 9·z + 5 = 0 la


fórmula de tipo interpolatorio {0, z, 1} permite calcular el valor exacto de la
1
integral ∫ p7 (x)·dx .
0

c) Una solución de la ecuación del apartado b) es z = 0.57095177..... Obtén la


fórmula de integración numérica de tipo interpolatorio correspondiente y verifica
1
que efectivamente con ella se puede calcular sin error el valor de ∫ p7 (x)·dx .
0

d) La fórmula obtenida en el apartado anterior ¿de que órden de exactitud es?.


Al permitir calcular la integral en (0, 1) del polinomio p7(x) ¿será de orden 7?.
¿Por qué?.

25
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

5. Análisis del error en las fórmulas de integración numérica de tipo


interpolatorio.
En el apartado anterior se analizó el orden de exactitud de las fórmulas de
integración numérica de tipo interpolatorio. Conocer que el orden de exactitud
de una fórmula es m nos indica que cualquier polinomio de grado menor o igual
que m puede ser integrado con ella sin cometer error alguno. Pero, en principio,
no nos dice nada sobre el error que se comete al aplicarla al cálculo de la
integral de una función cuya expresión no sea polinómica de grado menor o
igual que m. Es por ello necesario que analicemos más detalladamente a qué
expresiones responde el error de integración numérica cuando las fórmulas se
aplican a una función f(x) genérica.

El proceso seguido para obtener las fórmulas de integración numérica de tipo


interpolatorio nos conduce de forma natural a que el error de cada fórmula de
integración así determinada es igual a la integral de la función de error
b
interpolación: Rf((a, b))= ∫ ε(x)·dx .
a
Recordando las expresiones del error de

interpolación de Lagrange, para una fórmula de integración de tipo


b n
interpolatorio de la forma ∫ f(x)·dx ≈ ∑ c i·f(xi ) , la igualdad anterior puede
a i=0

rescribirse en las formas:


b
1
R f ((a,b)) = ·∫ f (n+1(ξ x )·(x − x 0 )·...·(x − xn )·dx
(n + 1)! a
o
b
R f ((a,b)) = ∫ f [ x 0 ,x1,...,x n ,x ]·(x − x 0 )·...·(x − xn )·dx
a

Las expresiones anteriores, teniendo un interés teórico, son de difícil aplicación


práctica (habitualmente no se conoce la función que a cada abscisa x le hace
corresponder el punto ξx, o no se dispone de una expresión sencilla para la
diferencia dividida de la segunda fórmula). Es por ello que las expresiones
anteriores son utilizadas para obtener cotas del error. Así, si se supone que f(x)
es una función de clase Cn+1((a, b)) y se denota por M a una cota superior del
valor absoluto de su derivada (n+1)-ésima en el intervalo (a, b), de la primera
de las expresiones anteriores se obtiene que:
b n
R f ((a,b)) ≤ K·∫ ∏ (x − xi )·dx
a i=0

donde K = M / (n+1)!.

26
Programación y Métodos Numéricos Integración numérica

La integración de las expresiones del error de interpolación que utilizan


diferencias divididas nos permitiría obtener fórmulas del error para diferentes
fórmulas de integración numérica4.

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:

f(x) = pm(x) + rm+1(x)

donde pm(x) es el polinomio de Taylor de grado m (para la función f(x) y el


punto z) dado por:
(x − z)2 (x − z)m (m m
(x − z)k (k
pm (x) = f(z) + (x − z)·f '(z) + ·f "(z) + .... + ·f (z) = ∑ ·f (z)
2! m! k =0 k!
y rm+1(x) es el denominado resto de Taylor de orden (m+1). Si f fuese
infinitamente derivable el resto estaría dado por:

(x − z)k (k
rm+1(x) = ∑ ·f (z)
k =m +1 k!

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

Recordemos asimismo que existe una tercera forma de expresar el resto,


denominada expresión integral del resto de Taylor, y que es:

x
1 (m+1
rm+1(x) = ·∫ f (t)·(t − z)m ·dt
m! z

Dejamos como ejercicio propuesto al lector justificar la equivalencia de estas


tres expresiones del resto de Taylor. Nosotros utilizaremos cualquiera de ellas,
según la utilidad que en cada momento tenga una u otra.

Consideremos una fórmula de integración numérica de tipo interpolatorio


b n

∫ f(x)·dx ≈ V = ∑ ci·f(xi ) construida sobre un soporte de (n+1) puntos distintos


a i =0

{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) ).

Con esta notación el valor exacto de la integral es:


b

∫ f(x)·dx = F(b) − F(a)


a

Si se denota por h a la longitud del intervalo de integración, bajo las hipótesis


de regularidad realizadas anteriormente:
b
h2
∫a f(x)·dx = F(b) − F(a) = F(a + h) − F(a) = h·F'(a) +
2
·F"(a) + ..... +

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

La idea que resume el análisis del error que se va a realizar consiste en


comparar el valor exacto dado por ( I ) con el que nos proporciona la fórmula de
integración considerada. Para ello deberán desarrollarse en serie de Taylor, en
torno al punto “a” todos los valores f(xi) que en dicha fórmula intervienen. De
forma más concreta, denotemos por {θ0 , θ1,..., θn } a los n números reales dados
por:
xi − a
= θi (i = 0, ..., n)
h

Es evidente que entonces xi = a + θi·h, lo cual, utilizando la fórmula de los


desarrollos en serie de Taylor, nos permite rescribir la fórmula de integración
numérica de la forma:

b n n

∫ f(x)·dx ≈ V = ∑ c i·f(xi ) = ∑ ci·f(a + θi·h) =


a i=0 i= 0

n ⎛ ⎡ θi2 ·h2 θim ·hm (m ∞


θik ·hk (k ⎤ ⎞
= ∑ ⎜⎜ c i ·⎢ f(a) + θi ·h·f '(a) + ·f "(a) + ... + ·f (a) + ∑ ·f (a)⎥ ⎟⎟
i= 0 ⎝ ⎣ 2 m! k =m +1 k! ⎦⎠

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 ⎠

Los coeficientes de los primeros (m+1) sumandos del desarrollo anterior


pueden ser expresados de manera que se facilite la comparación con el valor
exacto a través de la siguiente propiedad:

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

es de orden m, con la notación utilizada anteriormente, se verifica que:


n
θki ·hk hk +1

i =0
c i ·
k!
=
(k + 1)!
(k = 0,...,m)

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

Y dado que el valor exacto de la integral de pk(x) es:


b
1 ⎡ (x − a)k +1 ⎤
b b
(x − a)k (b − a)k +1 hk +1
∫a k
p (x)·dx = ∫a k! ·dx = ·⎢
k! ⎣ k + 1 ⎦ a
⎥ =
(k + 1)!
=
(k + 1)!
la identificación de ambas expresiones que reflejan el valor exacto de la integral
nos conduce a que:
n
θki ·hk hk +1
∀k ∈ ] / 0 ≤ k ≤ m : ∑ c i · =
i =0 k! (k + 1)!
c.q.d.

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)

se verifica que el error de integración numérica de la fórmula aplicada a la


b
evaluación de ∫ f(x)·dx
a
está dado por:

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 )

Restando del valor exacto de la integral, dado por ( I ), el valor aproximado


dado por ( III ) se obtiene:

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.

La estimación del error que se acaba de obtener queda en forma de un


sumatorio de infinitos términos. De forma análoga a lo que sucedía con los
restos de los desarrollos de Cauchy, puede demostrarse6 que siendo f(x) una
función de clase Cm+1((α, β)) la expresión del error anterior puede reducirse al
primero de los sumandos que en ella intervienen si se sustituye el valor de la
derivada en “a” por el valor de la misma derivada en un punto concreto del
intervalo (α, β). En otros términos, en las condiciones del teorema precedente,
existe algún punto ξ ∈ ( a,b ) tal que:
hm+1 ⎛ h n

R f ((a,b)) = ·⎜ − ∑ c i ·θim+1 ⎟·f (m+1(ξ)
m + 1! ⎝ (m + 2) i=0 ⎠

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

es una fórmula con un orden de exactitud 1. Si dicha fórmula se aplica al


cálculo de la integral sobre (a, b) de una función de clase C2((a,b)) el error de
integración numérica estará dado por:

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 ⎠ ⎦

se demostró en ejemplos anteriores que su orden de exactitud era m = 3. El


error de integración numérica que se comete con esta fórmula al integrar
funciones de clase C4((a, b)) está dado por:
h4 ⎛ h ⎞
Rf (( a,b )) = ·⎜ − c0 ·θ 04 − c1 ·θ14 − c2 ·θ 24 ⎟·f ( iv ( ξ ) ξ ∈ ( a,b )
4! ⎝5 ⎠

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

Este error se expresa en ocasiones en función de la distancia entre los puntos


del soporte, H, que puede relacionarse con la longitud del intervalo en la forma
H = h/2, o lo que es igual, h = 2·H. Si en la expresión anterior se remplaza “h”
por “2·H” se tiene que:
H5
Rf (( a,b )) = − ·f ( iv ( ξ ) ξ ∈ ( a,b )
90

32
Programación y Métodos Numéricos Integración numérica

La fórmula del error de integración numérica que se ha utilizado permite


expresarlo en función de la derivada de orden (m+1) de la función f(x) que se
integra evaluada en un punto “ξ” que habitualmente no es fácil de determinar.
Por otra parte, no proporciona información sobre el error cuando la fórmula se
aplica a la evaluación de integrales de funciones que no tengan la regularidad
exigida, es decir que no sean de clase Cm+1((α, β)). EN esos caso podemos
preguntarnos ¿cuál es la expresión del error de integración? Los teoremas y
corolario siguiente dan respuesta a la pregunta anterior en esas situaciones (si
bien, si se aplican al caso de funciones suficientemente regulares, conducen a
cotas mayores que las obtenidas con el teorema 5.1).

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

interpolatorio construida sobre un soporte de (n+1) puntos {x0, ..., xn} y


con un orden de exactitud m > n,
• h el valor dado por h = (b-a)
• pk(x) cualquier polinomio de grado k siendo k < m

se verifica que el error de integración numérica de la fórmula aplicada a la


b
evaluación de ∫ f(x)·dx
a
está acotado por:
n
R f ((a,b)) ≤ (h + ∑ c i )·Sup f(x) − pk (x)
i =0 x∈(a,b)

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

∫ pk (x)·dx = ∑ c i·pk (xi )


a i =0

Ello nos permite escribir que:

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

∫ (f(x) − pk (x))·dx − ∑ ci·(f(xi ) − pk (xi )) ≤


a i= 0

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.

Una consecuencia inmediata del teorema anterior es la recogida en el siguiente


corolario (que tiene utilidad en numerosas fórmulas utilizadas frecuentemente).

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

por lo que la cota del teorema 5.2. se convierte en la aquí considerada.


c.q.d.

Obsérvese que las cotas dadas en el teorema 5.2 y en su corolario 5.1 no


hacen intervenir las derivadas de la función f(x). Pero, al referirse a cualquier
polinomio pk(x), no permiten establecer cotas en las que intervengan potencias
de la longitud del intervalo de integración. Para obtenerlas basta con considerar
como pk(x) el polinomio obtenido con los k primeros sumandos del desarrollo

34
Programación y Métodos Numéricos Integración numérica

en serie de Taylor de la propia función f(x). Más concretamente se tiene el


siguiente teorema:

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

interpolatorio construida sobre un soporte de (n+1) puntos {x0, ..., xn} y


con un oden de exactitud m > n,
• h el valor dado por h = (b-a)

se verifica que el error de integración numérica de la fórmula aplicada a la


b
evaluación de ∫ f(x)·dx
a
está acotado por:

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)

Si además no es negativo ningún coeficiente de la fórmula de integración


numérica, la acotación anterior resulta ser:
k +1
2·h ⎛ h ⎞
R f ((a,b)) ≤ ·⎜ ⎟ ·Sup f (k +1(x) (V)
(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)!

donde ξx es algún punto intermedio entre x y x*.

35
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

Se tiene entonces que:


k +1
⎛h⎞ 1
Sup f(x) − pk (x) = Sup rk*+1(x) ≤ ⎜ ⎟ · ·Sup f (k +1(x)
x∈(a,b) x∈(a,b) ⎝ 2 ⎠ (k + 1)! x∈(a,b)

Aplicando entonces el teorema 5.2 para esta elección del polinomio pk(x) se
tiene demostrada la acotación (IV).

Análogamente, para demostrar la acotación (V) basta con aplicar el corolario


5.1. para el polinomio de Taylor pk(x)
c.q.d.

Obsérvese que en el teorema que se acaba de demostrar se obtienen cotas de


error para funciones f(x) que sean (k+1) veces continuamente diferenciables
con k pudiendo valer 0, 1, ..., m. Sólo estarían fuera de estas acotaciones del
error los casos en que f(x) no fuese continua o siendo una función continua no
tuviera derivadas continuas en (a, b). Para dichos casos, se aplicaría
directamente la cota del teorema 5.2 (o, en su caso, la del corolario 5.1) .

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)

Si la función fuese de regularidad C2((a, b)) el teorema 5.3. nos conduce a la


expresión:
h3
f ∈ C2 ((a,b)) Rf (a,b) < ·Sup f "(x)
4 x∈(a,b)
Obsérvese que en este último caso el teorema 5.1. sí sería aplicable y
conduciría a una cota menor que la anterior.

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

6. Obtención de fórmulas de integración numérica.

6.1. El uso de un intervalo de referencia.


Para simplificar los cálculos en la determinación de fórmulas de integración
numérica y de su error es recomendable realizar los cálculos sobre un intervalo
de referencia y posteriormente generalizarla mediante el oportuno cambio de
variable que transforme el intervalo de referencia elegido en un intervalo
genérico [a, b]. En los subapartados siguientes nos centraremos en tres
métodos (equivalentes entre sí) que nos permitirán determinar las fórmulas de
tipo interpolatorio en cualquier intervalo. En este nos ocuparemos de detallar el
proceso a seguir para poder transformar una fórmula que se conozca en el
intervalo de referencia en otra fórmula válida para cualquier intervalo [a, b].

Frecuentemente se utiliza como intervalo de referencia el intervalo [-1, 1]. En


ese caso, denotando por t a la variable independiente en [-1, 1] y por x a la
variable independiente en [a, b] , el cambio de variable a considerar7 es:
a+b b−a
x= + ·t
2 2
por lo que:
b−a
dx = ·dt
2
y:
b 1
b−a ⎛a+b b−a ⎞
∫a f(x)·dx =
2 −∫1 ⎜⎝ 2
· f + ·t ·dt
2 ⎟⎠

De esta forma si se conoce una fórmula de integración numérica en [-1, 1] de la


forma:
1 n

∫ g(t)·dt = ∑ γi·g(ti )
−1 i= 0

la fórmula correspondiente en [a, b] sería:

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 ⎝ ⎠ ⎝ ⎠

por lo que los puntos de integración en [a, b] serían


7
En el caso más general, un intervalo [α, β] puede transformarse linealmente en [a, b]
β ·a − α ·b b − a
utilizando el cambio de variable: x = + ·t t ∈ [α , β ]
β −α β −α

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

En cuanto al error de integración, si se conoce su expresión en [-1, 1] puede


determinarse la fórmula del error en [a, b] mediante:
b n
R f ((a,b)) = ∫ f(x)·dx − ∑ c i ·f(x i ) =
a i=0

⎛b−a⎞⎛ ⎛a+b b−a ⎞ ⎛ a + b b − a ⎞⎞


1 n
=⎜ ⎟·⎜ ∫ f ⎜
⎝ 2 ⎠ ⎝ −1 ⎝ 2
+ ·t
2 ⎠ ⎟·dt − ∑
i= 0
γ i ·f ⎜
⎝ 2
+
2
·t i ⎟ ⎟ =
⎠⎠

⎛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 ⎟⎠

Si la fórmula es de orden m, en la expresión del error Rg((-1,1)) aparecerá la


derivada de orden (m+1) de la función g(t) evaluada en un cierto punto tξ. Esta
derivada debe ser relacionada con la derivada de orden (m+1) de f(x) utilizando
para ello la regla de la cadena. Más concretamente:
⎛a+b b−a ⎞ dg ⎛ b − a ⎞ df ⎛ a + b b − a ⎞
g(t) = f ⎜ + ·t ⎟ Æ g'(t) = (t) = ⎜ ⎟· ⎜ + ·t Æ
⎝ 2 2 ⎠ dt ⎝ 2 ⎠ dx ⎝ 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 ⎠

Ilustremos este proceso con un ejemplo.

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))

con la que se comete un error de integración numérica dado por la expresión:

−2 ( iv
Rg (( −1,1)) = ·g ( tξ ) tξ ∈ ( −1,1)
405

Determinemos la fórmula de integración numérica correspondiente si se


integra en un intervalo genérico [a, b].

En el intervalo [-1, 1] los 4 puntos del soporte utilizados son:

{t0 = -1, t1 = -1/3, t2 = 1/3, t3 = 1}

Por ello los puntos del soporte en [a, b] son:

a+b b−a a+b b−a


x0 = + ·t0 = − =a
2 2 2 2
a+b b−a a + b b − a 2·a + b
x1 = + ·t1 = − =
2 2 2 6 3
a+b b−a a + b b − a a + 2·b
x2 = + ·t2 = + =
2 2 2 6 3
a+b b−a a+b b−a
x3 = + ·t3 = + =b
2 2 2 2

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

Análogamente los pesos de la fórmula en [a, b] se obtienen mediante:

b−a b−a 1 b−a b−a b − a 3 3·( b − a )


c0 = ·γ 0 = · = , c1 = ·γ 1 = · =
2 2 4 8 2 2 4 8
b−a b − a 3 3·( b − a ) b−a b−a 1 b−a
c2 = ·γ 2 = · = , c3 = ·γ 3 = · =
2 2 4 8 2 2 4 8

por lo que la fórmula buscada resulta:

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

ella se comete se obtendrá mediante:

4
⎛ b − a ⎞ −2 ⎛ b − a ⎞ ( iv −( b − a )5 ( iv
Rf (( a,b )) = ⎜ ⎟· ·⎜ ⎟ ·f ( ξ ) = ·f ( ξ )
⎝ 2 ⎠ 405 ⎝ 2 ⎠ 6480

NOTA: En muchas ocasiones, cuando se usan soportes equidistantes, el error


se expresa en función de la distancia entre los puntos del soporte en lugar de la
longitud del intervalo de integración. En este caso H = (b-a)/3 , o lo que es lo
mismo (b-a) = 3·H lo que nos conduciría a que el error de integración numérica
podría expresarse también mediante:

−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 [α, β].

Particularícese las expresiones anteriormente obtenidas al caso en el que se


considere como intervalo de referencia el [0, 1].

41
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

6.2. Mediante la integración del polinomio interpolador.


La definición dada de las fórmulas de integración numérica de tipo
interpolatorio nos permite obtener tales fórmulas mediante la integración del
polinomio interpolador de f(x) en el soporte de puntos considerados, A estos
efectos recordemos que es indiferente la fórmula por la que se haya calculado
dicho polinomio pudiendo utilizarse en cada caso aquella que más convenga
para reducir el volumen de cálculo. Así, denotando por Li(x) al i-ésimo
polinomio de base de Lagrange sobre el soporte {x0, ..., xn} y por f[x0, .., xi] a la
diferencia dividida de orden i de la función f(x) en los (i+1) primeros puntos del
soporte, la misma fórmula de integración numérica puede obtenerse mediante
las expresiones siguientes (correspondientes al uso de la fórmula de Lagrange
o de Newton para el cálculo del polinomio interpolador):
b b n ⎛b ⎞
∫a f(x)·dx ≈ ∫a n
p (x)·dx = ∑ ⎜ ∫ Li (x)·dx ⎟·f(xi )
i=0 ⎝ a ⎠

b b n b i−1

∫ f(x)·dx ≈ ∫ pn (x)·dx = f(x0 )·(b − a) + ∑ f[x0 ,...,xi ]·∫ ∏ (x − xi )·dx


a a i=1 a k =0

Y si el soporte fuese equidistante, denotando por H a la distancia entre puntos


consecutivos del soporte, esta misma fórmula puede ser obtenida utilizando
diferencias finitas progresivas o regresivas mediante:

b b b
∆ i f0 i−1
n

∫a f(x)·dx ≈ ∫a pn (x)·dx = f(x0 )·(b − a) + ∑ i ∫∏


·
i=1 i!·H a k = 0
(x − x i )·dx

b b b
∇i fi i−1
n

∫a f(x)·dx ≈ ∫a pn (x)·dx = f(x0 )·(b − a) + ∑ i ∫∏


·
i=1 i!·H a k = 0
(x − x i )·dx

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

expresar el polinomio interpolador de Lagrange de la función f(x) como:


H H
( x − )·( x − H ) ( x + H )·( x − )
2 ( x + H )·( x − H ) 2 =
p2 ( x ) = f ( −H )· + f ( H / 2 )· + f ( H )·
3·H 2
−3·H 2 / 4 H2

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 ⎠

Integrando esta expresión se tiene que:


H/2 H/2
H
∫ f ( x )·dx ≈ ∫ p2 ( x )·dx = ·(7·f ( −H ) + 44·f ( H / 2 ) − 15·f ( H ) )
−H / 2 −H / 2
36

Esta es una fórmula de tipo interpolatorio construida sobre un soporte de 3


puntos y por ello será, al menos, de orden 2. El error que se comete con ella, si
se aplica a funciones de clase C∞((-H, H)) puede estimarse combinando
desarrollos en serie de Taylor en torno a algún punto del intervalo de
integración. Así si se desarrolla en torno a 0 resultará que el valor exacto de la
integral podrá expresarse como:
H/2
H H2 H3

−H / 2
f ( x )·dx = F( H / 2 ) − F( −H / 2 ) = F(0 ) +
2
·F '(0 ) +
8
·F "(0 ) +
48
·F '''(0 ) + +

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

Y el valor aproximado se expresa por:


H/2
H
∫ p2 ( x )·dx = ·(7·f ( −H ) + 44·f ( H / 2 ) − 15·f ( H ) ) =
−H / 2
36
⎡ 7·H 2 7·H 3 7·H 4 ( iv
= (H/36)· ⎢7·f (0 ) − 7·H·f '(0 ) + ·f "(0 ) − ·f '''(0 ) + ·f (0 ) − ...
⎣ 2 6 24
44·H 44·H 2 44·H 3 44·H 4 ( iv
+44·f (0 ) + ·f '(0 ) + ·f "(0 ) + ·f '''(0 ) + ·f (0 ) + ...
2 8 48 384
15·H 2 15·H 3 15·H 4 ( iv ⎤
−15·f ( 0 ) − 15·H·f '( 0 ) − ·f "( 0 ) − ·f '''( 0 ) − ·f ( 0 ) − ...⎥ =
2 6 24 ⎦
H3 11·H 4 7·H 5 ( iv
= H·f (0 ) + ·f ''(0 ) − ·f '''(0 ) − ·f (0 ) + ...
24 144 1152

La comparación de las expresiones anteriores nos conduce a que:

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

Si f(x) tuviera una regularidad inferior o igual a C3((-H, H)) el error de


integración de la fórmula puede acotarse (véase el teorema 5.3 en el apartado
anterior) por alguna de las expresiones siguientes:

Regularidad Cota de error


H4
f ∈ C3 (( −H,H)) · Sup f '''(x)
24 x∈( −H / 2,H / 2)
H3
f ∈ C2 (( −H,H)) · Sup f "(x)
4 x∈( −H / 2,H / 2)
f ∈ C1(( −H,H)) H2 · Sup f '(x)
x∈( −H / 2,H / 2)

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}.

b) Obtén la expresión del error de integración cometido con la fórmula hallada


en el apartado anterior.

c) A partir de las expresiones halladas en los apartados anteriores, y según lo


explicado en el apartado 6.1, determina la fórmula correspondiente válida para
aproximar integrales en un intervalo genérico (a, b) así como la fórmula del
error de integración.

d) Particulariza las expresiones halladas en el apartado anterior al intervalo


(-H/2, H/2) y compáralas con la fórmula de integración numérica y la fórmula
del error halladas en el ejemplo resuelto más arriba.

Infiere de todo lo anterior un procedimiento para determinar fórmulas de


integración numérica y analizar el error con ellas cometido que se base en el
cálculo del polinomio interpolador y en el uso de un intervalo de referencia.

44
Programación y Métodos Numéricos Integración numérica

6.3. Método de coeficientes indeterminados.


Este método de construcción de fórmulas de integración numérica se basa en
b n
considerar que si la fórmula ∫ f(x)·dx ≈ ∑ ci·f(xi ) es exacta de orden m > n
a i =0

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(ξ) ,

puede ser concretado también si se aplica la fórmula al monomio xm+1 pues en


ese caso:
b n

∫ x ·dx = ∑ ci·xi + C·(b − a) ·(m + 1)! ⇒


m +1 m +1 m+ 2

a i =0
b n

∫ x ·dx − ∑ ci·xi
m +1 m +1

i= 0
⇒C= a

(m + 1)!·(b − a)m+ 2

Si no se conoce a priori el orden de la fórmula, se usan los (n+1) primeros


monomios para determinar los valores de los coeficientes de la fórmula y se
prueba con los siguientes hasta encontrar el primero de ellos que permite
determinar un valor no nulo de la constante C usada en la expresión del error.
Dicho monomio es el que permitirá determinar el orden de exactitud de la
fórmula.

En este método es especialmente cómodo trabajar en el intervalo de referencia


[-1, 1] determinando la fórmula en el intervalo de referencia:
1 n

∫ g(t)·dt = ∑ γi·g(ti ) + C·2 ·g (t ξ ) . En efecto, en ese caso las integrales de


m + 2 (m +1

−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

Además la constante C de la fórmula del error de integración sobre el intervalo


[-1, 1] es en este caso:
1 n
1 − ( −1)m+ 2 n
∫ t ·dt − ∑ γi·ti − ∑ γ i ·tim+1
m +1 m +1

i =0 (m + 2)
C= −1
= i=0

(m + 1)!·2m+ 2 (m + 1)!·2m+ 2

Una vez determinadas las fórmulas en [-1, 1] se seguirá el proceso descrito en


6.1 para generalizarlas a un intervalo [a, b] genérico.

Ilustremos esta forma de proceder con un ejemplo.

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].

En el intervalo [-1, 1] los 4 puntos del soporte serán:


{t0 = -1, t1 = -1/3, t2 = 1/3, t3 = 1}

Al haber 4 puntos la fórmula de integración de tipo interpolatorio será al menos


de orden 3, es decir permitirá integrar sin error los 4 primeros monomios { 1, t,
t2, t3}. Por tanto, en el intervalo [-1, 1] dicha fórmula verificará:
1

∫ 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

Determinemos el error de integración en este intervalo de referencia. Para ello


aplicaremos la fórmula al siguiente monomio obteniendo:

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

Al no ser un error nulo puede asegurarse que la fórmula es de orden 3 y por


ello el error para una función genérica debe responder a la expresión:
Rf (( −1,1)) = C·(1 − ( −1))5 ·f ( iv ( ξ ) = C·32·f ( iv ( ξ ) . Si se aplica esta expresión a la
función t4 se verifica que: Rt 4 (( −1,1)) = C·( 32 )·f ( iv ( ξ ) = C·( 32 )·( 4 !) = C·768 .

Comparando las dos expresiones obtenidas para R t 4 (( −1,1)) puede concluirse


que la constante que interviene en la expresión del error toma el valor:

−16 −16 −1
C= = =
135·768 103680 6480

lo que nos conduce a que el error en (-1, 1) puede expresarse por:

−1 −2 ( iv
Rg (( −1,1)) = ·32·g ( iv ( tξ ) = ·g ( tξ )
6480 405

Una vez obtenida la fórmula de integración numérica y la de su error en (-1, 1)


su transformación en las correspondientes fórmulas válidas en un intervalo
genérico [a, b] puede consultarse en el ejemplo con el que ilustrábamos el
apartado 6.1, obteniéndose:
b
b−a ⎛ ⎛ 2·a + b ⎞ ⎛ a + 2·b ⎞ ⎞
∫a f ( x )·dx  8 ·⎜⎝ f ( a ) + 3·f ⎜⎝ 3 ⎟⎠ + 3·f ⎜⎝ 3 ⎟⎠ + f ( b ) ⎟⎠
y:
−( b − a )5 ( iv
Rf (( a,b )) = ·f ( ξ ) ξ ∈ ( a,b )
6480
Esta fórmula de integración se conoce habitualmente con el nombre de “regla
de 3/8” y el error que con ella se comete, al ser el soporte equidistante, es
frecuente que sea expresado como:
−3·H 5 ( iv
Rf (( a,b )) = ·f ( ξ )
80

donde H = (b-a)/3 es la distancia entre puntos consecutivos del soporte.


47
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

En resumen, si se tiene en cuenta que


1 ⎧ 2
⎪ si k es par
∫ =
k
t dt ⎨ k + 1
−1 ⎪⎩ 0 si k es impar
1 n
para que la fórmula de integración ∫ g(t)dt ≈ ∑ γ ig(ti ) sea exacta para todos los
−1 i= 0

monomios de la familia {1, t, t2, ...., tm} debe verificarse que:

⎧ 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

6.4. Combinación de desarrollos en serie de Taylor.


Un tercer camino usado para determinar fórmulas de integración numérica, así
como las expresiones del error que con ellas se comete, consiste en identificar
los primeros términos de los desarrollos en serie de Taylor del valor exacto de
la integral que se quiere aproximar con el de la fórmula que se quiere
determinar. De forma más concreta, si la fórmula se construye sobre un soporte
de (n+1) puntos las igualdades obtenidas de identificar los (n+1) primeros
términos de ambos desarrollos proporcionará los coeficientes de la fórmula. Y
la diferencia entre los siguientes términos no nulos de ambos desarrollos
servirá para obtener la expresión del error de integración.

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.

A continuación detallamos este método de obtención de fórmulas de


integración numérica. Los desarrollos que realizaremos se harán todos ellos en
torno a un punto “z” de un intervalo [α, β] que incluya tanto al intervalo de
integración [a, b] como a los (n+1) puntos del soporte.

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

puede expresarse el valor aproximado que proporcione la fórmula por la


expresión:
n n ⎛ ∞ (x j − z)i (i ⎞ ∞ ⎛ n (x j − z)i ⎞ (i
V = ∑ c j ·f(x j ) = ∑ c j ·⎜ ∑ ·f (z) ⎟ = ∑ ⎜ ∑ c j · ⎟⎟·f (z)
⎜ i=0 i! ⎟ i=0 ⎜ j=1 i!
j= 0 j=0 ⎝ ⎠ ⎝ ⎠
Identificando los coeficientes que multiplican a las derivadas del mismo orden
en los desarrollos del valor exacto y del valor aproximado se tienen las
ecuaciones:
(b − z)i+1 − (a − z)i+1 n (x − z)i
= ∑ c j· j (i = 0,1,.....)
i + 1! j=1 i!
Cuanto mayor sea el orden de derivación de los términos de ambos desarrollos
que coincidan mayor será el orden de exactitud de la fórmula. Pero para ello
sólo disponemos de la libertad de elección de los (n+1) pesos de la fórmula de
integración. Por ello el sistema9 que nos proporciona estos coeficientes es el
siguiente:
(b − z)i+1 − (a − z)i+1 n (x j − z)i
= ∑ c j· (i = 0,1,....n)
i + 1! j=1 i!

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 ⎠

Las expresiones de los pesos y del error que se acaban de obtener se


simplifican considerablemente si se aplican al intervalo de referencia [a, b] =
[-1, 1] y se toma como punto en torno al cual realizar los desarrollos de Taylor
el punto z = 0. De esta manera, denotando por γi a los pesos de la fórmula
válida para (-1, 1), por g(t) a la función a la que se aplique y por {t0, ..., tn} al
soporte, el sistema de ecuaciones que proporciona los pesos está dado por:

(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.

Ilustremos este proceso con un ejemplo.

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

⎧ 3·a + b a+b a + 3·b ⎫


sobre el soporte ⎨ x0 = ,x1 = ,x2 = ⎬.
⎩ 4 2 4 ⎭

Si trabajamos inicialmente en el intervalo [-1, 1] los puntos del soporte


correspondientes a esta fórmula son: {t0 = -½ , t1 = 0, t2 = ½ } y la fórmula de
integración será de la forma:
1

∫ 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

∫ g( t )·dt = G(1) − G( −1) =


−1
1 1 1 1
G(0 ) + G'(0 ) + ·G"(0 ) + ·G'''(0 ) + ·G( iv (0 ) + ·G( v (0 ) + ...
2 6 24 120
1 1 1 1
−G(0 ) + G'(0 ) − ·G"(0 ) + ·G'''(0 ) − ·G( iv (0 ) + ·G( v (0 ) − ... =
2 6 24 120
1 1 ( iv
= 2·g(0 ) + ·g"(0 ) + ·g (0 ) − ...
3 60

51
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

El desarrollo del valor aproximado nos conduce a:


V = γ 0 ·g( −1 2 ) + γ 1 ·g(0 ) + γ 2 ·g( 1 2 ) =
γ 0 ·( 1 2 )2 γ 0 ·( 1 2 )3 γ 0 ·( 1 2 )4
= γ 0 ·g(0 ) − γ 0 ·( 1 2 )·g'(0 ) + ·g"(0 ) − ·g'''(0 ) + ·g ( iv (0 ) − ... +
2 6 24
+γ 1 ·g(0 ) +
γ 2 ·( 1 2 )
2
γ 2 ·( 1 2 )3 γ 2 ·( 1 2 )4
+γ 2 ·g(0 ) + γ 2 ·( 1 2 )·g'(0 ) + ·g"(0 ) + ·g'''(0 ) + ·g ( iv (0 ) − ... =
2 6 24
1 1
= ( γ 0 + γ 1 + γ 2 )·g(0 ) + ·( −γ 0 + γ 2 )·g'(0 ) + ·(γ 0 + γ 2 )·g"(0 ) +
2 8
1 1
+ ·( −γ 0 + γ 2 )·g'''(0 ) + ·( γ 0 + γ 2 )·g ( iv (0 ) + ...
48 384

Identificando los coeficientes de los desarrollos que multiplican a g(0), g’(0) y


g”(0) se tiene que:

⎪2 = (γ 0 + γ1 + γ2 )

⎪ 1
⎨0 = · ( −γ 0 + γ2 )
⎪ 2
⎪1 1
⎪⎩ 3 = 8 · ( γ 0 + γ2 )

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

Al haberse anulado el coeficiente en g’’’(0) y no el de g(iv(0) puede concluirse


que la fórmula es de orden de exactitud 4. Además, si g(x) es al menos de
clase C4((-1, 1)) el error de integración está dado por:

7
Rg (( −1,1)) = ·g ( iv ( tξ ) tξ ∈ ( −1,1)
720

52
Programación y Métodos Numéricos Integración numérica

Una vez obtenidos la fórmula y su error en el intervalo [-1, 1] determinemos las


expresiones válidas para cualquier intervalo de integración [a, b]. Los puntos
de integración se corresponden con:

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 ⎠ ⎠

En cuanto al error, utilizando la fórmula obtenida en el apartado 6.1, si f(x) es al


menos de clase C4((a,b)) resulta:
4
⎛ b − a ⎞ ⎛ 7 ⎞ ⎛ b − a ⎞ ( iv 7·( b − a )5 ( iv
Rf (( a,b )) = ⎜ ·
⎟⎜ ·
⎟⎜ ⎟ ·f ( ξ ) = ·f ( ξ )
⎝ 2 ⎠ ⎝ 720 ⎠ ⎝ 2 ⎠ 23040

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

2ª. A fórmula hallada en este ejemplo se conoce con el nombre de “fórmula de


Newton-Cotes abierta con 3 puntos de soporte”.

53
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

7. Fórmulas de integración numérica de Newton – Cotes.


Entre las fórmulas de integración numérica que se pueden construir, las más
frecuentemente usadas son:

a) o bien aquellas que siendo de tipo interpolatorio tienen el mayor orden


de exactitud posible (llamadas fórmulas de Gauss)

b) o bien aquellas que siendo de tipo interpolatorio utilizan un soporte


equidistante y centrado en el intervalo de integración (a, b) (llamadas
fórmulas de Newton – Cotes).

En el apartado 8º nos ocuparemos de las fórmulas de Gauss y dedicamos este


al estudio de las fórmulas de Newton – Cotes.

Las fórmulas de Newton – Cotes tienen a su favor la simplicidad en la elección


de los puntos que forman el soporte. Como principal desventaja puede
señalarse que su orden de exactitud está cerca de los valores más pequeños
que pueden tomar las fórmulas de tipo interpolatorio (como veremos un poco
más adelante, el orden de exactitud de las fórmulas de Newton – Cotes que
utilizan (n+1) puntos de soporte es n ó (n+1) dependiendo de que n sea impar o
par respectivamente)10.

Esta familia de fórmulas se suele subdividir en los dos grupos siguientes:

• Fórmulas de Newton - Cotes cerradas: son aquellas fórmulas


de integración de tipo interpolatorio en las que el soporte de
integración es equidistante e incluye, como primer y último puntos
del soporte, a los extremos del intervalo de integración. De forma
más concreta, la fórmula de Newton – Cotes cerrada con (n+1)
puntos de soporte que permite calcular el valor aproximado de
b

∫ f(x)·dx
a
utiliza un soporte equidistante en el que la distancia

entre puntos está dada por el valor H = (b-a)/n obteniéndose las


abscisas usadas como soporte mediante: xi = a + i·H (i = 0, .., n).

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

• Fórmulas de Newton – Cotes abiertas11: son aquellas fórmulas


de integración de tipo interpolatorio en las que el soporte de
integración es equidistante y centrado en (a, b) pero no incluye a
los extremos del intervalo de integración. De forma más concreta,
la fórmula de Newton – Cotes abierta con (n+1) puntos de soporte
b
que permite calcular el valor aproximado de ∫ f(x)·dx , utiliza un
a

soporte equidistante en el que la distancia entre puntos está dada


por el valor H = (b-a)/(n+2) obteniéndose las abscisas usadas
como soporte mediante la expresión: xi = a + (i+1)·H (i = 0, .., n).

Obsérvese que en este tipo de fórmulas, sean abiertas o cerradas, el soporte


es simétrico respecto al punto medio del intervalo de integración (a, b). Ello
quiere decir que si n es par (número de puntos impar) el punto xn/2 coincide con
el punto medio del intervalo de integración y los punto x(n/2)-j y x(n/2)+j ( j = 1, ...,
n/2) están a la misma distancia del punto central xn/2.

H H

x(n/2)-2 x(n/2)-1 xn/2 x(n/2)+1 x(n/2)+2

2·H 2·H

Y si el valor de n es impar (esto es el número de puntos es par) el punto medio


no pertenece al soporte pero está a la misma distancia de xj que de xn-j (j = 0,
...,(n-1)/2).

H/2 H/2

x((n-1)/2)-1 x(n-1)/2 pmed xn-(n-1)/2 xn-((n-1)/2)+1

3·H/2 3·H/2

La simetría del soporte respecto al punto medio del intervalo de integración


implica además ciertas igualdades entre los pesos de la fórmula de integración
correspondiente como se demostrará posteriormente. Antes de ello
observemos que las fórmulas de Newton-Cotes en un intervalo genérico [a, b]

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

pueden ser obtenidas a partir de las fórmulas de Newton-Cotes definidas en el


intervalo de referencia [-1, 1] siguiendo el proceso detallado en el apartado 6.1.
En efecto, se verifica la siguiente propiedad:

Propiedad 7.1.
Siendo:
1 n

∫ f(ξ)dξ = ∑ γi·f ( ξi )
−1 i= 0

una fórmula de Newton-Cotes de (n+1) puntos definida en el intervalo [-1, 1] se


verifica que los pesos de la fórmula fórmula de Newton-Cotes de (n+1) puntos
en un intervalo genérico [a, b]
b n

∫ f(x)dx = ∑ c i·f ( xi )
a i= 0

pueden obtenerse como imágenes de los puntos ξi mediante el cambio de


variable que transforma [-1, 1] en [a, b] dado por la aplicación afín:
a+b b−a
x= + ·ξ
2 2
y los pesos de integración mediante:
b−a
ci = ·γ i
2
Demostración:
La distancia entre dos puntos con subíndice consecutivo en el soporte de la
fórmula usada en [a, b] es:
b−a b−a
xi+1 − xi = ( ξi+1 − ξi ) = λ
2 2

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−a b−a b−a


xi − x* = (ξi − 0) = µ= (0 − ξ j ) = x * − x j
2 2 2
lo que demuestra que el soporte {x0, ..., xn} es un soporte equidistante simétrico
respecto al punto medio. Por último, puesto que {ξ0, ..., ξ n} es un soporte de
una fórmula de Newton-Cotes en [-1, 1] se verificará que:
0 ≤ η = ξ1 − ( −1) = 1 − ξn de donde se tiene que:

⎛a+b b−a ⎞ ⎛a+b b−a ⎞ b−a b−a


x1 − a = ⎜ + ξ1 ⎟ − ⎜ + ( −1) ⎟ = ( ξ1 + 1) = η=
⎝ 2 2 ⎠ ⎝ 2 2 ⎠ 2 2

b−a a+b b−a ⎞ ⎛a+b b−a ⎞


= (1 − ξn ) = ⎛⎜ + 1 − + ξn ⎟ = b − x n
2 ⎝ 2 2 ⎟⎠ ⎜⎝ 2 2 ⎠
lo que demuestra que el soporte, además, es centrado en [a, b]. En resumen
que es el soporte de una fórmula de Newton-Cotes de (n+1) puntos.

Para verificar la expresión que permite obtener los pesos de integración,


denotemos por L i (ξ) (i = 0, ..., n) a los (n+1) polinomios de base de Lagrange
definidos sobre el soporte {ξ0, ..., ξ n} y por Li(x) (i = 0, ..., n) a los (n+1)
polinomios de base de Lagrange definidos sobre el soporte {x0, ...., xn}. Según
la propiedad 3.1. los pesos de las fórmulas consideradas en cada intervalo
responden a la expresión:
1 b
γ i = ∫ L i (ξ)dξ y c i = ∫ Li (x)dx (i = 0, ..., n)
−1 a

Realizando en la expresión de los pesos ci el cambio de variable que estamos


considerando, se tiene que:

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:

• Si n es par: c(n/2)-i = c(n/2)+i (i = 0, ..., (n/2)-1)

• Si n es impar: ci = cn-i (i = 0, ..., (n-1)/2)

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:

ξ0 = xn/2 , ξj = x(n/2)+j (j = -k, -k+1, ...., -1, 1, ..., k-1, k)

Designando por H a la distancia entre puntos consecutivos del soporte se tiene


que:
ξ j = x n 2 + j·H (-k < j < k)

y para cualquier abscisa x existirá un único numero real t tal que:


x − xn2
x = x n 2 + t·H ⇔ t =
H

Análogamente para los extremos del intervalo de integración,“a” y “b”, existirán


dos valores α y β (con el mismo valor absoluto pero con signo contrario) tales
que:
a − xn2 b − xn2
a = x n 2 + α·H ⇔ α = , b = x n 2 + β·H ⇔ β =
H H

58
Programación y Métodos Numéricos Integración numérica

α·H β·H

k·H k·H

2·H 2·H

H H

a x0 .... x(n/2)-2 x(n/2)-1 x(n/2) x(n/2)+1 x(n/2)+2 .... xn b


ξ-k ξ-2 ξ-1 ξ0 ξ1 ξ2 ξk

Con esta notación los polinomios de base de Lagrange asociados al soporte


estarán dados por las expresiones:

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

Si se considera un valor no nulo del índice i se verifica fácilmente que:


Li (xn / 2 + t·H) = L −i (xn / 2 − t·H) (i = -k, ..., -1, 1, ..., k)

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

Esta igualdad nos conduce a que:

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.

b) Caso en el que n es impar (número par de puntos de soporte).


La demostración es análoga a la del caso anterior, con la única diferencia de
que ahora el punto medio del intervalo de integración no es un punto del
soporte. De forma más concreta, siendo z = (a+b)/2 el punto medio del intervalo
de integración y denotando por H a la distancia entre puntos del soporte se
considera el cambio de variable:

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

Además, para aligerar la notación, siendo k el valor k = (n+1)/2, reordenaremos


el soporte en la forma:
ξj = xj+k (j = -k, -k+1, ...,-1)

ξ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

β·H =- α·H β·H

(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

Con esta notación, siguiendo un proceso análogo al desarrollado en el caso


anterior de esta demostración12, se verifica fácilmente que:

∀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

ξ-j ..... ξ-1 ξ1 ..... ξj

Esta igualdad nos conduce a que:


b β α
⎛ H⎞ H ⎛ H⎞ H
∫a i
L (x)·dx = ∫α i ⎜⎝ 2 ⎟⎠ 2
L z + t· · ·dt = − ∫β Li ⎜⎝ z − t· 2 ⎟⎠· 2 ·dt =

α β 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

2º. La fórmula de Simpson, también deducida en apartados anteriores,

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

3º. La fórmula de Newton – Cotes abierta con 4 puntos de soporte (n = 3), en


un intervalo genérico (a, b), utiliza un soporte en el que la distancia entre
puntos consecutivos está dada por:
H = (b – a) / ( n+2) = (b-a)/5

por lo que los puntos del soporte serán:

4·a + b 3·a + 2·b


x0 = a + H = , x1 = a + 2·H = ,
5 5
2·a + 3·b a + 4·b
x2 = a + 3·H = , x3 = a + 4·H =
5 5

Utilizando cualquiera de los métodos presentados en el apartado anterior


puede obtenerse fácilmente la fórmula:

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

Las fórmulas de Newton-Cotes construidas sobre un soporte de (n+1) puntos,


al ser de tipo interpolatorio, son fórmulas exactas para todo polinomio de grado
menor o igual que n (es decir son fórmulas de orden n). No obstante la simetría
en los puntos del soporte respecto al punto medio del intervalo de integración
hace que en el caso de que n sea par el orden se vea incrementado en una
unidad. Este hecho se demuestra en el teorema siguiente:

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].

a) Demostremos que en el intervalo [-1, 1] la fórmula permite calcular sin error


1

∫ξ
(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

lo que nos conduce a que si n es par:


1 n
0 = ∫ ξ(n+1)dξ = ∑ γ iξ(n
i
+1)

−1 i=0
b

∫x
n +1
b) Demostremos que la fórmula es exacta para el cálculo de dx en
a

cualquier intervalo [a, b].

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

[-1, 1] en [a, b] mediante el cambio de variable: x = ((a+b)/2) + ((b-1)/2)·ξ por lo


que:
b 1 (n +1)
b−a ⎛a+b b−a ⎞
∫a x dx = 2 −∫1⎜⎝ 2 + 2 ξ ⎟⎠
n +1

pudiendo evaluarse de forma exacta la integral en [-1, 1] del polinomo de grado


(n +1)
⎛a+b b−a ⎞
(n+1) dado por ⎜ + ξ⎟ mediante la fórmula de Newton-Cotes, es
⎝ 2 2 ⎠
decir:
b 1 (n +1) (n +1)
b−a ⎛a+b b−a ⎞ b−a n ⎛a+b b−a ⎞
∫ x dx =
n +1

2 −∫1 ⎜⎝ 2
+
2
ξ⎟

dξ = ∑ γi
2 i=0 ⎜⎝ 2
+
2
ξi ⎟

a

y puesto que, según la propiedad 7.1., los puntos de integración xi en el


intervalo [a, b] son las imágnes de los puntos ξi mediante el cambio de variable
considerado y que los pesos ci en el intervalo [a, b] se obtienen mediante la
expresión ci = ((b-a)/2)·γi, se tiene finalmente que:
b (n +1)
b−a n ⎛a+b b−a ⎞ n

∫a x n +1
dx = ∑ γi
2 i=0 ⎜⎝ 2
+
2
ξi ⎟

= ∑ c i ·xin
i=0

lo que demuestra que la fórmula es de orden (n+1).


c.q.d.

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

7.1. Fórmulas de Newton-Cotes cerradas


Como se señaló anteriormente estas fórmulas de tipo interpolatorio permiten
aproximar el valor de una integral definida en el intervalo [a, b] tomando los
(n+1) puntos del soporte en la forma:
xi = a + i·H (i = 0, 1, …, n)
siendo H = (b-a)/n.

Para obtener las fórmulas correspondientes a cada valor de “n” pueden


utilizarse cualquiera de los procedimientos detallados en el apartado 6. Si se
expresa la fórmula en la forma:
b
b−a n
∫a f(x)dx = ∑ αi·f(xi ) + Rf ((a,b))
D i=0
la tabla siguiente recoge, para distintos valores de n, los parámetros que
definen cada una de las fórmulas correspondientes (así como, en su caso, el
nombre13 por el que habitualmente se conoce a la fórmula). En la columna
referente al error de la fórmula de integración, la expresión que aparece es
válida sólo en el caso en que se suponga que la función f(x) es suficientemente
regular en el intervalo (a, b) (más concretamente de clase Cn+1((a, b)) si n es
impar y Cn+2((a, b)) si n es par). Si la función f(x) tuviera menor regularidad la
expresión del error correspondiente debería estimarse según lo desarrollado en
el apartado 5º.

n αj (j=0, ..., n) D Rf((a,b) Nombre


1 1 1 2 (H /12)·f ''(ξ)
3
Trapecio
2 1 4 1 6 (H / 90 )·f (ξ)
5 (iv
Simpson
3 1 3 3 1 8 ( 3H / 80 )·f (ξ)
5 (iv
Re gla 3 / 8
4 7 32 12 32 7 90 ( 8H / 945 )·f (ξ)
7 ( vi
Miln e
5 19 75 50 50 75 19 288 ( 275H /12096 )·f (ξ)
7 ( vi

6 41 216 27 272 27 216 41 840 ( 9H /1400 )·f (ξ)


9 ( viii
Weddle

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

las fórmulas de Simpson, Milne y Weddle. Junto a ellas, por su simplicidad,


también es muy utilizada en la práctica la fórmula del trapecio.

2ª. El utilizar valores de n mayores a 7 conduce a fórmulas muy sensibles a los


errores de redondeo y que prácticamente no son usadas. Por otra parte14, no
puede demostrarse la convergencia de estas fórmulas cuando n tiende a
infinito hacia el valor exacto de la integral ni aun en el caso de que la función a
integrar sea de clase C∞ ((a,b)) . Por ello estas fórmulas son usadas, con un
número de puntos de soporte inferior a 7, para obtener a partir de ellas las
denominadas fórmulas de cuadratura compuesta (que serán desarrolladas en
el apartado 9º y que, en síntesis, consisten en aplicarlas sobre una partición del
intervalo de integración (a, b) en subintervalos de menor longitud).

7.2. Fórmulas de Newton-Cotes abiertas (o fórmulas de Steffensen)


Esta familia de fórmulas de tipo interpolatorio permiten aproximar el valor de
una integral definida en el intervalo [a, b] tomando los (n+1) puntos del soporte
en la forma:
xi = a + (i+1)·H (i = 0, 1, …, n)
siendo H = (b-a)/(n+2).

Para obtener las fórmulas correspondientes a cada valor de “n” pueden


utilizarse cualquiera de los procedimientos detallados en el apartado 6. Si se
expresa la fórmula en la forma:
b
b−a n
∫a f(x)dx = ∑ αi·f(xi ) + Rf ((a,b))
D i=0
la tabla siguiente recoge, para distintos valores de n, los parámetros que
definen cada una de las fórmulas correspondientes. En la columna referente al
error de la fórmula de integración, la expresión que aparece es válida sólo en el
caso en que se suponga que la función f(x) es suficientemente regular en el
intervalo (a, b) (más concretamente de clase Cn+1((a, b)) si n es impar y Cn+2((a,
b)) si n es par o nulo). Si la función f(x) tuviera menor regularidad la expresión
del error correspondiente debería estimarse según lo desarrollado en el
apartado 5º.

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

n αj (j=0, ..., n) D Rf((a,b)

0 1 1 (H / 3 )·f "(ξ)
3

1 1 1 2 ( 3H / 4 )·f "(ξ)
3

2 2 −1 2 3 (14H / 45 )·f (ξ)


5 (iv

3 11 1 1 11 24 ( 95H /144 )·f (ξ)


5 (iv

La fórmula obtenida para n = 0, muy utilizada en la práctica por su simplicidad,


se conoce con el nombre de fórmula del punto medio (o de Poncelet).

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

siendo la fórmula de la forma:


1 4

∫ g(t)dt = ∑ γig(ti ) + Rg ((0,1))


0 i= 0

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

Se obtiene así el sistema:

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

Si se compara este valor con el correspondiente a la expresión:


6 6 7
7 d (t ) ⎛ 1⎞ 5
R t6 ((0,1)) = K·H · 6 = K·⎜ ⎟ ·6! = K·
dt ⎝6⎠ 1944
41
se obtiene que K = .
140

2º) Generalicemos la fórmula obtenida en el ejemplo anterior para poder


aplicarla al cálculo aproximado de integrales sobre un intervalo genérico (a, b).

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

Los pesos de la fórmula se obtendrán multiplicando el jacobiano de la


transformación, (es decir (b-a)) por los pesos de la fórmula hallada para el
intervalo de referencia [0, 1]. Ello nos conduce a que:

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 ⎠⎠
⎟⎟

En cuanto al error cometido en un intervalo genérico su expresión, según se


mostró en el apartado 6.1., será:
7
41 ⎛ b − a ⎞ (vi
R f ((a,b)) = ·⎜ ·f (ξ) ξ ∈ (a,b)
140 ⎝ 6 ⎟⎠

3º) Apliquemos la fórmula obtenida en el ejemplo anterior al cálculo de


3

∫e cos(x)dx y comparemos con su valor exacto15.


x

En [0, 3] los 5 puntos del soporte de la fórmula de Newton-Cotes abierta son:


x0 = ½ , x1 = 1, x2 = 3 2 , x3 = 2 y x4 = 5 2

En ellos los valores de la función f(x) = excos(x), redondeando hasta el 8


decimal, son:
f0 = 1.44688904, f1 = 1.46869394, f2 = 0.31702214,
f3 = -3.07493232, f4 = -9.75992726
por lo que:
3
3
∫0 e cos(x)dx ≈ 20·(11·f0 − 14·f1 + 26·f2 − 14·f3 + 11·f4 ) ≈ -9.10702610
x

Puesto que el valor exacto de esta integral es –9.02502985... el error cometido


es: Error = Vexacto – Vaproximado = 0.08199625...

Comparemos con la cota a la que nos conduciría la expresión de R f ((0,3))


antes obtenida. Para ello, en este caso se tiene que f(vi(x) = 8·ex·sen(x) cuyo
valor máximo en el intervalo (0, 3) se alcanza en x* = 3π/4 . En este punto
f(vi(x*) = 59.68390828 y por tanto:
7
41 ⎛ 3 ⎞
R f ((0,3)) ≤ · ·59.68390828 = 0.1365535...
140 ⎜⎝ 6 ⎟⎠
cota que es mayor que el error realmente cometido.

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

8. Fórmulas de cuadratura gaussiana.


Según se ha demostrado previamente, todas las fórmulas de integración
numérica de tipo interpolatorio, construidas sobre un soporte de (n+1) distintos
son tienen garantizado un orden de exactitud de valor, al menos, n. Si no se
necesita que la fórmula sea de mayor orden, pueden tomarse los (n+1) puntos
del soporte libremente. No obstante, si se renuncia a tomar los puntos
arbitrariamente y se escogen en posiciones determinadas dentro del intervalo
de integración (a, b) puede aumentarse el orden de la fórmula. Un ejemplo de
ello, analizado en el apartado anterior, son las fórmulas de Newton-Cotes
construidas con soportes con un número impar de puntos (es decir con n par)
que garantizan un orden de valor (n+1). El objetivo de este apartado es
presentar una familia de fórmulas de integración numérica de tipo interpolatorio
que tienen órdenes de exactitud superiores a n. Tales fórmulas reciben el
nombre del matemático alemán que, en la primera mitad del siglo XIX las
obtuvo: Johan Carl Friedrich Gauss.

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

Por tanto la idea que subyace en la obtención de fórmulas de orden (n+q)


consiste en determinar soportes de interpolación con (n+1) puntos de forma
que se satisfagan las ecuaciones no lineales que forman el sistema (S1). Pero
(recuérdese el teorema 4.2. demostrado en el 4º apartado) el valor de q no
puede superar el de (n+1) pues, de forma simplificada, ello nos conduciría a
que el sistema anterior tiene más ecuaciones que incógnitas no admitiendo
solución.

En otros términos parece factible poder obtener fórmulas que, construidas


sobre un soporte de (n+1) puntos tengan órdenes de exactitud n, (n+1), (n+2),
...., o (2n+1). Pero antes de poder afirmar esto es necesario demostrar que el
sistema (S1) admite alguna solución para cualquier valor de q comprendido
entre 1 y (n+1). Nosotros demostraremos este hecho sólo para el caso en que
q toma el mayor de los valores posibles, es decir en el caso q = n+1. En dicho
caso, además, el sistema (S1) admite una solución única formada por puntos
de (a, b).

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

∫ f(x)dx = ∑ c if(xi ) + Rf ((a,b))


a i=0

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

igual a la unidad. Por tanto podrá expresarse en la forma:


n

∏ (x − x ) = a0 + a1·x + a2·x2 + .... + an·xn + xn+1


i=0
i

Considerando esta expresión del polinomio, el sistema (S2) puede escribirse en


la forma:
⎧ b n+1 b b

⎪ ∫− = n∫ + + 0 ∫ dx
n
x dx a x dx ... a ⎪
⎪ a a a ⎪
⎪ b b b ⎪
⎪⎪− ∫ x dx = an ∫ x dx + ... +a0 ∫ xdx ⎪⎪
n+ 2 n +1

⎨ 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

Multiplicando la primera de las igualdades anteriores por βn , la segunda por


βn-1, y así sucesivamente hasta llegar a la última que se multiplicaría por β0, y
sumando las (n+1) igualdades obtenidas se tendría entonces que:
b

∫ (β )
2
0 + β1·x + ... + βn ·xn dx = 0
a

lo cual sólo sería posible si β0 = β1 = ... = βn = 0 en contra de la suposición de


que no todos ellos eran nulos.

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).

En efecto, denotemos por r al número de raíces de multiplicidad impar que


pertenecen a (a, b). Como consecuencia directa del teorema fundamental del
Álgebra es evidente que r no puede ser superior a (n+1). Demostremos
entonces, nuevamente por reducción al absurdo, que r tampoco puede ser
inferior a (n+1). En efecto, si r ≤ n , ordenando las raíces de forma que
{x0, .., xr-1} fuesen las r raíces pertenecientes a (a, b) podemos considerar el
polinomio:
⎛ r −1 ⎞⎛ n ⎞
q(x) = ⎜ ∏ (x − xk ) ⎟·⎜ ∏ (x − xi ) ⎟ si 0 < r < n
⎝ k =0 ⎠ ⎝ i=0 ⎠
⎛ n ⎞
q(x) = ⎜ ∏ (x − xi ) ⎟ si r = 0
⎝ i= 0 ⎠

73
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

El polinomio q(x) así definido es un polinomio de grado superior a n e inferior


a (2n+1) y con todas sus raíces pertenecientes a (a, b) con multiplicidad par.
Ello implicaría que el signo de q(x) en el intervalo (a, b) permanece constante.

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

verificarse la primera de las ecuaciones de (S2)

En resumen, si r < n se habría encontrado un polinomio q(x) de grado superior


b
a n e inferior a (2n+1) que no cambia de signo en (a, b) y tal que ∫ q(x)dx = 0
a

lo cual es absurdo (pues sólo podría suceder si q(x) fuese el polinomio


idénticamente nulo y en ese caso su grado no sería superior a n).

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

Según la definición que se acaba de dar el proceso de construcción de una


fórmula de cuadratura gaussiana se reduce a:
1º) Determinar los puntos del soporte resolviendo el sistema (S2)
2º) Determinar los pesos {c i }i=0 de la fórmula de integración como las
n

integrales de los respectivos polinomios de base de Lagrange


asociados al soporte de integración (o por cualquier otro método de
los descritos en el apartado 6º).
3º) Determinar el error de integración numérica en la forma
R f ((a,b)) = K·(b − a)2n+3 ·f (2n+ 2 (ξ) según alguno de los procedimientos
presentados en el apartado 6º.

Es habitual obtener estas fórmulas en un intervalo de referencia


(frecuentemente el (-1, 1)) y posteriormente extenderlas a un intervalo genérico
(a, b) tal como se analizó en el subapartado 6.1.

Ilustremos este proceso con algún ejemplo.

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.

2º) Construyamos la fórmula de cuadratura gaussiana con 2 puntos de soporte


(n = 1) que permite aproximar integrales definidas en (-1, 1). En este caso
deben satisfacerse las dos ecuaciones:
1
2
∫−1 ( t − t0 )( t − t1 )dt = 0 ⇔ 2t0 t1 + = 0
3
1
2
∫ t( t − t
−1
0 )( t − t1 )dt = 0 ⇔ − ( t0 + t1 ) = 0
3

75
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

De la segunda ecuación se deduce quetx0 = -t1 y con ello la primera ecuación


−1 1
conduce a que t0 = y t1 = .
3 3

La fórmula de cuadratura gaussiana así construida se sabe que será exacta


para todo polinomio de grado menor o igual que 3 = (2n+1). En particular es
exacta para los monomios {1, t, t2, t3}. De plantear la exactidud de los valores
aproximados y exactos para dos cualquiera de estos monomios se obtendrán
los coeficientes de la fórmula buscada. Por ejemplo, si se consideran los dos
primeros se tiene que:
1

∫ dt = γ
−1
0 ·1 + γ 1 ·1 ⇔ 2 = γ 0 + γ 1
1
⎛ −1 ⎞ ⎛ 1 ⎞ 1
∫ tdt = γ 0 ·⎜ ⎟ + γ 1 ·⎜ ⎟⇔0= ( −γ 0 + γ 1 )
−1 ⎝ 3⎠ ⎝ 3⎠ 3

De la segunda igualdad se tiene que γ0 = γ1 y entrando con este resultado en la


primera igualdad resulta finalmente que γ0 = γ1 = 1. Por tanto la fórmula de
cuadratura gaussiana con 2 puntos de soporte es:
1
⎛ −1 ⎞ ⎛ 1 ⎞
∫−1 g( t )·dt ≈ g ⎜⎝ 3 ⎟⎠ + g ⎜⎝ 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 (ξ )

No obstante, en este tipo de fórmulas la expresión del error es preferible


buscarla no ya en función de la distancia entre los puntos de integración (que
no son equidistantes) sino en función de la longitud del intervalo de integación
lo que en este caso nos conduce a buscar el error en la forma:
Rg((-1, 1)) = K·25·g(iv(ξ)

Aplicándolo a la función g(t) = t4 se tiene que:


4 4
2 ⎛ −1 ⎞ ⎛ 1 ⎞ 8
K·32·4 ! = Rt 4 (( −1,1)) = − ⎜ ⎟ +⎜ ⎟ =
5 ⎝ 3⎠ ⎝ 3⎠ 45
1
de donde: K = .
4320

NOTA: A partir de la anterior puede obtenerse fácilmente la fórmula gaussiana


con 2 puntos aplicable en un intervalo de integración genérico (a, b):

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 ⎠⎠

con la que se comete un error dado por:

( b − a )5 ( iv
Rf = ·f ( ξ ) ξ ∈ ( a,b )
4320

3º) Construyamos la fórmula gaussiana que utilizando 3 puntos de soporte


permite aproximar integrales sobre el intervalo (-1, 1). En este caso (n = 2)
deben satisfacerse las tres ecuaciones:

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

De la primera y tercera ecuaciones es fácil obtener que

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

La fórmula de cuadratura gaussiana así construida se sabe que será exacta


para todo polinomio de grado menor o igual que 5 = (2n+1). En particular es
exacta para los monomios {1, t, t2, t3, t4, t5}. De plantear la exactidud de los
valores aproximados y exactos para tres cualesquiera de estos monomios se

77
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

obtendrán los coeficientes de la fórmula buscada. Por ejemplo, si se consideran


los tres primeros se tiene que:
1

∫ 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

De la segunda igualdad se tiene que γ0 = γ2 y entrando con este resultado en la


tercera igualdad resulta que γ0 = γ2 = 5 9 . Con estos valores la primera igualdad
obliga a que γ1 = 8 9 . Por tanto la fórmula de cuadratura gaussiana con 3 puntos
de soporte es:
1⎡ ⎛ ⎞ ⎛ 3 ⎞⎤
1
3
∫ g( t )·dt ≈ 9 ⎢⎢5·g ⎜⎜ − 5
⎟⎟ + 8·g(0 ) + 5·g ⎜⎜ ⎟⎟ ⎥
−1 ⎣ ⎝ ⎠ ⎝ 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:

Rg((-1, 1)) = K·27·g(vi(ξ)

Aplicándolo a la función g(t) = t6 se tiene que:


2 1⎡ ⎛ 3 ⎛ 3⎞ ⎤
6 6
⎞ 8
K·128·6 ! = Rt 6 (( −1,1)) = − ⎢5·⎜⎜ − ⎟⎟ + 8·0 + 5·⎜⎜ ⎟⎟ ⎥ =
7 9⎢ ⎝ 5 ⎠ ⎝ 5 ⎠ ⎥⎦ 175

3
de donde: K = .
2016000

NOTA: A partir de la anterior puede obtenerse fácilmente la fórmula gaussiana


con 3 puntos aplicable en un intervalo de integración genérico (a, b):

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

Como ponen de manifiesto los ejemplos anteriores, la principal dificultad a la


hora de determinar una fórmula de integración gaussiana consiste en resolver
el sistema de ecuaciones no lineales que proporciona los puntos y el sistema
de ecuaciones lineales que proporciona los pesos correspondientes. No
obstante este trabajo se puede ver aligerado considerablemente si se dispone
de la ubicación de los puntos de soporte y de los pesos correspondientes en un
intervalo de referencia. En la bibliografía16 pueden encontrarse tablas en la que
se proporcionan estos puntos para distintos valores de n. La tabla siguiente
recoge la posición de los puntos de integración (redondeando sus valores a los
10 primeros decimales significativos) así como la de los pesos
correspondientes en el intervalo [-1, 1] para las fórmulas con n comprendido
entre 0 y 4.
1 n

∫ g( t ).dt ≈ ∑ γ j .g( t j )
−1
j =0

n . . t j (j = 0, ..., n). . γ j (j = 0, ..., n).

0 (1 pto.) 0.0000000000 2.0000000000

1 (2 ptos.) -0.5773502691 1.0000000000


0.5773502691 1.0000000000

2(3 ptos.) -0.7745966692 0.5555555556


0.0000000000 0.8888888889
0.7745966692 0.5555555556

3 (4 ptos.) -0.8611363116 0.3478548451


-0.3399810436 0.6521451548
0.3399810436 0.6521451548
0.8611363116 0.3478548451

4 (5 ptos.) -0.9061798459 0.2369268850


-0.5384693101 0.4786286705
0.0000000000 0.5688888889
0.5384693101 0.4786286705
0.9061798459 0.2369268850

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.

2ª. Los fundamentos de las fórmulas de integración gaussiana, en un marco


más general, están estrechamente ligados a la teoría de los polinomios
ortogonales. Su estudio desborda los límites que nos hemos marcado al
elaborar estos apuntes y por ello no entraremos en detalle en estos aspectos.
Pero conviene señalar que para funciones ω(x) suficientemente buenas es
posibles demostrar que existen sucesiones de polinomios ortogonales17
{Qk ( x )}k =0 , siendo Qk(x) de grado k, con todas sus raíces distintas y en (a, b),

verificando que:

∫ x ω( x )·Q ( x )·dx = 0
k
n +1 (k = 0, ...,n)
a

Si se construye una fórmula de cuadratura de tipo interpolatorio soportada en


las raíces de uno de tales polinomios, Qn+1(x), puede demostrarse que dicha
b
fórmula permite calcular sin error las integrales ∫ p ( x )·ω( x )·dx siempre
a
n que

pn(x) sea un polinomio de grado menor o igual que (2n+1).

En el caso particular en que a = -1, b = 1 y ω( x ) ≡ 1 la familia de polinomios


ortogonales {Qk ( x )}k =0 es la formada por los polinomios de Legendre18. En

dicho caso las fórmulas de integración numérica que se obtienen son la

17
En este contexto diremos que dos polinomios p(x) y q(x) son ortogonales si verifican que
b

∫ ω( x )·p( x )·q( x )·dx = 0


a
18
Los polinomios de Legendre se definen de forma recursiva, a partir de Q0(x)=1, imponiendo
1
la condición de que Qk(x) sea de grado k y verifique que ∫ Q ( x )·Q ( x )·dx = 0 .
−1
k j Toman su

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

fórmulas de Gauss que se acaban de presentar particularizadas al intervalo [-1,


1]. Por dicho motivo estas fórmulas se denominan también fórmulas de Gauss-
Legendre. Para otras elecciones de los límites del intervalo de integración y de
la función ω( x ) se obtienen otras familias de fórmulas tales como las de
Gauss-Chebyshev19 (con ]a, b[ = ]-1, 1[ y ω( x ) = (1 − x 2 )−1 / 2 ), Gauss-Hermite20
2
(con ]a, b[ = ]-∞ , ∞ [ y ω( x ) = e − x ), Gauss-Laguerre21 (con ]a, b[=]0 , ∞ [ y
ω( x ) = x α e − x ), .... El estudio detallado de este tipo de fórmulas, de gran interés
cuando se trabaja con funciones singulares o en intervalos no acotados,
exigiría la introducción de numerosos conceptos previos sobre aproximación
polinómica y sobrepasaría ampliamente el marco de estos apuntes. Por ello
remitimos al lector interesado a la bibliografía recogida al final de este tema
para un estudio más profundo de estas familias de fórmulas de integración.

2ª. En cuanto hemos desarrollado anteriormente nos hemos centrado en las


fórmulas que usando (n+1) puntos de soporte proporcionan el mayor orden de
exactitud posible(orden (2n+1)). Pero existen también fórmulas que usando
(n+1) puntos de soporte tienen órdenes de exactitud mayores que n e inferiores
a (2n+1). Dichas fórmulas se obtienen tomando un soporte que satisfaga el
sistema (S1) dándole a q algún valor comprendido entre 1 y n. El sistema de
ecuaciones no lineales que así se obtiene tiene menos ecuaciones (q) que
incógnitas (los (n+1) puntos del soporte) lo cual permite tomar casi
arbitrariamente (n+1-q) puntos y en función de dicha elección determinar los q
puntos restantes para que la fórmula tenga el orden requerido. Ejemplos de
tales fórmulas son las llamadas fórmulas de Gauss-Lobatto en las que se
obliga a que x0=a y xn = b obteniendo los (n-1) puntos restantes mediante la
resolución del sistema (S1) con q = n-1 (y obteniéndose por ello fórmulas de
orden (2n-1) cuando se usan (n+1) puntos de soporte) o las fórmulas de Gauss
- Radau a izquierda (resp. a derecha) en las que se fija x0 = a (resp. xn = b)
obteniéndose los n puntos restantes resolviendo el sistema (S1) con q = n y
obteniéndose así fórmulas de orden 2n.

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

9. Fórmulas de cuadratura compuestas.


Los errores cometidos con las fórmulas de integración de tipo interpolatorio al
calcular integrales en un intervalo (a, b) tienen expresiones en las que
interviene (b-a)m donde m es un entero relacionado con el número de puntos
(n+1) que forman el soporte sobre el que se construye la fórmula. Ello hace que
en general no pueda asegurarse la convergencia del valor aproximado hacia el
exacto cuando el número de puntos del soporte se hace tender hacia infinito.
Junto a ello, debemos recordar que fórmulas como las de Newton – Cotes se
vuelven muy sensibles a los errores de redondeo cuando se eleva el número
de puntos de sus soportes. Todo ello indica que, antes que incrementar
arbitrariamente el numero de puntos de soporte de una fórmula, es más
eficiente a la hora de mejorar la precisión de los valores aproximados subdividir
el intervalo de integración (a, b) en M subintervalos de menor longitud y aplicar
en cada uno de ellos fórmulas con un número relativamente bajo de puntos de
soporte. Dedicaremos este apartado a detallar cómo se realiza este proceso y
a analizar las fórmulas resultantes.

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

Obviamente se verifica que:


b M zj

∫ f ( x )dx = ∑ ∫ f ( x )dx
a j =1 z j −1
(1)

Con esta notación, se denominan fórmulas de cuadratura compuestas a todas


aquellas fórmulas que se obtienen como resultado de aproximar los valores de
zj

las integrales ∫ f ( x )dx


z j −1
que aparecen en la expresión (1) mediante una

fórmula de tipo interpolatorio. Más concretamente, si en cada intervalo Ij se


utiliza una fórmula con (nj +1) puntos de integración de la forma:
zj nj

∫ f ( x )dx = ∑ c
z j −1 i =0
j ,i ·f ( x j ,i ) + Rf (( z j −1 ,z j ))

se obtendrá la fórmula de cuadratura compuesta:

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

En esta expresión, el término:


M ⎛ nj ⎞
V = ∑ ⎜ ∑ c j ,i ·f ( x j ,i ) ⎟
j =1 ⎝ i =0 ⎠
b
es el valor aproximado de ∫ f ( x )dx
a
al que conduce la fórmula compuesta

mientras que el último sumatorio proporcionará el error de la fórmula de


integración:
M
Rf (( a,b )) = ∑ Rf (( z j −1 ,z j ))
j =1

Si el punto zj coincidiera con el último de los puntos de integración de la


fórmula elegida sobre el intervalo Ij y con el primero de los de la fórmula
seleccionada para Ij+1 los pesos con los que se ve afectado en ambas fórmulas
se sumarán en el proceso que se acaba de describir.

Aunque pueden obtenerse fórmulas compuestas utilizando diferentes fórmulas


“simples” de integración en cada subintervalo Ij, las fórmulas más utilizadas en
la práctica son aquellas que utilizan la misma fórmula de integración para el
cálculo de todas las integrales sobre los intervalos Ij. En este tipo de fórmulas
será en las que nos centraremos en cuanto sigue.

Antes de abordar casos generales, ilustremos el procedimiento que acabamos


de describir con algunos ejemplos concretos.

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

el proceso anterior nos conduce a la denominada fórmula del trapecio


compuesta dada por:
b M (z − z
j −1 ) 1 M
∫a f ( x )dx = ∑ j

2
( f ( z j −1 ) + f ( z j ) ) + ∑
12 j =1
( z j − z j −1 )3 ·f ''( ξ j )
j =1

pudiendo escribirse el valor aproximado al que conduce la fórmula del trapecio


compuesta como:

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 ⎦

y el error de la fórmula, si f ∈ C 2 (( a,b )) , como:


1 M
Rf (( a,b )) = ∑
12 j =1
( z j − z j −1 )3 ·f ''( ξ j )

En el caso particular en que los puntos {z j } j =0 estén uniformemente repartidos


M

en (a, b), denotando por h a la distancia entre dos puntos consecutivos, la


fórmula anterior puede simplificarse y escribirse como:

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

Más adelante analizaremos cómo puede simplificarse la expresión del término


de error de la expresión anterior.

2º. Fórmula de Simpson 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 −1 + z j ⎞ ⎤ ( z j − z j −1 )5 ( iv

z j −1
f ( x )dx =
6
·⎢f ( z j −1 ) + 4f ⎜
⎣ ⎝ 2


+ f ( z j ⎥ +
)
⎦ 2880
f (ξ j ) ξ j ∈ ( z j −1 ,z j )

la suma de las integrales sobre cada subintervalo nos conduce a la


denominada fórmula de Simpson compuesta dada por:
b M ( z j − z j −1 ) ⎛ ⎛ z j −1 + z j ⎞ ⎞ 1 M
∫ f ( x )dx = ∑
a j =1 6
⎜ f ( z j −1 ) + 4f ⎜

⎝ ⎝ 2
⎟ + f ( z j ) ⎟⎟ +
⎠ ⎠ 2880

j =1
( z j − z j −1 )5 ·f ( iv ( ξ j )

El valor de la integral es aproximado con la fórmula de Simpson compuesta


por:
b
⎛ ( z1 − a ) ( b − zM −1 ) M −1 ( z
j +1 − z j −1 )
M (z − z
j −1 ) ⎛ z j −1 + z j ⎞⎞
∫ f ( x )dx ≈ V = ⎜⎜⎝ f(b) + ∑ f ( z j ) +2 ∑
j
f(a) + f⎜ ⎟ ⎟⎟
a 6 6 j =1 6 j =0 3 ⎝ 2 ⎠⎠

cometiéndose un error que, si f ∈ C 4 (( a,b )) , se puede expresar como:

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 el caso particular en que los puntos {z j } j =0 estén uniformemente repartidos


M

en (a, b), denotando por h a la distancia entre dos puntos consecutivos, la


fórmula anterior puede escribirse como:
h⎡ ⎛ z j −1 + z j ⎞ ⎤
b M −1 M
h5 M ( iv
∫a f ( x )dx = 6 ·⎢⎣f ( a ) + f ( b ) + 2 ∑
j =1
f ( zj ) + 4∑ f ⎜
j =1 ⎝ 2
⎟⎥ + ∑ f (ξ j )
⎠ ⎦ 2880 j =1
Más adelante analizaremos cómo puede simplificarse la expresión del término
de error de la expresión anterior.

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

nulos, existe al menos un punto ξ ∈ ( a,b ) para el que se verifica que:

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 ]

En particular para cada uno de los puntos {ξ j } j =1 se verifica:


M

min g( x ) ≤ g (ξi ) ≤ max g( x ) (j = 1, ..., M) (1)


x∈[ a,b ] x∈[ a,b ]

a) Si los números {α j } j =1 fuesen todos ellos positivos, las desigualdades dadas


M

por la expresión (1) implican que:

( )
α 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

dadas por la expresión (1) implican que:

( )
α 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 ]

Utilizando el mismo razonamiento que en el caso a), se concluye que también


en este caso:
M
∃ξ ∈ [a,b ] / ∑ α g (ξ ) = α g( ξ )
1
j j

c.q.d.

El teorema anterior permite demostrar fácilmente el siguiente teorema:

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 ⎠

y teniendo en cuenta que en este caso (b-a) = M·h, resulta finalmente la


expresión:
Rf (( a,b )) = K·( b − a )·hq −1f ( p ( ξ )

Si la longitud de los subintervalos Ij no fuese la misma, puede denotarse por h a


la mayor de ellas, h = max h j , y acotarse la expresión del error como sigue:
1≤ j ≤ M

⎛ 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

En el caso de que todos los subintervalos tengan la misma longitud la


expresión del error se simplifica a:
(b − a) 2
Rf (( a,b )) = h f "( ξ ) ξ ∈ [ a,b ]
12

Y si los subintervalos Ij tienen longitudes diferentes, denotando por h a la mayor


de las longitudes hj de los subintervalos Ij , el error puede acotarse por:

(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 ⎠

Si las longitudes de todos los subintervalos Ij en los que se subdivide (a, b) es


la misma, la expresión del error puede simplificarse en la forma:

( 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

Obsérvese que la acotación realizada para el error de integración de las


fórmulas compuestas hace intervenir la potencia (q-1)-ésima de la longitud del
mayor de los M subintervalos en que se subdivide el intervalo inicial de
integración. Ello asegura, a diferencia de lo que sucedía con las fórmulas
“simples”, que haciendo tender la longitud de los subintervalos hacia cero el
valor aproximado tenderá hacia el valor exacto de la integral. En otros términos,
con las fórmulas compuestas puede asegurarse la convergencia hacia el valor
exacto.

Ejercicios propuestos

1º) Obtener la fórmula de Milne compuesta así como la expresión de su error y


una cota del mismo.

2º) Obtener la fórmula compuesta que utiliza en cada subintervalo de


integración una fórmula de Newton-Cotes abierta con 4 puntos de soporte.
Obtener también la expresión de su error y una cota del mismo.

3º) a) Utilizar la fórmula del trapecio compuesta para calcular el valor de:

3π / 4

∫ sen ( e xπ ) dx
0

Realícense los cálculos con 3, 6 y 12 subintervalos de igual longitud.

b) Repítase el apartado anterior pero utilizando ahora la fórmula de Simpson


compuesta.

90
Programación y Métodos Numéricos Integración numérica

10. El método de Romberg.


Consideremos la fórmula compuesta del trapecio obtenida en el apartado
anterior, con una subdivisión del intervalo de integración (a, b) en M
subintervalos (zi-1, zi) (i = 1, ..., M) todos ellos de la misma longitud h:

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
π

∫ e sen( x )dx subdividiendo el intervalo [0, π] en m subintervalos y


x
integral
0

asignando a m los valores m = 1, 2, ...., 10. Puede apreciarse en dicha gráfica


la reducción cuadrática del error.

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

Evolución del error de integración numérica obtenido al aplicar la


π

∫ e sen( x )dx
x
fórmula del trapecio compuesta con m subintervalos a
0

En la práctica, por una parte, no se puede operar con “infinitos” subintervalos y,


por otra, el incremento del número de operaciones (en aritmética finita) conlleva
el aumentar de manera indiscriminada el número de intervalos introduzca, a
partir de un determinado valor, errores de redondeo que sean mayores que la
ganancia derivada de la reducción de la longitud de los subintervalos
conduciendo a resultados peores que los obtenidos con una subdivisión menos
fina.

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

compuesta utilizando subdivisiones en m subintervalos de igual longitud y con


valores de m comprendidos entre 1400 y 1500 subintervalos. Los cálculos
fueron realizados con el programa MAPLE 7 utilizando 6 dígitos significativos.

92
Programación y Métodos Numéricos Integración numérica

Error

Evolución del error de integración numérica obtenido al aplicar la


π

∫ e sen( x )dx
x
fórmula del trapecio compuesta con m subintervalos a
0

Es interesante disponer de fórmulas compuestas con un error de mayor orden


para que así incrementos “moderados” del número de subintervalos conlleven
reducciones mayores del error de integración numérica. Algunas de tales
fórmulas pueden obtenerse según se describió en el apartado anterior y
presentan un error de orden superior a 2 (como las de Simpson compuesta,
regla de “3/8” de Newton compuesta, Weddle compuesta, ....). Pero también
necesitan un mayor número de puntos en cada subintervalo y, con ello, un
mayor volumen de operaciones.

Una estrategia alternativa, basada en el método del trapecio, para incrementar


el orden del error en las fórmulas de integración es el método de Romberg en
el que combinando aproximaciones de menor orden pueden obtenerse nuevas
aproximaciones más precisas del valor exacto de la integral que se quiere
calcular. Este método se basa en la denominada fórmula del sumatorio de
Euler-Maclaurin que nos permite expresar el error de integración cometido con
la fórmula del trapecio compuesta de una manera más útil para nuestros
objetivos. Por ello, antes de abordar el método de Romberg propiamente dicho,
pasamos a presentar la fórmula de Euler-Maclaurin en el próximo subapartado.

93
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

10.1 La fórmula del sumatorio de Euler-Maclaurin


Consideremos una función f(ξ) suficientemente regular (en un sentido que
explicitaremos más adelante) en el intervalo [0, 1] y sea p1(ξ) un polinomio de
primer grado cuya primera derivada sea la función unidad es decir de la forma
p1(ξ) = ξ + α1, donde, en principio, α1 puede ser cualquier constante real
arbitrariamente elegida. Con esta notación obviamente se verifica que:

1 1 1
Vexac = ∫ f(ξ)dξ = ∫ 1·f(ξ)dξ = ∫ p1 '(ξ)·f(ξ)dξ
0 0 0

Integrando por partes se obtiene:

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

Este proceso puede generalizarse considerando una sucesión de polinomios


{pk (ξ)}k =1 , definidos a partir del polinomio p1(ξ) y tales que pk '(ξ) = pk −1(ξ) ,

obteniéndose que, para todo entero positivo r, si f(ξ) es de clase Cr((0,1)):

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

La expresión (1) puede simplificarse si la familia de polinomios {pk (ξ)}k =1 se


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

debiendo verificarse que:

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

El polinomio p3(ξ) puede obtenerse de manera similar mediante:

ξ
⎛1 1 ⎞ 1 1
p3 ( ξ ) = ∫ ⎜⎝ 2 (z −
1/ 2
1
2 )2 − ⎟
24 ⎠
dz + C3 = (ξ − 12 )3 −
3! 24
( ξ − 1 2 ) + C3

donde la constante C3 se escoge de forma que:

∫ p (ξ)dξ = 2·C
0
3 3 = 0 ⇒ C3 = 0

por lo que:
1 1
p3 ( ξ ) = (ξ − 12 )3 − (ξ − 12 )
3! 24

En general, podemos admitir que para un determinado valor del entero k se


verifica que:
k
p2k −1(ξ) = ∑ β2k −1,j ( ξ − 12 )
2 j−1

j=1

y que p2k-1(0) = p2k-1(1) = 0. Observemos que esto sucede para k = 2 (polinomio


p3(ξ)) con β3,1 = -1/24 y β3,2 = 1/6. Se tiene definiría entonces el siguiente
polinomio de la familia, p2k(ξ), mediante:

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

Análogamente el siguiente polinomio de la familia, p2k+1(ξ), se determina por:

k +1 β2k,j
p2k +1(ξ) = ∑ ( ξ − 12 )
2 j−1
+ C2k +1
j=1 2j − 1

debiendo verificarse ahora que:

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

que es una función impar en (ξ – ½) (es decir que p2k+1(½+t) = -p2k+1(½-t) ) de


expresión análoga a aquella de la que partimos para p2k-1(ξ). Utilizando el
hecho de que p2k-1(0) = p2k-1(1) = 0 y la relación entre los coeficientes de los
polinomios p2k-1(ξ) y de p2k+1(ξ), fácilmente se verifica además que p2k+1(0) =
p2k+1(1) = 0.

En resumen, bajo las condiciones en que hemos definido la familia de


{p (ξ)}

polinomios j j=1
, se verifica que los polinomios con subíndice par son

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

donde ρ2 j = p2 j (0) = p2 j (1) (j = 1, 2, ...).

1
La expresión (2) proporciona el valor exacto de la integral ∫ f(ξ)dξ .
0
Si siendo m

un entero no negativo se desea calcular la integral de una función f(t) de clase


C2k([m, m+1]) en el intervalo [m, m+1] la expresión (2) puede adaptarse
fácilmente sin más que considerar el cambio de variable t = m + x que
transforma [0,1] en [m, m+1]. Con él se tiene que:

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 ⎟

por lo que, aplicando la expresión anterior a cada una de las integrales en


[m, m+1] y sumando se tiene que:

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

De esta expresión se infiere que, si f es una función de clase C2k([0, N]):

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

La expresión (3) se conoce como fórmula del sumatorio de Euler – Maclaurin25.

Para k = 1 la fórmula anterior se escribe como:

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

La utilidad de la fórmula de Euler-Maclaurin para mejorar la precisión de las


fórmulas de integración radica en que el término que está a la izquierda de la
igualdad se corresponde con la fórmula del trapecio compuesta aplicada al
intervalo [0, N] y con N subintervalos de longitud unidad. Ello hace que sea
fácilmente adaptable a intervalos [a, b] genéricos si estos se subdividen en
subintervalos de la misma longitud y se opera con la fórmula del trapecio
compuesta. En esta idea se basa el método de Romberg que desarrollamos en
el subapartado siguiente.

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

10.2. El método de Romberg.


b−a
En primer lugar observemos que el cambio de variable x = a + t es una
M
aplicación afín que permite transformar el intervalo [0, M] en el intervalo [a, b]
de forma tal que al valor de t correspondiente al entero 0 < i < M le corresponde
el punto zi = a + i·h siendo h = (b-a)/M.

Con esta notación, siendo k un entero no negativo y f una función de clase


C2k((a, b)), el uso del cambio de variable x = a + t·h y de la fórmula de Euler-
Maclaurin (3) nos permite escribir que:

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

Los primeros términos de este desarrollo pueden escribirse en la forma:

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)] − ....

El primer sumando a la derecha de la igualdad puede interpretarse como el


valor aproximado que proporciona la fórmula del trapecio compuesta cuando se
aplica al cálculo la integral definida de f(x) en el intervalo (a, b) subdividiéndolo
en M subintervalos de idéntica longitud “h”. Denotando por V0,M a dicho valor
aproximado, se tiene que:

b
h2 h4
Vexac = ∫ f(x)dx = V0,M − [ f '(b) − f '(a)] + [ f '''(b) − f '''(a)] − ... (7)
a
12 720

Si el método del trapecio se hubiera aplicado con el doble se subintervalos,


todos ellos de la misma longitud “h/2”, el mismo razonamiento nos conduciría a
que:

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)

Si la expresión (8) se multiplica por 4 se tiene que:

h2 h4
4Vexac = 4V0,2M −
12
[ f '(b) − f '(a)] +
2880
[ f '''(b) − f '''(a)] − ... (9)

de donde, restando (7) de (9) se tiene que:

⎛ 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

mediante la fórmula del trapecio compuesta primero con M subintervalos


iguales (de longitud h suficientemente pequeña y obteniendo V0,M) y
posteriormente con 2M subintervalos iguales (de longitud h/2 y obteniendo
V0,2M) puede refinarse la aproximación tomando como valor aproximado de la
b
4V − V0,M
integral el valor dado por la expresión: ∫ f(x)dx ≈ V1,2M 0,2M ya que de
a
3
esta forma se comete un error del orden de O(h4) en lugar de O(h2). Esta forma
de proceder es la que se conoce habitualmente con el nombre de método de
Romberg.

Para aligerar la notación denotaremos en cuanto sigue a las aproximaciones


obtenidas mediante el método del trapecio compuesto con (2j·M) subintervalos
como V0,j y a las obtenidas mediante la fórmula de Romberg partiendo de V0,j-1
y V0,j por V1,j, es decir: V1,j = (4V0,j – V0,j-1)/3 = V0,j – (V0,j – V0,j-1)/3. Con esta
notación V0,0 se corresponde con el valor que anteriormente hemos denotado
V0,M. Análogamente V0,1 es el valor hasta aquí denotado por V0,2M y el valor V1,1
(antes denotado V1,2M) se obtiene mediante:
V1,1 = (4·V0,1 – V0,0)/3 = V0,1 + (V0,1 – V0,0)/3.

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...

La tabla siguiente recoge, en su segunda columna, los valores aproximados


con 10 dígitos, de la integral obtenida al aplicar la fórmula del trapecio al
cálculo de esta integral dividiendo [0, 2] en n= 2j subintervalos de la misma
longitud y asignando a n los valores 1, 2, 4, 8, 16, 32, 64, 128, 256 y 512.
Denotando por V0,j a dichos valores, la tercera columna recoge los valores a
los que conduce la aplicación de la fórmula de Romberg dados por V1,j
= ( 13 ) (4·Vt,n − Vt,n / 2 ) para j = 1, 2, 3, 4, 5, 6, 7, 8 y 9.
n V0,j V1,j .
1 0.6819730700
2 0.1306187888 -0.0531659716
4 0.0653093944 0.0435395963
8 0.0524215628 0.0481256189
16 0.0494006897 0.0483937320
32 0.0486578328 0.0484102138
64 0.0484728879 0.0484112396
128 0.0484266997 0.0484113036
256 0.0484151560 0.0484113081
512 0.0484122697 0.0484113077

En ella puede observarse cómo con la corrección propuesta por Romberg se


alcanza una precisión en los 2 primeros decimales para n = 4 (mientras que la
fórmula del trapecio sin esta corrección exigiría subdividir el intervalo [0, 2] en
16 subintervalos para poder obtener el segundo decimal correcto). La precisión
en los tres primeros decimales se alcanza usando el método de Romberg con 8
subintervalos (frente a los 32 necesarios si no se usa esta fórmula). Los 5
primeros decimales exigen 32 subintervalos si se utiliza la fórmula de Romberg
o 256 si no se utiliza.

101
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

El método de Romberg puede generalizarse para, a partir de las


aproximaciones:

4V0,1 − V0,0 4V0,2 − V0,1


V1,1 = y V1,2 = (j=1, 2, ....)
3 3

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:

15Vexac = 16V1,2 − V1,1 + O(h6 )

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

aproximándose, para funciones de clase C6([a, b]), la sucesión de valores


{V }

2,j j= 2 hacia el valor exacto con una velocidad de convergencia O(h6).

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

n V0,j V1,j V2,j .


1 0.6819730700
2 0.1306187888 -0.0531659716
4 0.0653093944 0.0435395963 0.0499866341
8 0.0524215628 0.0481256189 0.0484313537
16 0.0494006897 0.0483937320 0.0484116062
32 0.0486578328 0.0484102138 0.0484113126
64 0.0484728879 0.0484112396 0.0484113080
128 0.0484266997 0.0484113036 0.0484113078
256 0.0484151560 0.0484113081 0.0484113083
512 0.0484122697 0.0484113077 0.0484113076

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.

De forma más general, el método de Romberg calcula la tabla:

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

con (2jM) subintervalos y los valores Vk,j de la columna k-ésima se obtienen a


partir de los valores de la columna anterior mediante la fórmula:

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

Los razonamientos previamente realizados muestran que, si la función f(x) es


de clase C2k([a, b]), los valores de la columna k-ésima convergen hacia el valor
exacto de la integral con una velocidad del orden O(h2(k+1)).

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

valores, convergen hacia el valor exacto de la solución con una velocidad de


convergencia del mismo orden que las columnas anteriores. Ello implica que en
dichos casos deben considerarse particiones más finas del intervalo de
integración incrementándose así el coste computacional (y dando lugar a que
los errores de redondeo puedan tener presencia significativa en los resultados).
Este hecho se pone de manifiesto en el ejemplo siguiente.

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

(del orden de α / (eα-1)). En resumen, para valores suficientemente elevados


de a la función pasa de valores casi nulos a valores próximos a 1 en una
estrecha franja del intervalo [0, 1] (llamada en ocasiones “capa límite”). Las
figuras siguientes recogen el grafo de las funciones f(x) correspondientes a los
valores α = 1, α = 50 y α = 300 e ilustran este hecho.

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

Puede observarse que en todas las columnas, al reducir el tamaño de los


subintervalos a la mitad, el error se va reduciendo a, aproximadamente, la
mitad. Esta situación cambia para columnas más a la derecha o para filas a
partir de la correspondiente a j = 7; en otros términos, el método de Romberg
comienza a ser eficaz para un valor suficientemente elevado del número de
subintervalos (a partir de 256) cuando se comienza a aproximar con suficiente
precisión la capa límite.

Obsérvese que en el ejemplo anterior, a la vista de la gráfica de la función,


hubiera bastado con refinar la partición en torno a la capa límite cercana a la
abscisa x = 1, no obteniéndose mejora sustancial de los valores aproximados
con las subdivisiones cercanas a la abscisa x = 0. Ello muestra que en la
práctica es interesante poder disponer de detectores del error en cada
subintervalo para refinar sólo aquellos en los que la precisión obtenida no sea
admisible. En la “nota 5ª” volveremos sobre este aspecto.

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 ⎠

y se asume que f(x) es de clase C∞([a,b]), y que |b-a| es igual a un número


entero de ciclos (y por tanto se verificará que f(a) = f(b) y f(i(a) = f(i(b) ∀i>1) el
orden del error puede hacerse tan elevado como se quiera al ser nulo, para
k
cualquier valor de k que se escoja, el sumatorio ∑ρ
j=1
2k ·h2 j ·⎡⎣ f (2 j−1(b) − f (2 j−1(a)⎤⎦ .

En otros términos, la propia fórmula del trapecio compuesta es, en esta


situación, de orden tan elevado como se desee. Este hecho se ilustra con el
siguiente ejemplo.

106
Programación y Métodos Numéricos Integración numérica

Ejemplo:

La tabla siguiente recoge, usando 2j subintervalos m, las aproximaciones del



valor de ∫ ( 4 + cos( x )* (1 + sen( 2 x )) dx , cuyo valor exacto es 8π.
0

j V0, j V1, j V2, j V3, j V4, j

0 10π
22
1 8π π
3
362
2 8π 8π π
45
22678
3 8π 8π 8π π
2835
5783402
4 8π 8π 8π 8π π
722925

Puede observarse que los valores exactos ya son obtenidos al aplicar la


fórmula del trapecio con 2 subintervalos, no produciéndose por ello mejora en
la precisión al utilizar el algoritmo de Romberg. La figura de la función (y del
proceso de integración usando la fórmula del trapecio) puede ilustrar el motivo
de la exactitud de los valores obtenidos con la fórmula numérica.

Así cuando se opera con un único intervalo (j = 1) el área se sobre-estima no


compensándose el área calculada en exceso (área del rectángulo dibujado que
está sobre el grafo de la curva) con el área no computada (área bajo el grafo de
la curva y sobre el lado superior del rectángulo).

107
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

Pero cuando se calcula con un número mayor de subintervalos el área


calculada en exceso es compensada con el área comprendida entre el grafo y
los lados superiores de los trapecios.

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

los M subintervalos de idéntica longitud [zi-1, zi] (i = 1, ..., M) con zj = a + j·h (j =


0, .., M) y siendo h = (b-a)/M. Dicha aproximación está dada por:

⎡1 M−1 ⎤
V0,0 = h·⎢ (f(a) + f(b)) + ∑ f(zi )⎥
⎣2 j=1 ⎦

Si ahora se duplica el número de subintervalos, dividiendo cada uno de ellos en


dos y se vuelve a aplicar la fórmula del trapecio compuesta se tendrá que:

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:

4V0,1 − V0,0 h ⎡ M−1 M−1


⎛ z + zi+1 ⎞ ⎤
V1,1 = = ·⎢ f(a) + f(b) + 2·∑ f(zi ) + 4∑ f ⎜ i
3 6⎣ i=1 i=0 ⎝ 2 ⎟⎠ ⎥⎦

108
Programación y Métodos Numéricos Integración numérica

que se corresponde con la aproximación que se habría obtenido al aplicar la


fórmula de Simpson compuesta con los M intervalos. El mismo razonamiento
muestra que en general V1,j coincide con el valor obtenido al aplicar la fórmula
de Simpson compuesta con (2(j-1)M) subintervalos.

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)

o, equivalentemente: PM = 2V0,1 – V0,0.

Utilizando las relaciones (7) y (8) es posible escribir entonces, si f(x) es


suficientemente regular en [a, b], que:

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

donde las primeras constantes tienen los valores:

f '( b ) − f '( a ) f '''( a ) − f '''( b )


λ2 = , λ4 = , ....
48 11520

Ello permite desarrollar una alternativa al método de Romberg que se presentó


anteriormente, conocida con el nombre de método de Romberg del punto
medio, y que es similar a aquella pero inicializando la tabla con una primera
columna en la que figuran los valores P0,j correspondientes al cálculo de la
integral mediante la fórmula del punto medio compuesta con (2jM)
subintervalos. Esta alternativa tiene especial interés cuando se integra sobre
intervalos abiertos (a, b) no estando definida la función f(x) en alguno de los
extremos de dicho intervalo.

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

[1]. BURDEN, R. L. y FAIRES, J. D. (1.998). Análisis numérico. (6ª edición).


Ed. International Thomson editores.

[2]. CROUZEIX, M. y MIGNOT, A. L. (1.984). Analyse numérique des


équations différentielles. Ed. Masson.

[3]. DAVIS, P.J. y RABINOWITZ, P. (1975) Numerical Integration. Ed.


Academic Press.

[4]. KINCAID, D. y CHENEY, W. (1.994). Análisis numérico. Las


matemáticas del cálculo científico. Ed. Addison-Wesley
Iberoamericana.

[5]. HENRICI, P. (1982) Essentials of numerical analysis with pocket


calculator demonstrations. Ed. John Wiley & Sons.

[6]. MICHAVILA, F. y CONDE, C. (1.988). Métodos de Aproximación. Ed.


Depto. de Mat. Aplic. Y Mét. Informáticos. – Univ. Politécnica de Madrid.

[7]. SHAMPINE, L.F., ALLEN, R.C. y PRUESS, S (1997). Fundamentals of


numerical computing. Ed. John Wiley & Sons.

[8]. STOER, J. y BULIRSCH, R. (1.980). Introduction to numerical analysis.


Ed. Springer Verlag.

[9]. STROUD, A.H. y SECREST, D. (1966). Gaussian Quadrature Formulas.


Ed. Prentice Hall.

[10]. VIAÑO, J.M. y BURGUERA, M. (2000) Lecciones de métodos


numéricos, 3: Interpolación. Ed. Tórculo edicions.

111
Integración numérica. Carlos Conde, Arturo Hidalgo, Alfredo López

112
Universidad Politécnica de Madrid

Escuela Técnica Superior de Ingenieros de Minas

Departamento de Matemática Aplicada y Métodos Informáticos

x0

r1 x1

x2= x* d1
*

d1 r0
f(x)=cte.

Resolución de sistemas lineales de ecuaciones:

Método del gradiente conjugado

Ultano Kindelán
Índice

1. Introducción 6

2. Notación 7

3. Funciones cuadráticas 7

4. El método del gradiente 11

5. El método del gradiente conjugado 16

5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.2. Determinación de la dirección de descenso . . . . . . . . . . . . . . . . . . 16

5.3. Propiedades del método del gradiente conjugado . . . . . . . . . . . . . . 20

5.4. Algoritmo del método del gradiente conjugado . . . . . . . . . . . . . . . 21

A. Demostración de la conjugación de las direcciones de descenso 25

B. Condicionamiento de un sistema 27
Índice de Figuras

1. Representación geométrica de un sistema lineal de dos ecuaciones. La


solución es el punto de intersección de ambas rectas. . . . . . . . . . . . . 8

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. . . . . . . . . . . . . . 9

3. Curvas de nivel de la forma cuadrática (5). A cada elipse le corresponde


un valor constante de f . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4. Gradiente de la forma cuadrática (5). Para cada x el gradiente apunta


en la dirección de máximo crecimiento de f y es ortogonal a la curva
de nivel que pasa por x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

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

6. El método del gradiente: (a) Se comienza en el punto (3, −1)t y se rea-


liza 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) intersec-
ció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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

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. Algoritmo que resuelve el sistema Ax = b mediante el método del gra-


diente. Versión preliminar. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2. Algoritmo que resuelve el sistema Ax = b mediante el método del gra-


diente. Versión más eficiente con “memoria”. . . . . . . . . . . . . . . . . 15

3. Algoritmo que resuelve el sistema Ax = b mediante el método del gra-


diente. Versión más eficiente sin “memoria”. . . . . . . . . . . . . . . . . . 16

4. Estructura general de los algoritmos de los métodos de descenso. . . . . . 16

5. Algoritmo que resuelve el sistema Ax = b mediante el método del gra-


diente gradiente conjugado. Versión provisional. . . . . . . . . . . . . . . . 22

6. Algoritmo que resuelve el sistema Ax = b mediante el método del gra-


diente gradiente conjugado. Versión final. . . . . . . . . . . . . . . . . . . 23
1. Introducción 6

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.

El método del gradiente conjugado es un caso particular de método de descenso. Los


métodos de descenso están especialmente indicados para la resolución de sistemas huecos
(sistemas lineales cuya matriz de coeficientes tiene un número importante de ceros). Si A
es una matriz llena suele ser más aconsejable factorizar la matriz A y después resolver el
sistema mediante la técnica de remonte (método directo). El tiempo consumido factori-
zando la matriz A es más o menos el mismo que el necesario para resolver el sistema por
un método iterativo‡ ; y una vez que la matriz de coeficientes está factorizada, el sistema
se puede resolver rápidamente para múltiples valores de b. Por el contrario si la matriz
A es una matriz hueca, en su factorización triangular aparecerán muchos elementos nu-
los, con el consiguiente desperdicio de operaciones y memoria. Los métodos de descenso,
y en general los métodos iterativos, consiguen ahorrar memoria y operaciones operando
únicamente sobre los elementos no nulos.

El orden que se ha seguido para la elaboración de estos apuntes es el siguiente: en el


apartado 2 se hace un breve repaso de la notación que se utilizará en el resto de las
secciones. En el apartado 3 se repasan algunas ideas básicas de optimización de funciones
de varias variables, con el objetivo de mostrar la equivalencia entre resolver el sistema
Ax = b y hallar el mı́nimo de una función cuadrática cuando A es una matriz simétrica y
definida positiva. En el apartado 4 se explica el método del gradiente. El interés de estudiar
el método del gradiente radica en su utilidad pedagógica para introducir el método del
gradiente conjugado y no en su eficacia para resolver sistemas lineales puesto que no puede
competir en velocidad de convergencia con este último. Finalmente en el apartado 5 se
explica el método del gradiente conjugado demostrando las propiedades más importantes
del mismo, exceptuando la demostración de la conjugación de las direcciones de descenso
que por su longitud se incluye separadamente en un apéndice.

Estos apuntes están escritos con la idea de utilizarlos en la asignatura de Programación


y Métodos Numéricos del segundo curso de la titulación de Ingeniero de Minas de la
Universidad Politécnica de Madrid. Presuponen, por tanto, unos conocimientos básicos de
Álgebra lineal y Análisis en varias variables.

Cuando se dice que el método del gradiente conjugado es el método más utilizado para resolver grandes
sistemas, se entiende que nos estamos refiriendo a él directamente o a algunas de sus variantes como, por
ejemplo, el método GMRES.

Existen variantes del método para resolver sistemas cuya matriz no sea simétrica ni definida positiva.

En algunos casos, consultar [6], dependiendo de cómo sea la matriz del sistema, el método del gradiente
conjugado y sobre todo alguna de sus variantes, pueden ser más rápidos que los métodos directos incluso
cuando la matriz del sistema es una matriz llena.
2. Notación 7

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

En ocasiones se utilizarán superı́ndices para diferenciar unos vectores de otros:

(x1 )t = (x11 , . . . , x1n ), (x2 )t = (x21 , . . . , x2n ) ... (xp )t = (xp1 , . . . , xpn ).

El producto escalar de dos vectores de lRn se representará indistintamente como xt y o x·y.


Por lo tanto:
Xn
t t
x y =y x=x·y =y·x= xi yi .
i=1

Por último se recuerda que una matriz de dimensión n que verifique

xt Ax > 0, ∀x ∈ lRn (x 6= 0). (2)

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

En lo sucesivo se denominará función cuadrática a toda función escalar definida sobre


un espacio vectorial de dimensión n de la forma:
1 t
f (x) = xt Ax − b x + c, (3)
2
en donde A es una matriz cuadrada, x y b son vectores y c es una constante escalar. Se
demostrará posteriormente que si A es una matriz simétrica definida positiva, f alcanza
un mı́nimo en la solución de Ax = b.

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

La representación geométrica del sistema Ax = b se muestra en la figura 1. En general la


solución x se encuentra en el punto de intersección de n hiperplanos, cada uno de ellos de
3. Funciones cuadráticas 8

10

6
x2

4 –2x1+4x2=8

2
3x1–2x2=4

–2 0 2 4 6 8

x1
–2

–4

Figura 1: Representación geométrica de un sistema lineal de dos ecuaciones. La solución


es el punto de intersección de ambas rectas.

dimensión n − 1. Para este problema, la solución es x = (4, 4)t . La correspondiente forma


cuadrática es
3
f (x) = (x1 )2 + 2(x2 )2 − 2x1 x2 − 4x1 − 8x2 (5)
2
y aparece representada en la figura 2. Un dibujo con las curvas de nivel de f aparece en
la figura 3. Debido a que la matriz A es definida positiva, la superficie definida por f en
lR2 tiene la forma de un paraboloide.

El gradiente de una función de n variables se define como:


 ∂ 
∂x1 f (x)
 ∂ f (x) 
0  ∂x 
f (x) = ∇f (x) =  2 . . (6)
 .. 

∂xn f (x)

El gradiente es un campo vectorial que tiene la importante propiedad de que en un punto


dado, x, el vector de campo correspondiente apunta en la dirección del máximo crecimiento
de f (obsérvese la figura 4). Derivando parcialmente en (3) se obtiene:
1 1
∇f (x) = At x + Ax − b. (7)
2 2
Si A es simétrica, la ecuación (7) se simplifica:

∇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

Figura 4: Gradiente de la forma cuadrática (5). Para cada x el gradiente apunta en la


dirección de máximo crecimiento de f y es ortogonal a la curva de nivel que pasa por x

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∗ .

Todo lo anterior implica que la solución de Ax = b se puede calcular buscando el


punto x∗ que minimice f (x).

El hecho de que en lR2 f sea un paraboloide permite interpretar geométricamente el que


A sea una matriz definida positiva: la función f alcanza un mı́nimo absoluto y a partir del
punto en el que alcanza dicho mı́nimo la función crece en todas las direcciones. Si A no es
definida positiva, se pueden dar los siguientes casos:

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.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

(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.

4. El método del gradiente

El método del gradiente es un método de descenso en el que se comienza a iterar en


un punto arbitrario x0 y se continúa siguiendo la lı́nea de máximo descenso del parabo-
loide obteniéndose una sucesión de puntos x1 , x2 , . . . hasta que se obtiene un punto lo
suficientemente cercano a la solución x∗ .

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):

f (x0 + ρ0 r0 ) = mı́n f (x0 + ρr0 ). (10)


ρ∈lR

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)

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

–0.2 –0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 x1


x0
–20 rho –2

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:

x0 = vector inicial arbitrario


ri = b − Axi
(ri )t ri
ρi = i t i
(r ) Ar

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.

2. La norma del vector diferencia entre los resultados en la iteración i + 1 y la iteración


i, ||xi+1 − xi ||. Si la norma de este vector diferencia se hace cada vez más pequeña
entonces la sucesión de vectores {xi } tiene un lı́mite. En el caso de que se demuestre
que el esquema iterativo converge hacia la solución del sistema (lo cual sucede en el
4. El método del gradiente 14

método del gradiente si la matriz A es definida positiva), entonces el lı́mite anterior


coincide con la solución del sistema. Por tanto, al igual que en el caso anterior, cuanto
más pequeño sea ||xi+1 − xi || más cerca se estará de la solución.

A estas dos formas de estimar el error les denominaremos criterios de parada. En la


práctica, al aplicar estos dos criterios de parada, no se exige llegar a un valor de i que
haga cero alguna de las dos normas anteriores (valor de i con el que se obtendrı́a la solución
exacta) pues, en la mayorı́a de los casos, es imposible en un número finito de operaciones.
Lo que se hace es exigir que se llegue hasta un valor de i que asegure que la norma
correspondiente esté por debajo de una cierto valor impuesto por el usuario del algoritmo
y que en lo sucesivo se designará por ².

A partir del esquema iterativo anterior se puede construir un algoritmo para resolver un
sistema lineal de ecuaciones por el método del gradiente:

Algoritmo 1 Algoritmo que resuelve el sistema Ax = b mediante el método del gradiente.


Versión preliminar.

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

Observación 4.1. En el algoritmo anterior y en todos los restantes se va a utilizar como


estimador del error la norma del residuo. Tiene la ventaja respecto a ||xi+1 −xi || que no hay
que efectuar ninguna resta puesto que ri ya está calculado y además no obliga a almacenar
más vectores de la sucesión que el último calculado. El valor de ||ri || se almacena en tol,
obsérvese que inicialmente se le asigna a tol un valor artificialmente grande (mayor que ²)
para que el algoritmo realice al menos una iteración.

Observación 4.2. El dato maxiter representa el número máximo de iteraciones que el


algoritmo puede realizar independientemente de que haya alcanzado la solución o no.

Si analizamos el coste en operaciones del algoritmo 1, llegamos a lo siguiente:


Operación vectorial No de operaciones elementales Operación más costosa
ri ← b − Axi 2n2 Axi
i t ri
ρi ← (r(ri ))t Ar i 2n2 + 3n − 1 Ari
x i+1 ← x + ρi ri
i 2n ρi ri
tol ← ||ri || 2n ||ri ||
En la tabla anterior se ha especificado el número de operaciones elementales∗ que hay
que efectuar para realizar cada una de las cuatro operaciones vectoriales que componen

Se entiende por operación elemental una suma(resta) o una multiplicación (división) entre escalares.
4. El método del gradiente 15

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.

Teniendo en cuenta lo anterior se puede introducir una ligera modificación en el algoritmo


1 para conseguir un algoritmo del gradiente más eficiente:

Algoritmo 2 Algoritmo que resuelve el sistema Ax = b mediante el método del gradiente.


Versión más eficiente con “memoria”.
Leer A, b, x0 , maxiter, ²
i ← 0, r0 ← b − Ax0 , tol ← ||r0 ||
mientras i < maxiter y tol > ² hacer
b ← Arii t i
ρi ← (r(ri))trb
xi+1 ← xi + ρi ri
ri+1 ← ri − ρi b
tol ← ||ri+1 ||
i←i+1
fin mientras

Se ha conseguido que en cada iteración se realicen 2n2 + 9n − 1 operaciones elementales en


lugar de las 4n2 + 7n − 1 que necesitaba el algoritmo preliminar. Por lo tanto el método
del gradiente realiza aproximadamente, si n es grande, 2n2 operaciones elementales en
cada iteración y será competitivo con los métodos directos si se necesitan menos de n/6†
iteraciones para alcanzar la solución. Al final del siguiente apartado se analizará cuántas
iteraciones son necesarias para alcanzar la convergencia (velocidad de convergencia).

En el algoritmo anterior se han almacenado todos los vectores de la sucesión. En la práctica


es suficiente con almacenar el último (algoritmo 3); que coincidirá con la solución del
sistema buscada.

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

Algoritmo 3 Algoritmo que resuelve el sistema Ax = b mediante el método del gradiente.


Versión más eficiente sin “memoria”.
Leer A, b, x, maxiter, ²
i ← 0, r ← b − Ax, tol ← ||r||
mientras i < maxiter y tol > ² hacer
b ← Art
ρ ← (r) r
(r)t b
x ← x + ρr
r ← r − ρb
tol ← ||r||
i←i+1
fin mientras

5. El método del gradiente conjugado

5.1. Introducción

En general los métodos de descenso responden al siguiente algoritmo (generalización del


método del gradiente):

Algoritmo 4 Estructura general de los algoritmos de los métodos de descenso.


Leer A, b, x0 , maxiter, ²
i ← 0, tol ← 2²
mientras i < maxiter y tol > ² hacer
i
Elegir la dirección de descenso a seguir → d
Determinar el parámetro de descenso → ρi
i
xi+1 ← xi + ρi d
tol ←∼ ||ei+1 ||
i←i+1
fin mientras

Ya se ha explicado cómo se calcula el parámetro de descenso (ver la ecuación (13)). Se


debe tener en cuenta que la dirección de descenso ya no es necesariamente igual a ri , por
lo que en el caso general:
i
(ri )t d
ρi = i i
. (16)
(d )t Ad

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.

5.2. Determinación de la dirección de descenso

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

A continuación vamos a generalizar el método anterior a dimensión n. En este caso la


dirección de descenso en la iteración i será una combinación lineal del residuo en la iteración
i y de la dirección de descenso en la iteración i − 1:
i i−1
d = ri + αi−1 d . (19)

con
i−1 t
(d ) Ari
αi−1 = − i−1 t i−1
(d ) Ad
Por lo tanto el esquema iterativo será:

Esquema iterativo para resolver un sistema de n ecuaciones con n 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
..
.
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.

5.3. Propiedades del método del gradiente conjugado

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)

Demostración. Consultar el apéndice A.


t
Proposición 5.3. Los gradientes de f (f (x) = 12 xt Ax − b x) en los puntos generados
en el método del gradiente conjugado son ortogonales a las direcciones de descenso de las
iteraciones anteriores:
j
ri · d = 0, 0 ≤ j < i.

Demostración. Para realizar la demostración se estudiarán por separado los casos j =


i − 1 y j < i − 1:

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

prop. 5.2 parte 1.


j i j i−1 i−1 z}|{ j i−1 j j+1 z}|{
d · r = d · (r − ρi−1 Ad ) = d ·r = ... = d · r = 0. ¤

Proposición 5.4. Si se utiliza aritmética exacta al realizar las operaciones, el método


del gradiente conjugado alcanza la solución exacta del sistema Ax = b en no más de n
iteraciones:∗
∃k ≤ n/rk = 0.

Demostración. Supóngase que se han realizado n − 1 iteraciones sin alcanzar la solución


t
de Ax = b, o, lo que es lo mismo, sin hallar el mı́nimo de la función f (x) = 12 xt Ax − b x.
Si a continuación se realiza la iteración n se obtiene:
n−1
xn = xn−1 + ρn d .
0 n−1
Por la proposición 5.3 se tiene que rn es ortogonal a Vn = hd , . . . , d i. Por otro lado
0 n−1
al ser los vectores {d , . . . , d } linealmente independientes (por la proposición 5.2 son
vectores conjugados dos a dos respecto a A) la dimensión de Vn es n y por lo tanto
Vn = lRn . Dado que el único vector de lRn que es ortogonal a todos los de lRn es el vector
nulo, se deduce que rn = 0. ¤

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. ¤

5.4. Algoritmo del método del gradiente conjugado

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

Algoritmo 5 Algoritmo que resuelve el sistema Ax = b mediante el método del gradiente


gradiente conjugado. Versión provisional.

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.

1. Modificación del término


i
(ri+1 )t Ad
αi = − i i
. (21)
(d )t Ad
i i
Despejando Ad de ri+1 = ri − ρi Ad se obtiene:
i 1 i
Ad = (r − ri+1 ),
ρi
i
e introduciendo Ad en (21)
1 i+1 )t (r i − r i+1 )
ρi (r ri+1 · ri − ri+1 · ri+1 ri+1 · ri+1
αi = − i t i
=− i i
= .
1 i+1 ) d · ri − d · ri+1 ri · ri
ρi (d ) (r − r

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)

3. Modificación del término


i
(ri )t d
ρi = i i
. (24)
(d )t Ad
5. El método del gradiente conjugado 23

De nuevo utilizando la proposición 5.6:


i
(ri )t d (ri )t ri
ρi = i i
= i i
. (25)
(d )t Ad (d )t Ad

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).

Algoritmo 6 Algoritmo que resuelve el sistema Ax = b mediante el método del gradiente


gradiente conjugado. Versión final.

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:

1. Velocidad de convergencia en el método del gradiente,


µ ¶
cond(A) 1
k∼ ln .
4 α

2. Velocidad de convergencia en el método del gradiente conjugado,


p µ ¶
cond(A) 2
k∼ ln .
2 α
5. El método del gradiente conjugado 24

En donde α es el valor en que se reduce el error inicial, cond(A) es el condicionamiento


de la matriz A (ver el apéndice B) y k es el número de iteraciones necesarias para que el
error se reduzca α veces respecto al error inicial.

Observación 5.1. Como ya se ha visto anteriormente, si la matriz no es hueca, el núme-


ro de operaciones elementales a realizar en cada iteración es aproximadamente 2n2 . En
consecuencia el número total de operaciones necesarias para¡ conseguir
¢p reducir el error
inicial α veces en el método del gradiente conjugado es n2 ln α2 cond(A) y el método
podrá competir con el método de Cholesky cuando

n2
cond(A) ≤ ¡ ¡ 2 ¢¢2 .
9 ln α

Observación 5.2. Si la matriz es hueca el número de operaciones a realizar en cada


iteración del orden de 2nc en donde c es un coeficiente que indica el número medio de
elementos no nulos en cada fila y que generalmente es mucho más pequeño que n. En este
caso el número
¡ ¢p total de operaciones necesarias para conseguir reducir el error inicial α veces

será nc ln α2 cond(A). Si, por ejemplo, c = n se tendrı́a un número de operaciones
¡ ¢ p
igual a n3/2 ln α2 cond(A) y en este caso el gradiente conjugado podrá competir con
Cholesky siempre que
n3
cond(A) ≤ ¡ ¡ ¢¢2 .
9 ln α2
A. Demostración de la conjugación de las direcciones de descenso 25

A. Demostración de la conjugación de las direcciones de


descenso

Se recuerda la proposición 5.2:

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)

En donde A es la matriz de coeficientes (simétrica y definida positiva) del sistema Ax = b


de n ecuaciones con n incógnitas.

Demostración. Se realizará la demostración por inducción:

1. La proposición es cierta para i = 1 (proposición 5.1).

2. Se supone que la proposición es cierta para i − 1:


i−1 t j
(d ) Ad = 0, 0 ≤ j < i − 1 (27)

3. Se demuestra (26) utilizando (27):

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 ,

y se habrá concluido la demostración si se demuestra que ri es ortogonal a Vj+2 .


(para 0 ≤ j < i − 1). Para ello bastará con demostrar que
j
ri · d = 0 0 ≤ j < i.∗ (30)

También se demostrará por inducción:


1) La proposición es cierta para i = 1:
0
r1 · d = r1 · r0 = 0.

2) Se supone cierto que


j
ri−1 · d = 0, 0 ≤ j < i − 1. (31)

3) Se demostrará (30) utilizando (31):


j j j i−1
ri · d = ri−1 · d − ρi−1 (d )t Ad ,

para demostrar que esta resta es cero distinguiremos dos casos:


j =i−1
i−1
i−1 i−1 i−1 t i−1 i−1 i−1 ri−1 · d i−1 t i−1
r ·d −ρi−1 (d ) Ad =r ·d − i−1 i−1
(d ) Ad = 0.
(d )t Ad

j <i−1
j j i−1
r|i−1{z· d} − ρi−1 (d )t Ad = 0,
| {z }
0 0

en donde el primer sumando es nulo por (31) y el segundo por (27).


Por lo tanto ha quedado demostrado que ri es ortogonal a Vj+2 y, en conse-
j
cuencia, (ri )t Ad = 0, para 1 ≤ j < i − 1. ¤


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

Al hablar de condicionamiento de un sistema de ecuaciones nos referimos a las estabilidad


que presenta la solución frente a pequeñas perturbaciones tanto en la matriz de coeficientes
como en el vector de términos independientes. Veamos el siguiente ejemplo introductorio:

La solución del 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

es x = y = z = t = 1. Veamos lo que sucede si se perturba el vector de segundos miembros:

  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

La solución es ahora x0 = 351,45; y 0 = −11; z 0 = 1,05; t0 = 1,2.

Si en vez de perturbar el vector de segundos miembros perturbamos la matriz de coefi-


cientes:

   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

llegaremos a la solución: x00 = −3,425; y 00 = 1,150; z 00 = 1,053; t00 = 0,957

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.

El llamado número de condición constituye una herramienta eficaz para predecir el


comportamiento de un sistema de ecuaciones lineales frente a perturbaciones de la matriz
de coeficientes y/o del vector de segundos miembros. Para definir este número, considere-
mos el sistema Ax = b. Es obvio que si perturbamos el segundo miembro una cantidad δb,
la solución del nuevo sistema será x + δx, esto es:

¾
Ax = b
⇒ Aδx = δb ⇒ δx = A−1 δb
A (x + δx) = b + δb

Considerando una norma matricial subordinada a una norma vectorial cualquiera:


B. Condicionamiento de un sistema 28

° ° ¾ ° °
°b° ≤ kAk kxk kδxk ¡ ° −1 °¢ °δb°
° °° ° ⇒ ≤ kAk °A ° ° °
kδxk = °A−1 ° °δb° kxk °b°

De forma análoga, si perturbamos en δA la matriz del sistema, se llega a la expresión:

kδxk ¡ ° °¢ kδAk
≤ kAk °A−1 °
kx + δxk kAk

Es decir, tanto si perturbamos la matriz del sistema como si perturbamos el vector de


segundos miembros, el error relativo de la solución está
° acotado
° en función de los errores
en los coeficientes multiplicados por el número kAk °A−1 °.

Ası́ pues, se denomina condicionamiento


° ° (o número de condición) del sistema Ax = b,
cond (A), al número kAk °A−1 °, donde k·k es la norma elegida en el espacio de las matrices
cuadradas de orden n e invertibles.

De la definición anterior se desprenden de forma inmediata las siguientes propiedades:

1. cond (A) ≥ 1
¡ ¢
2. cond A−1 = cond (A)

3. cond (λA) = cond (A) , ∀λ 6= 0

Además, en el caso de usar k·k2 , pueden demostrarse las dos propiedades siguientes:

1. Si la matriz A es simétrica y denotamos por λM a su valor propio de mayor módulo


y por λm a su valor propio de menor módulo, se cumple:

|λM |
cond2 (A) =
|λm |

2. Si la matriz A no es simétrica y denotamos por λM al valor propio de mayor


módulo de AT A y por λm el valor propio de menor módulo de AT A, se cumple:

µ ¶1/2
|λM |
cond2 (A) =
|λm |

Las técnicas de precondicionamiento permiten mejorar el número de condición de un sis-


tema. La idea es considerar una matriz invertible M y resolver el sistema M −1 Ax = M −1 b
en lugar de Ax = b. Esta matriz M recibe el nombre de matriz de precondicinamiento.
Naturalmente, para que este procedimiento sea efectivo se tiene que dar:

¡ ¢
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

y sólo añade 2n operaciones (divisiones) al proceso de cálculo.

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

resolviéndose a continuación el sistema: P y = c y posteriormente el M x = y. Este método


conserva las propiedades de la matriz A.

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.

[5] G. H. Golub y C. F. Van Loan. Matrix computations (III Ed.), 1996.

[6] G. H. Golub y J. M. Ortega. Scientific computing: an introduction with parallel


computing. Academic Press Inc., 1993.

[7] P.Lascaux y R. Théodor. Analyse numérique appliquée a l’art de l’ingénieur (2 tomos).


Ed. Dunod, 2000.

[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

Carlos Conde (∗ ) y Emanuele Schiavi (∗∗ )

(∗ ) Universidad Politécnica de Madrid.


Escuela Técnica Superior de Ingenieros de Minas
Departamento de Matemática Aplicada y Métodos Informáticos

(∗∗ ) Universidad Rey Juan Carlos.


Escuela Superior de Ciencias Experimentales y Tecnologı́a
Departamento de Matemática Aplicada
2
Índice

1. Introducción 5
1.1. Motivación y generalidades . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Conceptos previos . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Métodos generales para la resolución de una ecuación no lineal 21


2.1. El método de bipartición . . . . . . . . . . . . . . . . . . . . . . . 22
2.2. El método de aproximaciones sucesivas . . . . . . . . . . . . . . . 27
2.2.1. La técnica de sobreiteración . . . . . . . . . . . . . . . . . 36
2.3. El método de Newton-Raphson . . . . . . . . . . . . . . . . . . . 37
2.4. Variantes del método de Newton-Raphson: métodos de la secante
y de “regula falsi” . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.4.1. Método de la secante . . . . . . . . . . . . . . . . . . . . . 51
2.4.2. El método de “Regula Falsi” . . . . . . . . . . . . . . . . . 52
2.5. Velocidad de convergencia de los métodos iterativos . . . . . . . . 54
2.6. Aceleración de la convergencia de los métodos iterativos: método
∆2 de Aitken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.7. Algunos comentarios finales sobre los métodos de resolución de una
ecuación no lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3. Métodos de resolución de sistemas de ecuaciones no lineales 69


3.1. El método de aproximaciones sucesivas para sistemas de n ecua-
ciones no lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.2. Una variante del método de aproximaciones sucesivas . . . . . . . 81
3.3. El método de Newton-Raphson para sistemas de n ecuaciones no
lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3
ÍNDICE

3.4. Variantes del método de Newton-Raphson para sistemas: método


de Newton modificado y métodos de cuasi-Newton . . . . . . . . . 93
3.4.1. Aproximación de las derivadas parciales mediante diferen-
cias finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.4.2. Método de Newton modificado . . . . . . . . . . . . . . . . 95
3.4.3. Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . 95
3.4.4. Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . 95
3.4.5. Métodos de sobrerrelajación (SOR) . . . . . . . . . . . . . 96
3.4.6. Métodos de cuasi-Newton: Método de Broyden . . . . . . . 96
3.5. Algunos comentarios sobre los métodos de resolución de sistemas
de ecuaciones no lineales . . . . . . . . . . . . . . . . . . . . . . . 111

4. Ejercicios propuestos 115

5. Bibliografı́a 119

4
CAPÍTULO 1

Introducción

1.1. Motivación y generalidades


Ejemplo 1.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

donde la presión Pi0 está dada en milı́metros de mercurio y la temperatura T


en grados Kelvin. Ello nos permite estimar la temperatura de ebullición del n-
hexano a 2 atmósferas (1520 mm Hg) en 364,39 o K y la del n-octano a la misma
presión en 425,07 o K. Se desea conocer, también a la presión de 2 atmósferas, la
temperatura de ebullición de una mezcla lı́quida que contenga un 50 % en moles
de ambos componentes.
Para ello, denotando por x1 a la fracción molar en la fase lı́quida de n-hexano
C6 y por x2 a la fracción molar del n-octano C8 se tendrá que x1 = x2 = 0,5.
Puesto que el vapor estará en equilibrio, siendo P su presión total (1520 mm
Hg) y designando por y1 e y2 a las fracciones de cada componente en el vapor se
tendrá que:

P10 P0
y1 = .x1 = 1
P 2·P
0
P P0
y2 = 2 .x2 = 2
P 2·P

5
Introducción

debiendo verificarse que:

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
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:

ln(γ1∞ ) = 1 − ln(Λ12 ) − Λ21


ln(γ2∞ ) = 1 − ln(Λ21 ) − Λ12

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.

Los dos ejemplos anteriores pretenden ilustrar el hecho de que en numerosas


aplicaciones fı́sicas y técnicas aparece la necesidad de tener que resolver ecuaciones
o sistemas de ecuaciones no lineales.
Este tipo de sistemas tiene peculiaridades que los diferencian notablemente de
los sistemas lineales. Ası́ por ejemplo, los sistemas lineales de n ecuaciones con n
incógnitas en los que la matriz del sistema es regular sólo admiten una solución. A
diferencia de este caso, los sistemas no lineales, aunque tengan el mismo número de
incógnitas que de ecuaciones, desde un punto de vista matemático, pueden admitir
una, ninguna o varias soluciones. El elegir entre ellas las que sirven a la aplicación
concreta que motivó el sistema de ecuaciones debe hacerse en función de los
criterios fı́sicos, quı́micos y técnicos que regulen el problema en cuestión (por
ejemplo, aunque matemáticamente puedan tener sentido, quı́micamente serı́an
inadmisibles fracciones molares negativas o superiores a 1 de una especie quı́mica).

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.

El hecho de que los métodos de resolución de ecuaciones y sistemas no lineales


sean de tipo iterativo nos plantea muchas cuestiones. Entre ellas cabe citar las
siguientes:
a) ¿Cómo se genera la sucesión de vectores que puedan aproximarse a la solución?
b) Dado que es imposible evaluar los infinitos vectores de la sucesión anterior,
¿cómo se sabe que ya se está “suficientemente” cerca de una solución?.
c) Si la solución encontrada mediante un método no es la que pueda interesarnos
¿cómo buscar otras posibles soluciones?.
d) En el caso de tener diferentes métodos que nos proporcionen las soluciones de
un sistema ¿cómo elegir el mejor entre ellos?.
A estas y otras cuestiones intentaremos dar respuesta en el presente tema. La des-
cripción general de los principales métodos de resolución puede hacerse de una
forma muy intuitiva sin necesidad de recurrir a artificios matemáticos complica-
dos. No obstante la justificación rigurosa de las técnicas de resolución y el análisis
de las condiciones que pueden garantizar su convergencia ası́ como el estudio de
la velocidad con que convergen exigirá acudir a conceptos matemáticos previos.
Conviene por último que el lector tome conciencia desde el primer momento de un
hecho relativo a los métodos de resolución de sistemas de ecuaciones no lineales:
no existe un método universal de resolución de sistemas de ecuaciones
no lineales. Algunos de ellos funcionarán sobre ciertos sistemas y no servirán
para resolver otros. Los métodos que presenten un buen comportamiento sobre
algunos sistemas pueden no ser los mejores para resolver otros sistemas diferentes.
Más bien cabrı́a decir que cada sistema no lineal requerirá su método de
resolución idóneo.

7
Introducción

1.2. Conceptos previos

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 .

Una sucesión de un espacio métrico podrá tener lı́mite o no tenerlo pero en el


caso de que exista este lı́mite siempre será el único lı́mite de la sucesión.
Se llama la atención del lector sobre el hecho de que el lı́mite de una sucesión,
si existe, tiene que ser un elemento del propio espacio métrico al que pertenecen
los elementos de la sucesión. Ası́ por ejemplo, si nos ubicamos en el espacio de
los númerosracionales  (Q) con la distancia fundamental (df (x, y) = |x − y|),
P1 ∞
n
la sucesión xn = i!
tiene elementos tan cercanos al número e como se
i=1 n=1
desee. En efecto, recuérdese que el número e, entre otras definiciones, se podı́a

1
P
obtener mediante e = i!
por lo que dado un valor de ε bastará escoger N
i=0
suficientemente elevado para que todos los elementos xn de la sucesión anterior
con n > N disten de e una cantidad inferior a ε. Parecerı́a pues que el número e
es el lı́mite de la sucesión anterior. Sin embargo e no es un número racional por lo
que la sucesión anterior no tendrá lı́mite en el espacio (Q, df ) considerado. Sı́ lo
tendrı́a sin embargo en el espacio (IR, df ).
Las sucesiones que ”parece” que convergen a falta de saber si hacia lo que con-
vergen es un elemento del espacio en el que se está trabajando tienen un nombre
concreto: sucesiones de Cauchy. Más rigurosamente se puede dar la siguiente
definición de este tipo de sucesiones:

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 ) < ε.

Ejemplo 1.3. Trabajando con la distancia fundamental df , la sucesión:

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!

por lo que para cualquier valor de ε (positivo) bastará escoger N suficientemente


elevado para que df (xn , xm ) < ε para todo par de números n y m mayores que
N.
 1

Ejemplo 1.4. En (IR, df ) la sucesión xn = n+1 n=1
es una sucesión de Cauchy
pues, siendo N <n y N <m se verificará:


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 ε.

Según la definición que se ha dado anteriormente las sucesiones de Cauchy son


tales que las distancias entre todos sus elementos pueden hacerse inferiores a
cualquier valor ε, a partir de un cierto ı́ndice N (que dependerá del valor ε elegi-
do), es decir que cuanto mayor sea el ı́ndice n, menos distará xn de ”x∞ ”. En
otros términos, parece que estas sucesiones convergen hacia ”algo”. Lo único que
faltarı́a para que ese ”algo” fuese el lı́mite de la sucesión es que perteneciese al
espacio métrico en el que se considere la sucesión. En este sentido, para evitar
el problema de que el supuesto lı́mite tuviera la descortesı́a de no pertenecer al
espacio, cuando sea posible se trabajará con espacios que tengan la sana costum-
bre de incluir entre sus elementos a todos los posibles lı́mites de sus sucesiones.
Estos espacios también tienen un nombre concreto: espacios métricos completos.
Más rigurosamente:

Definición 1.3. Se dice que el espacio métrico (E, d) es un espacio métri-


co completo si toda sucesión de Cauchy de elementos de E es una sucesión
convergente en (E, d).

Ejemplo 1.5. En IRn se pueden considerar las distancias

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

d∞ (x, y) = máx (|xi − yi |)


1≤i≤n

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.

Ejemplo 1.6. En el conjunto de los números reales IR se define la distancia fun-


damental mediante df (x, y) = |x − y| . El espacio métrico (IR,df ) es un espacio
métrico completo. Y siendo [a, b] un intervalo cerrado el espacio ([a, b], df ) tam-
bién es un espacio métrico completo.

Lo hasta aquı́ dicho es aplicable a espacios métricos en general. No obstante


será habitual trabajar en espacios que tengan la estructura de espacios vectoriales
(por ejemplo para buscar en ellos el vector solución de un sistema no lineal). En
ellos la forma de medir distancias se asocia al concepto de norma de un vector
(que, a su vez, generaliza el concepto de módulo de un vector). De forma más
concreta puede darse la siguiente definición:

Definición 1.4. Siendo E un espacio vectorial definido sobre un cuerpo K (ha-


bitualmente K = IR o K = C) se denomina norma sobre E, y se representa
por || · ||, a toda aplicación definida en E, que toma valores reales no negativos y
verifica las condiciones siguientes:

i) ||x|| = 0 ⇔ x = 0
ii) ||λ.x|| = |λ|.||x||, ∀λ ∈ K, ∀x ∈ E
iii) ||x + y|| ≤ ||x|| + ||y||, ∀x, y ∈ E

A todo espacio vectorial E sobre el que se defina una norma || · || se le denomina


espacio vectorial normado y se representará por (E, || · ||).

Nota 1.2. En la definición anterior |λ| representa el valor absoluto de λ si se


trabaja en el cuerpo K = IR de los números reales y el módulo de λ si se trabajase
sobre el cuerpo K = C de los números complejos.

Ejemplo 1.7. En IRn son normas vectoriales las siguientes aplicaciones:

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:

k1 · ||x|| ≤ ||x||′ ≤ k2 · ||x|| ∀x ∈ E.

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:

Propiedad 1.1. Siendo (E, ||.||) un espacio vectorial normado se veri-


fica que la aplicación d(x, y) = ||x − y|| es una distancia denominada
distancia asociada a la norma ||.||.

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)

por lo que la aplicación definida es una distancia.

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.

Una conclusión de lo anterior es que los espacios vectoriales normados:

(IRn , ||.||1 ), (IRn , ||.||2 ) y (IRn , ||.||∞ )

son espacios métricos completos.

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:

Definición 1.6. Siendo Mn el espacio de las matrices cuadradas de orden n


definidas sobre un cuerpo K (con K = IR o K = C) se denomina norma ma-
tricial definida sobre Mn , y se representará por ||.||, a toda aplicación definida en
Mn que toma valores reales no negativos y que verifica las propiedades siguientes:

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

Ejemplo 1.10. En Mn son normas matriciales las siguientes:

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

donde kAkF se conoce como la norma de Fröbenius. Asimismo, siendo ρ(A) el


radio espectral de la matriz A (es decir el módulo del valor propio de A que tenga
mayor módulo) y designando por A* a la matriz p adjunta de A (la traspuesta si
A es una matriz real) la aplicación ||A||2 = ρ(A∗ ·A) también es una norma
matricial sobre Mn .

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

es una norma matricial que se denomina norma matricial subordi-


nada a la norma vectorial || · ||.

Nota 1.4. En la definición anterior se ha utilizado el mismo sı́mbolo, ||.||, para


referirse a la norma matricial y a la norma vectorial. Fácilmente distinguirá el
lector entre una y otra por el tipo de elemento al que se aplica.

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:

Propiedad 1.3. Siendo ||.|| una norma matricial subordinada a la nor-


ma vectorial ||.|| se verifica que:

||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.

Ejemplo 1.11. Sea A la matriz:


 
1 1 0
A= 1 2 1 
−1 1 2

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

por lo que ||A||∞ = sup(1, 4, 4) = 4.


Por otra parte:

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

por lo que ||A||1 = Sup(3, 4, 3) = 4.


Asimismo:
     
1 1 −1 1 1 0 3 2 −1
AT .A =  1 2 1 · 1 2 1 = 2 6 4 
0 1 2 −1 1 2 −1 4 5

El polinomio caracterı́stico de AT · A es:



(3 − λ) 2 −1
= −λ.(λ2 − 14.λ + 12)

p(λ) =
2 (6 − λ) 4
−1 4 (5 − λ)

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.

En los métodos iterativos que plantearemos en este tema la sucesión de vectores


que, en su caso, vayan aproximándose hacia la solución se generará a partir de
un vector inicial x(0) mediante un esquema de cálculo que se traducirá en una
función g(x) de forma tal que el proceso iterativo se reducirá a:
x(0) dado
x(i+1) = g(x(i) ) (i = 0, 1, 2, ......)

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:

Definición 1.7. Siendo g una aplicación definida en un espacio métrico (E,


d) y con valores en el mismo espacio métrico, se denomina punto fijo de la
aplicación g a todo elemento x∗ de E tal que x∗ = g(x∗ ).

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

Propiedad 1.4. Toda aplicación lipschitciana definida en (E, d) y con


valores en (V, d’) es una aplicación continua en todo E.

Demostración. Si g : E → V es una aplicación lipschitciana con constante de


Lipschitz k se verificará que d′ (g(x), g(y)) ≤ k · d(x, y). Por tanto para cualquier
valor de ε estrictamente positivo y para cualquier punto x de E se tiene que:

ε
∀ε > 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:

1. Estar definida en un espacio métrico (E, d) sobre sı́ mismo: g : E → E

2. Tener una constante de Lipschitz estrictamente inferior a 1

se la denomina contracción sobre E.

El hecho de que para las contracciones se garantice la convergencia de la sucesión


generada mediante el esquema de cálculo:

x(0) dado
x(i+1) = g(x(i) ) (i = 0, 1, 2, ......)

se debe al teorema que se expone a continuación. Se recomienda prestar atención


a la demostración del mismo, realizada mediante la técnica de aproximaciones
sucesivas, pues en ella se recogen las bases de los métodos de resolución de
sistemas de ecuaciones.

Teorema 1.1. (del punto fijo).Toda contracción definida sobre un es-


pacio métrico completo admite un único punto fijo.

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á:

d(x(1) , x(2) ) = d(g(x(0) ), g(x(1) )) ≤ k · d(x(0) , x(1) )


d(x(2) , x(3) ) = d(g(x(1) ), g(x(2) )) ≤ k · d(x(1) , x(2) ) ≤ k 2 · d(x(0) , x(1) )
..
.
d(x(n) , x(n+1) ) = d(g(x(n) ), g(x(n+1) )) ≤ k n · d(x(0) , x(1) )
..
.

De estas desigualdades, aplicando la desigualdad triangular de las distancias,


resultará que:

d(x(n) , x(n+p) ) ≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+p) ) ≤


≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+2) ) + d(x(n+2) , x(n+p) ) ≤
≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+2) ) + ... + d(x(n+p−1) , x(n+p) ) ≤
≤ k n · d(x(0) , x(1) ) + k (n+1) · d(x(0) , x(1) ) + ..... + k (n+p−1) · d(x(0) , x(1) ) =

!
X
= k n · d(x(0) , x(1) ).[1 + k + .... + k (p−1) ] ≤ k n · d(x(0) , x(1) ) · ki
i=0

En la expresión anterior el sumatorio que aparece representa la suma de una


progresión geométrica cuyo primer término toma el valor 1 y de razón k. Por
tanto:


X 1
ki =
i=0
1−k

lo que nos conduce a que:


kn
d(x(n) , x(n+p) ) ≤ · d(x(0) , x(1) )
1−k

y puesto que, al ser g(x) una contracción, k es estrictamente inferior a 1, para


cualquier valor de ε positivo y bastará considerar el ı́ndice natural N de forma
que:
 
ε·(1−k)
log d(x(0) ,x(1) )
N≥
log(k)

17
Introducción

para que se verifique que d(x(n) , x(m)


 ) < ε∞para todo par de ı́ndices n y m mayores
que N . En definitiva, la sucesión x(i) i=0 es una sucesión de Cauchy. Y como
por las hipótesis del teorema se está trabajando en un espacio métrico comple-
to, admitirá lı́mite x∗ . Y puesto que al ser g una contracción, es continua, se
verificará que:

g(x∗ ) = lı́m g(x(i) ) = lı́m x(i+1) = x∗


i→∞ i→∞

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, . . .)

a partir de cualquier elemento x(0) perteneciente a E.


b) Demostremos ahora la unicidad del punto fijo. Esta cuestión se demuestra
cómodamente mediante reducción al absurdo. En efecto, consideremos por un
momento que en las condiciones del teorema hubiera dos elementos distintos
de E, que denotaremos por a y b, que fuesen puntos fijos. Al ser distintos se
tendrá que d(a, b) > 0. Pero por otra parte se debe verificar que:

d(a, b) = d(g(a), g(b)) ≤ k · d(a, b) < d(a, b)

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.13. La misma aplicación anterior pero definida en el espacio métrico


(]0, 1[, df ) no admite punto fijo pues 0 no pertenece al espacio. Obsérvese que
(]0, 1[, df ) no es completo.

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

Al estar definida en un espacio métrico completo y tomar valores en él admitirá un


único fijo que está dado por:

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.

Nota 1.9. La demostración de la existencia del punto fijo que se ha realizado en el


teorema precedente ya pone de manifiesto muchos aspectos importantes sobre los
métodos iterativos de resolución de ecuaciones no lineales. En efecto, si logramos
definir una contracción g con la que generar una sucesión que converja hacia la
solución de las ecuaciones no lineales a resolver ya habremos dado un primer
paso. La distancia que separe x(n) de la solución x∗ (= “x(∞) ”) podrá estimarse
mediante:

19
Introducción

d(x(n) , x∗ ) = d(x(n) , x(∞) ) ≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(∞) ) ≤


≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+2) ) + d(x(n+2) , x(∞) ) ≤
≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+2) ) + ... + d(x(n+j) , x(n+j+1) ) + ..... ≤
≤ k n · d(x(0) , x(1) ) + k (n+1) · d(x(0) , x(1) ) + ..... + k (n+j) · d(x(0) , x(1) ) + ... =

!
X
= k n · d(x(0) , x(1) ).[1 + k + .... + k (j) + ...] = k n · d(x(0) , x(1) ) · ki =
i=0
kn
= .d(x(0) , x(1) )
1−k

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:

1. No es indiferente el elemento x(0) con el que se inicialice la sucesión pues el


”ahorrarnos” iteraciones en el proceso depende de d(x(0) , x(1) ).

2. Cuanto más próxima a 1 sea la constante de Lipschitz de la contracción más


pequeño será (1 − k) y por tanto mayor será el número (n) de iteraciones
que se necesitarán para estar ”razonablemente” cerca de la solución. En
otros términos cuanto más próxima a 0 sea la constante de Lipschitz de
las contracciones con las que se trabaje, menor será el esfuerzo de cálculo
necesario para obtener ”buenas” aproximaciones de las soluciones.

3. Si en lugar de acotar la distancia a la solución con d(x(0) , x(1) ) se acotara


con d(x(n) , x(n−1) ) se tiene que:

d(x(n) , x∗ ) = d(x(n) , x(∞) ) ≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(∞) ) ≤


≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+2) ) + d(x(n+2) , x(∞) ) ≤
≤ d(x(n) , x(n+1) ) + d(x(n+1) , x(n+2) ) + ... + d(x(n+j) , x(n+j+1) ) + . . . ≤
≤ kd(x(n−1) , x(n) ) + k 2 d(x(n−1) , x(n) ) + . . . + k j d(x(n−1) , x(n) ) + . . . =
= kd(x(n−1) , x(n) ) · [1 + k + . . . + k j + . . .] =

!
(n−1) (n)
X
i k
= k · d(x ,x ) · k = .d(x(n) , x(n−1) )
i=0
1−k

Ello nos indica que la distancia entre dos aproximaciones consecutivas de


la solución es una forma de medir la distancia de la última de ellas a la
k
solución... ponderada por el factor 1−k (lo que nos vuelve a llevar a la
consideración de que interesan valores de la constante de Lipschitz cuanto
más pequeños mejor).

20
CAPÍTULO 2

Métodos generales para la


resolución de una ecuación no
lineal

En este apartado se expondrán métodos generales que nos permiten encontrar


soluciones de una ecuación no lineal. Como se señala en el último subapartado,
para ecuaciones no lineales concretas (por ejemplo polinómicas) es posible adap-
tar algunos de estos métodos y, en algunos casos, existen métodos de aplicación
especı́fica a ellas.
Una ecuación no lineal la representaremos genéricamente en la forma f (x) = 0.
Obsérvese que lo anterior no quiere decir que la función f (x) sea la función
idénticamente nula. Simplemente es una forma de representar la ecuación a la
que nos enfrentemos. Más concretamente tras la expresión f (x) = 0 se ocultará el
siguiente problema:
”Dada una función f (x) determı́nese, si es posible, algún valor x∗ para el que se
verifique que f (x∗ ) = 0”.
A los valores x∗ para los que la función f (x) se anula habitualmente se les deno-
mina raı́ces (o ceros) de la función. En general si f (x) admite el valor x∗ como
raı́z, se podrá encontrar un número positivo m y una función ϕ(x) tales que
ϕ(x∗ ) 6= 0 y f (x) = (x − x∗ )m · ϕ(x). En esa situación se dirá que x∗ es una raı́z de
multiplicidad m. Ası́ por ejemplo, la función f (x) = (x−1)2 ·(x+2)·cos(x) admite,
entre otras, las raı́ces√x∗1 = 1 (de multiplicidad 2) y x∗2 = 2 (de multiplicidad 1).
O la función f (x) = 3 x · (x − 4)2 · ex admite la raı́z x∗1 = 0 (de multiplicidad 1/3)
y la raı́z x∗2 = 4 (de multiplicidad 2).
A las raı́ces de multiplicidad 1 se las llama raı́ces simples. A las de multiplicidad
2 se las designa como raı́ces dobles, a las de multiplicidad 3 como raı́ces triples,
etc... Pero como según se ha definido anteriormente las multiplicidades pueden
ser en general números reales no necesariamente enteros.

21
Métodos generales para la resolución de una ecuación no lineal

No obstante, el concepto de multiplicidad de una raı́z que nosotros consideraremos


se referirá sólo a valores enteros positivos. En este sentido siendo m un entero
positivo y f (x) una función de clase C k (I) (donde I es el intervalo en el que
está definida), diremos que una raı́z x∗ de f (x) es de multiplicidad m si se verifica
que:

f (x∗ ) = f ′ (x∗ ) = f ′′ (x∗ ) = .... = f (m−1 (x∗ ) = 0, f (m (x∗ ) 6= 0

En efecto, si se verifican las condiciones anteriores, al ser f suficientemente regu-


lar, un desarrollo en serie de Taylor nos permitirá escribir que:

∗ ∗ ′ (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.

Nota 2.1. Los métodos numéricos que se abordan a continuación, en general,


perderán velocidad de convergencia cuando las raı́ces a determinar tengan multi-
plicidad superior a 1. De aquı́ la importancia de poder distinguir entre las raı́ces
simples y las raı́ces múltiples.

Nota 2.2. Si se ha determinado una raı́z x∗ de multiplicidad m de la función f (x) y


se desean determinar otras raı́ces, puede calcularse la función ϕ(x) = (x−x1∗ )m ·f (x)
y determinar las raı́ces de ϕ(x) que ya no admitirá a x∗ como raı́z y sin embargo
sı́ que admitirá a las demás raı́ces de f (x) como raı́ces suyas.

Como ya se señaló, los métodos iterativos que analizaremos en este apartado


consistirán en, a partir de un valor x0 dado, generar una sucesión {xi }∞
i=0 que
converja hacia alguna solución de la ecuación.
Comencemos presentando un método muy intuitivo que nos permitirá ir asentan-
do ideas.

2.1. El método de bipartición


Considérese una ecuación no lineal de la forma f (x) = 0 y supongamos que se
conocen dos puntos a y b del dominio en el que está definida f (x) tales que: a < b

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.

Una primera aproximación de este punto x∗ puede ser el punto medio:


a+b
x1 =
2

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
.

2. Si f (xj+1 ) = 0 se habrá obtenido una solución de la ecuación: el punto xj+1


y se detiene el proceso. En caso contrario:

a) Si f (aj ) · f (xj+1 ) < 0 se denotará por: aj+1 = aj y por bj+1 = xj+1 .


b) Si f (aj ) · f (xj+1 ) > 0 se denotará por: aj+1 = xj+1 y por bj+1 = bj .

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

iteración se obtendrá un intervalo [a2 , b2 ] de longitud mitad que el anterior, es


decir |b−a|22
. Siguendo este proceso, en la j−ésima iteración se obtendrá un intervalo
[aj , bj ] cuya longitud será |b−a|2j
. Si se tomara como aproximación de la solución
x∗ existente en dicho intervalo el punto medio xj+1 es evidente que |xj+1 − x∗ | ≤
|bj −aj |
2
= 2|b−a|
(j+1) . Por tanto si se desease estar seguro de que la distancia de la

aproximación xj+1 a la raı́z x∗ fuese inferior a un determinado valor ε deberı́an


ralizarse un número j de iteraciones tal que:
 
|b−a|
|b − a|

|b − a|
 log ε
(j+1)
< ε ⇒ (j + 1) · log(2) > log ⇒j> −1
2 ε log(2)

Nota 2.4. Obsérvese que el número de iteraciones anterior asegurarı́a la precisión


deseada pero que ello no impide el que algún valor xi calculado en alguna iteración
anterior pueda estár igual de cerca (o más) de la solución buscada.

Todo el proceso que hasta aquı́ se acaba de describir podrı́a sintetizarse en el


siguiente algoritmo:

Algoritmo del método de bipartición:

Dada la ecuación f (x) = 0, el indicador de precisión ε y dos puntos a y b en los


que f (a) · f (b) < 0,

|b−a|
log( ε )
1. Estimar el menor número natural N tal que: N > log(2)
−1

2. Para j = 1, hasta j = N, con paso 1, hacer:


a+b
xj = 2
Si (f (xj ) = 0) entonces:
tomar xj como raı́z x∗ y finalizar el proceso
si no:
Si (f (xj ) · f (a) < 0) entonces:
b ← xj
si no:
a ← xj
fin condición.
fin condición.
Fin bucle en j.
a+b
x∗ ≈ 2
Fin del algoritmo.

24
El método de bipartición

El algoritmo anterior nos permitirá encontrar, en las condiciones que garantizan


el éxito del proceso (esto es que f (x) sea continua) una de las raı́ces existentes
en [a, b]. Pero, ¿qué condiciones nos podrı́an garantizar que dicha raı́z es la única
existente en [a, b]?. Una posibilidad para ello podrı́a ser el que la función f (x)
fuese monótona en el intervalo [a, b]. En otros términos, el proceso anterior nos
demuestra el siguiente resultado:

Propiedad 2.1. Si la función f (x) es continua y estrictamente monótona


en el intervalo [a, b] y además es tal que f (a).f (b) < 0, dado un valor
real positivo ε y denotando por N al menor número natural tal que:

 
|b−a|
log ε
N> −1
log(2)

se verifica que N iteraciones del proceso de bipartición antes descrito


conducen a un valor xN +1 que dista de la única solución existente en
el intervalo [a, b] de la ecuación f (x) = 0 una magnitud inferior a ε.

Ilustremos el método descrito con el ejemplo con el que abrı́amos el tema:

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

donde la presión Pi0 está dada en milı́metros de mercurio y la temperatura T


en grados Kelvin. Ello nos permite estimar la temperatura de ebullición del n-
hexano a 2 atmósferas (1520 mm Hg) en 364,39 o K y la del n-octano a la misma
presión en 425,07 o K. Se desea conocer, también a la presión de 2 atmósferas, la
temperatura de ebullición de una mezcla lı́quida que contenga un 50 % en moles
de ambos componentes.
Para ello, denotando por x1 a la fracción molar en la fase lı́quida de n-hexano
C6 y por x2 a la fracción molar del n-octano C8 se tendrá que x1 = x2 = 0,5.
Puesto que el vapor estará en equilibrio, siendo P su presión total (1520 mm
Hg) y designando por y1 e y2 a las fracciones de cada componente en el vapor se
tendrá que:

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

debiendo verificarse que:

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 .

2.2. El método de aproximaciones sucesivas


El método de aproximaciones sucesivas (o del punto fijo) para determinar una
solución de la ecuación no lineal f (x) = 0 se basa en el teorema del punto fijo
demostrado en la sección anterior (teorema 1.1). Para ello el primer paso que se
realiza en este método consiste en reescribir la ecuación f (x) = 0 en la forma
x = g(x).
Adviértase que existen múltiples posibilidades para transformar la ecuación f (x) =
0 en otra del tipo x = g(x). Por ejemplo podrı́a despejarse (de la forma que sea) x
de la expresión de la ecuación f (x) = 0. O podrá sumarse la variable x en ambos
lados de la ecuación y designar por g(x) a (f (x) + x):

0 = f (x) ⇔ x = f (x) + x = g(x)

O, siendo α 6= 0 podrá realizarse el proceso:

0 = f (x) ⇔ x = α · f (x) + x = g(x)

O bien:
p
0 = f (x) ⇔ xk = α · f (x) + xk ⇔ x = k
α · f (x) + xk = g(x)

O por ejemplo:

0 = f (x) ⇔ cos(x) = f (x) + cos(x) ⇔ x = arc cos(f (x) + cos(x))

Y muchas otras opciones serı́an posibles. No obstante, no debe confundirse el


hecho de que sea posible considerar múltiples formas de reescribir la ecuación en la
forma x = g(x) con el que sea indiferente la forma de hacerlo. En efecto la elección
de la función g(x) no es independiente de la eficacia del método pudiéndose formar
funciones g(x) que no estén definidas en parte del intervalo en el que se vaya a
trabajar, o que no sean aplicaciones, o que no sean continuas, o que .....no sean
contracciones. Desde luego no tendrán el mismo comportamiento unas que otras.
Pero dejemos para un poco más adelante cuales son las ”buenas” funciones g(x)
que nos interesan.

27
Métodos generales para la resolución de una ecuación no lineal

En todo caso, una vez reescrita la ecuación f (x) = 0 en la forma x = g(x) el


método de aproximaciones sucesivas busca un punto fijo de la aplicación g(x)
mediante el esquema de cálculo siguiente:
Dado un valor x0 se genera la sucesión {xi+1 = g(xi )}∞
i=0 .

Según lo visto en la sección anterior se tiene el siguiente resultado:

Teorema 2.1. Si g(x) es una contracción definida sobre un intervalo


[a, b] entonces el método de aproximaciones sucesivas que se acaba de
describir genera, a partir de cualquier valor x0 ∈ [a, b], una sucesión
{xi }∞i=0 que converge hacia la única solución de la ecuación x = g(x)
en el intervalo [a, b].

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.

El demostrar que una aplicación g(x) es una contracción mediante la determi-


nación de su constante de Lipschitz puede, en ciertas ocasiones, resultar algo
laborioso. Por ello pueden contemplarse variantes más restrictivas (pero más fácil-
mente aplicables en la práctica) del teorema anterior. Un ejemplo de ello es el
siguiente teorema:

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:

∃k < 1 / |g ′ (x)| ≤ k ∀x ∈ [a, b]

28
El método de aproximaciones sucesivas

entonces la sucesión {xi }∞


i=0 generada, a partir de cualquier x0 ∈ [a, b],
converge hacia la única solución de la ecuación x = g(x) en [a, b].

Demostración. Por aplicación del teorema del valor medio se verificará que:

∀x, y ∈ [a, b] ∃z ∈]a, b[ g(x) − g(y) = g ′ (z).(x − y)

y por haber supuesto que la primera derivada estaba acotada en valor absoluto
se tendrá que:

∀x, y ∈ [a, b] : |g(x) − g(y)| ≤ k · |x − y| < |x − y|

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]

Los dos teoremas precedentes establecen condiciones suficientes de convergencia


global del método sobre un intervalo [a, b] (esto es independientemente del punto
x0 ∈ [a, b] con el que se arranque el proceso iterativo). Cuando se conozca un cierto
entorno de la solución buscada pueden establecerse resultados de convergencia
local (esto es para valores de x0 suficientemente cercanos a la solución). Ası́ por
ejemplo se tiene el siguiente teorema:

Teorema 2.3. Si existe una solución x∗ de la ecuación x = g(x) en un


intervalo [a, b] en el que g(x) es de clase C 1 ([a, b]) y |g ′ (x∗ )| < 1 entonces
existe un valor δ > 0 tal que si |x∗ − x0 | < δ la sucesión {xi+1 = g(xi )}∞ i=0
verifica que:
a) |x∗ − xi | < δ ∀xi
b) lı́m xi = x∗
i→∞

Demostración. Por ser g ′ (x) continua en todo x ∈ [a, b] existirá un intervalo


abierto de centro x∗ y radio δ ′ tal que en él se verifique:

|g ′ (x)| ≤ k < 1 ∀x ∈]x∗ − δ ′ , x∗ + δ ′ [

Considerando un valor δ < δ ′ se tendrá por tanto que:

|g ′ (x)| ≤ k < 1 ∀x ∈ [x∗ − δ, x∗ + δ]

29
Métodos generales para la resolución de una ecuación no lineal

y consecuentemente g(x) es una contracción en [x∗ − δ, x∗ + δ]. Ello conduce a


que:
∀xi ∈ {xi }∞
i=1 : |xi − x∗ | = |g(xi−1 ) − g(x∗ )| < k · |xi−1 − x∗ | <
< k 2 · |xi−2 − x∗ | < ..... < k i · |x0 − x∗ | < k i · δ < δ
Por otra parte, al ser k < 1 bastará con escoger el ı́ndice i suficientemente elevado
para que todos los elementos de la sucesión con ı́ndice mayor que i sean tan
cercanos a x∗ como se desee. En otros términos x∗ = lı́m xi .
i→∞

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.

Los teoremas precedentes establecen condiciones suficientes para que el método


de aproximaciones sucesivas converja. De esta forma, si se verifican las hipótesis
de cualquiera de los teoremas anteriores, seleccionado el punto inicial x0 , todo
consistirá en generar a partir de él x1 = g(x0 ), y a partir de este x2 = g(x1 ),
y ası́ sucesivamente. Tras hacer infinitas iteraciones alcanzarı́amos la solución
buscada. Pero, evidentemente, no pueden realizarse ”infinitas” iteraciones. Por
ello la cuestión que nos planteamos ahora es ¿cuántas iteraciones nos garantizarı́an
una precisión determinada?. La respuesta a este dilema nos la proporciona el
siguiente teorema:

Teorema 2.4. Siendo g(x) una contracción definida en el intervalo


[a, b] la distancia entre la única solución x∗ de la ecuación x = g(x) y
cualquier elemento de la sucesión {xn = g(xn−1 )}∞ n=0 , generada a partir
de cualquier valor x0 ∈ [a, b], está acotada mediante la expresión:
kn
|x∗ − xn | ≤ · |x1 − x0 |
1−k
donde k es la constante de Lipschitz de la contracción.

Demostración. Véase la Nota 1.9 realizada tras la demostración del teorema


del punto fijo (teorema 1.1).

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)

Nota 2.11. Si no se conoce el valor exacto de la constante de Lipschitz de la

30
El método de aproximaciones sucesivas

aplicación puede estimarse de forma aproximada de diferentes formas. Por ejem-


plo, tras cada iteración del método podrı́a obtenerse una aproximación de dicha
constante mediante:

|g(xi−1 ) − g(xi−2 )| |xi − xi−1 |


k ≈ |g ′ (xi )| = k” ≈ =
|xi−1 − xi−2 | |xi−1 − xi−2 |

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

Figura 2.1: Interpretación gráfica del método de aproximaciones sucesivas

En la práctica, en lugar de calcular a priori el número de iteraciones a realizar, se


va estimando en cada iteración la distancia del valor en ella hallado a la solución
exacta. Esta estimación se realiza simplemente evaluando la diferencia entre las
dos últimas aproximaciones halladas que, cuando g(x) es una contracción, son un
indicador de la cercanı́a a la solución exacta en virtud del siguiente teorema:

Teorema 2.5. Siendo g(x) una contracción definida en el intervalo


[a, b] la distancia entre la única solución x∗ de la ecuación x = g(x) y
cualquier elemento de la sucesión {xn = g(xn−1 )}∞ n=0 , generada a partir
de cualquier valor x0 ∈ [a, b], está acotada mediante la expresión:

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.

Demostración. Véase la Nota 1.9 realizada tras la demostración del teorema


del punto fijo (teorema 1.1).

Con ello, cuando g(x) sea una contracción,


al ser k < 1, bastará con hacer un
número de iteraciones tal que xn − x(n−1) sea suficientemente pequeño para

asegurar que |x∗ − xn | también es pequeño. En los algoritmos que recojan el
método, este control de la convergencia debe acompañarse con la limitación del
número de iteraciones a realizar en previsión de los casos en los que, no siendo
g(x) una contracción, el método no conveja. 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:

Algoritmo del método de aproximaciones sucesivas:

Dada la ecuación x = g(x), el indicador de precisión ε , un valor máximo del


número de iteraciones que se permiten realizar (maxiter) y un punto x0 con el
que inicializar el proceso,
tol ← 2 · ε
iteración ← 0
Mientras ( (iteración < maxiter) y (tol > ε) ), hacer:
x1 ← g(x0 )
tol ← |x1 − x0 |
iteración ← iteración + 1
x0 ← x1
Fin bucle condicional.
Si (tol < ε) 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.
Ilustremos el método que se acaba de describir mediante un ejemplo.

Ejemplo 2.2. (Cortesı́a del Pr. J. Arsuaga): La expresión de Plank proporciona


la densidad de energı́a radiada (energı́a por unidad de volumen)(u) por un emisor

32
El método de aproximaciones sucesivas

perfecto (un cuerpo negro) que se encuentre a la temperatura absoluta T en el


intervalo de frecuencias desde un valor ϑ hasta ϑ + δϑ mediante:

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

 ·ϑ
eN · T − 1

Puesto que el denominador de la expresión anterior nunca se anula y la constante


M tampoco es nula, las soluciones de la ecuación anterior son las mismas que las
de la ecuación:

 ·ϑ  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−α )

Una solución de esta ecuación, obviamente, es la solución trivial α = 0. Es-


ta solución nos conducirı́a a ϑ = 0, es decir otra vez a la frecuencia nula que
está descartada del conjunto de frecuencias con interés práctico. Por tanto in-
tentaremos buscar otras soluciones de la ecuación α = g(α) = 3 · (1 − e−α ). Ello
puede intentarse mediante el método de aproximaciones sucesivas. Para ello, te-
niendo en cuenta que N , T y ϑ son positivas podrı́amos pensar en ubicarnos,
en principio, en el espacio métrico ([0, ∞[, df ) que es un espacio métrico com-
pleto. Sin embargo en él g(α) no es una contracción (basta con comprobar que
g ′ (1) = 3 · (1 − (1/e)) ≈ 1, 8964 > 1). Busquemos pues un intervalo en el que g(α)
sı́ sea una contracción. Puesto que :

g ′ (α) = 3 · e−α

se verificará que:

0 < g ′ (α) < 1 ∀α > log(3) ≈ 1,0986

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:

1. sólo habrá una solución de la ecuación α = g(α) distinta de la solución nula,


y

2. la única solución existente pertenece a [1.1, ∞[, y

3. el método de aproximaciones sucesivas nos va a conducir a dicha solución


no nula.

Apliquemos pues el método partiendo de α0 = 1,1. Se irán obteniendo sucesiva-


mente los siguientes valores:

34
El método de aproximaciones sucesivas

α1 = g(α0 ) = 3 · (1 − e−1,1 ) = 2,001386749


α2 = g(α1 ) = 3 · (1 − e−2,001386749 ) = 2,594556788
α3 = g(α2 ) = 3 · (1 − e−2,594556788 ) = 2,775963098
α4 = g(α3 ) = 3 · (1 − e−2,775963098 ) = 2,813131625
α5 = g(α4 ) = 3 · (1 − e−2,813131625 ) = 2,819949757
α6 = g(α5 ) = 3 · (1 − e−2,819949757 ) = 2,821173187
α7 = g(α6 ) = 3 · (1 − e−2,821173187 ) = 2,821391836
α8 = g(α7 ) = 3 · (1 − e−2,821391836 ) = 2,821430884
α9 = g(α8 ) = 3 · (1 − e−2,821430884 ) = 2,821437856
α10 = g(α9 ) = 3 · (1 − e−2,821437856 ) = 2,821439101
α11 = g(α10 ) = 3 · (1 − e−2,821439101 ) = 2,821439324
α12 = g(α11 ) = 3 · (1 − e−2,821439324 ) = 2,821439364
α13 = g(α12 ) = 3 · (1 − e−2,821439364 ) = 2,821439371
α14 = g(α13 ) = 3 · (1 − e−2,821439371 ) = 2,821439372
α15 = g(α14 ) = 3 · (1 − e−2,821439372 ) = 2,821439372

no obteniéndose diferencias de valor, con los 9 decimales que hemos utilizado en


el cálculo, para posteriores iteraciones. Por tanto la solución buscada será α∗ ≈
2,821439372. A partir de este valor, puesto que habı́amos denotado por α = N · Tϑ
se tendrá que la frecuencia a la que se maximiza la energı́a está dada por:

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:

ϑ∗ 2,821439372 2,821439372 2,821439372 · 1,38066 · 10−23


≈ = h
= ≈
T N k
6,625 · 10−34

≈ 5,880809908 · 1010 s−1 · K −1

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.

Nota 2.15. A partir de la fórmula de Plank:

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

se puede obtener la ecuación de Stefan-Boltzmann (que históricamente es ante-


rior) según la cual la potencia total radiada por unidad de superficie (a todas
las frecuencias) a una determinada temperatura absoluta es directamente pro-
porcional a la 4a potencia de la misma, es decir:
S = σ · T4

donde σ es la constante de Stefan-Boltzmann.


R ∞ Basta para obtener esta expresión
efectuar el proceso de integración: S = 0 u(ϑ, T ) · dϑ ... pero eso es objeto de
otra disciplina.

2.2.1. La técnica de sobreiteración


En ocasiones la aplicación g(x) con la que se intente aplicar el método de aprox-
imaciones sucesivas a la ecuación x = g(x) conducirá a un proceso que converge
muy lentamente por tener su constante de Lipschit próxima a 1. En esas ocasiones
será conveniente modificar la ecuación equivalente convirtiéndola en otra de la
forma x = h(x) en la que h(x) tenga mejores propiedades de cara a la convergen-
cia del método hacia la solución x∗ . Una estrategia que en ocasiones nos puede
ayudar a este proceso consiste en modificar la ecuación de la forma:
g(x) + ρ · x
x = g(x) ⇔ x + ρ · x = g(x) + ρ · x ⇔ x = = h(x)
1+ρ

Se dispone ası́ de un parámetro ρ con el que intentar mejorar la velocidad de


convergencia del algoritmo de aproximaciones sucesivas. Ello se podrı́a lograr, en
virtud del teorema de convergencia local antes presentado, dando a ρ el valor de
−g ′ (x∗ ) (cuando este sea no nulo) pues en ese caso:
g ′ (x∗ ) + (−g ′ (x∗ ))
h′ (x∗ ) = =0
1 − g ′ (x∗ )

La dificultad de este proceso, conocido con el nombre de técnica de sobre-


iteración, radica en estimar el valor de g ′ (x∗) ... sin conocer x∗ . No obstante,
aunque parezca increible, en ocasiones podrá hacerse como muestra el siguiente
ejemplo.

Ejemplo 2.3. Si se desea conocer la solución de la ecuación no lineal x2 − a = 0


siendo a un número estrictamente positivo puede procederse, en primer lugar de
la siguiente forma
a
x2 − a = 0 ⇔ x · x = a ⇔ x = = g(x)
x

No obstante, esta función


√ g(x) nos sirve de poco para calcular la raı́z pues si se
parte de un valor x0 6= a se tendrá que:
a a a
x1 = g(x0 ) = ; x2 = g(x1 ) = a = x0 ; x3 = g(x2 ) = ; . . .
x0 x0
x0

36
El método de Newton-Raphson

es decir que la sucesión que nos proporciona el método de aproximaciones suce-


sivas será:  
a a a
x0 , , x0 , , x0 , , . . .
x0 x0 x0
que como se ve no converge hacia nada.
No obstante en este caso se tendrá que:
a
g ′ (x∗ ) = −
(x∗ )2

y como en la solución buscada se verificará que: (x∗ )2 = a resultará que:


a
g ′ (x∗ ) = − = −1
a
Por tanto puede intentarse el método de sobreiteración tomando como valor ρ =
−g ′ (x∗ ) = 1. Con ello la ecuación se transformará en:
a
+xx a + x2 1 a
x = h(x) = = = · (x + )
1+1 2·x 2 x
Ası́ si por ejemplo se considera que a = 16 el esquema anterior, partiendo de
x0 = 1 nos conduce a que:

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

Este procedimiento de cálculo de raı́ces cuadradas es atribuido a Herón (arqui-


tecto e ingeniero que vivió entre los siglos -I y I) y se conoce con el nombre de
regla de Herón o regla mecánica para el cálculo de raı́ces cuadradas. Es empleado
actualmente en numerosas calculadoras cientı́ficas debido a su gran velocidad de
convergencia hacia el valor de la raı́z cuadrada del número “a”.

2.3. El método de Newton-Raphson


Considérese la ecuación f (x) = 0 en la que supondremos que f (x) es una fun-
ción de clase C 2 ([a, b]). Supongamos además que la ecuación anterior admite una

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

Si conocido x0 se fuese capaz de determinar h resolviendo la ecuación:

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

de la que se obtiene que:

f (x0 )
H=−
f ′ (x0 )

Obviamente, al ser diferente la ecuación linealizada que la proporcionada por el


desarrollo de Taylor, se tendrá que H 6= h y por tanto x∗ = x0 + h 6= x1 = x0 + H.
De una forma intuitiva (que después deberemos precisar cuándo es correcta) puede
pensarse que aunque x1 sea diferente de x∗ será un valor más próximo a x∗ que x0
pues lo hemos obtenido ”aproximando” el valor h que nos llevaba de x0 a x∗ . Ello,
al menos, será ası́ cuando h sea suficientemente pequeño, es decir cuando x0 sea
suficientemente próximo a x∗ . Con ello el método de Newton-Raphson propone
repetir este proceso de forma recursiva hasta estar lo suficientemente cercanos a
la solución buscada. Más
n concretamente el o∞método de Newton-Raphson consiste
f (xi )
en generar la sucesión xi+1 = xi − f ′ (xi ) a partir de un valor x0 dado.
i=0
Sobre este método, en primer lugar, puede observarse que si denotamos por:

38
El método de Newton-Raphson

f (x)
g(x) = x −
f ′ (x)

estamos en presencia de un caso particular del método de aproximaciones sucesi-


vas antes contemplado. En otros términos, se tienen las siguientes propiedades:

Propiedad 2.2. Si la función g(x) = x − ff′(x)


(x)
es una contracción defini-
n o∞
da en [a, b] la sucesión dada por xi+1 = xi − ff′(x i)
(xi )
obtenida a partir
i=0
de cualquier punto x0 ∈ [a, b] converge hacia la única solución de la
ecuación f (x) = 0 en [a, b].

Demostración. Es un caso particular de los teoremas de convergencia del méto-


do de aproximaciones sucesivas (teorema 2.1).

Propiedad 2.3. Si la función g(x) = x − ff′(x) (x)


definida en [a, b] toma
1
valores en [a, b], es de clase C ([a, b]) y además:


f ”(x) · f (x)
|g (x)| = < 1, ∀x ∈ [a, b]
(f ′ (x))2
n o∞
f (xi )
entonces la sucesión dada por xi+1 = xi − f ′ (xi )
obtenida a partir
i=0
de cualquier punto x0 ∈ [a, b] converge hacia la única solución de la
ecuación f (x) = 0 en [a, b].

Demostración. Es un caso particular del teorema 2.2 de convergencia del méto-


do de aproximaciones sucesivas.

Nota 2.16. Adviértase que la aplicación del método de Newton-Raphson exige


que los valores de f ′ (xi ) no se anulen.

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.

Al igual que se hizo con el método de aproximaciones sucesivas, las condiciones


que garantizan la convergencia global del método pueden ser sustituı́das por otras
que garantizan su convergencia local (esto es si el punto x0 con el que se inicializa

39
Métodos generales para la resolución de una ecuación no lineal

f x

f x0

x * ! x2 x1 x0

Figura 2.2: Interpretación gráfica del método de Newton-Raphson

el método es suficientemente cercano a la solución buscada). Con ello se pueden


rabajar las ”exigencias” sobre la función que garanticen el correcto funcionamien-
to del método. En concreto es de aplicación a este método el siguiente teorema:

Teorema 2.6. Si f ∈ C 2 [a, b] y x∗ es una solución de la ecuación f (x) =


0n en la que f ′ (x∗ )o6= 0 entonces existe un valor δ > 0 tal que la sucesión

f (xi )
xi+1 = xi − f ′ (xi )
generada a partir de cualquier punto x0 ∈ [x∗ −
i=0
δ, x∗ + δ] converge hacia x∗ .

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)

también estará definida y será continua en [x∗ − δ1 , x∗ + δ1 ] y verificará que


x∗ = g(x∗ ). Además como:

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:

|g ′ (x)| ≤ k < 1 ∀x ∈ [x∗ − δ, x∗ + δ]

Además se verificará que ∀x ∈ [x∗ − δ, x∗ + δ] : g(x) ∈ [x∗ − δ, x∗ + δ]. En efecto si


x ∈ [x∗ − δ, x∗ + δ] se tendrá que |x∗ − x| ≤ δ y por el teorema de los incrementos
finitos se tendrá que ∃z ∈ [x∗ − δ, x∗ + δ]:

|g(x) − x∗ | = |g(x) − g(x∗ )| = |g ′ (z)| · |x − x∗ | ≤ k.δ < δ

En resumen g(x) es una contracción definida sobre el espacio métrico completo


([x∗ − δ, x∗ + δ], df ) y por tanto admitirá un único punto fijo x∗ que es el lı́mite
de la sucesión {xi+1 = g(xi )}∞ ∗ ∗
i=0 sea cual sea el punto x0 ∈ [x − δ, x + δ] con el
que se inicialice.

El teorema anterior puede ser completado estimando cotas de la distancia a la


solución de la aproximación obtenida en una iteración respecto a la obtenida en
la iteración precedente. En efecto, esto se hace en el siguiente teorema:

Teorema 2.7. Dada la ecuación f (x) = 0 y suponiendo que f (x) es una


función que verifica las siguientes hipótesis:
a) está definida en un intervalo [a, b] en el que existe una solución x∗
de la ecuación
b) f ′ (x) es una aplicación lipschitciana de razón k en [a, b]
c) ∃β > 0 tal que |f ′ (x)| > β ∀x ∈ [a, b]
entonces existe algún valor oδ tal que si se considera x0 ∈ [x∗ − δ, x∗ + δ, ]
n ∞
la sucesión xi+1 = xi − ff′(x i)
(xi )
converge hacia x∗ y además se verifica
i=0
que:

k
|xi+1 − x∗ | ≤ · |xi − x∗ |
2·β

Demostración. Demostremos en primer lugar la última desigualdad del teore-


ma. Para ello se sabe que:

f (xi ) f (xi ) − f (x∗ )


xi+1 − x∗ = xi − − x ∗
= x i − x ∗
− =
f ′ (xi) f ′ (xi)

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)

Como por otra parte se tendrá que:

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

Nota 2.18. Obsérvese que la desigualdad del teorema anterior

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.

Ilustremos el proceso anterior con un ejemplo que si bien no es propio de la


ingenierı́a, es real como la vida misma:

Ejemplo 2.4. El dinero necesario para pagar la cuota correspondiente a un crédito


hipotecario a interés fijo se suele estimar mediante la denominada “ecuación de
la anualidad ordinaria”:

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

por lo que el método de Newton nos conducirı́a al esquema de cálculo:

150000 − 3600
ij
· [1 − (1 + ij )−20 ]
ij+1 = ij − h i
3600 1 −20 −21
ij
· ij (1 − (1 + ij ) ) − 20 · (1 + ij )

que, partiendo de i0 = 0,03 nos proporcionará la siguiente sucesión de valores:

i1 = −0,1647 . . .
i2 = −0,1212 . . .
i3 = −0,0852 . . .
i4 = −0,0659 . . .
i5 = −0,0617 . . .
i6 = −0,0616 . . .
i7 = −0,0616 . . .

Como resultado de lo anterior se dan cuenta que difı́cilmente podrán encontrar


la vivienda que desean pues parece razonable pensar que ningún banco o caja
de ahorros les concederá un préstamo a un interes negativo del -6.16 %. Por ello
tras planear dejar de ver a sus respectivas amistades y reinvertir el dinero que
gastan en copas para adquirir la casa de sus sueños aumentan la cantidad que
mensualmente pueden dedicar a amortizar el crédito hasta 5400 euros semestrales
y endeudarse durante 15 años en lugar de 10. Con ello el método de Newton-
Raphson se convierte ahora en el esquema iterativo:

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

y les proporciona la siguiente sucesión:

i0 = 0,03
i1 = −0,0022 . . .
i2 = 0,0044 . . .
i3 = 0,050 . . .
i4 = 0,0050 . . .

Tras innumerables gestiones la pareja en cuestión no encuentra ninguna entidad


bancaria que les conceda el préstamo de 150000 euros al 0.5 % de interés anual.
Por ello, haciendo de tripas corazón, deciden endeudarse durante 20 años en lugar
de 15 pero pagando la misma cantidad de 5400 euros semestrales pues (al ser un
miembro de la pareja profesor asociado de tipo 1 en una universidad pública y
el otro administrativo de la escala C en un Organismo Oficial) les es imposible
pagar más. Con ello el esquema iterativo se convierte en:

150000 − 5400ij
· [1 − (1 + ij )−40 ]
ij+1 = ij − h i
5400
ij
· i1j (1 − (1 + ij )−40 ) − 40 · (1 + ij )−41

y les conduce a que:

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 . . .

Como finalmente ya encuentran una entidad que (tras duras negociaciones y


previo avalamiento de fiadores solventes) les otorga el préstamo al interés del
4’45 % la pareja puede comenzar una feliz vida en pareja en la que durante 20
años renunciarán a sus amigos (tranquilos que ellos también se pringarán) sin
dinero para nada que no sea la supervivencia más elemental y, por supuesto,
pagar la vivienda, y residiendo en una casa que no es la que les gusta.

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.

Ejemplo 2.5. Si se quiere encontrar el valor de la raı́z cuadrada de un número


a > 0 puede buscarse como la solución de la ecuación no lineal f (x) = x2 − a = 0.

46
El método de Newton-Raphson

Para ello el método de Newton-Raphson nos conduce a que:

x2i − a
 
1 a
xi+1 = xi − = · xi +
2 · xi 2 xi

recuperándose ası́ el método de Heron (o regla mecánica) con el que ilustrábamos


la técnica de sobreiteración.

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:

Teorema 2.8. Si f (x) ∈ C 2 ([a, b]), es creciente y nconvexa en [a, o b] y



f (xi )
admite alguna raı́z en [a, b], entonces la sucesión xi+1 = xi − f ′ (xi )
i=0
generada a partir de cualquier valor x0 ∈ [a, b], converge hacia la única
solución de la ecuación f (x) = 0 en [a, b].

Demostración. La unicidad de la solución de f (x) = 0 es evidente por ser


f (x) continua y creciente en [a, b]. Además por ser f (x) convexa se verificará que
f ”(x) > 0 ∀x ∈ [a, b]. Y por ser creciente se verificará que f ′ (x) > 0 ∀x ∈ [a, b].
Denotemos por hi = xi − x∗ . Se tendrá que:

∗ 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:

hi · f ′ (xi ) − f (xi ) 1 f ”(ξi ) 2


hi+1 = = · ·h >0
f ′ (xi ) 2 f ′ (xi ) i

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

hi · f ′ (xi ) − f (xi ) f (xi )


hi+1 = ′
= hi − ′ < hi
f (xi ) f (xi )

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 .

Nota 2.23. Resultados similares al anterior podrı́an obtenerse si f (x), además de


ser de clase C 2 ([a, b]) fuese convexa decreciente, o cóncava creciente o cóncava
decreciente. Dejamos al lector la demostración de los mismos.

En cuanto a la forma de detener el proceso iterativo, cuando g(x) = x − ff′(x) (x)


sea una contracción puede seguirse la misma estrategia que en el método de
aproximaciones sucesivas, es decir que cuando |xi − xi−1 | sea inferior a un cierto ε
puede considerarse que xi es una buena aproximación de la solución x∗ . Pero un
código informático que recoja el método de Newton-Raphson deberı́a ser aplicable
a situaciones en las que g(x) no es una contracción y detectar por sı́ solo si se
encuentra una solución de la ecuación o no. ¿Cómo saber en esos casos que se
está cerca de la solución buscada?. Obsérvese por ejemplo que si f ′ (xi ) toma un
valor elevado el valor de |xi+1 − xi | puede hacerse muy pequeño sin necesidad
de que f (xi ) sea próximo a 0. Eso nos llevarı́a a que un criterio de detención
del proceso iterativo serı́a que |f (xi+1 )| < δ donde δ es un parámetro fijado de
antemano y suficientemente pequeño. Lamentablemente este criterio tampoco es
fiable pues puede darse el caso de funciones en las que f (xi+1 ) sea muy pequeño
estándose muy alejados de la solución. Por ejemplo, si se considera la función
f (x) = x · e−x (ver figura 2.3) y se quiere encontrar una solución no negativa de
la ecuación f (x) = 0, la única solución es x∗ = 0 pero para valores de xi+1 =
10i el valor de f (xi ) se hace tan pequeño como se desee con tal de tomar i lo
suficientemente elevado.
Puede entonces pensarse en que cuando las derivadas de la función tengan valor
absoluto elevado los valores de |xi+1 − xi | serán pequeños pero el criterio de que
|f (xi+1 )| < δ nos servirá para saber si se está cerca o lejos de la solución buscada
en tanto que cuando |f (xi+1 )| < δ será el analizar si |xi+1 − xi | < ε que nos per-
mitirá discernir si estamos cerca o no de la solución buscada. Lamentablemente
tampoco este criterio cubre todas las situaciones que puedan darse pues puede
haber situaciones en las que la sucesión se acumule en torno a un mı́nimo sufi-
cientemente próximo a 0 pero lejano de la solución. Por ejemplo si la gráfica de
una función fuera como la de la figura 2.4, en torno a x = 0,4 se puede producir
una acumulación de valores que nos conducirán hacia el mı́nimo de la función en
lugar de hacia la solución x∗ = 0. Nótese que en este caso la derivada de f (x) se
anula en algún punto por lo que no se verifican las hipótesis que aseguran la con-
vergencia del proceso. En tal caso procederı́a cambiar de punto de arranque del
proceso para ubicarnos en una zona en la que sı́ esté garantizada la convergencia.
Aunque existen tests de control de la cercanı́a a la solución basados en la conside-

48
El método de Newton-Raphson

Figura 2.3: La función x · e−x

Figura 2.4: No convergencia del método de Newton por anulación de f ′ (x)

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:

Algoritmo del método de Newton-Raphson:

Dada la ecuación f (x) = 0, los indicadores de precisión ε y δ, un valor máximo


del número de iteraciones que se permiten realizar (maxiter) y un punto x0 con
el que inicializar el proceso,
tolx ← 2 · ε
tolf ← 2 · δ
iteración ← 0
Mientras ( (iteración < maxiter) y ((tolx > ε) o (tolf > δ) ), hacer:
Si (f ′ (x0 ) = 0) entonces:
Escribir mensaje de error (derivada nula)
Finalizar el proceso
si no:
f (x0 )
x1 ← x0 − f ′ (x0 )

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.

2.4. Variantes del método de Newton-Raphson:


métodos de la secante y de “regula falsi”
El método de Newton que se acaba de exponer es un método que, generalmente,
tiene un buen comportamiento en la resolución de muy diferentes ecuaciones no
lineales. Su principal inconveniente práctico consiste en la necesidad de calcular
los valores de f ′ (xi ) en cada iteración. Por ello existen variantes del método de
Newton que tratan de obviar este cálculo aproximando el valor de f ′ (xi ). Entre
ellos, los más populares son los denominados método de la secante y método de
regula falsi.

2.4.1. Método de la secante


Este método aproxima el valor de f ′ (xi ) mediante:

f (xi ) − f (xi−1 )
f ′ (xi ) ≈
xi − xi−1

con lo que el esquema iterativo del método de Newton-Raphson se ve modificado


a:

f (xi ) xi−1 · f (xi ) − xi · f (xi−1 )


xi+1 = xi − f (xi )−f (xi−1 )
=
f (xi ) − f (xi−1 )
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 )).

2.4.2. El método de “Regula Falsi”


Este método es una combinación del método de bipartición y del método de la
secante. En él se considera una ecuación f (x) = 0 y un intervalo [a, b] en el que
f (x) sea continua y además se verifique que f (a) · f (b) < 0. Con ello, según se
indicó al analizar el método de bipartición se puede estar seguro de que en [a, b]
existe al menos una raı́z. Tras ello se denomina x1 al punto de corte con el eje de
abscisas de la recta secante que pasa por los puntos (a, f (a)), (b, f (b)) es decir al
punto:

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á:

Algoritmo del método de Regula Falsi:

Dada la ecuación f (x) = 0, el indicador de precisión ε y dos puntos a y b en los


que f (a) · f (b) < 0,
Mientras |b − a| > ε, hacer:

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:

f (xi ) 2 · f (xi ) · f ′ (xi )


(x∗ − xi ) ≈ − f (xi )·f ”(xi )
=−
f ′ (xi ) − 2 · (f ′ (xi ))2 − f (xi ) · f ”(xi )
2·f ′ (xi )

y generándose, a partir de un x0 , la sucesión:

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

2.5. Velocidad de convergencia de los métodos


iterativos

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:

Definición 2.1. Siendo {xi }∞ ∗


i=0 una sucesión convergente hacia x en la que
xi 6= x para todo valor del ı́ndice i, se dice que la sucesión converge hacia x∗

con orden p y con una constante de error asintótico β cuando existen


dos números reales positivos p y β tales que:

|xi+1 − x∗ |
lı́m =β
i→∞ |xi − x∗ |p

En este sentido se dice que un método iterativo de la forma xi+1 = g(xi ) es


de orden p cuando la sucesión {xi }∞
i=0 converja hacia una solución de x = g(x)
con orden p. En el caso de que p sea igual a 1 se dice que el método converge
linealmente. Y si p = 2 se dice que el método converge cuadráticamente.

En general dadas una sucesión


 ′ {xi } que converja hacia x∗ con orden de conver-

gencia p y otra sucesión xi que converja hacia x con orden de convergencia

q < p se verifica que los elementos de {xi } se acercan más rápidamente hacia
 ′x
(por lo menos a partir de un cierto ı́ndice) que los elementos de la sucesión xi .
Una forma cómoda de conocer el orden de un método iterativo, cuando este
está dado por un número natural, nos la proporciona el siguiente teorema:

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 (k (x∗ ) = 0 para k = 1, 2, ..., (p − 1)

g (p (x∗ ) 6= 0

entonces se verifica que la sucesión generada a partir de un x0 ∈ [a, b]


mediante {xi+1 = g(xi )}∞ ∗
i=0 si converge hacia x lo hace con un orden
de convergencia p.

Demostración. Considerando el desarrollo en serie de Taylor:

54
Velocidad de convergencia de los métodos iterativos

xi+1 = g(xi ) = g(x∗ + (xi − x∗ )) = g(x∗ ) + (xi − x∗ ) · g ′ (x∗ ) + . . . +


(xi − x∗ )p (p ∗
+... + · g (x ) + O((xi − x∗ )(p+1) )
p!

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!

El teorema anterior nos permite analizar fácilmente el orden de convergencia de


los métodos iterativos cuando este orden es un número entero. Ası́ para el método
de aproximaciones sucesivas y para el método de Newton-Raphson se tiene:

Propiedad 2.4. Si g(x) es una contracción en [a, b], el método de aprox-


imaciones sucesivas es, al menos, de convergencia lineal.

Demostración. Basta con comprobar que g ′ (x∗ ) no tiene por qué ser nula.

Propiedad 2.5. En las condiciones de convergencia del método de


Newton-Raphson, si x∗ es una solución simple de la ecuación f (x) = 0,
y f (x) es de clase C 2 ([a, b]), este método es, al menos, de convergencia
cuadrática.

Demostración. En el método de Newton-Raphson:

f (x)
g(x) = x −
f ′ (x)

por lo que si x∗ es una raı́z simple de f (x) se verificará que:

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

que en general no tiene por qué anularse.

Nota 2.26. Adviértase que en la proposición anterior se especifica que la raı́z


buscada debe ser simple. Si no lo fuese f ′ (x∗ ) serı́a nulo y el razonamiento anterior
no serı́a correcto. En general si x∗ fuese una raı́z de multiplicidad m y el método
de Newton-Raphson convergiese hacia ella, se podrá escribir la ecuación en la
forma:

f (x) = (x − x∗ )m · h(x) = 0

en la que x∗ no es raı́z de h(x), por lo que:

f ′ (x) = m · (x − x∗ )(m−1) · h(x) + (x − x∗ )m · h′ (x)

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.

Otros métodos en los que el orden de convergencia no es entero deben analizarse


a partir de la definición dada para el orden de convergencia de la sucesión que
generan. Ası́ por ejemplo se tiene la siguiente propiedad:

Propiedad 2.6. El método de la secante para la resolución de la 


ecuación
√ 
f (x) = 0, cuando converge, presenta una convergencia de orden 1+2 5 .

Demostración. Denotemos por hi = xi − x∗ . Se tiene entonces que:

xi−1 · f (xi ) − xi · f (xi−1 )


hi+1 = xi+1 − x∗ = − x∗ =
f (xi ) − f (xi−1 )
f (xi ) · (xi−1 − x∗ ) − f (xi−1 ) · (xi − x∗ )
= =
f (xi ) − f (xi−1 )
f (xi ) · hi−1 − f (xi−1 ) · hi
= =
f (xi ) − f (xi−1 )
f (xi ) f (xi−1 )
xi − xi−1 hi
− hi−1
= · · hi · hi−1
f (xi ) − f (xi−1 ) xi − xi−1

56
Velocidad de convergencia de los métodos iterativos

Examinemos las fracciones que intervienen en la expresión anterior. En primer


lugar puesto que mediante desarrollos en serie de Taylor:

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

de donde, dado que xi − xi−1 = (xi − x∗ ) − (xi−1 − x∗ ) = hi − hi−1 , se tiene que:

f (xi ) f (xi−1 )
hi
− hi−1 1
= · f ”(x∗ ) + O(hi ) + O(hi−1 )
xi − xi−1 2

De la misma manera, combinando los desarrollos en serie anteriores se obtiene


que:

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

Si el método converge con un orden p y una constante de error asintótico β se


verificará que:

hi+1
p = β
lı́m
i→∞ h
i

lo que nos llevarı́a a que:

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→∞

por lo que tomando lı́mites en la expresión antes obtenida:

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→∞

Puesto que el lado izquierdo de la igualdad anterior es una constante distinta de


cero, mientras que al haber supuesto la convergencia del método se verifica que
lı́m hi = 0, se debe verificar que:
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.

Ejercicio propuesto: Demuéstrese que el método de Newton mejorado (o de


Halley) es de orden 3.

58
Aceleración de la convergencia de los métodos iterativos: método ∆2
de Aitken

2.6. Aceleración de la convergencia de los méto-


dos iterativos: método ∆2 de Aitken
Cuando el método de resolución de ecuaciones no lineales que se esté empleando
para resolver una ecuación no lineal no posea convergencia, al menos, cuadrática,
puede utilizarse la estrategia conocida con el nombre de método delta-dos (∆2 ) de
Aitken para mejorar su velocidad de convergencia. Antes de examinar en qué con-
siste esta estrategia presentemos los fundamentos teóricos de la misma.

Definición 2.2. Dada una sucesión {xi }∞


i se denomina diferencia progresi-
va de primer orden en el punto xi , y se representará por ∆xi , al valor:

∆xi = xi+1 − xi i≥0

Análogamente se define la diferencia progresiva de orden m en el punto xi,


y se representará por ∆m xi , mediante:

∆m xi = ∆ ∆(m−1) xi

i ≥ 0, m ≥ 2

En concreto la diferencia progresiva de orden 2 será, según la definición


anterior:

∆2 xi = ∆ (∆xi ) = ∆xi+1 − ∆xi = xi+2 − 2 · xi+1 + xi i≥0

Teorema 2.10. Sea {xi }∞ ∗


i=0 una sucesión convergente hacia x , y sea

{yi }i=0 una nueva sucesión generada a partir de la primera mediante:

(∆xi )2 xi · xi+2 − x2i+1


yi = xi − = i≥0
∆2 x i xi+2 − 2 · xi+1 + xi

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→∞

xi+1 − x∗ = (c + δi ) · (xi − x∗ ) i≥0

se verifica entonces que la sucesión {yi }∞ ∗


i=0 converge hacia x y además:

yi − x∗
lı́m =0
i→∞ xi − x∗

Demostración. Denotemos por hi = xi − x∗ . Se tiene entonces que para todo


valor del ı́ndice i:

xi · xi+2 − x2i+1 (x∗ + hi ) · (x∗ + hi+2 ) − (x∗ + hi+1 )2


yi = = ∗ =
xi+2 − 2 · xi+1 + xi (x + hi+2 ) − 2 · (x∗ + hi+2 ) + (x∗ + hi )

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

Utilizando el hecho de que hi+1 = (c + δi ) · hi se tiene que:

hi+2 = (c + δi+1 ) · (c + δi ) · hi

y:

(c + δi+1 ) · (c + δi ) · h2i − (c + δi )2 · h2i


yi − x∗ = =
(c + δi+1 ) · (c + δi ) · hi − 2 · (c + δi ) · hi + hi

(c + δi+1 ) · (c + δi ) − (c + δi )2
= · hi
(c + δi+1 ) · (c + δi ) − 2 · (c + δi ) + 1

Tomando lı́mites en la expresión anterior, dado que c 6= 1 (única raı́z de c2 −2·c+



1 = 0) que {xi }∞ ∗
i=′ converge hacia x y que {δi }i=0 converge hacia 0, es evidente
que {yi }∞ ∗
i=0 convergerá hacia x . Además de dicha expresión resultará que:

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

El teorema anterior nos muestra que la sucesión {yi }∞


i=0 converge más rápidamente
hacia x∗ que la solución dada.
Considérese ahora una sucesión {xi+1 = g(xi )}∞i=0 , generada por un método de
orden menor que 2, que converja hacia x y tal que |g ′ (x∗ )| < 1. Por ser el orden

de convergencia superior o igual a 1 pero inferior a 2 se verificará, a partir de un


desarrollo de Taylor y teniendo en cuenta que g ′ (x∗ ) 6= 0, que:
xi+1 − x∗

= g ′ (x∗ ) + O((xi − x∗ )2 )
xi − x

por lo que llamando c = g ′ (x∗ ) y δi = O((xi − x∗ )2 ) se verificarán las condiciones


del teorema anterior.
Todo lo anterior puede utilizarse para elaborar un algoritmo que mejore la veloci-
dad de convergencia de los métodos de orden de convergencia inferior a 2. Este
algoritmo, conocido también con el nombre de método de Steffensen, es el que se
recoge a continuación:

Algoritmo del método de Steffensen:

Dada la ecuación x = g(x), el indicador de precisión ε , un valor máximo del


número de iteraciones que se permiten realizar (maxiter) y un punto x0 con el
que inicializar el proceso,

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.

Nota 2.28. En el algoritmo anterior se calcula x3 en cada iteración (valor de la


sucesión corregida) tras asegurarse de que el denominador (∆2 x0 ) es no nulo. Si
lo fuese se da como solución aproximada la obtenida en la iteración anterior.

Ejemplo 2.6. Ilustremos el funcionamiento del método de Steffenson sobre el


ejemplo siguiente, cuyo enunciado está tomado de O. T. Hanna & O. C. San-
dall [9]:
La ecuación de estado de Peng-Robinson proporciona la presión P de un gas
mediante:

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)

Para aplicar el método de aproximaciones sucesivas a esta ecuación no lineal


puede despejarse una de las incógnitas de la forma que sigue:

364,61 · (V − 0,02664)
1,104 .(V − 0,02664) = 340 · R − ⇒
V.(V + 0,02664) + 0,02664.(V − 0,02664)

364,61 · 10−4 · (V − 0,02664)


⇒ V = 0,02664+340·10−4 ·R− = g(V )
V.(V + 0,02664) + 0,02664.(V − 0,02664)

que nos conduce al esquema iterativo:

364,61 · 10−4 · (Vi − 0,02664)


Vi+1 = 0,02664 + 340 · 10−4 · R −
Vi .(Vi + 0,02664) + 0,02664.(Vi − 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

En los resultados que siguen, además del valor de Vi y de g(Vi ) se proporciona el


valor del residuo ri estimado como:

R,340 364,61
ri = − − 1 · 104
Vi − 0,02664 Vi .(Vi + 0,02664) + 0,02664.(Vi − 0,02664)

A partir de este valor incial, el método de aproximaciones sucesivas nos propor-


ciona la siguiente tabla de valores (realizando iteraciones hasta que la distancia
entre dos valores consecutivos se hace inferior a 1.10−8 y |ri | < 10−5 ):

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.

Ejemplo 2.7. (Cortesı́a del Pr. E. Conde): Un generador de energı́a eléctrica de


polos salientes, similar a los habitualmente instalados en las centrales hidroeléctri-
cas, tiene como caracterı́sticas asignadas:
SN = Potencia aparente nominal = 15 MVA
VN = Tensión nominal = 13.6 kV
fN = frecuencia nominal = 50 Hz

63
Métodos generales para la resolución de una ecuación no lineal

Xd = reactancia sı́ncrona según eje directo = 0.91 por unidad


Xq = reactancia sı́ncrona según el eje de cuadratura = 0.76 por unidad
En un momento determinado el generador está entregando a la red eléctrica una
potencia activa de 10 MW, tenendo en bornes su tensión nominal (13.6 kV) y
una fuerza electromotriz interna E = 16,592 kV. Se desea encontrar el ángulo de
carga del generador (es decir el ángulo formado entre la tensión en bornes V y la
fuerza electromotriz E).
La fuerza electromotriz de un generador de polos salientes (despreciando la re-
sistencia interna) se puede expresar por:

E = V + i · Xd · Id + i · Xq · Iq

donde Id e Iq son respectivamente las intensidades según los ejes directo y de


cuadratura. Las potencias activa, P , y reactiva, Q, por unidad suministradas a
su vez se relacionan con la tensión en bornes, V , y con la fuerza electromotriz,
E, mediante las expresiones:

|V |2
 
|V | · |E| 1 1
P = · sen(δ) + · − · sen(2 · δ)
Xd 2 Xq Xd

cos(δ) sen2 (δ)


 
|V | · |E|
Q= · cos(δ) − |V |2 · +
Xd Xd Xq
considerando los valores nominales de la máquina resultará:

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

En otros términos se trata de encontrar una solución de la ecuación:

2
f (δ) = C1 · sen(δ) + C2 · sen(2 · δ) − =0
3
Para ello, puesto que:

f ′ (δ) = C1 · cos(δ) + 2 · C2 · cos(2 · δ)

utilizando el método de Newton, se tendrá que:

C1 · sen(δi ) + C2 · sen(2 · δi ) − 32
δi+1 = δi −
C1 · cos(δi ) + 2 · C2 · cos(2 · δi )

por lo que, partiendo de δ0 = 0 se tiene la siguiente tabla de valores:


Iteración δi f (δi )
1 0,428023270207 −0,0282916312890
2 0,448797366525 −0,193426752032 · 10−3
3 0,448941379375 −0,954971755910 · 10−8
4 0,448941386486 0,293818788744 · 10−16
por lo que el ángulo buscado será δ ∗ ≈ 0,448941386486 rad (≈ 25,72246o )

2.7. Algunos comentarios finales sobre los méto-


dos de resolución de una ecuación no lineal

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∗ )

y se buscan otras posibles raı́ces de la ecuación h(x) = 0.


7o ) Habitualmente, si una función f (x) tiene diferentes raı́ces, dependiendo del
punto de partida x0 con el que se arranque el proceso iterativo se podrá determinar
una u otra de ellas. Al conjunto de puntos que tomados como valor de arranque
del método iterativo conducen a la solución x∗ se le llama dominio (o cuenca)
de atracción de la raı́z k. Por ejemplo si f (x) = x2 − 41 es obvio que sus raı́ces
son ± 21 . Si se buscan las raı́ces de esta ecuación mediante el método de Newton

66
Algunos comentarios finales sobre los métodos de resolución de una
ecuación no lineal

puede comprobarse que:


a) Si x0 ≤ − 21 la solución que proporciona el método es x∗ = − 21
b) Si − 12 < x0 el método conduce a la solución x∗ = 12 .
Por ello para la ecuación considerada y para el método de Newton-Raphson el
dominio de atracción de la raı́z −1
2
es ] − ∞, − 21 ] y el de la raı́z 12 es ] −1
2
, ∞[.
Pero si la misma ecuación se intenta resolver mediante el método de aproxima-
ciones sucesivas utilizando el esquema iterativo:
1
xi+1 = x2i + xi −
4
se tiene que:
−3
a) Si x0 < 2
o x0 > 12 el método diverge
b) So x0 = −3
2
o x0 = 21 el método converge (en una iteración) a 1
2
−1
c) Para otros valores de x0 el método converge hacia 2

Por ello para la ecuación considerada y para el método de aproximaciones suce-


sivas el dominio de atracción de la raı́z −1
2
es ] −3
2 2
, 1 ] y el de la raı́z 12 es { −3 , 1 }.
2 2

8o ) Debido al comentario anterior es aconsejable buscar intervalos en los que la


función sólo tenga una raı́z y tome valores con signos alternos en los extremos del
intervalo, combinando los métodos de resolución con el método de bipartición. En
Press et al. [12] pueden encontrarse métodos de ”separación de raı́ces” (el proceso
de bracketing) que permiten buscar tales intervalos mediante la exploración de
los valores de la función en diferentes puntos. También en Press [12] pueden
encontrarse programas en FORTRAN 90 que recogen los métodos que hemos
presentado anteriormente combinándolos con el método de bipartición.
9o ) La existencia de raı́ces múltiples, como ya se señaló anteriormente, puede
ralentizar la aproximación hacia las raı́ces de una función. Pero no es este el
único inconveniente que tales raı́ces presentan. En efecto, si la multiplicidad de
una raı́z es elevada también puede tenerse la sensación de haber encontrado dicha
raı́z estando relativamente alejados de la función. Ası́ si en el proceso de búsqueda
de una raı́z x∗ de multiplicidad m de la función f (x) se tiene en un momento un
valor aproximado α, el valor de la función en α será: f (α) = (α−x∗ )m ·ϕ(α). Si α es
”próximo” a x∗ , aunque no lo suficientemente próximo como para que sea su raı́z,
y m es elevado el valor de f (α) puede ser, computacionalmente hablando, nulo
sin que esta sea la raı́z buscada. Un ejemplo para aclarar lo anterior (tomado de
Shampine & Allen & Pruess [13]) es aquel en el que x∗ es una raı́z de multiplicidad
10 y α−x∗ = 10−4 . En ese caso la precisión puede no ser la deseada y sin embargo:
f (α) = 10−40 · g(α) lo que implicarı́a que si se está trabajando en un ordenador
con precisión simple y |g(α)| < 1, el ordenador toma f (α) como 0 por lo que
”detecta” una raı́z en α.
10o ) Para evitar problemas como los anteriores, en ocasiones es util ”escalar” la
ecuación a resolver. Ello consiste simplemente en remplazar la ecuación f (x) = 0
por otra de la forma F (x) = s(x)·f (x) = 0 que admitirá, entre otras, las soluciones

67
Métodos generales para la resolución de una ecuación no lineal

de la ecuación inicial. La función s(x) debe ser escogida adecuadamente y se


denomina función de escala (o factor de escala cuando es una constante). Ello
puede contribuir a aumentar los valores de la función en las supuestas raı́ces.
Ası́, por poner un ejemplo obvio, si se desean encontrar raı́ces de la ecuación
10−38 ·cos(x) = 0, y se trabaja en un ordenador con precisión simple, la estimación
en cualquier punto x de la recta real del valor f (x) = 10−38 · cos(x) es siempre
nulo (pues en simple precisión no se pueden almacenar números tan pequeños).
En otros términos, en simple precisión cualquier valor real serı́a para el ordenador
solución de la ecuación dada. Si la ecuación se escala multiplicándola por 1038
se tiene ahora F (x) = cos(x) = 0 y sobre esta ecuación el ordenador ya puede
distinguir si se está en las cercanı́as de una raı́z o no.
No siempre es tan sencilo el proceso de ”escalar” ecuaciones. En Shampine & Allen
& Pruess [13] pueden encontrarse algunos ejemplos muy instructivos y simples a
este respecto.

68
CAPÍTULO 3

Métodos de resolución de
sistemas de ecuaciones no lineales

Los métodos de aproximaciones sucesivas, Newton-Raphson y sus variantes, pre-


sentados en el apartado anterior para el caso de una única ecuación pueden exten-
derse fácilmente al caso de sistemas de n ecuaciones no lineales con n incógnitas.
Este tipo de sistemas los escribiremos en la forma:

 

 f1 (x1 , x2 , ...., xn ) = 0 

f2 (x1 , x2 , ...., xn ) = 0
 

 ............................ 

fn (x1 , x2 , ...., xn ) = 0
 

o más brevemente como f (x) = 0 donde 0 es el vector nulo de n componentes, x


es un vector de IRn y f es la función vectorial dependiente de n variables reales
dada por:

f : IRn → IRn  

 f1 (x1 , x2 , ...., xn ) 

f2 (x1 , x2 , ...., xn )
 
x = (x1 , x2 , ..., xn )T → f (x) =

 ............................ 

fn (x1 , x2 , ...., xn )
 

Al igual que se indicó para el caso de un única ecuación, no debe confundirse


esta forma de representar el sistema de ecuaciones con el que la función f (x) sea
idénticamente nula. En efecto con la notación f (x) = 0 estaremos representando
de forma breve en este apartado el problema siguiente:
“Encontrar, si es posible, algún vector x∗ de IRn para el que se verifique que
f (x∗ ) = 0”

69
Métodos de resolución de sistemas de ecuaciones no lineales

3.1. El método de aproximaciones sucesivas para


sistemas de n ecuaciones no lineales
Este método se basa en el teorema del punto fijo. Para su aplicación, al igual que
en el caso de una ecuación, se transforma el sistema f (x) = 0 en otro equivalente
(es decir con las mismas soluciones, de la forma x = g(x). La forma de realizar
esta transformación no es única. Por ejemplo, si se suma el vector x en ambos
téminos del sistema se tendrá que:

x = x + f (x)

por lo que podrı́a tomarse g(x) = x + f (x).


Pero también podrı́a realizarse el proceso:

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:

x(i+1) = g(x(i) ) (i = 0, 1, 2, ....)

De esta forma se genera una sucesión de vectores {x(i+1) = g(x(i) )}∞


i=0 . Y según
el teorema del punto fijo se tiene el resultado 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

Demostración. Por ser D un cerrado de IRn será completo. Y por aplicación


directa del teorema de punto fijo, al ser g(x) una contracción para la norma k·k
se verificará que:
1o ) Sólo existirá un punto x∗ de D para el que x∗ = g(x∗ )
2o ) La sucesión {x(i+1) = g(x(i) )}∞ ∗
i=0 converge hacia x en el sentido de la
norma utilizada k·k.
Y si la sucesión converge para la norma k·k con la que se trabaja en IRn también
lo hará para cualquier norma k·k′ definida sobre IRn pues al ser IRn de dimensión
finita todas las normás sobre él definidas serán equivalentes.

Nota 3.1. Puesto que el sistema de ecuaciones x = g(x) es equivalente al sistema


f (x) = 0, en las condiciones del teorema anterior el método de aproximaciones
sucesivas converge hacia una solución x∗ del sistema f (x) = 0.

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.

El demostrar que una aplicación g(x) es una contracción, en el sentido de alguna


norma k·k, mediante la determinación de su constante de Lipschitz puede, en cier-
tas ocasiones, resultar algo laborioso. Por ello pueden contemplarse variantes más
restrictivas (pero más fácilmente aplicables en la práctica) del teorema anterior.
En ellas, asumiendo que todas las componentes de la función g(x) son derivables
en todos los puntos del dominio de trabajo, se utiliza la matriz Jacobiana de la
aplicación g(x), que denotaremos por [Jg (x)] y que recordemos que se definı́a
mediante:
 
∂g1 ∂g1 ∂g1
∂x1
(x) ∂x2
(x) ... ∂xn
(x)
∂g2 ∂g2 ∂g2
(x) (x) ... (x)
 
[Jg (x)] = 
 ∂x1 ∂x2 ∂xn 
... ... ... ... 


∂gn ∂gn ∂gn
∂x1
(x) ∂x2
(x) ... ∂xn
(x)

Con esta notación se tiene el siguiente teorema:

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:

∃k < 1 / k[Jg (x)]k ≤ k < 1 ∀x ∈ D



entonces la sucesión x(i+1) = g(x(i) ) i=0 generada, a partir de cualquier


x(0) ∈ D, converge hacia la única solución de la ecuación x = g(x) en


D.

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:

∀x, y ∈ D : ||g(x) − g(y)|| = k[Jg (z)] .(x − y)k ≤


≤ k[Jg (z)]k . kx − yk ≤ k · ||x − y|| < ||x − y||

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

Los dos teoremas precedentes establecen condiciones suficientes de convergencia


global del método sobre un dominio cerrado D (esto es independientemente del
punto x(0) ∈ D con el que se inicialice el proceso iterativo). Cuando se conozca
un cierto entorno de la solución buscada pueden establecerse resultados de con-
vergencia local (esto es para puntos x(0) suficientemente próximos a la solución).
Ası́ por ejemplo se tiene el siguiente teorema:

Teorema 3.3. Si existe una solución x∗ de la ecuación x = g(x) en


n
un dominio cerrado D en el que g(x) es de clase (C 1 (D)) y para
alguna norma matricial subordinada se verifica que k[Jg (x∗ )]k < 1,
entonces existe un valor δ > 0 tal que si, trabajando con la norma
vectorial asociada a la norma matricial anterior, se toma x(0) tal que

||x∗ − x(0) || < δ, entonces la sucesión x(i+1) = g(x(i) ) i=0 verifica que:


72
El método de aproximaciones sucesivas para sistemas de n ecuaciones no
lineales

a) ||x∗ − x(i) || < δ ∀x(i)


b) lı́m x(i) = x∗
i→∞

∂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:

k[Jg (x)]k ≤ k < 1 ∀x ∈ B(x∗ , ε)

Considerando un valor δ < ε se tendrá por tanto que:

k[Jg (x)]k ≤ k < 1 ∀x ∈ B ′ (x∗ , δ)

donde B ′ (x∗ , δ) es una bola cerrada de centro x∗ y radio δ.


Consecuentemente g(x) es una contracción en B ′ (x∗ , δ). Ello conduce a que:
 ∞
∀x(i) ∈ x(i) i=1 : x(i) − x∗ = g(x(i−1) ) − g(x∗ ) < k · x(i−1) − x∗ <

< k 2 · x(i−2) − x∗ < ..... < k i · x(0) − x∗ < k i · δ < δ
Por otra parte, al ser k < 1 bastará con escoger el ı́ndice i suficientemente elevado
para que todos los elementos de la sucesión con ı́ndice mayor que i sean tan
cercanos a x∗ como se desee. En otros términos x∗ = lı́m x(i) .
i→∞


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.

Los teoremas precedentes establecen condiciones suficientes para que el método


de aproximaciones sucesivas converja. De esta forma, si se verifican las hipótesis
de cualquiera de los teoremas anteriores, seleccionado el punto inicial x(0) , todo
consistirá en generar a partir de él x(1) = g(x(0) ), y a partir de este x(2) = g(x(1) ),
y ası́ sucesivamente. Tras hacer infinitas iteraciones alcanzarı́amos la solución
buscada. Pero, evidentemente, no pueden realizarse ”infinitas” iteraciones. Por
ello la cuestión que nos planteamos ahora es ¿cuántas iteraciones nos garantizarı́an
una precisión determinada?. La respuesta a este dilema nos la proporciona el
siguiente teorema:

Teorema 3.4. Siendo g(x) una contracción definida en el dominio


cerrado D la distancia (en el sentido de la norma vectorial con la
que se demuestre que g(x) es una contracción) entre la única solu-

ción
 (n) x de(n−1)
la ecuación
∞ x = g(x) y cualquier elemento de la sucesión
x = g(x ) n=0 , generada a partir de cualquier valor x(0) ∈ D,
está acotada mediante la expresió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.

Demostración. Véase la Nota 3.2 realizada tras la demostración del teorema


del punto fijo.

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)

Nota 3.7. Si no se conoce el valor exacto de la constante de Lipschitz de la apli-


cación puede estimarse de forma aproximada de diferentes maneras. Por ejemplo,
tras cada iteración del método podrı́a obtenerse una aproximación de dicha con-
stante estimando la norma de la matriz jacobiana en el último punto hallado.

En la práctica, en lugar de calcular a priori el número de iteraciones a realizar se


va estimando en cada iteración la distancia del punto en ella hallado a la solución
exacta. Esta estimación se realiza simplemente evaluando la diferencia entre las
dos últimas aproximaciones halladas que, cuando g(x) es una contracción, son
un indicador de la cercanı́a a la solución exacta en virtud del siguiente teorema:

Teorema 3.5. Siendo g(x) una contracción definida en el cerrado D


la distancia entre la única solución x∗ en D de la ecuación
∞ x = g(x)
(n) (n−1)
y cualquier elemento de la sucesión x = g(x ) n=0 , generada a
(0)
partir de cualquier punto x ∈ D, está acotada mediante la expresión:


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.

Demostración. Véase la Nota 3.2 realizada tras la demostración del teorema


del punto fijo.

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:

Algoritmo del método de aproximaciones sucesiva:

Dada la ecuación x = g(x), los indicadores de precisión ε y δ, un valor máximo


del número de iteraciones que se permiten realizar (maxiter) y un punto x(0) con
el que inicializar el proceso,
tolx ← 2 · ε
tolf ← 2 · δ
iteración ← 0
Mientras ( (iteración < maxiter) y ((tolx > ε) o (tolf > δ)), hacer:
x(1) ← g(x(0) )

tolx ← x(1) − x(0)

tolf ← g(x(1) ) − x(1)
iteración ← iteración + 1
x(0) ← x(1)
Fin bucle condicional.
Si ((tolx < ε) y (tolf < δ)) entonces:
tomar x(1) como solución
si no:
Escribir un mensaje de error en el proceso de cálculo
fin condición.
Fin del algoritmo.
Ilustremos el método que se acaba de describir mediante un ejemplo.

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:

ln(γ1∞ ) = 1 − ln(Λ12 ) − Λ21


ln(γ2∞ ) = 1 − ln(Λ21 ) − Λ12

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

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.
Por simplicidad denotaremos como x1 = Λ12 y como x2 = Λ21 . Con ello las
ecuaciones del modelo de Wilson se escriben como:

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 )

por lo que llamando:

1 − ln(γ2∞ ) − ln(x2 )
   
g1 (x1 , x2 )
g(x) = =
g2 (x1 , x2 ) 1 − ln(γ1∞ ) − ln(x1 )

puede intentarse el esquema iterativo:


       
(i) (i) ∞ (i)
 g1 x 1 , x 2   1 − ln(γ2 ) − ln x2 
x(i+1) (i)

=g x =   =  
 g2 x(i)
1 , x
(i)
2
  1 − ln(γ ∞
1 ) − ln
(i)
x1 

Obsérvese que:
 −1 
0 x2
[Jg (x)] = −1
x1
0

por lo que sus valores propios serán:


r
1
x1 · x2

lo que nos indica que si x11.x2 ≥ 1 la convergencia del método no estará asegu-

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 . . .

sucesión de vectores en la que sus componentes forman sucesiones oscilantes que


divergen. Por tanto esta elección de la función g(x) no es adecuada para la resolu-
ción del sistema de ecuaciones. Puede observarse que para los valores que se van
obteniendo, el radio espectral de la matriz jacobiana va tomando valores mayores
que 1 (para los vectores en que sus componentes son menores que 1) y menores
que 1 (para los vectores en que sus componentes son mayores que 1). Por tanto
ninguno de los teoremas anteriores nos garantiza la convergencia.
En su lugar puede procederse de la forma siguiente:

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 )

Con esta nueva forma de proceder la matriz Jacobiana será:


   
1
1 α − x1 −1
[Jg (x)] = ·    
α −1 α − x12

La norma-1 de la matriz Jacobiana será por tanto:


 
1 1 1
k[Jg (x)]k1 = · M áx α − + 1, α − + 1

α x1 x2

Restringiéndonos a valores de α positivos, para que α1 · ( α − x1 + 1) sea inferior
a 1 se debe verificar que:


α − 1
+ 1 < α =⇒ x < 1
x

77
Métodos de resolución de sistemas de ecuaciones no lineales

lo que asegura que k[Jg (x)]k1 es menor que 1 siempre que:

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 . . .

por lo que x∗1 = x∗2 ≈ 0,956930178.


Caso b): En este caso el sistema a resolver será:

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 )

Tomando para α el valor 4 (dejamos al lector la justificación de qué valores serı́an


admisibles para este parámetro) el esquema iterativo a seguir se reduce a:

(i+1) (i) (i) (i)


x1 = 14 · (1 + 4 · x1 − ln(7,20) − ln(x1 ) − x2 )
(i+1) (i) (i)
x2 = 41 · (1 + 4 · 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

... ... ...


 
(45) 0,162447
x =
0,843320
 
(46) 0,162447
x =
0,843321

momento en el que detenemos el proceso iterativo al verificarse que la norma del


vector diferencia entre las dos últimas aproximaciones es inferior a 10−6 .
Como puede apreciarse, con la función vectorial:

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 )

el método de aproximaciones sucesivas nos ha conducido a la solución buscada


.... pero en un número relativamente elevado de iteraciones. Conocida la solución,
podemos comprobar (a posteriori) que en ella la norma-1 de la matriz Jacobiana
toma un valor de 0,9535 es decir relativamente próximo a 1. Ello nos puede
hacer pensar que quizás otras formas de determinar la función g(x) podrı́an ser
más ventajosas. En efecto, las ecuaciones dadas pueden manipularse de la forma
siguiente:

ln(γ1∞ ) = 1 − ln(x1 ) − x2 0 = ln(e) − (ln(γ1∞ ) + ln(x1 )) − x2


   
⇔ ⇔
ln(γ2∞ ) = 1 − ln(x2 ) − x1 0 = ln(e) − (ln(γ2∞ ) + ln(x2 )) − x1
   
 0 = ln ∞e
( )
γ1 ·x1
− x 2
 1 = γ ∞e·x1 .e−x2
⇔   ⇔ 1
e −x1 ⇔
 0 = ln ∞e − x 1
 1 = γ ∞ ·x .e
2
γ ·x2 2
(2 1
)
x1 = g1 (x1 , x2 ) = γ ∞ ·e(x2 −1)
⇔ 1
1
x2 = g2 (x1 , x2 ) = γ ∞ ·e(x 1 −1)
2

79
Métodos de resolución de sistemas de ecuaciones no lineales

Con ello la matriz Jacobiana ahora será:

−1
" #
0 γ2∞ ·e(x1 −1)
[Jg (x)] = −1
γ1∞ ·e(x2 −1)
0

por lo que en el punto fijo de la aplicación g(x) tomará la expresión:


" −1 #
0 ∗
γ2∞ ·e(x1 −1)
[Jg (x∗ )] = −1
∗ 0
γ1∞ ·e(x2 −1)

que sustiyuyendo los valores correspondientes a este caso se convierte en:


 
∗ 0 −0,427
[Jg (x )] =
−0,321 0

por lo que la norma-1 de la matriz jacobiana en la solución es 0,427 valor inferior


al que antes obtuvimos y que demuestra que se tendrá una mayor velocidad de
convergencia (al menos en un entorno de la raı́z). En efecto, aplicando el esquema
iterativo:
 
(i+1) 1
 x1
 = (i)


γ1∞ ·e(x2 −1)

(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

deteniéndose el proceso iterativo en la 16a iteración al ser el valor de la norma-


1 del vector diferencia entre las aproximaciones de las dos últimas iteraciones

80
Una variante del método de aproximaciones sucesivas

inferior a 10−6 y ser el valor de

−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

por tanto también inferior (en norma-1) a 10−6 .


Aún podrı́a mejorarse la velocidad de convergencia en este caso modificando el
esquema iterativo según la variante del método que se presenta a continuación.

3.2. Una variante del método de aproximaciones


sucesivas
En el método de aproximaciones sucesivas que se ha descrito anteriormente se
sigue el esquema iterativo:
 (i+1) (i) (i) (i) (i) (i) (i)


 x1 = g1 (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn ) 

 (i+1) (i) (i) (i) (i) (i) (i) 
x2 = g2 (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn )

 


 

... ... ...
 
(i+1) (i) (i) (i) (i) (i) (i) (i = 0, 1, . . .)


 xj = gj (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn ) 




 ... ... ... 


 (i+1)
 (i) (i) (i) (i) (i) (i)

xn = gn (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn )

(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:

(i+1) (i) (i) (i) (i) (i) (i)


 

 x1 = g1 (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn ) 

 (i+1) (i+1) (i) (i) (i) (i) (i) 
x2 = g2 (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn )

 


 

... ... ...
 
(i+1) (i+1) (i+1) (i+1) (i) (i) (i) (i = 0, 1, . . .)


 xj = gj (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn ) 




 ... ... ... 


(i+1) (i+1) (i+1) (i+1) (i+1) (i+1) (i)
 
xn = gn (x1 , x2 , . . . , xj−1 , xj , xj+1 , . . . , xn )
 

Por la anlogı́a entre esta forma de proceder y la que se sigue en el método de


Gauss-Seidel para la resolución de sistemas algebraicos de ecuaciones lineales este
método se conoce, en algunos textos, con el nombre de método de Gauss-Seidel,
aunque más adelante, como variante del método de Newton, presentaremos otro
método también designado con este nombre.

81
Métodos de resolución de sistemas de ecuaciones no lineales

Hemos de advertir no obstante que, pese a lo “razonable” que parece el razo-


namiento seguido para derivarlo, no siempre funciona mejor esta variante del
método que el método clásico de aproximaciones sucesivas pues con él se puede
estar modificando la función g(x) de la iteración empeorando su constante de
Lipschitz.
Un ejemplo, en el que se acelera la convergencia actuando con la variante que
acabamos de presentar, es el del problema propuesto por el Pr. B. Coto que
conduce al sistema utilizado en el ejemplo antes resuelto. En efecto en ese caso
el método de aproximaciones sucesivas nos conducı́a al esquema:

 
(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

en el que se puede apreciar que el valor de cada incógnita se va aproximando con


el que se obtuvo para la aproximación de dicha incógnita dos iteraciones antes.
Parece que de esta forma se están generando, para cada variable, dos sucesiones
independientes que convergen ambas en el mismo punto. Por ello puede procederse
según el esquema:

 
(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

Aplicado este esquema iterativo a nuestro problema en cuestión, inicializado con


(0) (0)
los valores x1 = x2 = 0,956 se tienen los vectores:

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

habiéndose obtenido la misma solución en la mitad de iteraciones que antes.

3.3. El método de Newton-Raphson para sis-


temas de n ecuaciones no lineales
Considérese nuevamente el sistema de n ecuaciones no lineales con n incógnitas
representado por
 

 f1 (x 1 , x 2 , . . . , x n ) = 0 

f2 (x1 , x2 , . . . , xn ) = 0
 
f (x) = 0 ⇐⇒

 ... ... ... 

fn (x1 , x2 , . . . , xn ) = 0
 

Al igual que se hizo en el caso de una variable, supongamos que en un dominio


cerrado D ⊂ IRn f (x) es una función de clase (C 2 (D))n . Y supongamos además
que la ecuación anterior admite una solución x∗ en el dominio D. Para cualquier
otro vector x(0) ∈ D , denotando por δx al vector tal que x∗ = x(0) + δx, la
expresión del desarrollo en serie de Taylor nos permitirı́a afirmar, para cada una
de las ecuaciones del sistema, que existen valores θj ∈ [0, 1] (j = 1, 2, .., n) tales
que:

83
Métodos de resolución de sistemas de ecuaciones no lineales

0 = fj (x∗ ) = f (x(0) + δx) =


T 1
= fj (x(0) ) + ∇fj (x(0) ) · δx + · {δx}T · Hfj (x(0) + θj · δx) · δx
  
2
 
donde Hfj (x) es la matriz hessiana de la función fj (x).
Si conocido x(0) se fuese capaz de determinar δx resolviendo el sistema formado
para j = 1, 2, .., n, por las ecuaciones:
T 1
fj (x(0) ) + ∇fj (x(0) ) · δx + · {δx}T · Hfj (x(0) + θj · δx) · δx = 0
  
2

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:

f (x(0) ) + Jf (x(0) ) · ∆x(0) = 0


 

del que se obtiene que:


−1
∆x(0) = − Jf (x(0) ) · f (x(0) )


Obviamente, al ser diferente el sistema linealizado que el proporcionado por el


desarrollo de Taylor, se tendrá que ∆x(0) 6= δx y por tanto x∗ = x(0) +δx 6= x(1) =
x(0) + ∆x(0) . De una forma intuitiva (que después deberemos precisar cuándo es
correcta) puede pensarse que aunque x(1) sea diferente de x∗ será un vector más
próximo a x∗ que x(0) pues lo hemos obtenido ”aproximando” el valor δx que nos
llevaba de x(0) a x∗ . Con ello el método de Newton-Raphson propone repetir este
proceso de forma recursiva hasta estar lo suficientemente cercanos a la solución
buscada. Más concretamente el método de Newton-Raphson consiste en:
Dado un vector x(0) , generar la sucesión:
n −1 o∞
x(i+1) = x(i) − Jf (x(i) ) · f (x(i) )

.
i=0

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:

g(x) = x − [Jf (x)]−1 · f (x)

estamos en presencia de un caso particular del método de aproximaciones suce-


sivas antes contemplado en el aparatado 1.4.1.. En otros términos, se tiene la
siguiente propiedad:

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.

Demostración. Es un caso particular de los teoremas de convergencia del méto-


do de aproximaciones sucesivas.

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:

Lema 3.1. Siendo f : D → D una aplicación de clase (C 1 (D))n y siendo


D un cerrado de IRn , si existe una constante estrictamente positiva α
tal que para alguna norma vectorial y para la norma matricial a ella
subordinada se verifique:

k[Jf (x)] − [Jf (y)]k ≤ α · kx − yk ∀x, y ∈ D

entonces se verifica también que:

α
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

Esta función, habida cuenta de las hipótesis realizadas sobre f es derivable ∀t ∈


[0, 1]. Ası́, denotando por z = y + t · (x − y) se tiene que:

dq f (y + (t + ∆t) · (x − y)) − f (y + t · (x − y))


q′ (t) = (t) = lı́m =
dt ∆t→0 ∆t
f (z + ∆t · (x − y)) − f (z)
= lı́m = [Jf (z)] .(x − y)
∆t→0 ∆t

de donde:

kq′ (t) − q′ (0)k = k[[Jf (z)] − [Jf (y)]] · (x − y)k ≤


≤ k[[Jf (z)] − [Jf (y)]]k · kx − yk =
= k[[Jf (y+t·(x − y))] − [Jf (y)]]k · kx − yk ≤
≤ α · t · kx − yk2

Esta desigualdad, a su vez, puede utilizarse en el proceso siguiente:

kf (x) − f (y) − Jf (y) · (x − y)k = kq(1) − q(0) − q′ (0)k =


Z 1 Z 1
′ ′
kq′ (t) − q′ (0)k .dt ≤

= (q (t) − q (0)).dt ≤

0 0
Z 1
α
≤ α · t · kx − yk2 .dt = · kx − yk2
0 2

Nota 3.8. El que se verifique la hipótesis del lema precedente:

∃α ∈ IR+ / k[Jf (x)] − [Jf (y)]k ≤ α · kx − yk ∀x, y ∈ D

se expresa diciendo que la matriz Jacobiana es lipschitciana de razón α en D para


la norma k·k.

Con ayuda de este lema puede procederse a presentar y demostrar el siguiente


teorema:

Teorema 3.6. Siendo D un cerrado de IRn y siendo f : D → D una


aplicación de clase (C 1 (D))n para la que, utilizando alguna norma
vectorial y para la norma matricial a ella subordinada, se verifican
las dos hipótesis siguientes:
a) ∃α ∈ IR+ / k[Jf (x)] − [Jf (y)]k ≤ α · kx − yk ∀x, y ∈ D
b) ∃β ∈ IR+ / [Jf (x)]−1 < β

∀x ∈ D

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

Demostración. Se tiene que:

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:

f (x(i) ) = − Jf (x(i) ) · x(i+1) − x(i)


  

se tiene, utilizando el lema precedente, 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:

Teorema 3.7. Siendo D un cerrado de IRn y siendo f : D → D una


aplicación de clase (C 1 (D))n para la que, utilizando alguna norma

87
Métodos de resolución de sistemas de ecuaciones no lineales

vectorial y para la norma matricial a ella subordinada, se verifican


las dos hipótesis siguientes:
a) ∃α ∈ IR+ / k[Jf (x)] − [Jf (y)]k ≤ α · kx − yk ∀x, y ∈ D
b) ∃β ∈ IR+ / [Jf (x)]−1 < β

∀x ∈ D
n −1 o∞
entonces para la sucesión x(i+1) = x(i) − Jf (x(i) ) · f (x(i) )

obteni-
i=0
da a partir de cualquier vector x(0) ∈ D para el que se verifique la
condición

2 (0) −1 (0)

c) ∃µ < α·β ∈ IR+ / J (x ) · f (x ) ≤µ

f
n o∞
∗ (i+1) (i) (i) −1 (i)
 
existe el lı́mite x de la sucesión x = x − Jf (x ) · f (x )
i=0
que es una raı́z del sistema f (x) = 0 en D y se verifica que:
i
(i+1)
x ∗
r2 −1
−x ≤ ·µ
1 − r2i
α·β·µ
donde r = 2
< 1.

Demostración. Por aplicación directa del teorema anterior:

(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) )


utilizando la hipótesis c) resultará que:

i
x − x(0) 2 ≤ µ2i
(1)

de donde:

(i+1) i i i
− x(i) ≤ C (2 −1) · µ2 = r(2 −1) · µ

x

donde se ha denotado por r a: r = α·β·µ


2
< 1. Ello demuestra que, bajo las hipótesis
del teorema, en la sucesión formada mediante el método de Newton-Raphson la

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) ≤

≤ ... ≤ x(j+1) − x(j) + x(j) − x(j−1) + .... + x(i+1) − x(i) ≤



(j+1)  2j −1
(i) 2(j−1) −1 2(i+1) −1 2i −1

x −x µ· r +r + ..... + r +r =
 j (j−1) (i+1) i

= µ · r−1 · r2 + r2 + ..... + r2 + r2

y como para cualquier entero k se tiene que:

 2(k−i)
2k 2i ·2(k−i) 2i
r =r = r

resultará:

(j+1)  j (j−1) (i+1) i



− x(i) ≤µ · r−1 · r2 + r2 + . . . + r2 + r2 =

x
  (j−i)   (j−i−1) 
2 2  i 2
−1 2i 2i 2 2i
=µ·r · r + r + ... + r +r =
  i 3  i 7  i 2(j−i) −1 
(2i −1) 2i 2 2
=µ·r · 1+r + r + r + . . . + r2

y, puesto que r < 1, se tiene que:

  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

lo que acaba de demostrar el teorema.

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:

Algoritmo del método de Newton-Raphson para sistemas

Dado el sistema de ecuaciones no lineales f (x) = 0, los indicadores de precisión ε y


δ, un valor máximo del número de iteraciones que se permiten realizar (maxiter)
y un vector x con el que inicializar el proceso,
tolx ← 2 · ε
tolf ← 2 · δ
iteración ← 0
Mientras ( (iteración < maxiter) y ((tolx > ε) o (tolf > δ) ), hacer:
Evaluar la matriz [Jf (x)]
Resolver el sistema de ecuaciones lineales: [Jf (x)] · δx = f (x)
Si (el sistema no puede resolverse) entonces:
Escribir mensaje de error (jacobiana singular) y
finalizar el proceso
si no:

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.

Ilustremos el funcionamiento del método con un ejemplo.

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:

K1 = 2,35 · e−3 , K2 = 4,67 · e−3 , K3 = 3,72 · e−2


p1 = 75 psi , p3 = 20 psi , p4 = 15 psi

Se desea estimar la presión p2 existente en el punto P2 ası́ como los caudales

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:

2,35 · e−3 · Q1,75 − 75 + p2 = 0


4,67 · e−3 · Q1,75
1 + 20 − p2 = 0
−2 1,75
3,72 · e · Q2 + 15 − p2 = 0
Q − Q1 − Q2 = 0

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:

2,35 · e−3 · (Q1 + Q2 )1,75 − 75 + p2 = 0


4,67 · e−3 · Q1,75
1 + 20 − p2 = 0
−2 1,75
3,72 · e · Q2 + 15 − p2 = 0

Este nuevo sistema ya sólo tiene 3 ecuaciones con 3 incógnitas. En él la función
que define el sistema es:

 2,35 · e−3 · (Q1 + Q2 )1,75 − 75 + p2 


 

f (Q1 , Q2 , p2 ) = 4,67 · e−3 · Q1,75


1 + 20 − p2
−2 1,75
3,72 · e · Q2 + 15 − p2
 

y la matriz jacobiana puede escribirse como:

(0,205 · (Q1 + Q2 )0,75 ) (0,205 · (Q1 + Q2 )0,75 )


 
1
[Jf (Q1 , Q2 , p2 )] =  0,407 · Q0,75
1 0 −1 
0,75
0 0,881 · Q2 −1

En cuanto a los valores de partida para inicializar el método, puesto que P2


es un punto intermedio entre P1 y los extremos P3 y P4, tomaremos como p2
una presión intermedia, por ejemplo p2 = 50 psi. Para los caudales Q1 y Q2 no
se dispone de ninguna pista que nos indique en qué entorno pueden estar. No
obstante, si se considera p2 = 50, de la segunda ecuación se tiene que Q1 ≈ 16 y,
de la tercera ecuación, que Q2 ≈ 7 por lo que estos pueden ser valores coherentes
con la presión tomada para inicializar el proceso.

92
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton

Aplicando pues el algoritmo de Newton-Raphson antes descrito a esta situación,


n oT
−6 −6 (0) (0) (0)
con los parámetros: ε = 10 , δ = 10 , máx iter = 100, Q1 , Q2 , p2 =
{16, 7, 50} se tiene la siguiente sucesión de vectores:
 
(1)  
 Q1
 
  14,0506076 
(1)
Q2 = 10,4943950
 p(1)
 
 
43,4152926

2

 
(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
 

La solución buscada por tanto es: Q1 = 14,1355467, Q2 = 10,1303043, Q =


Q1 + Q2 = 24,265851 y p2 = 43,9596517 psi.

3.4. Variantes del método de Newton-Raphson


para sistemas: método de Newton modifi-
cado y métodos de cuasi-Newton
El paso más costoso de la aplicación del método de Newton-Raphson consiste en
(i)
 
la evaluación en cada iteración de la matriz jacobiana Jf (x ) (lo cual conlleva
un número de n2 evaluaciones de las funciones derivadas parciales primeras, que
a su vez implicarán un número de operaciones elementales que  dependerá de las
 
(i) −1
expresiones de estas derivadas parciales) y de su inversión Jf (x ) o lo
que es equivalente de la resolución del sistema lineal de ecuaciones algebraicas

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 )
 

operaciones, siendo n el número de incógnitas y ecuaciones del sistema y λ un


parámetro menor o igual a (2/3) dependiendo de la estructura de la matriz ja-
cobiana. Ello permite estimar el número de operaciones elementales en cada ite-
ración como un valor proporcional a n3 lo cual, cuando n toma valores elevados
puede representar un coste computacional grande.
Para intentar solventar este problema de la aplicación práctica del método de
Newton-Raphson se han desarrollado numerosos métodos que, con mayor  o mejor
fortuna según el sistema alque se aplique, tratan de aproximar ya sea Jf (x(i) )

−1
o su inversa Jf (x(i) )

. Entre ellos señalamos los siguientes:

3.4.1. Aproximación de las derivadas parciales mediante


diferencias finitas
En esta variante del método los valores de las derivadas que intervienen en la
expresión de la matriz jacobiana se aproximan mediante fórmulas en diferencias
finitas como por ejemplo:

∂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

3.4.2. Método de Newton modificado


Esta variante consiste en utilizar durante la k primeras iteraciones (siendo k un
número a predeterminar por el usuario  del método) como aproximación de la
matriz tangente la matriz Jf (x(0) ) . Con ello en estas k iteraciones sólo se
realiza una vez el cálculo de la matriz jacobiana y de su inversa (y si se optase
por la resolución del
 sistema Jf (x(0) ) · δx(i) = f (x(i) ) bastará con factorizar
una vez la matriz Jf (x(0) ) en la primera iteración y conservar las matrices de


la factorización). Realizadas estas k primeras iteraciones se calcula Jf (x(k) ) y


se utiliza esta matriz en las k siguientes iteraciones tras las cuales se vuelve a
actualizar obteniéndose Jf (x(2·k) ) y continuando ası́ el proceso.


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.

3.4.3. Método de Jacobi

En este método la matriz tangente que interviene en cada iteración Jf (x(i) ) se


 

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) )

se utilizará el esquema iterativo:

−1
x(i+1) = x(i) − Df (x(i) ) · f (x(i) )

(i = 0, 1, ...)

Esta forma de proceder efectivamente reduce de forma notable el número de


operaciones (sólo conlleva evaluar n funciones derivadas en lugar de n2 y además
la inversión de una matriz diagonal sólo implica n operaciones). Pero sólo es válida
si los elementos no diagonales de la matriz jacobiana son ”pequeños” comparados
con los términos diagonales.

3.4.4. Método de Gauss-Seidel


En esta variante del método de Newton-Raphson, la matriz tangente de cada
iteración es sustituida por otra triangular inferior en la que los elementos de
la diagonal y los que están por debajo de ella  coinciden con los de la matriz
(i)
jacobiana. Más concretamente, siendo Gf (x ) la matriz:

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 )

el esquema que se emplea es:

−1
x(i+1) = x(i) − Gf (x(i) ) · f (x(i) )

(i = 0, 1, ...)

En esta variante del método de Newton-Raphson también se reduce de forma


notable el número de operaciones (sólo conlleva evaluar (n.(n + 1)/2) funciones
derivadas en lugar de n2 y además la inversión de una matriz triangular sólo im-
plica del orden de n2 operaciones). Pero también su lı́mite de validez lo marcará la
pequeñez de los términos que se están despreciando en la matriz tangente.

3.4.5. Métodos de sobrerrelajación (SOR)


Con la misma notación empleada en la descripción de los métodos de Jacobi y
de Gauss-Seidel, este método consiste en utilizar el esquema:

−1
x(i+1) = x(i) − ρ · Df (x(i) ) + Gf (x(i) ) · f (x(i) )

(i = 0, 1, ...)

donde ρ es un parámetro que debe fijarse de antemano llamándose parámetro de


1
relajación al valor ω = (1+ρ) . La matriz a invertir también es ahora triangular
inferior por lo que el número de operaciones es similar al del método de Gauss-
Seidel (que no es más que un caso particular de este cuando a ω se le da el valor 1).
Pueden encontrarse detalles sobre las condiciones de convergencia de este método
(y del de Gauss-Seidel) en J.M. Ortega & W.C. Rheinboldt [11].

3.4.6. Métodos de cuasi-Newton: Método de Broyden


Este tipo de métodos generalizan al caso de sistemas el método de la secante
estudiado para una única ecuación. La idea de la que parten consiste en aproximar
la matriz jacobiana en cada iteración a partir de la matriz tangente utilizada en la
iteración anterior. La primera iteración del método se realiza como en el método
de Newton pero a partir de la segunda iteración la matriz jacobiana Jf (x(i) )
matriz A(i) que se obtiene a partir de A(i−1) , (siendo
  
es
 sustituida por otra
A(0) = Jf (x(0) ) ) y siguiéndose el esquema iterativo:
  

−1
x(i+1) = x(i) − A(i) · f (x(i) )

(i = 0, 1, ...)

El más popular de este tipo de métodos es el conocido como método de Broyden


que a continuación describimos. Este método se inspira en el método de la secante
donde recordemos que el valor de f ′ (xi ) se aproximaba mediante la expresión:

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

Obsérvese que de la expresión anterior se tiene que:

fi′ .(xi − xi−1 ) = f (xi ) − f (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:

A(i) · (x(i) − x(i−1) ) = f (x(i) ) − f (x(i−1) )


 
(3.1)

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:

f (x) ≈ f (x(i) ) + Jf (x(i) ) · (x − x(i) )


 
(3.2)

f (x) ≈ f (x(i−1) ) + Jf (x(i−1) ) · (x − x(i−1) )


 
(3.3)

de donde restando (3.3) a (3.2) se tendrá que:

f (x(i) ) + Jf (x(i) ) · (x − x(i) ) − f (x(i−1) ) − Jf (x(i−1) ) · (x − x(i−1) ) ≈ 0 (3.4)


   

Obviamente el razonamiento anterior sólo tendrá validez para puntos suficiente-


mente cercanos. Es decir que si los vectores x(i) , x(i−1) se suponen generados por
el método de Newton, el razonamiento anterior sólo será válido en las cercanı́as
de la solución y para vectores x también próximos a la solución.
En el método propuesto por Broyden las aproximaciones del vector solución se
buscan en la forma:

x(i+1) = x(i) − A(i) · f (x(i) )


 

sustituyéndose la matriz jacobiana por A(i) . Por ello, junto a (3.1), Broyden
 

impone la condición de que se minimice para cualquier vector x ∈ IRn (y en el


sentido de cualquier norma) el vector:

f (x(i) ) + A(i) · (x − x(i) ) − f (x(i−1) ) − A(i−1) · (x − x(i−1) )


   

97
Métodos de resolución de sistemas de ecuaciones no lineales

que puede escribirse de forma equivalente como:

f (x(i) ) − f (x(i−1) ) − A(i) · (x(i) − x(i−1) ) + A(i) − A(i−1) · (x − x(i−1) ) (3.5)


   

Si en (3.5) se introduce la primera condición impuesta (3.1) se obtiene finalmente


que debe minimizarse el vector:

A(i) − A(i−1) · (x − x(i−1) )


 

El vector (x − x(i−1) ) puede a su vez expresarse como suma de un vector propor-


cional a (x(i) − x(i−1) ) más otro vector ortogonal a este es decir en la forma:

(x − x(i−1) ) = α · (x(i) − x(i−1) ) + v =α · u(i) + v

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
    

El primer sumando de la expresión anterior es fijo pues por la condición (3.1)


tomará el valor:

α · A(i) − A(i−1) .u(i) = α · (f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i) )


   

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) ⇒
  

b · (u(i) )T · 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

Siendo la anterior la expresión del vector de proporcionalidad b se tiene que:

98
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton

f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i) · (u(i) )T


  
 (i)   (i−1) 
A = A +
(u(i) )T · u(i)
La evaluación de la expresión anterior, por ”aparatosa” que parezca no esexce-
sivamente costosa. En ella debe estimarse en primer lugar el vector A(i−1) · u(i)
para lo que se realizan (2 · n2 ) operaciones; tras ello se calcula el vector dado por

f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i)


  

lo que implica realizar otras (2 · n) operaciones; posteriormente se evaluará el


producto:

f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i) · (u(i) )T


  

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)

lo que necesita nuevamente del orden n2 operaciones. En resumen el método exige


del orden de O(4 · n2 ) operaciones.
Ahora bien, poco habrı́amos ganado en−1número de operaciones si no se encuen-
tra una forma eficaz de calcular A(i) pues recordemos que en el método de
Broyden se realiza la operación:

−1
x(i+1) = x(i) − A(i) · f (x(i) )


y el proceso de inversión nos devolverı́a a un rango de operaciones de O(n3 ). Afor-


tunadamente, la inversión también puede realizarse manteniéndose en el orden
de operaciones de O(n2 ) utilizando la expresión de Sherman-Morrison-Woodbury
que se recoge en la proposición siguiente:

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

Comprobemos que esta matriz es efectivamente la inversa de [A] + v · uT . Para




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

Para aplicar la expresión de Sherman-Morrison-Woodbury a la expresión:

f (x(i) ) − f (x(i−1) ) − A(i−1) · u(i) · (u(i) )T


  
(i)
   (i−1) 
A = A +
(u(i) )T · u(i)

suponiendo que A(i−1) es regular, denotemos por ∆(i) f = f (x(i) ) − f (x(i−1) ) y


 

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

por lo que finalmente:

100
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton

 (i−1) −1 −1


· w(i) · (u(i) )T · A(i−1)

 (i) −1
  (i−1) −1
 A
A = A − −1 =
1 + (u(i) )T · [A(i−1) ] · w(i)
 (i−1) −1 1
−1
· ∆(i) f − A(i−1) · u(i) · (u(i) )T · A(i−1)
   
−1 A · ||u(i) ||2
(i−1)
 
= A − −1 1
=
1 + (u ) · [A(i−1) ] · ||u(i)
(i) T
||2
· (∆(i) f − [A(i−1) ] · u(i) )
 
(i−1) −1 (i) (i)
−1
· (u(i) )T · A(i−1)
 
 (i−1) −1 A · ∆ f − u
= A − −1 =
||u(i) ||2 + (u(i) )T · [A(i−1) ] · ∆(i) f − (u(i) )T · u(i)
  (i−1) −1  −1
(i)
· ∆ f · (u(i) )T · A(i−1)
(i)

 (i−1) −1 u − A
A + −1
(u(i) )T · [A(i−1) ] · ∆(i) f

Examinemos el orden del número de operaciones


 (i−1) −1que (i)
conlleva la aplicación de
la fórmula anterior (supuestos conocidos A , ∆ f = f (x(i) ) − f (x(i−1) ) y
u(i) = (x(i) − x(i−1) )). El cálculo de

−1
(z(i) )T = (u(i) )T · A(i−1)


implica realizar (2 · n2 ) operaciones elementales. El cálculo de

−1
y(i) = A(i−1) · ∆(i) f


implica otras (2 · n2 ) operaciones. La estimación de

r(i) = u(i) − y(i)




conlleva n operaciones elementales más. La determinación de la matriz del nu-


merador:

 (i)  T
M = r(i) · z(i)

se realiza con n2 operaciones elementales adicionales. El cálculo del denominador

α(i) = (z(i) )T · ∆(i) f


−1
exige realizar otras 2 · n operaciones elementales. El multiplicar el escalar α(i)
por las componentes de la matriz M(i) , estimando la matriz [∆A(i) ], conlleva
−1
otras n2 operaciones elementales más. Finalmente el sumar A(i−1) y [∆A(i) ]

 (i) −1
para obtener A se puede realizar con n2 operaciones elementales. En total
se realizan por tanto: 7 · n2 + 3n ∼ O(7 · n2 ) operaciones en cada iteración.
Comparando las operaciones que se realizan en cada iteración del método de
Newton (O( 23 ·n3 )) con las necesarias en cada iteración de este método, se concluye

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:

Algoritmo del método de Broyden para sistemas no lineales

Dado el sistema de ecuaciones no lineales f (x) = 0, los indicadores de precisión ε y


δ, un valor máximo del número de iteraciones que se permiten realizar (maxiter)
y un vector x con el que inicializar el proceso,
iteración ← 1
v ← f (x)
Evaluar la matriz [Jf (x)]
Evaluar la matriz [A] = [Jf (x)]−1
Calcular u = − [A] · v
Calcular x ← x + u
w ← f (x)
tolx ← ||u||
tolf ← ||w||
Mientras ( (iteración < maxiter) y ((tolx > ε) o (tolf > δ) ), hacer:
δf ← w − v
v←w
z ← [A]T · u
y ← [A] · δf
r←u−y
α ← zT · δf
1
[A] ← [A] + α
· r · zT
u ← −[A] · v
x←x+u
w ← f (x)
tolx ← ||u||
tolf ← ||w||
iteración ← iteración + 1
Fin bucle condicional.
Si ((tolx < ε) y (tolf < δ) ) entonces:

102
Variantes del método de Newton-Raphson para sistemas: método de
Newton modificado y métodos de cuasi-Newton

tomar x como solución


si no:
Escribir un mensaje de error en el proceso de cálculo
Fin condición.
Fin del algoritmo.
Apliquemos el algoritmo anterior al ejemplo considerado anteriormente para ilus-
trar el método de Newton, es decir a la resolución del sistema de ecuaciones:

 2,35 · e−3 · (Q1 + Q2 )1,75 − 75 + p2   0 


   

f (Q1 , Q2 , p2 ) = 4,67 · e−3 · Q1,75


1 + 20 − p2 = 0
3,72 · e−2 · Q1,75 + 15 − p 0
   
2 2

cuya matriz jacobiana está dada por:

(0,205 · (Q1 + Q2 )0,75 ) (0,205 · (Q1 + Q2 )0,75 )


 
1
[Jf (Q1 , Q2 , p2 )] =  0,407 · Q0,75
1 0 −1 
0,75
0 0,881 · Q2 −1

Comenzaremos el proceso con los mismos valores iniciales que utilizamos en el


método de Newton, es decir:
n oT
(0) (0) (0)
x(0) = Q1 , Q2 , p2 = {16, 7, 50}T

La primera iteración del método de Broyden coincide con la de Newton por lo


que en ella se tiene que:
 
 3,2623408 
v = f (16, 7, 50) = −2,3928201
−19,8338430
 

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
 

siendo la nueva aproximación del vector solución:


 
 14,0506076 
x(1) = x(0) + u = 10,4943950
43,4152926
 

103
Métodos de resolución de sistemas de ecuaciones no lineales

y el valor de las componentes de la función que define el sistema en este punto:


 
 8,323233 · 10−2 
w = f (x(1) ) = 2,929796 · 10−1
2,3902906
 

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
 

pasando a actualizar el vector v mediante:


 
 8,323233 · 10−2 
v = w = f (x(1) ) = 2,929796 · 10−1
2,3902906
 

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
 

Con estos vectores se tiene que:

α = zT ·δf = 65,5174604

por lo que la matriz tangente actualizada será:


1,330887 · 10−1 2,182650 · 10−1 −7,390446 · 10−2
 
1
A ← [A] + · r · zT =  1,379898 · 10−1 −8,698375 · 10−2 1,790566 · 10−1 
α −1 −1
4,206449 · 10 −2,839047 · 10 −2,293147 · 10−1

Con esta matriz se tendrá que el nuevo vector de incrementos es:


 
 1,016291 · 10−1 
u = x(2) − x(1) = −[A] · v = −4,139981 · 10−1
5,962953 · 10−1
 

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
 

pasando a actualizar el vector v mediante:


 
 −2,238497 · 10−2 
v = w = f (x(2) ) = −2,407702 · 10−3
−3,011495 · 10−1
 

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
 

Con estos vectores se tiene que:

α = zT ·δf = 0,5986845

por lo que la matriz tangente actualizada es:

1,265981 · 10−1 2,217447 · 10−1 −6,706453 · 10−2


 
1
A ← [A]+ ·r · zT =  1,576511 · 10−1 −9,752455 · 10−2 1,583371 · 10−1 
α
3,9976401 · 10−1 −2,727101 · 10−1 −2,073101 · 10−1

105
Métodos de resolución de sistemas de ecuaciones no lineales

Con esta matriz se tendrá que el nuevo vector de incrementos es:


 
 −1,682866 · 10−2 
u = x(3) − x(2) = −[A] · v = 5,097734 · 10−2
−5,413923 · 10−2
 

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
 

pasando a actualizar el vector v mediante:


 
 −1,184048 · 10−4 
v = w = f (x(3) ) = 1,791805 · 10−3
7,555445 · 10−3
 

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
 

Con estos vectores se tiene que:

α = zT ·δf = 5,979984 · 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 la matriz tangente actualizada es:

1,262708 · 10−1 2,218708 · 10−1 −6,663977 · 10−2


 
1
A ← [A] + · r · zT =  1,602903 · 10−1 −9,854105 · 10−2 1,549118 · 10−1 
α
3,942317 · 10−1 −2,705793 · 10−1 −2,031848 · 10−1

Con esta matriz se tendrá que el nuevo vector de incrementos es:


 
 1,208950 · 10−4 
u = x(4) − x(3) = −[A] · v = −9,748824 · 10−4
2,043575 · 10−3
 

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
 

pasando a actualizar el vector v mediante:


 
 1,343715 · 10−5 
v = w = f (x(4) ) = 1,068316 · 10−4
6,345653 · 10−4
 

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

Con estos vectores se tiene que:

α = zT ·δf = 4,743729 · 10−6

por lo que la matriz tangente actualizada es:

1,286370 · 10−1 2,203397 · 10−1 −6,866206 · 10−2


 
1
A ← [A] + · r · zT =  1,476905 · 10−1 −9,038827 · 10−2 1,656807 · 10−1 
α
4,153328 · 10−1 −2,842329 · 10−1 −2,181648 · 10−1

Con esta matriz se tendrá que el nuevo vector de incrementos será:


 
 1,830280 · 10−5 
u = x(5) − x(4) = −[A] · v = −9,746342 · 10−5
1,632240 · 10−4
 

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
 

pasando a actualizar el vector v mediante:


 
 −5,450506 · 10−7 
v = w = f (x(5) ) = −2,101924 · 10−6
−1,624559 · 10−5
 

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
 

Con estos vectores se tiene que:

α = zT ·δf = 3,737755 · 10−8

por lo que la matriz tangente actualizada es:

1,277686 · 10−1 2,208623 · 10−1 −6,783630 · 10−2


 
1
A ← [A] + · r · zT =  1,515419 · 10−1 −9,270604 · 10−2 1,620184 · 10−1 
α −1 −1
4,094919 · 10 −2,807185 · 10 −2,126116 · 10−1

Con esta matriz se tendrá que el nuevo vector de incrementos es:


 
 −5,681645 · 10−7 
u = x(6) − x(5) = −[A] · v = 2,519821 · 10−6
−3,820860 · 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
 

Puesto que ||u||2 = 4,612076 · 10−6 es superior a la tolerancia permitida (10−6 ) a


pesar de que ahora ||w||2 = 1,844175·10−7 es inferior a la tolerancia en el valor de
la función vectorial que define el sistema (también 10−6 para ambas) se pasará a
realizar la séptima iteración. En ella:
 
 5,480496 · 10−7 
δf = w − v = (f (x(6) ) − f (x(5) )) = 2,135544 · 10−6
1,642689 · 10−5
 

pasando a actualizar el vector v mediante:

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
 

Con estos vectores se tiene que:

α = zT ·δf = 2,151975 · 10−11

por lo que la matriz tangente actualizada es:

1,275066 · 10−1 2,210112 · 10−1 −6,757356 · 10−2


 
1
A ← [A] + · r · zT =  1,531002 · 10−1 −9,359168 · 10−2 1,604554 · 10−1 
α
4,067653 · 10−1 −2,791682 · 10−1 −2,098756 · 10−1

Con esta matriz se tendrá que el nuevo vector de incrementos es:


 
 4,438482 · 10−9 
u = x(7) − x(6) = −[A] · v = −2,640355 · 10−8
4,621670 · 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:

Q1 = 14,1355467, Q2 = 10,1303043, Q = Q1 + Q2 = 24,265851

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.10. El análisis detallado de la convergencia del método de Broyden escapa


a los objetivos de este curso por lo que remitimos al lector a la bibliografı́a que se
cita al final del capı́tulo (véase por ejemplo De La Fuente O’Connor [7]). En dicha
bibliografı́a puede encontrar el lector la justificación detallada de que el proceso
debido Broyden es el que introduce menores cambios en la matriz [A(i−1) ] y que,
cuando la matriz jacobiana es lipschitciana, el ”deterioro” de la matriz jacobiana
al ser sustituida esta por su aproximación es lo suficientemente ”lento” como para
poder probar la convergencia local del método sobre dominios D convexos.

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).

3.5. Algunos comentarios sobre los métodos de


resolución de sistemas de ecuaciones no lin-
eales

1o ) El método de Newton-Raphson y sus variantes pueden escribirse en la forma:

x(i+1) = x(i) + d(i) (i = 0, 1, ....)

donde:

111
Métodos de resolución de sistemas de ecuaciones no lineales

d(i) = − A(i) · f (x(i) )


 

siendo A(i) la matriz tangente utilizada en el método (es decir la jacobiana o


 

una aproximación de ella en el punto x(i) ). Ello da pie a considerar familias de


métodos de la forma:

x(i+1) = x(i) + α(i) · d(i) (i = 0, 1, ....)

donde d(i) es la denominada dirección de descenso y α(i) es el parámetro


de descenso. En general la dirección de descenso d(i) puede ser una dirección
seguida para pasar de un punto x(i) a otro x(i+1) (por ejemplo la seguida en el
método de Newton-Raphson o en alguna de sus variantes) y el parámetro de
descenso α(i) se toma en cada iteración de forma que se minimice el valor de

f (x(i) + α(i) · d(i) )

lo que implica que para su determinación deba resolverse el sistema:

df (i)
(x + α · d(i) ) = 0

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) )

para los valores de α = 1, 21 , 14 , ....hasta determinar un valor de α para el que se


satisfaga la relación:

f (x + α(i) · d(i) ) ≤ 1 − α · f (x(i) )


(i)  
2
momento en el que se tomará dicho valor de α como parámetro de descenso. En
De La Fuente O’Connor [7], por ejemplo, pueden encontrarse los detalles que
justifican esta forma de proceder.
2o ) La forma de proceder anterior nos conduce a los denominados métodos de
tipo gradiente basados en la teorı́a de optimización. En ellos dado el sistema
no lineal f (x) = 0 se considera la función residuo

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:

x(i+1) = x(i) + ρi · d(i) (i = 0, 1, ...)

La dirección de descenso que ahora se sigue está relacionada con el gradiente de


la función residuo (y de ahı́ el nombre de este tipo de métodos):

∂r
(x(i) )
 
 ∂x1 
∂r

(x(i) )
 

∇r(x(i) ) = ∂x2

 ... 

∂r
(x(i) )
 
∂xn

El parámetro de descenso ρi en cada iteración se determina minimizando el valor


de:

r(x(i) + ρ · d(i) )

mediante técnicas similares a la de Armijo antes descrita o interpolando (para


tres valores dados del parámetro de descenso) la función residuo mediante una
parábola (algoritmo de Powell) o mediante un polinomio de grado 3 (algoritmo
de Davidon). Uno de los problemas que plantea esta forma de proceder es que los
métodos de tipo gradiente son métodos de tipo diferencial, es decir que buscan
puntos en los que la diferencial del residuo se anula (o, más precisamente, en los
que se anula el gradiente del residuo). Ello nos puede conducir a mı́nimos locales
del residuo en los que este no toma valor nulo (por lo que no se satisface en ellos
el sistema de ecuaciones). Nuevamente, remitimos al lector a la bibliografı́a sobre
el tema (por ejemplo Burden & Faires [3]) para un estudio detallado de estos
métodos.
3o ) Dada la relación existente entre la búsqueda de soluciones del sistema y la
minimización de funciones (por ejemplo de la función residuo contemplada en el
comentario anterior) en las últimas décadas se han desarrollados métodos diferen-
ciales de optimización local (como el de Marquardt & Levenberg que se describe
en De La Fuente O’Connor [7]) o métodos de búsqueda directa para optimización
global (como los basados en algoritmia genética) que también pueden adaptarse
fácilmente a la determinación de soluciones de sistemas de ecuaciones no lineales.
El estudio de estos métodos corresponde a la materia denominada Optimización
y desborda los objetivos del presente curso.
4o ) Otra familia de métodos para la resolución de sistemas de ecuacione no linea-
les son los métodos de continuación en los que el vector x que interviene en la
definición del sistema f (x) = 0 se hace depender de un parámetro λ que toma
valores entre 0 y 1 y de tal forma que x(1) sea la solución x∗ del sistema. Más
concretamente dado un vector inicial x(0) se puede considerar la función

113
Métodos de resolución de sistemas de ecuaciones no lineales

f (x(λ)) = (1 − λ) · f (x(0) )

para la que se verifica que:

f (x(0)) = f (x(0) )

f (x(1)) = 0

por lo que x∗ = x(1). La expresión considerada para f (x(λ)) define implı́citamente


la función x(λ). Asumiendo condiciones suficientes de regularidad puede derivarse
dicha expresión obteniendo:

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

1o . En el cálculo hidraúlico de tuberı́as se utiliza la ecuación de Darcy - Prandtl


- Colebrook que proporciona las pérdidas de presión (h) mediante la expresión:

λ · L · u2
h=
2·D·g

donde: D es el diámetro de la tuberı́a (en m), L la longitud de la tuberı́a (en m),


u es la velocidad del fluido que por ella circula (en m.s−1 ), g es la aceleración
gravitatoria (en m.s−2 ) y λ es el coeficiente de fricción que puede estimarse a su
vez mediante la ecuación de Colebrook:
 
−1/2 2,51 K
λ = −2 · ln +
Re · λ1/2 3,71 · D

donde Re es el número de Reynolds (Re = u·D µ


), µ es la viscosidad cinemática
2 −1
del fluido (en m · s ) y K es la altura de rugosidad (en m). Calcúlese, mediante
el método de aproximaciones sucesivas, el valor del coeficiente de fricción de un
colector tubular recto sin acometidas para el que se sabe que K = 0,25 · 10−3 m,
D = 0,3 m y por el que se quiere hacer circular un fluido de tal forma que el
número de Reynolds tome el valor Re = 200000.
(Sol.: λ = 0,3631344)
2o . Bajo hipótesis restrictivas, el crecimiento de una población puede ser simulado
durante pequeños periodos de tiempo [0, δt] asumiendo que la población crece
continuamente en el tiempo (despreciando la mortalidad) en razón proporcional
al número de individuos existentes en un momento dado N (t) según el problema
de valor inicial:
dN
(t) = λ · N (t) + v
dt
N (0) = N0

115
Ejercicios propuestos

siendo λ la tasa de crecimiento, v un coeficiente que simula la inmigración en un


momento dado y N0 la población existente al comienzo del periodo de simulación.
La solución del problema de valor inicial anterior viene dada por:
λ·t

e − 1
N (t) = N0 · eλ·t + v ·
λ
Suponiendo que una determinada población tiene inicialmente N0 = 1000000
individuos, que a ella emigran v = 435000 individuos más cada año y que tras el
primer año la población ha ascendido a N (1) = 1564000 individuos, determı́nese,
mediante el método de Steffensen, la tasa de crecimiento anual de dicha pobalción.
(Sol.: λ = 0,10099794...)
3o . Un aspecto que, por falta de tiempo, no ha podido ser tratado en este tema es
el del condicionamiento de una ecuación no lineal (o de un sistema de ecuaciones
no lineales). Bajo tal concepto se representa la ”sensibilidad” en las soluciones
de una ecuación ante pequeños errores en los parámetros (coeficientes) que la
definen. Esta cuestión no es baladı́ pues en numerosas ocasiones las ecuaciones (o
sistemas de ecuaciones) que deben resolverse se han obtenido, a su vez, mediante
métodos aproximados (por ejemplo estimando derivadas o integrales como se
verá al abordar los métodos en diferencias finitas) lo que hace que los coeficientes
de las ecuaciones a resolver no sean exactamente los que deberı́an ser si los cálculos
se hubiesen de forma exacta. Incluso en ecuaciones con coeficientes reales, el
propio ordenador, al codificar con un número finito de bists dichos coeficientes,
comete errores de redondeo. Y si estos alteran la solución .... ¿de qué valen los
test de parada de los algoritmos con precisiones elevadas?. En fin, contra este
problema también hay formas de luchar. Pero dejemos estos aspectos para más
adelante e ilustremos el condicionamiento de una ecuación no lineal mediante un
ejemplo tomado de D. Kincaid y W. Cheney [10].
Considérese el polinomio:
p(x) = x8 − 36 · x7 + 546 ·6 −4536 · x5 + 22449 · x4 − 67284 · x3 +
+118124 · x2 − 109584 · x + 40320

Este polinomio admite por raı́ces los valores x = 1, x = 2, x = 3, x = 4, x = 5,


x = 6, x = 7 y x = 8. Se pide:
a) Determı́nense mediante el método de la secante, combinado con el método
de deflacción, todas sus raı́ces con una precisión superior a 10−6 . Inicialı́cese el
me´todo siempre con el valor x0 = 0. Obsérvese como, al no ser exactas las raı́ces
que se van determinando y dividir la ecuación inicial por ella, se va empobreciendo
la aproximación obtenida.
b) Sustitúyase el coeficiente ”36” del término en x7 por el valor 36,001 e intente
deteminarse, mediante el método de bipartición su raı́z en el intervalo [5,5, 6,5].
¿Qué sucede?. Con este ”pequeño” cambio en uno de los coeficientes ¿se parece
esta raı́z a la que tenı́a el polinomio original en dicho intervalo, es decir a 6 o ha
variado mucho?

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

y como se puede apreciar, aparte de variar considerablemente algunas de ellas (


la raı́z x = 5 del polinomio original pasa a ser x = 4,574..., la raı́z x = 8 del
polinomio original pasa a ser x = 8,272...), han desaparecido del campo real las
raı́ces x = 6 y x = 7, pasando a ”ocupar su lugar” dos raı́ces complejas).
4o . (Cortesı́a del Pr. B. Coto) La ecuación de estado de Van der Waals nos rela-
ciona el volumen que ocupa un gas (V ) con la presión (P ) y la temperatura
absoluta (T ) a la que se encuentra mediante la expresión:
R·T a
P = − 2
V −b V

donde R es la constante de los gases perfectos y a y b son dos parámetros car-


acterı́sticos de cada gas. Estos parámetros pueden obtenerse a su vez a partir de
las coordenadas (Pc , Tc , Vc ) del denominado punto crı́tico pues en él la primera y
segunda derivadas de P respecto a V deben ser nulas. Obténgase a partir de ello
las siguientes expresiones para dichos parámetros:
9
a= · R · Tc · Vc
8
1
b= · Vc
3
5o . (Cortesı́a del Pr. E. Conde) El control de un determinado sistema eléctrico
conduce a la resolucion del sisguiente sistema de ecuaciones no lineales:
 
 I · cos(ϕ) = 2/3 
cos(δ) + 0,91 · I · sen(ϕ + δ) = 1,22
0,76 · I · cos(ϕ + δ) = sen(δ)
 

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

b) I = ϕ = δ = 1 (Sol.: I = −0,67, ϕ = −3,0398, δ = 0,448941 que no es


admisible tecnicamente)
6o . (Cortesı́a del Pr. E. Conde) Resuélvase el sistema de ecuaciones no lineales:

U + 0,27
 
U
− 1,31 · cos(ϕ) = 0
0,405
U
− 1,31 · sen(ϕ) = 0

(Sol.: De este sistema son soluciones los siguientes valores:

U = 0,958132, ϕ = 0,328549

U = 0,508019, ϕ = 0,654245
U = −0,958132, ϕ = −2,81304
U = −0,508019, ϕ = −2,487348

Dependiendo de los valores iniciales el método de Newton conduce rápidamente


a una u otra solución).
8o . Encuéntrese la posición de algún mı́nimo local de la función:

f (x, y) = (x2 + y − 11)2 + (x + y 2 − 7)2

utilizando el método de Broyden.


(Sol.: Dependiendo de los valores iniciales puede determinarse alguno de los sigu-
ientes puntos:

{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

[1] O. Axelsson, (1.996). Iterative solution methods. Ed. Cambridge University


Press.
[2] C.G. Broyden, (1.965). A class of methods for solving nonlinear simultaneous
equations. Mathematics of Computation, 19, págs. 577-593.
[3] R. L. Burden y J. D. Faires, (1.998). Análisis numérico. (6a ed.). Ed. Interna-
tional Thomson editores.
[4] P.G. Ciarlet y J.L. Lions (eds)., (1.990). Handbook of Numerical Analysis.
Volume 1: Finite difference methods (part 1); Solution of equations in IRn (part
1). Ed. North Holland Publishing Company.
[5] C. Conde y G. Winter, (1.990) Métodos y añgoritmos básicos del álgebra
numérica. Ed. Reverté.
[6] E. Durand (1.972). Solutions numériques des équations algébriques. Tomes I
y II. Ed. Masson et Cie.
[7] J. L. de la Fuente O’Connor, (1.998). Técnicas de cálculo para sistemas de
ecuaciones, programación lineal y programación entera. (2a ed.). Ed. Reverté.
[8] R. Fletcher, (1.987). Practical methods of Optimization. Ed. John Wiley and
Sons.
[9] O.T. Hanna y O.C. Sandall, (1.995). Computational methods in chemical
engineering. Ed. Prentice Hall International editions.
[10] D. Kincaid y W. Cheney, (1.994). Análisis numérico. Las matemáticas del
cálculo cientı́fico. Ed. Addison-Wesley Iberoamericana.
[11] J.M. Ortega y W.C. Rheinboldt, (1.970). Iterative solution of nonlinear equa-
tions in several variables. Ed. Academic Press, Inc.
[12] W.H. Press, B.P. Flannery, S.A. Teukolsky y W.T. Vetterling , (1.986). Nu-
merical recipes in FORTRAN. The art of scientific computing. Ed. Cambridge

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

Vous aimerez peut-être aussi