You are on page 1of 99

Captulo 2

Interpolacion y aproximacion
de funciones.
1. Introduccion.
2. Interpolacion mediante polinomios.
3. Diferencias divididas.
4. Interpolacion de Hermite.
5. Interpolacion mediante splines.
6. Interpolacion de Fourier.
7. Teora de mnimos cuadrados.
8. Aproximacion de funciones periodicas.
2.1. Introduccion.
Tratamos en este captulo de la interpolacion y de la aproximacion nume-
ricas, dos problemas en los que, a partir de un n umero dado de puntos de
cierta funcion, se trata de obtener otra funcion, mas sencilla que la primera y
que se aproxime a ella lo mas posible. Que signica esto? Pues depende
del problema. En el caso de la interpolacion, la nueva funcion debe pasar
por todos los puntos considerados. Es decir, que si suponemos conocidos los
valores de una funci on f(x) en un conjunto de n+1 valores de su argumento,
15
{x
0
, x
1
, . . . , x
n
}, se tratara de encontrar otra funcion g(x; a
0
, a
1
, . . . , a
n
), que
depende de n + 1 parametros y que debe cumplir que
g(x
k
; a
0
, a
1
, . . . , a
n
) = f(x
k
), k = 0, 1, . . . , n.
La funcion g se denomina funcion de interpolacion y proporciona una apro-
ximacion de f para cualquier valor del argumento x. Si x [x
0
, x
n
] se ha-
bla propiamente de interpolacion, mientras que si x [x
0
, x
n
] se habla de
extrapolacion. Estudiaremos distintas formas de interpolacion de acuerdo
con el tipo de funciones de interpolacion que consideremos, empezando con
los polinomios por ser la opcion mas sencilla.
En el caso de la aproximacion, no se impone la restriccion de que la
nueva funci on reproduzca los puntos de la funci on a aproximar considerados
inicialmente. Como veremos se imponen distintas condiciones que permiten
abordar el problema.
2.2. Interpolacion mediante polinomios.
Supongamos una funcion f(x) de la que se conocen n + 1 puntos
{[x
k
, y
k
= f(x
k
)], k = 0, 1, . . . , n} .
Nos planteamos hallar un polinomio del menor grado posible, p(x), que in-
terpole a la funcion f(x), es decir que verique
p(x
k
) = y
k
, k = 0, 1, . . . , n.
Teorema. Si {x
0
, x
1
, . . . , x
n
} es un conjunto de n umeros reales distintos e
{y
0
, y
1
, . . . , y
n
} es un conjunto de n umeros reales arbitrarios, entonces existe
un polinomio unico p
n
(x), de grado igual o menor que n, que verica
p
n
(x
k
) = y
k
, k = 0, 1, . . . , n.
2.2.1. Forma de Lagrange.
Vamos a ver ahora una forma de construir el polinomio de interpolacion
p
n
(x) debida a Lagrange. En este procedimiento el polinomio se expresa como
p
n
(x) =
n

j=0
y
j
l
j
(x) ,
16
donde los l
k
(x) son polinomios de grado n, que dependen de las abscisas
{x
k
, k = 0, 1, . . . , n} que se interpolan, pero no de los valores {y
k
, k =
0, 1, . . . , n}. Recordemos que la condicion que debe cumplir el polinomio es
p
n
(x
k
) = y
k
, k = 0, 1, . . . , n.
Entonces es evidente que si
l
j
(x
k
) =
jk
, k = 0, 1, . . . , n, j = 0, 1, . . . , n.
entonces
p
n
(x
k
) =
n

j=0
y
j
l
j
(x
k
) =
n

j=0
y
j

jk
= y
k
, k = 0, 1, . . . , n.
Como los polinomios l
j
(x) han de tener grado n, deben ser de la forma
l
j
(x) = c
j
(x x
0
)(x x
1
) (x x
j1
)(x x
j+1
) (x x
n
) .
La constante c
j
se obtiene sin mas que imponer que
l
j
(x
j
) = c
j
(x
j
x
0
)(x
j
x
1
) (x
j
x
j1
)(x
j
x
j+1
) (x
j
x
n
) = 1 ,
de donde resulta
c
j
=
1
(x
j
x
0
)(x
j
x
1
) (x
j
x
j1
)(x
j
x
j+1
) (x
j
x
n
)
.
Por tanto
l
j
(x) =
n

k=0
k=j
x x
k
x
j
x
k
, j = 0, 1, . . . , n.
El polinomio de interpolacion en su forma de Lagrange resulta entonces
p
n
(x) =
n

j=0
y
j
n

k=0
k=j
x x
k
x
j
x
k
.
17
2.2.2. Forma de Newton.
Hay que recordar que, como ya demostramos, el polinomio de interpola-
cion es unico, si bien existen distintas formas (algoritmos) de expresarlo y de
llegar a el. La forma de Newton del polinomio esta relacionada con la propia
demostracion del teorema y utiliza un procedimiento recursivo. Para obtener
el polinomio p
n
(x) buscado se comienza con la funci on constante,
p
0
(x) = c
0
y
0
,
y se van construyendo polinomios p
l
a nadiendo un termino a los polinomios
p
l1
p
l
(x) = p
l1
(x) + c
l
(x x
0
)(x x
1
) (x x
l1
) ,
con
c
l
=
y
l
p
l1
(x
l
)
(x
l
x
0
)(x
l
x
1
) (x
l
x
l1
)
.
Esto permite escribir
p
l
(x) = c
0
+ c
1
(x x
0
) + . . . + c
l
(x x
0
)(x x
1
) (x x
l1
)
= c
0
+
l

k=1
c
k
k1

j=0
(x x
j
) .
Conocidos los coecientes {c
k
, k = 0, 1, . . . , l}, una forma eciente de
evaluar los polinomios p
l
(x) es la que se denomina multiplicaci on anidada o
algoritmo de Horner. Si denimos d
k
= x x
k
,
p
l
(x) = c
0
+ c
1
d
0
+ c
2
d
0
d
1
+ . . . + c
l1
d
0
d
1
. . . d
l2
+ c
l
d
0
d
1
d
l1
= c
0
+ d
0
(c
1
+ d
1
(c
2
+ . . . + d
l3
(c
l2
+ d
l2
(c
l1
+ d
l1
c
l
)) . . .)) .
Entonces, deniendo
u
k
= u
k+1
d
k
+ c
k
, k = l, l 1, . . . , 0 ,
con u
l+1
= 0, el valor de p
l
en x vendra dado por u
0
.
Este algoritmo puede utilizarse para calcular los coecientes c
l
que, como
hemos visto dependen de p
l1
(x
l
).
Aunque la forma de Lagrange permite escribir el polinomio de forma inme-
diata, la forma de Newton tiene dos ventajas: un menor coste computacional
y la posibilidad de a nadir puntos nuevos sin que los calculos ya realizados
se pierdan (debido a la forma recursiva de la construccion del polinomio de
interpolacion).
18
2.2.3. Error en la interpolacion mediante polinomios.
Vamos a ver un teorema que nos permitira evaluar el error que se comete
al interpolar una funcion mediante un polinomio.
Teorema. Sea una funcion continua y con derivadas continuas hasta or-
den n + 1 en el intervalo [a, b], f(x) C
(n+1)
[a, b] y sea p
n
(x) un polino-
mio de grado, a lo sumo, n que interpola a f(x) en n + 1 puntos distintos
{x
0
, x
1
, . . . , x
n
} [a, b]. Entonces para cada t [a, b] existe un
t
(a, b) tal
que
f(t) p
n
(t) =
1
(n + 1)!
f
(n+1)
(
t
)
n

k=0
(t x
k
) .
2.2.4. Otros algoritmos.
Los algoritmos aqu vistos no son los unicos que existen para resolver el
problema planteado. Pero lo que s que hay que tener presente es que todos
generan el mismo polinomio que, como ya demostramos anteriormente, es
unico. La opcion mas intuitiva, y que no hemos considerado hasta ahora, es
suponer que el polinomio p
n
(x) viene dado como
p
n
(x) = a
0
+ a
1
x + a
2
x
2
+ . . . + a
n
x
n
.
Ahora habra que determinar los coecientes {a
k
, k = 0, 1, . . . , n}. Como el
polinomio debe vericar p
n
(x
k
) = y
k
, k = 0, 1, . . . , n, tenemos n + 1 ecua-
ciones lineales que constituyen un sistema que podemos escribir en forma
matricial como
_
_
_
_
_
_
_
1 x
0
x
2
0
. . . x
n
0
1 x
1
x
2
1
. . . x
n
1
1 x
2
x
2
2
. . . x
n
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 x
n
x
2
n
. . . x
n
n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
a
0
a
1
a
2
.
.
.
a
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
y
0
y
1
y
2
.
.
.
y
n
_
_
_
_
_
_
_
La matriz de las potencias de los valores {x
k
, k = 0, 1, . . . , n} se conoce
como matriz de Vandermonde. Esta matriz no es singular. Esto lo podemos
asegurar porque el teorema enunciado antes nos garantiza la existencia de
19
una solucion unica del problema de interpolacion para cualquier eleccion de
los valores {y
k
, k = 0, 1, . . . , n}.
Este metodo de interpolacion no es, sin embargo, muy eciente (el n ume-
ro de operaciones que es necesario realizar es mayor que en los otros dos
procedimientos estudiados) y, por otra parte, los coecientes del polinomio
pueden no quedar determinados con precision.
2.3. Diferencias divididas.
El problema de interpolacion polinomica siguiendo la forma de Newton
no suele abordarse con el algoritmo indicado antes. Partimos de la ecuacion
p
l
(x) = c
0
+
l

k=1
c
k
k1

j=0
(x x
j
)
e introducimos la funcion
q
k
(x) =
k1

j=0
(x x
j
) ,
con q
0
(x) = 1. Entonces tenemos
p
l
(x) =
l

k=0
c
k
q
k
(x) .
Las condiciones en los puntos de interpolacion nos permiten escribir
l

k=0
c
k
q
k
(x
i
) = f(x
i
) , i = 0, 1, . . . , n,
que es un sistema de ecuaciones caracterizado por una matriz triangular
c
0
= f(x
0
)
c
0
+ c
1
(x
1
x
0
) = f(x
1
)
c
0
+ c
1
(x
2
x
0
) + c
2
(x
2
x
0
)(x
2
x
1
) = f(x
2
)
. . . . . . ,
20
que podemos resolverlo de forma recursiva. Como vemos c
0
solo depende de
f(x
0
), c
1
depende de f(x
0
) y f(x
1
), etc. Por tanto, c
n
depende del valor
de f(x) en todos los puntos {x
k
, k = 0, 1, . . . , n}. Esta dependencia del
coeciente c
j
la expresamos como
c
j
= f[x
0
, x
1
, . . . , x
j
] .
Las cantidades f[x
0
, x
1
, . . . , x
j
] se denominan diferencias divididas de la fun-
cion f(x) y son los coecientes de x
j
en el polinomio de, a lo sumo, grado j
que interpola a f(x) en los puntos {x
k
, k = 0, 1, . . . , j}. Evidentemente,
f[x
0
] = c
0
= f(x
0
) .
A partir de este valor y de la segunda ecuaci on del sistema tendremos
f[x
0
, x
1
] = c
1
=
f(x
1
) f(x
0
)
x
1
x
0
,
expresion que nos da idea de la razon de la denominacion de diferencias
divididas. La siguiente sera
f[x
0
, x
1
, x
2
] = c
2
=
f(x
2
) f(x
0
) f[x
0
, x
1
](x
2
x
0
)
(x
2
x
0
)(x
2
x
1
)
=
f(x
2
) f(x
1
) f[x
0
, x
1
](x
2
x
1
)
(x
2
x
0
)(x
2
x
1
)
=
f[x
1
, x
2
] f[x
0
, x
1
]
(x
2
x
0
)
.
Teorema. Las diferencias divididas satisfacen la relaci on
f[x
0
, x
1
, . . . , x
n
] =
f[x
1
, x
2
, . . . , x
n
] f[x
0
, x
1
, . . . , x
n1
]
x
n
x
0
.
Si llamamos ahora s
ij
= f[x
i
, x
i+1
, . . . , x
i+j
] podemos construir un algorit-
mo simple para calcular las diferencias divididas en el que los datos de entrada
son los valores {x
k
, k = 0, 1, . . . n} y los valores s
k0
= f(x
k
), k = 0, 1, . . . n.
A un se puede mejorar el algoritmo utilizando un vector, en lugar de una
matriz, en el que se hace inicialmente d
k
= f(x
k
), k = 0, 1, . . . n y, al nal,
21
en el vector esan las n + 1 diferencias divididas requeridas para reconstruir
el polinomio.
El metodo de las diferencias divididas tiene como principal ventaja res-
pecto al inicialmente visto que el n umero de operaciones es menor, siendo mas
importante la reduccion a medida que el n umero de puntos de interpolacion
aumenta.
Teorema. Las diferencias divididas son funciones simetricas de sus argu-
mentos. Si {z
k
, k = 0, 1, . . . , n} es una permutaci on de {x
k
, k = 0, 1, . . . , n},
f[z
0
, z
1
, . . . , z
n
] = f[x
0
, x
1
, . . . , x
n
] .
Teorema. Sea p
n
(x) el polinomio de grado, a lo sumo, n que interpola a
la funci on f(x) en los puntos {x
k
, k = 0, 1, . . . , n}. Si t es un punto que
cumple que t = x
k
, k = 0, 1, . . . , n, entonces
f(t) p
n
(t) = f[x
0
, x
1
, . . . , x
n
, t]
n

j=0
(t x
j
) .
Teorema. Si f(x) C
(n)
[a, b] es una funci on continua y con n derivadas
continuas en el intervalo [a, b] y {x
k
, k = 0, 1, . . . , n} son n + 1 puntos
distintos de ese intervalo, entonces existe un punto (a, b) tal que
f[x
0
, x
1
, . . . , x
n
] =
1
n!
f
(n)
() .
2.4. Interpolacion de Hermite.
Se conoce como interpolacion de Hermite a la interpolacion que involu-
cra a una funcion y a alguna de sus derivadas en un conjunto de puntos.
Esto incluye un conjunto de problemas de interpolacion muy general, pero
aqu vamos a estudiar solo uno de ellos.
22
Supongamos que conocemos los valores de una funcion f(x) y de su pri-
mera derivada f

(x) en un conjunto de puntos {x


0
, x
1
, . . . , x
n
}
f(x
k
) = y
k
, f

(x
k
) = y

k
, k = 0, 1, . . . , n.
Tratamos de encontrar un polinomio p(x) tal que
p(x
k
) = y
k
, p

(x
k
) = y

k
, k = 0, 1, . . . , n.
Como tenemos 2n+2 condiciones, podemos construir un polinomio de grado,
a lo sumo, 2n+1. Para ello seguiremos una estrategia similar a la de la forma
de Lagrange anteriormente estudiada. El polinomio lo escribimos como
p(x) =
n

j=0
y
j
A
j
(x) +
n

j=0
y

j
B
j
(x) ,
donde A
j
(x) y B
j
(x) son polinomios de grado, a lo sumo, 2n+1 que dependen
de los puntos {x
k
, k = 0, 1, . . . , n} pero no de los valores de f(x) y de f

(x)
en dichos puntos. Es facil comprobar que si estos polinomios satisfacen las
condiciones
A
j
(x
k
) =
jk
, B
j
(x
k
) = 0 ,
A

j
(x
k
) = 0 , B

j
(x
k
) =
jk
,
entonces el polinomio p(x) sera el polinomio buscado. Si ahora recordamos
los polinomios l
j
(x)
l
j
(x) =
n

k=0
k=j
x x
k
x
j
x
k
, j = 0, 1, . . . , n,
podemos proponer para A
j
(x) y B
j
(x) las formas
A
j
(x) =
_
1 2(x x
j
)l

j
(x
j
)

l
2
j
(x) ,
B
j
(x) = (x x
j
)l
2
j
(x) .
Como l
j
(x) es de grado n, A
j
(x) y B
j
(x) son polinomios de grado 2n + 1 y,
por tanto, p(x) es de grado, a lo sumo, 2n + 1, como queramos. Por otro
lado, como l
j
(x
k
) =
jk
, resulta que
A
j
(x
k
) =
_
1 2(x
k
x
j
)l

j
(x
j
)

l
2
j
(x
k
) =
jk
,
B
j
(x
k
) = (x
k
x
j
)l
2
j
(x
k
) = 0 .
23
Ademas,
A

j
(x) = 2l

j
(x
j
)l
2
j
(x) +
_
1 2(x x
j
)l

j
(x
j
)

2l
j
(x)l

j
(x) ,
B

j
(x) = l
2
j
(x) + (x x
j
)2l
j
(x)l

j
(x) ,
con lo que
A

j
(x
k
) = 2l

j
(x
j
)l
2
j
(x
k
) +
_
1 2(x
k
x
j
)l

j
(x
j
)

2l
j
(x
k
)l

j
(x
k
)
= 2l

j
(x
j
)
jk
+
_
1 2(x
k
x
j
)l

j
(x
j
)

2l

j
(x
k
)
jk
=
_
0 , k = j
2l

j
(x
j
) + 2l

j
(x
j
) = 0 , k = j ,
B

j
(x
k
) = l
2
j
(x
k
) + (x
k
x
j
)2l
j
(x
k
)l

j
(x
k
)
=
jk
+ 2(x
k
x
j
)l

j
(x
k
)
jk
=
_
0 , k = j
1 , k = j ,
vericandose las condiciones antes impuestas.
A continuacion se demuestra un teorema que proporciona una f ormula
para el error asociado a este tipo de interpolacion de Hermite.
Teorema. Sea una funcion continua y con derivadas continuas hasta orden
2n + 2 en el intervalo [a, b], f(x) C
(2n+2)
[a, b] y sea p(x) un polinomio de
grado, a lo sumo, 2n + 1 que verica que
p(x
k
) = f(x
k
) , p

(x
k
) = f

(x
k
) , 0 k n.
Entonces para cada t [a, b] existe un
t
(a, b) tal que
f(t) p(t) =
1
(2n + 2)!
f
(2n+2)
(
t
)
n

k=0
(t x
k
)
2
.
2.5. Interpolacion mediante splines.
Como hemos visto, dada una funcion f(x) cuyos valores en un n umero
n + 1 de puntos {x
k
, k = 0, 1, . . . , n} son conocidos, existe un polinomio
24
unico de grado, a lo sumo, n que interpola dicha funcion. Sin embargo, la
experiencia demuestra que, en muchos casos, el polinomio determinado no
siempre proporciona una buena descripcion de la funcion. De hecho, al forzar
que el polinomio reproduzca los valores de la funcion en los puntos x
k
se
pueden producir variaciones importantes del polinomio y de los valores de
este en los puntos del intervalo de interpolacion cuando se producen peque nas
variaciones de los valores de la funci on a interpolar en los puntos x
k
. Veamos
un ejemplo.
Por otra parte, es evidente que al aumentar el n umero de puntos de inter-
polacion, el grado del polinomio de interpolacion crecera y podran producirse
los problemas que acabamos de ver con mas facilidad. Ademas, parece logico
pensar que el valor de la funcion a interpolar en un punto alejado de otro
dado puede inuir poco en la forma del polinomio alrededor de este ulti-
mo. Este tipo de problemas ha llevado a la formulacion de la interpolacion
mediante splines.
Una funcion spline es una funcion que esta formada por varios polino-
mios, cada uno de ellos denidos en un subintervalo del intervalo global de
interpolacion, que se unen entre s de acuerdo a ciertas condiciones de con-
tinuidad. Supongamos que se han especicado n + 1 puntos ordenados de
menor a mayor, que denen un intervalo [a, b]:
a = x
0
< x
1
< x
2
< . . . < x
n
= b .
Una funcion spline de grado m (con m 0) con nodos {x
k
, k = 0, 1, . . . , n}
es una funcion S(x) denida en [a, b] que cumple las siguientes condiciones
1. S(x) es un polinomio de grado m en cada intervalo [x
k1
, x
k
), y
2. S(x) y sus derivadas hasta orden m1 son continuas en [a, b].
En otras palabras, S(x) es un polinomio de grado, a lo sumo, m continuo a
trozos y con derivadas continuas hasta orden m1.
2.5.1. Splines c ubicos.
Los splines c ubicos (m = 3) son muy utilizados ya que presentan unas
buenas propiedades de suavidad en las gracas. Vamos a estudiar ahora
como se construyen y algunas cuestiones teoricas al respecto.
25
Supongamos que conocemos los valores de una funcion f(x) en un con-
junto de puntos {x
k
, k = 0, 1, . . . , n}, que denominamos y
k
= f(x
k
). Cons-
truyamos un spline c ubico, S(x), que interpole a la funcion f(x) en dichos
puntos. El procedimiento impone que en cada intervalo [x
i
, x
i+1
) el spline
viene representado por un polinomio c ubico diferente
S(x) =
_

_
S
0
(x) , x [x
0
, x
1
) ,
S
1
(x) , x [x
1
, x
2
) ,
S
2
(x) , x [x
2
, x
3
) ,
.
.
.
.
.
.
S
n1
(x) , x [x
n1
, x
n
) .
Por convenio se asume que los splines S
0
y S
n1
son validos tambien en
los intervalos (, x
0
) y [x
n
, ), respectivamente.
Como los polinomios S
k1
(x) y S
k
(x) interpolan a la funcion f(x) en el
mismo punto x
k
,
S
k1
(x
k
) = y
k
= S
k
(x
k
) , k = 1, 2, . . . , n 1 ,
con
S
0
(x
0
) = y
0
, S
n1
(x
n
) = y
n
.
Estas son un total de 2n condiciones que garantizan la continuidad de S(x)
en todo el intervalo de interpolacion. Como los polinomios S
k
(x) son c ubi-
cos, se necesitan 4 condiciones para jar cada uno de ellos. Por tanto, son
necesarias 4n condiciones. Para completar las 2n condiciones que proporcio-
na la continuidad de S(x), se imponen otras 2n 2 condiciones en base a la
continuidad de S

(x) y de S

(x):
S

k1
(x
k
) = S

k
(x
k
) , k = 1, 2, . . . , n 1 ,
S

k1
(x
k
) = S

k
(x
k
) , k = 1, 2, . . . , n 1 .
Por tanto, son necesarias 2 condiciones adicionales para poder jar la funcion
spline de forma unvoca. Mas adelante haremos uso de estos dos grados de
libertad.
Denamos
z
k
= S

(x
k
) , k = 0, 1, . . . n.
Como S

(x) es continua en los puntos {x


k
, k = 1, 2, . . . , n 1}, se cumple
lm
xx

k
S

(x) = z
k
= lm
xx
+
k
S

(x) , k = 1, 2, . . . , n 1 .
26
Ahora bien, S
k
(x) es un polinomio de grado, a lo sumo, 3, y por lo tanto
S

k
(x) es un polinomio de grado, a lo sumo, 1 que debe cumplir
S

k
(x
k
) = z
k
, , S

k
(x
k+1
) = z
k+1
.
Por tanto,
S

k
(x) =
z
k
h
k
(x
k+1
x) +
z
k+1
h
k
(x x
k
) ,
donde hemos denido
h
k
= x
k+1
x
k
, k = 0, 1, . . . , n 1 .
Integrando dos veces esta expresion encontramos
S
k
(x) =
z
k
6h
k
(x
k+1
x)
3
+
z
k+1
6h
k
(x x
k
)
3
+ (x
k+1
x) + (x x
k
) ,
donde y son constantes de integracion que pueden determinarse sin mas
que imponer las condiciones de interpolacion
S
k
(x
k
) = y
k
, S
k
(x
k+1
) = y
k+1
.
Es facil ver que
S
k
(x
k
) = y
k
=
z
k
6h
k
h
3
k
+ h
k
= =
y
k
h
k

z
k
6
h
k
,
S
k
(x
k+1
) = y
k+1
=
z
k+1
6h
k
h
3
k
+ h
k
= =
y
k+1
h
k

z
k+1
6
h
k
.
Por tanto, tendremos nalmente que
S
k
(x) =
z
k
6h
k
(x
k+1
x)
3
+
z
k+1
6h
k
(x x
k
)
3
+
_
y
k+1
h
k

z
k+1
6
h
k
_
(x x
k
) +
_
y
k
h
k

z
k
6
h
k
_
(x
k+1
x) .
Esta ecuacion puede vericarse comprobando que se cumplen las condiciones
de interpolacion en x
k
y x
k+1
. Por otro lado es importante se nalar que el
polinomio puede evaluarse tambien de la forma
S
k
(x) = A
k
(x x
k
)
3
+ B
k
(x x
k
)
2
+ C
k
(x x
k
) + D
k
,
27
donde
A
k
=
1
6h
k
(z
k+1
z
k
)
B
k
=
1
2
z
k
C
k
=
1
h
k
(y
k+1
y
i
)
h
k
6
(z
k+1
2z
k
)
D
k
= y
k
Si ahora tenemos en cuenta esta expresion de S
k
(x) podemos escribir
S

k1
(x) =
z
k1
2h
k1
(x
k
x)
2
+
z
k
2h
k1
(x x
k1
)
2
+
_
y
k
h
k1

z
k
6
h
k1
_

_
y
k1
h
k1

z
k1
6
h
k1
_
,
S

k
(x) =
z
k
2h
k
(x
k+1
x)
2
+
z
k+1
2h
k
(x x
k
)
2
+
_
y
k+1
h
k

z
k+1
6
h
k
_

_
y
k
h
k

z
k
6
h
k
_
,
e imponiendo la condicion de continuidad de las primeras derivadas,
S

k1
(x
k
) = S

k
(x
k
)
h
k1
6
z
k1
+
h
k1
3
z
k

y
k1
h
k1
+
y
k
h
k1
=
h
k
3
z
k

h
k
6
z
k+1

y
k
h
k
+
y
k+1
h
k
,
de donde tendremos
h
k1
z
k1
+ 2(h
k1
+ h
k
)z
k
+ h
k
z
k+1
=
6
h
k
(y
k+1
y
k
)
6
h
k1
(y
k
y
k1
) .
Esta ecuacion (que en realidad es un sistema de ecuaciones) nos permite
calcular los valores {z
k
, k = 0, 1, . . . , n} que necesitamos para encontrar la
forma de los splines S
i
(x). Sin embargo, como en dicha ecuacion i solo puede
tomar valores entre 1 y n1, disponemos de un sistema de n1 ecuaciones
con n+1 incognitas. Podemos elegir arbitrariamente dos de ellas y una buena
eleccion es z
0
= z
n
= 0 que proporciona como solucion la denominada spline
28
natural. En tal caso el sistema de ecuaciones podemos escribirlo como
_
_
_
_
_
_
_
_
_
u
1
h
1
0 0 0 0
h
1
u
2
h
2
0 0 0
0 h
2
u
3
h
3
0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 0 u
n2
h
n2
0 0 0 0 h
n2
u
n1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
z
1
z
2
z
3
.
.
.
z
n2
z
n1
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
v
1
v
2
v
3
.
.
.
v
n2
v
n1
_
_
_
_
_
_
_
_
_
,
donde
u
k
= 2(h
k
+ h
k1
) ,
v
k
= b
k
b
k1
,
b
k
=
6
h
k
(y
k+1
y
k
) .
Una forma de resolver este sistema de ecuaciones es mediante el procedimien-
to denominado eliminacion gaussiana sin pivote.
La denominacion spline natural que recibe la solucion aqu expuesta se
debe a que cuando tenemos dos puntos (n = 1), el spline se reduce a la recta
que pasa por ambos puntos.
2.6. Interpolacion de Fourier.
Cuando la funcion que pretendemos interpolar es periodica, utilizar poli-
nomios no es lo mas adecuado ya que estos no incorporan la periodicidad. En
tal caso es mucho mas conveniente utilizar funciones trigonometricas. Supon-
gamos que la funcion a interpolar tiene perodo 2. En este caso es claro que
las funciones mas convenientes son cos kx y sen kx, con k entero. Un teorema
basico del analisis de Fourier es el siguiente
Teorema. Sea f(t) una funci on peri odica con perodo 2, continua y conti-
nuamente diferenciable a trozos
1
en un intervalo nito cualquiera. Entonces
1
Se dice que una funci on f(t) es continuamente diferenciable a trozos en un intervalo
[a, b] si, y s olo si, su derivada f

(t) existe en todos los puntos del intervalo excepto en


un n umero nito de ellos y es continua a trozos en [a, b]. Se dice que una funcion f(t) es
continua a trozos en un intervalo [a, b] si dicho intervalo se puede dividir en un n umero
nito de subintervalos a = t
0
< t
1
< t
2
< < t
n
= b tal que f(t) es continua en cada
29
la sucesi on de Fourier
S
n
(t) =
a
0
2
+
n

k=1
[a
k
cos(kt) + b
k
sen(kt)] ,
converge uniformemente a f(t) en dicho intervalo nito. Los coecientes de
la serie vienen dados por
a
k
=
1

dt f(t) cos(kt) ,
b
k
=
1

dt f(t) sen(kt) .
Vamos a utilizar ahora las exponenciales complejas, para lo que recorda-
mos la formula de Euler
exp(i) = cos + i sen .
Entonces podemos escribir la serie de Fourier como

k=
c
k
exp(ikx) ,
donde
c
k
=
1
2
_

dtf(t) exp(ikt) .
Ahora los coecientes c
k
son complejos y podemos encontrar su relacion con
los coecientes a
k
y b
k
antes utilizados
c
k
=
1
2
_

dtf(t) [cos kt i sen kt] =


1
2
(a
k
ib
k
) .
Esto se debe sencillamente a que las funciones {E
k
(x) = exp(ikx)}

k=
for-
man una base ortonormal en el espacio de Hilbert complejo L
2
[, ] cuando
se ha denido el producto escalar
f(x), g(x) =
1
2
_

dxf

(x)g(x)
uno de los intervalos abiertos (t
k1
, t
k
), con k = 1, 2, . . . , n, y existen los lmites
lm
ta
+
f(t) , lm
tt

1
f(t) , lm
tt
+
1
f(t) . . . lm
tb

f(t) .
30
y, por tanto, se cumple que
E
m
(x), E
n
(x) =
mn
.
Para el problema particular que nos interesa resolver, el de la interpolacion
de funciones periodicas, es conveniente denir el denominado pseudoproducto
escalar
f(x), g(x)
N
=
1
N
N1

j=0
f

_
2j
N
_
g
_
2j
N
_
.
No es un producto escalar ya que si f(x), f(x)
N
= 0, entonces f(2j/N) =
0 para cualquier valor j = 0, 1, . . . , N 1 y recordemos que para que se trate
de un producto escalar verdadero, f(x) debera anularse para cualquier valor
de x.
Teorema. Para cualquier valor N 1 resulta
E
n
(x), E
k
(x)
N
=
_

_
1 , si
|k n|
N
es entero ,
0 , si
|k n|
N
no es entero .
Ahora es conveniente denir los denominados polinomios exponenciales.
Un polinomio exponencial de grado, a lo sumo, N es una funcion de la forma
P
N
(x) =
N

k=0
c
k
E
k
(x) =
N

k=0
c
k
exp(ikx) =
N

k=0
c
k
[exp(ix)]
k
,
donde la ultima expresion explica el origen del nombre empleado para estos
polinomios. La interpolacion mediante este tipo de polinomios se basa en
algunos resultados que vamos a ver a continuacion.
Teorema. El conjunto de funciones {E
k
(x) , k = 0, 1, . . . , N 1} es un
conjunto ortonormal respecto al producto pseudoescalar ,
N
antes deni-
do.
Corolario. Dada una funcion de perodo 2 y un conjunto de puntos equies-
paciados {x
l
= 2l/N , l = 0, 1, . . . , N 1}, el polinomio exponencial que in-
31
terpola dicha funcion en esos puntos viene dado por
P
N1
(x) =
N1

k=0
c
k
E
k
(x) ,
con c
k
= E
k
(x), f(x)
N
. Ademas ese polinomio es unico.
La determinacion del polinomio interpolador en este caso implica calcular
N coecientes c
k
y para cada uno de ellos es necesario hacer N multiplicacio-
nes seguidas de N sumas. Por tanto el costo computacional en la evaluacion
de dicho polinomio de interpolacion es del orden de N
2
. Este costo se reduce
a N log
2
N si se utiliza la denominada transformada rapida de Fourier o FFT
(Fast Fourier Transform). Este algoritmo se basa en el siguiente teorema.
Teorema. Sean P
N1
(x) y Q
N1
(x) dos polinomios exponenciales de grado,
a lo sumo, N 1 que satisfacen
P
N1
(x
2k
) = f(x
2k
) , Q
N1
(x
2k
) = f(x
2k+1
) , k = 0, 1, . . . N 1 .
Entonces
S
2N1
(x) =
1 + E
N
(x)
2
P
N1
(x) +
1 E
N
(x)
2
Q
N1
_
x

N
_
es un polinomio exponencial de grado, a lo sumo, 2N 1 que interpola la
funcion f(x) en los puntos {x
k
, k = 0, 1, . . . , 2N 1}.
Los coecientes del polinomio de interpolacion pueden calcularse median-
te un sencillo algoritmo. En efecto, supongamos que
P
N1
(x) =
N1

k=0

k
E
k
(x) ,
Q
N1
(x) =
N1

k=0

k
E
k
(x) .
Entonces
S
2N1
(x) =
1 + E
N
(x)
2
N1

k=0

k
E
k
(x) +
1 E
N
(x)
2
N1

k=0

k
E
k
_
x

N
_
.
32
Ahora bien
E
k
_
x

N
_
= exp
_
ik
_
x

N
__
= exp
_
ik

N
_
exp(ikx)
= exp
_
ik

N
_
E
k
(x)
y, por tanto,
S
2N1
(x) =
1 + E
N
(x)
2
N1

k=0

k
E
k
(x) +
1 E
N
(x)
2
N1

k=0

k
exp
_
ik

N
_
E
k
(x)
=
1
2
N1

k=0
__

k
+
k
exp
_
ik

N
__
E
k
(x)
+
_

k
exp
_
ik

N
__
E
k+N
(x)
_
,
donde hemos tenido en cuenta que E
m
(x)E
n
(x) = E
m+n
(x). Si ahora supo-
nemos que
S
2N1
(x) =
2N1

k=0

k
E
k
(x) ,
es facil comprobar que

k
=
1
2

k
+
1
2
exp
_
ik

N
_

k
,

k+N
=
1
2

1
2
exp
_
ik

N
_

k
,
con k = 0, 1, . . . , N 1.
2.7. Teora de mnimos cuadrados.
Vamos a abordar ahora el problema de la aproximacion de funciones en
el que, como ya dijimos al principio, no se imponen las condiciones de repro-
duccion de la funcion a interpolar en un n umero dado de puntos.
2.7.1. Teorema de Weierstrass para la aproximacion
polinomica.
Teorema. Sea f(x) una funci on continua y acotada en el intervalo nito
[a, b]. Entonces, para cualquier > 0 dado, existe un polinomio de grado n,
33
p
n
(x), que cumple
|f(x) p
n
(x)| < , x [a, b] .
Este teorema se conoce como teorema de Weierstrass y nos dice que es posible
aproximar una funci on mediante un polinomio tanto como uno quiera.
2.7.2. Aproximacion polinomica.
Hemos demostrado, utilizando los polinomios de Bernstein, que es posible
aproximarse a una funcion dada tanto como queramos mediante un polino-
mio de un cierto grado. Sin embargo, los polinomios de Bernstein no pueden
utilizarse para obtener el mejor polinomio posible, dado que su convergencia
es muy lenta hacia la funcion a aproximar. Vamos a ver ahora un procedi-
miento que permite obtener el polinomio buscado de forma muy simple y
directa.
Sea f(x) una funcion continua en el intervalo [a, b]. La aproximacion po-
lin omica de funciones mediante el metodo de mnimos cuadrados persigue
encontrar un polinomio p
n
(x) de grado, a lo sumo, n, que minimice la fun-
cion
E(x) =
_
b
a
dx[f(x) p
n
(x)]
2
,
es decir, minimizando el area entre ambas curvas.
Supongamos que el polinomio es
p
n
(x) =
n

k=0
a
k
x
k
.
Hemos de determinar los coecientes que minimicen el error
E(a
0
, a
1
, . . . , a
n
) =
_
b
a
dx
_
f(x)
n

k=0
a
k
x
k
_
2
.
El conjunto de condiciones necesarias para ello se pueden expresar como
E
a
j
= 0 , j = 0, 1, . . . , n.
34
Ahora bien,
E
a
l
=

a
l
_
b
a
dx
_
_
f
2
(x) 2f(x)
n

k=0
a
k
x
k
+
_
n

k=0
a
k
x
k
_
2
_
_
=
_
b
a
dx
_
2f(x)
n

k=0
a
k
a
l
x
k
+ 2
_
n

k=0
a
k
x
k
_
n

k=0
a
k
a
l
x
k
_
=
_
b
a
dx
_
2f(x)
n

k=0

kl
x
k
+ 2
_
n

k=0
a
k
x
k
_
n

k=0

kl
x
k
_
=
_
b
a
dx
_
2f(x)x
l
+ 2
n

k=0
a
k
x
k+l
_
= 0 ,
de donde resulta
n

k=0
a
k
_
b
a
dxx
k+l
=
_
b
a
dxx
l
f(x) , l = 0, 1, . . . , n,
que, como vemos, constituye un sitema de n+1 ecuaciones con n+1 incogni-
tas. Calculando la integral en el primer miembro nos queda nalmente
n

k=0
b
k+l+1
a
k+l+1
k + l + 1
a
k
=
_
b
a
dxx
l
f(x) , l = 0, 1, . . . , n.
2.7.3. Ajuste de una nube de puntos.
Un problema de particular interes en relacion con la experimentacion en
Fsica es el ajuste de un polinomio a una nube de puntos. El problema es
similar al anterior, solo que ahora, en lugar, de la funcion f(x), tenemos
unicamente un conjunto de M + 1 puntos {(x
i
, y
i
), i = 0, 1, . . . , M} que
pueden haberse obtenido al muestrear una funcion o como resultado de un
experimento.
Partimos de un polinomio de grado n
p
n
(x) =
n

k=0
a
k
x
k
.
En cada punto del conjunto inicial, se cometera un error
e
i
= |y
i
p
n
(x
i
)| .
35
Lo que imponemos para determinar los coecientes del polinomio es que la
suma de los cuadrados de los errores cometidos en cada punto sea mnima.
Esta suma es
E =
M

i=0
e
2
i
=
M

i=0
[y
i
p
n
(x
i
)]
2
=
M

i=0
_
y
i

k=0
a
k
x
k
i
_
2
,
e imponemos las condiciones
E
a
l
= 0 , l = 0, 1, . . . , n.
Tendremos entonces que
E
a
l
=

a
l
_
_
M

i=0
_
y
i

k=0
a
k
x
k
i
_
2
_
_
=

a
l
_
_
_
M

i=0
_
_
y
2
i
2y
i
n

k=0
a
k
x
k
i
+
_
n

k=0
a
k
x
k
i
_
2
_
_
_
_
_
=
M

i=0
_
2y
i
n

k=0

lk
x
k
i
+ 2
_
n

k=0
a
k
x
k
i
_
n

k=0

lk
x
k
i
_
=
M

i=0
_
2y
i
x
l
i
+ 2
n

k=0
a
k
x
k+l
i
_
= 0 ,
con lo que
n

k=0
a
k
M

i=0
x
k+l
i
=
M

i=0
y
i
x
l
i
, l = 0, 1, . . . , n.
Como vemos, estas ecuaciones guardan paralelismo con las obtenidas en el
caso de la aproximacion de la funcion.
Un caso particular de interes es la regresion lineal, es decir, n = 1. En
este caso tenemos
a
0
M

i=0
x
0
i
+ a
1
M

i=0
x
1+0
i
=
M

i=0
y
i
x
0
i
a
0
M

i=0
x
1
i
+ a
1
M

i=0
x
1+1
i
=
M

i=0
y
i
x
1
i
,
36
es decir
a
0
(M + 1) + a
1
M

i=0
x
i
=
M

i=0
y
i
a
0
M

i=0
x
i
+ a
1
M

i=0
x
2
i
=
M

i=0
y
i
x
i
.
Deniendo ahora
S
x
=
M

i=0
x
i
S
y
=
M

i=0
y
i
S
xx
=
M

i=0
x
2
i
S
xy
=
M

i=0
x
i
y
i
,
y resolviendo el sistema tenemos
a
0
=
S
xx
S
y
S
x
S
xy
(M + 1)S
xx
S
2
x
a
1
=
(M + 1)S
xy
S
x
S
y
(M + 1)S
xx
S
2
x
.
2.7.4. Aproximacion de funciones mediante desarrollo
de Fourier.
Vamos a utilizar ahora la serie de Fourier que denimos en un teorema
anterior que, recordemos, viene dada por
S
n
(t) =
a
0
2
+

k=1
[a
k
cos(kt) + b
k
sen(kt)] ,
37
con
a
k
=
1

dt f(t) cos(kt) ,
b
k
=
1

dt f(t) sen(kt) .
Como ya vimos en el caso de la interpolacion de Fourier, es conveniente
muchas veces utilizar una notacion mas compacta basada en la serie compleja
de Fourier
S
n
(t) =

k=
c
k
exp(ikt) ,
donde
c
k
=
1
2
_

dtf(t) exp(ikt) .
38
Captulo 3
Derivacion e integracion
numericas.
1. Introduccion.
2. Derivacion numerica.
3. Integracion numerica basada en interpolacion.
4. Integracion de Gauss.
5. Integracion de Romberg.
3.1. Introduccion.
El problema que nos planteamos ahora es el siguiente. Supongamos que
conocemos los valores de una funcion {y
0
, y
1
, . . . , y
n
} en un cierto n umero de
puntos {x
0
, x
1
, . . . , x
n
}. Nos preguntamos si esa informacion puede utilizarse
para obtener una estimacion de como es la derivada de esa funcion en un
cierto punto o su integral denida en un cierto intervalo. La respuesta es s.
No obstante, hay que ser conscientes de que, en principio, existe un n ume-
ro innito de funciones distintas que cumplen que
f(x
k
) = y
k
, k = 0, 1, . . . , n
y, por tanto, tendremos innitas posibilidades para la derivada o la integral.
Si de la funcion que estamos analizando solo sabemos que es una funcion
continua de variable real, de poco serviran los valores antes indicados. Por el
39
contrario, si sabemos que se trata de un polinomio de grado, a lo sumo, n,
entonces los valores dados denen unvocamente el polinomio y tendremos la
derivada o la integral exactas. En general, la informacion disponible en las
situaciones reales no determina completamente la funcion y eso implica que
cualquier estimacion numerica de su derivada o su integral requiere de una
cota de error para que tenga signicado.
3.2. Derivacion numerica.
En principio, podemos calcular la derivada usando su denicion en termi-
nos del lmite:
f

(x)
f(x +h) f(x)
h
. (3.1)
Si f(x) es un polinomio de primer grado, esta expresion proporciona el valor
exacto de la derivada para cualquier h = 0. En otros casos puede ocurrir
lo mismo, pero de manera totalmente fortuita. Por tanto, es necesario hacer
una estimacion del error que se comete al utilizar la ecuacion (3.1). Para ello
consideramos el teorema de Taylor
f(x +h) = f(x) + h f

(x) +
h
2
f

() , (x, x +h) . (3.2)


Esta ecuacion es valida si f(x) y f

(x) son continuas en [x, x + h] y f

(x)
existe en (x, x +h). A partir de la ecuacion (3.2) podemos escribir
f

(x) =
f(x +h) f(x)
h

h
2
f

() , (x, x +h) . (3.3)


Esta expresion es mas util que la ecuacion (3.1) ya que, para un conjunto
amplio de funciones (las que cumplen las condiciones antes indicadas), pro-
porciona una formula numerica para la derivada y, ademas, un termino que
permite cuanticar el error que se comete. Este termino consta de dos partes:
una potencia de h y un factor que depende de una derivada de orden superior
de f(x). Esta derivada indica la clase de funciones para las que es valida la
estimacion del error. La potencia de h garantiza que el error converja a cero
cuando h lo hace e indica la rapidez de esa convergencia.
El error se conoce como error de trucamiento ya que esta asociado al hecho
de que hemos truncado la serie de Taylor para obtener la expresion numerica
de la derivada. Como hemos visto en el ejemplo, parece que para obtener la
40
derivada con mayor precision basta reducir el valor de h. Sin embargo esto
puede presentar problemas en algunos casos.
Es posible encontrar formulas mas precisas que se suelen caracterizar por
la potencia de h que presenta el termino de error. Si se consideran los dos
desarrollos de Taylor siguientes
f(x +h) = f(x) + h f

(x) +
h
2
2
f

(x) +
h
3
6
f

(
1
) , (3.4)
f(x h) = f(x) h f

(x) +
h
2
2
f

(x)
h
3
6
f

(
2
) , (3.5)
y restamos ambas ecuaciones tenemos
f

(x) =
f(x +h) f(x h)
2h

h
2
12
[f

(
1
) + f

(
2
)] . (3.6)
Como vemos, el termino de error incluye h
2
y esto implica una mayor pre-
cision que en el caso anterior. Claro que hay que tener en cuenta que para
que podamos utilizar ese termino de error es necesario que f

(x) exista en
los correspondientes intervalos. Si suponemos que, ademas, esta derivada es
continua en [x h, x + h], podemos aplicar el teorema del valor medio de
manera que existira un [x h, x +h] tal que
f

() =
1
2
[f

(
1
) + f

(
2
)] (3.7)
y, por tanto,
f

(x) =
f(x +h) f(x h)
2h

h
2
6
f

() . (3.8)
Esta tecnica puede utilizarse para obtener expresiones que permiten el
calculo numerico de derivadas de ordenes superiores. Si se a nade un termino a
los desarrollos de Taylor anteriores y se suman, entonces se obtiene, siguiendo
pasos similares,
f

(x) =
f(x +h) 2f(x) +f(x h)
h
2

h
2
12
f
(4)
() , (x h, x +h) .
(3.9)
41
3.2.1. Derivacion va interpolacion polinomica.
La interpolacion polinomica puede utilizarse como punto de partida de
un metodo general para calcular derivadas numericas. Supongamos que co-
nocemos los valores de la funcion f(x) en n+1 puntos {x
0
, x
1
, . . . , x
n
}. Como
sabemos, podemos interpolar esa funcion mediante un polinomio de grado, a
lo sumo, n, que podemos expresar, teniendo en cuenta la forma de Lagrange,
como
p
n
(x) =
n

i=0
f(x
i
) l
i
(x) , (3.10)
donde
l
i
(x) =
n

k=0
k=i
x x
k
x
i
x
k
, i = 0, 1, . . . , n. (3.11)
Si tenemos en cuenta el error que se comete con esta interpolacion, entonces
f(x) = p
n
(x) +
1
(n + 1)!
f
(n+1)
(
x
) w(x) , (3.12)
donde
w(x) =
n

i=0
(x x
i
) . (3.13)
Si derivamos esta ecuacion podemos escribir
f

(x) = p

n
(x) +
1
(n + 1)!
f
(n+1)
(
x
) w

(x) +
1
(n + 1)!
w(x)
d
dx
f
(n+1)
(
x
) .
(3.14)
Esta expresion se simplica en el caso de que calculemos la derivada en
uno de los puntos x
i
iniciales, ya que entonces
w(x
i
) = 0 , i = 0, 1, . . . , n. (3.15)
Ademas,
w

(x) =
n

k=0
n

i=0
i=k
(x x
i
) , (3.16)
y, por tanto, en el punto x = x
m
,
w

(x
m
) =
n

i=0
i=m
(x
m
x
i
) . (3.17)
42
Entonces, la derivada en dicho punto viene dada por
f

(x
m
) =
n

i=0
f(x
i
) l

i
(x
m
) +
1
(n + 1)!
f
(n+1)
(
x
) w

(x
m
)
=
n

i=0
f(x
i
) l

i
(x
m
) +
1
(n + 1)!
f
(n+1)
(
x
)
n

i=0
i=m
(x
m
x
i
) .(3.18)
3.2.2. Extrapolacion de Richardson.
La extrapolacion de Richardson es un procedimiento que permite incre-
mentar la precision en algunas expresiones numericas, en particular las que
propocionan la derivada. El punto de partida lo constituyen los desarrollos
de Taylor siguientes:
f(x +h) =

k=0
1
k!
h
k
f
(k)
(x) , (3.19)
f(x h) =

k=0
1
k!
(1)
k
h
k
f
(k)
(x) . (3.20)
Si restamos ambas ecuaciones, es evidente que todos los terminos con k par
se anularan y nos queda
f(x +h) f(x h) = 2h f

(x) +
2h
3
3!
f

(x) +
2h
5
5!
f
(V )
(x) +
= 2h

k=0
h
2k
(2k + 1)!
f
(2k+1)
(x) . (3.21)
De aqu podemos obtener la derivada que viene dada por
f

(x) =
f(x + h) f(x h)
2h

k=1
h
2k
(2k + 1)!
f
(2k+1)
(x) . (3.22)
La ecuacion anterior puede escribirse formalmente como
L =
0
(h) +

k=1
a
2k
h
2k
, (3.23)
43
con
a
2k
=
1
(2k + 1)!
f
(2k+1)
(x) . (3.24)
Aqu L representa la funcion derivada y

0
(h) =
f(x +h) f(x h)
2h
(3.25)
es la formula numerica para dicha derivada tal y como la proporciona la
ecuacion (3.8). Es evidente que
0
(h) no puede calcularse cuando h = 0 y,
como ya sabamos, la ecuacion solo tiene sentido cuando h 0. Pero, cuando
h es sucientemente peque no, el termino a
2
h
2
(el primer termino de error) es
el dominante. Vamos a ver si es posible eliminarlo. Si aplicamos la ecuacion
anterior para un paso h/2 tenemos
L =
0
_
h
2
_
+

k=1
a
2k
_
h
2
_
2k
. (3.26)
Si multiplicamos esta ecuacion por 4 y le restamos la anterior tendremos
L =
4
3

0
_
h
2
_

1
3

0
(h)
1
3

k=2
4
k
4
4
k
a
2k
h
2k
=
1
(h) +

k=2
b
2k
h
2k
, (3.27)
donde hemos denido

1
(h) =
1
3
_
4
0
_
h
2
_

0
(h)
_
(3.28)
y
b
2k
=
1
3
4
k
4
4
k
a
2k
. (3.29)
Como vemos una combinacion sencilla de
0
(h) y
0
(h/2) permite obtener
L con una precision de orden h
4
.
Lo interesante de este procedimiento es que puede iterarse. En efecto, si la
ecuacion (3.27) la aplicamos para h/2, la multiplicamos por 16 y le restamos
44
la ecuacion (3.27) queda
L =
1
15
_
16
1
_
h
2
_

1
(h)
_

1
15

k=3
4
k
16
4
k
b
2k
h
2k
=
2
(h) +

k=3
c
2k
h
2k
, (3.30)
donde

2
(h) =
1
15
_
16
1
_
h
2
_

1
(h)
_
(3.31)
y
c
2k
=
1
15
4
k
16
4
k
b
2k
. (3.32)
Esto nos permite escribir

k
(h) =
1
4
k
1
_
4
k

k1
_
h
2
_

k1
(h)
_
, (3.33)
que nos da la derivada de la funcion con un error O(h
2k+2
). En el algoritmo
que nos permite esta iteracion denimos los valores
D(k, n) =
k
_
h
2
nk
_
. (3.34)
Aqu k = 0, 1, . . . , M y n = k, k + 1, . . . , M. Entonces jamos un valor de h
(por ejemplo, h = 1) y calculamos los valores
D(0, n) =
0
_
1
2
n
_
, (3.35)
para luego ir calculando, sucesivamente, los valores D(k, n) de acuerdo con
la ecuacion (3.33)
D(k, n) =
1
4
k
1
_
4
k
D(k 1, n) D(k 1, n 1)

. (3.36)
Al nal podemos calcular
D(M, M)
M
(h) = L + O(2
2M+2
) . (3.37)
45
3.3. Integracion numerica basada en interpo-
lacion.
La integracion numerica trata de resolver el problema de la evaluacion
aproximada de
I =
_
b
a
dxf(x) , (3.38)
en los casos en los que (i) f(x) es conocida analticamente, pero no es posible
encontrar una expresion analtica para su primitiva F(x) tal que F

(x) =
f(x), o (ii) de f(x) solo se conocen sus valores en un conjunto de n + 1
puntos {x
k
, k = 0, 1, . . . , n}.
Evidentemente, una opcion simple de abordar el problema es utilizar el
concepto de integral de Riemann y sustituir el valor de la integral por alguna
de las correspondientes sumas de Riemann:
I
n1

k=0
f(x
k
) (x
k+1
x
k
) (3.39)

n1

k=0
f(x
k+1
) (x
k+1
x
k
) (3.40)

n1

k=0
f
_
x
k
+x
k+1
2
_
(x
k+1
x
k
) . (3.41)
Sin embargo, estas aproximaciones presentan un error considerable y, si bien
es cierto que, al menos en principio, ese error debe disminuir al reducir el
tama no de los intervalos x
k+1
x
k
, al hacerlo aumenta considerablemente el
n umero de operaciones a realizar y, al mismo tiempo, tambien lo hacen los
errores de redondeo.
Por esto, en la practica, se suelen utilizar formulas de integracion que
estan basadas en la interpolacion de la funcion que se pretende integrar.
Supongamos, por tanto, que conocemos el valor de la funcion f(x) en los
puntos a = x
0
< x
1
< < x
n1
< x
n
= b. En tal caso, podemos interpolar
esa funcion mediante un polinomio de grado, a los sumo, n que, en su forma
de Lagrange, viene dado por
f(x) p
n
(x) =
n

i=0
f(x
i
) l
i
(x) , (3.42)
46
con
l
i
(x) =
n

k=0
k=i
x x
k
x
i
x
k
, i = 0, 1, . . . , n. (3.43)
En este caso, tendremos para la integral
I =
_
b
a
dxf(x)
_
b
a
dxp
n
(x) =
n

i=0
f(x
i
)
_
b
a
dxl
i
(x) , (3.44)
que podemos escribir como
I
n

i=0
A
i
f(x
i
) , (3.45)
donde los coecientes A
i
vienen dados por
A
i
=
_
b
a
dxl
i
(x) . (3.46)
Si los puntos {x
k
, k = 0, 1, . . . , n} estan equiespaciados, es decir, si
x
k
= x
0
+ k h , (3.47)
con h = (b a)/n, entonces la ecuacion (3.45) recibe el nombre de formula
de Newton-Cotes.
3.3.1. Regla del trapecio.
Vamos a ver el caso mas sencillo: n = 1. Entonces los polinomios l
i
seran
l
0
(x) =
x x
1
x
0
x
1
=
b x
b a
(3.48)
l
1
(x) =
x x
0
x
1
x
0
=
x a
b a
, (3.49)
los coecientes A
i
valdr an
A
0
=
_
b
a
dx
b x
b a
=
b a
2
(3.50)
A
1
=
_
b
a
dx
x a
b a
=
b a
2
, (3.51)
47
y la formula de cuadratura correspondiente es
I
b a
2
[f(a) + f(b)] , (3.52)
que recibe el nombre de regla del trapecio y que proporciona un resultado
exacto si la funcion a interpolar es un polinomio de grado, a lo sumo, 1.
Para determinar el error de esta formula de integracion, denimos
F(x) =
_
x
a
dt f(t) , (3.53)
de manera que F

(x) = f(x). Si hacemos el desarrollo de Taylor de F(x) en


x = b y denimos b a = h podemos escribir
I F(b) = F(a) + F

(a) h +
1
2
F

(a) h
2
+
1
6
F

(a) h
3
+ . . .(3.54)
= f(a) h +
1
2
f

(a) h
2
+
1
6
f

(a) h
3
+ . . . , (3.55)
donde hemos tenido en cuenta que F(a) = 0. Por otro lado
f(b) f(a +h) = f(a) + f

(a) h +
1
2
f

(a) h
2
+ . . . , (3.56)
de manera que
b a
2
[f(a) + f(b)] =
h
2
[f(a) + f(a +h)]
= f(a) h +
1
2
f

(a) h
2
+
1
4
f

(a) h
3
+ . . . . (3.57)
Entonces
I =
h
2
[f(a) + f(b)]
h
3
12
f

(a) + . . . (3.58)
=
h
2
[f(a) + f(b)]
h
3
12
f

() , (a, b) . (3.59)
Si el intervalo [a, b] se tienen mas puntos, a = x
0
< x
1
< < x
n1
<
x
n
= b, se puede aplicar la regla del trapecio a cada uno de los subintervalos
obteniendose la denominada regla del trapecio compuesta, en la que
I =
_
b
a
dxf(x) =
n

k=1
_
x
k
x
k1
dxf(x) (3.60)

1
2
n

k=1
(x
k
x
k1
) [f(x
k1
) +f(x
k
)] . (3.61)
48
Es interesante se nalar que, en esta expresion general, los puntos no tienen
porque estar equiespaciados. Por otro lado hay que tener en cuenta que tam-
bien podramos haber obtenido este resultado sin mas que utilizar un spline
de grado 1 para interpolar la funcion f(x) y, posteriormente, integrar dicho
spline.
Si en la ecuacion anterior suponemos que los puntos estan equiespaciados,
de forma que (b a)/n = h, entonces
I
h
2
_
f(x
0
) + f(x
n
) + 2
n1

k=1
f(x
k
)
_
. (3.62)
En este caso el error vale
E =
h
2
12
(b a) f

() , (a, b) . (3.63)
3.3.2. Regla del Simpson.
Consideremos ahora la situacion con n = 2, es decir, tres puntos equies-
paciados: x
0
= a, x
1
= (a + b)/2 y x
1
= b. El polinomio interpolador es,
ahora,
p
2
= f(a) l
0
(x) + f
_
a +b
2
_
l
1
(x) + f(b) l
2
(x) . (3.64)
Por tanto,
I =
_
b
a
dxf(x) A
0
f(a) + A
1
f
_
a +b
2
_
+ A
2
f(b) . (3.65)
Si particularizamos este resultado para la funcion f(x) = 1 resulta
_
b
a
dx = b a = A
0
+ A
1
+ A
2
. (3.66)
Para f(x) = (x a)/(b a) resulta
_
b
a
dx
x a
b a
= (b a)
_
1
0
dy y =
b a
2
=
1
2
A
1
+ A
2
. (3.67)
Por ultimo, si consideramos f(x) = [(x a)/(b a)]
2
,
_
b
a
dx
_
x a
b a
_
2
= (b a)
_
1
0
dy y
2
=
b a
3
=
1
4
A
1
+ A
2
. (3.68)
49
De esta forma tenemos un sistema de tres ecuaciones con tres incogintas cuya
solucion nos proporciona
A
0
=
b a
6
, A
1
=
2(b a)
3
, A
2
=
b a
6
. (3.69)
Entonces, la integral vale
I
b a
6
_
f(a) + 4 f
_
a +b
2
_
+ f(b)
_
, (3.70)
que se conoce como regla de Simpson y que es exacta para cualquier polino-
mio de grado, a lo sumo, 2 e, inesperadamente, tambien para los polinomios
de grado 3. En efecto
_
1
0
dxp
3
(x) =
3

i=0
a
i
_
1
0
dxx
i
=
_
3

i=0
a
i
i + 1
x
i
_
1
0
=
3

i=0
a
i
i + 1
= a
0
+
a
1
2
+
a
2
3
+
a
3
4
, (3.71)
mientras que la formula de Simpson nos da
_
1
0
dxp
3
(x) =
1
6
_
p
3
(0) + 4 p
3
_
1
2
_
+ p
3
(1)
_
=
1
6
_
a
0
+ 4
_
a
0
+
a
1
2
+
a
2
4
+
a
3
8
_
+ a
0
+ a
1
+ a
2
+ a
3
_
= a
0
+
a
1
2
+
a
2
3
+
a
3
4
. (3.72)
El calculo del error en este caso lo podemos hacer siguiendo una estrategia
similar a la utilizada en el caso anterior, sin mas que tener en cuenta que
ahora h = (b a)/2. Por un lado resulta que
I F(b) = F(a) + F

(a) 2h +
1
2
F

(a) (2h)
2
+
1
3!
F

(a) (2h)
3
+
1
4!
F
(IV )
(a) (2h)
4
+
1
5!
F
(V )
(a) (2h)
5
+ . . .
= f(a) 2h +
1
2
f

(a) (2h)
2
+
1
3!
f

(a) (2h)
3
+
1
4!
f

(a) (2h)
4
+
1
5!
f
(IV )
(a) (2h)
5
. . . . (3.73)
50
Por otro lado tenemos
f(a +h) = f(a) + f

(a) h +
1
2
f

(a) h
2
+
1
3!
f

(a) h
3
+
1
4!
f
(IV )
(a) h
4
+ . . . (3.74)
f(a + 2h) = f(a) + f

(a) 2h +
1
2
f

(a) (2h)
2
+
1
3!
f

(a) (2h)
3
+
1
4!
f
(IV )
(a) (2h)
4
+ . . . . (3.75)
Entonces, el segundo miembro en la ecuacion (3.70) resulta
b a
6
_
f(a) + 4 f
_
a +b
2
_
+ f(b)
_
=
=
h
3
[f(a) + 4 f(a +h) + f(a + 2h)]
= f(a) 2h + f

(a) 2h
2
+
4
3
f

(a) h
3
+
2
3
f

(a) h
4
+
5
18
f
(IV )
(a) h
5
+ . . . . (3.76)
Por tanto, la integral la podemos escribir como
I =
h
3
[f(a) + 4 f(a +h) + f(a + 2h)]
h
5
90
f
(IV )
(a) . . . , (3.77)
lo que nos indica que el error es del orden de h
5
.
Si el intervalo [a, b] se divide en un n umero par de subintervalos, podemos
aplicar a cada uno de esos subintervalos la regla de Simpson que acabamos
de determinar. De esa forma se obtiene la formula de Simpson compuesta.
En efecto
_
b
a
dxf(x) =
_
x
2
x
0
dxf(x) +
_
x
4
x
2
dxf(x) + . . . +
_
x
2n
x
2n2
dxf(x)
=
n

i=1
_
x
2i
x
2i2
dxf(x)
h
3
n

i=1
[f(x
2i2
) + 4 f(x
2i1
) + f(x
2i
)]
=
h
3
_
f(x
0
) + 2
n1

i=1
f(x
2i
) + 4
n

i=1
f(x
2i1
) + f(x
2n
)
_
, (3.78)
51
f ormula que presenta un error
E =
h
4
180
(b a) f
(IV )
() , (a, b) . (3.79)
3.3.3. Formulas de integracion generales.
De manera similar a lo que hicimos para obtener las formulas de cua-
dratura de Newton-Cotes, es posible obtener formulas de integracion mas
generales, del tipo
_
b
a
dxw(x) f(x)
n

i=0
A
i
f(x
i
) , (3.80)
donde w(x) puede ser cualquier funcion peso. Ahora los coecientes vienen
dados por
A
i
=
_
b
a
dxw(x) l
i
(x) . (3.81)
3.4. Integracion de Gauss.
La interpolacion polinomica nos ha permitido calcular integrales
_
b
a
dxf(x)
n

i=0
A
i
f(x
i
) ,
que proporcionan el resultado exacto para polinomios p
n
(x). En este caso, los
puntos {x
k
, k = 0, 1, . . . , n} se eligen a priori y los coecientes se determinan
unvocamente imponiendo que la aproximacion anterior sea una igualdad,
_
b
a
dxp
n
(x) =
n

i=0
A
i
p
n
(x
i
) ,
en el caso de un polinomio. Podemos preguntarnos ahora si es posible hacer
otra eleccion de los puntos x
k
que sea mejor. Por ejemplo, cabra plantearse
si existe una eleccion de puntos tal que
A
i
= c , 0 i n,
52
de manera que, entonces,
_
b
a
dxf(x) c
n

i=0
f(x
i
) .
Se sabe que este tipo de ecuaciones existe solo si n 8 y se denominan
f ormulas de cuadratura de Chebyshev. Por ejemplo, para n = 4 se tiene
_
b
a
dxf(x)
2
5
[f() +f() +f(0) +f() +f()] ,
con
=
_
(5 +

11)/12 , =
_
(5

11)/12 .
La formula es exacta para polinomios p
4
(x). Otro ejemplo es el siguiente
_
1
1
dxf(x)

n
n

i=1
F
_
cos
(2i 1)
2n
_
,
donde F(x) = f(x)

1 x
2
.

Esta es la conocida como formula de cuadratura
de Hermite, que resulta ser exacta para las funciones

1 x
2
p
2n1
(x). En
este caso, con solo n evaluaciones de f(x), tenemos una formula que es exacta
en un espacio lineal de dimension 2n.
Formulamos el problema en la forma
_
b
a
dxw(x) f(x)
n

i=0
A
i
f(x
i
) ,
donde w(x) es una funcion peso. Esta formula es exacta para un polinomio
p
n
(x) si y s olo si
A
i
=
_
b
a
dxw(x)
n

j=0
j=i
x x
j
x
i
x
j
.
Pues bien, es posible encontrar un conjunto de puntos {x
k
, k = 0, 1, . . . , n}
tal que la formula de cuadratura anterior es exacta para polinomios de grado,
a lo sumo, 2n + 1. La idea se debe a Gauss.
Teorema. Sea w(x) una funci on peso denida positiva y sea q
n+1
(x) un
polinomio de grado, a lo sumo, n + 1 no nulo que verica que
_
b
a
dxq
n+1
(x) p
n
(x) w(x) = 0 ,
53
es decir, q
n+1
(x) es w-ortogonal a cualquier polinomio de grado, a lo sumo,
n. Entonces, si {x
k
, k = 0, 1, . . . , n} son los ceros de q
n+1
(x), la f ormula de
cuadratura
_
b
a
dxw(x) f(x)
n

k=0
A
k
f(x
k
) ,
es exacta para todo polinomio de grado, a lo sumo, 2n + 1.
Teorema. Sea w(x) una funci on peso positiva y continua en [a, b]. Sea f(x)
otra funci on no nula y continua en [a, b] que es w-ortogonal a cualquier poli-
nomio p
n
(x). Entonces f(x) cambia de signo al menos n+1 veces en (a, b).
En el caso de la integral que Gauss estudio,
_
1
1
dxf(x) ,
las formulas para n = 1 y n = 4 son
_
1
1
dxf(x) f() + f()
=
1

3
_
1
1
dxf(x)
4

k=0
A
k
f(x
k
)
x
0
= x
4
=
1
3

5 + 2
_
10
7
x
1
= x
3
=
1
3

5 2
_
10
7
x
2
= 0
A
0
= A
4
= 0.3
0.7 + 5

0.7
2 + 5

0.7
A
1
= A
3
= 0.3
0.7 + 5

0.7
2 + 5

0.7
A
2
=
128
225
.
54
Los coecientes A
i
se determinan de forma similar al caso de las formulas
no gaussianas, teniendo en cuenta que los puntos x
k
son las races de un
polinomio de grado, a lo sumo, n + 1, que queda determinado unvocamente
sabiendo que (i) el coeciente de x
n+1
en ese polinomio es la unidad y (ii)
que es w-ortogonal a cualquier polinomio p
n
(x).
Teorema. En una formula de cuadratura gaussiana, los coecientes son po-
sitivos y su suma coincide con
_
b
a
dxw(x) .
Teorema. Consideremos la f ormula gaussiana
_
b
a
dxw(x) f(x) =
n

i=0
A
i
f(x
i
) + E .
Si f(x) es continua y con derivadas continuas hasta orden 2n + 2 en [a, b],
entonces
E =
1
(2n + 2)!
f
(2n+2)
()
_
b
a
dxq
2
n
(x) w(x) , (a, b) ,
y donde
q
n
(x) =
n

i=0
(x x
i
) .
Veamos el problema de nuevo, desde otro punto de vista. Queremos elegir
los puntos {x
0
, x
1
, . . . , x
n
} de forma que podamos obtener una formula de
cuadratura que sea exacta para polinomios de grado, a lo sumo, 2n + 1.
Consideremos la interpolacion de Hermite que, como sabemos, se basa en el
conocimiento previo de los valores de la funcion, f(x
k
), y de su derivada,
f

(x
k
), en un conjunto de n + 1 puntos {x
k
, k = 0, 1, . . . , n}. La funcion se
55
puede expresar en la forma
f(x) =
n

k=0
f(x
k
) A
k
(x) +
n

k=0
f

(x
k
) B
k
(x)
+
1
(2n + 2)!
f
(2n+2)
(
x
)
n

k=0
(x x
k
)
2
A
k
(x) = [1 2 l

k
(x
k
) (x x
k
)] l
2
k
(x)
B
k
(x) = (x x
k
) l
2
k
(x) ,
donde
l
k
(x) =
n

j=0
j=k
x x
j
x
k
x
j
, k = 0, 1, . . . , n.
La interpolacion de Hermite proporciona una solucion exacta en el caso en
que f(x) es un polinomio de grado, a lo sumo, 2n + 1. Queremos calcular la
integral
_
b
a
dxf(x) w(x) ,
con w(x) 0 una funci on continua en el intervalo [a, b]. Sustituyendo la
interpolacion de Hermite resulta
_
b
a
dxf(x) w(x) =
n

k=0
f(x
k
) H
k
+
n

k=0
f

(x
k
)

H
k
+ E ,
donde
H
k
=
_
b
a
dxA
k
(x) w(x) ,

H
k
=
_
b
a
dxB
k
(x) w(x) ,
E =
1
(2n + 2)!
_
b
a
dxf
(2n+2)
(
x
)
2
(x) w(x) ,
con
(x) =
n

k=0
(x x
k
) .
56
La idea, ahora, es hacer la eleccion de los puntos x
k
de forma que

H
k
= 0.
En tal caso
_
b
a
dxf(x) w(x) =
n

k=0
f(x
k
) H
k
+ E .
Por tanto debe ocurrir que
_
b
a
dxB
k
(x) w(x) = 0 , k = 0, 1, . . . , n,
es decir
_
b
a
dx(x x
k
) l
2
k
(x) w(x) = 0 , k = 0, 1, . . . , n.
Pero como
(xx
k
) l
2
k
(x) = (xx
k
)
_
_
_
_
n

j=0
j=k
x x
j
x
k
x
j
_
_
_
_
l
k
(x) =
_
_
_
_
n

j=0
j=k
(x
k
x
j
)
_
_
_
_
1
(x) l
k
(x) ,
la condicion que debe cumplirse es
_
b
a
dx(x) l
k
(x) w(x) = 0 , k = 0, 1, . . . , n.
Como (x) es un polinomio de grado, a lo sumo, n + 1, esta condicion es,
nuevamente, la condici on del primero de los teoremas de esta seccion, que es
satisfecha por los denominados polinomios ortogonales. Por tanto, los puntos
x
k
que hay que escoger son los ceros de los correspondientes polinomios. La
eleccion de esos polinomios dependera del intervalo de integracion y de la
funci on peso w(x). Las situaciones mas usuales son las siguientes:
a b w(x) polinomios
-1 1 1 P
n
(x), Legendre
0 exp(x) L
n
(x), Laguerre
exp(x
2
) H
n
(x), Hermite
Determinadas las abscisas, los coecientes se calculan mediante el metodo
de los coecientes indeterminados.
57
En el Handbook of Mathematical Functions (M. Abramowitz and I.A.
Stegun, Dover, 1972) se pueden encontrar las tablas correspondientes. En el
primer caso se tienen hasta n = 96; en el segundo, hasta n = 15 y en el
tercero, hasta n = 20. Las integrales vienen dadas por
_
b
a
dxw(x) f(x) =
n

i=0
H
i
f(x
i
) ,
pero en los dos ultimos casos es posible utilizar tambien la forma
_
b
a
dxg(x) =
n

i=0
H
i
1
w(x
i
)
f(x
i
) .
3.5. Integracion de Romberg.
Supongamos que queremos calcular la integral
_
b
a
dxf(x)
y sea
T(n) =
h
2
_
f(a) + f(b) + 2
n1

k=1
f(a +kh)
_
,
con
h =
b a
n
la formula del trapecio compuesta. Supongamos que, en lugar de n+1 puntos
(n subintervalos) consideramos 2n + 1 puntos (2n subintervalos). Entonces,
si denimos h

= h/2, tendremos
T(2n) =
h

2
_
f(a) + f(b) + 2
2n1

k=1
f(a +kh

)
_
=
h
4
_
f(a) + f(b) + 2
n

l=1
f[a + (2l 1)h

] + 2
n1

l=1
f(a + 2lh

)
_
=
h
4
_
f(a) + f(b) + 2
n

l=1
f[a + (2l 1)h

] + 2
n1

l=1
f(a +lh)
_
=
1
2
T(n) + h

l=1
f[a + (2l 1)h

] .
58
Esto nos permite encontrar una forma recursiva
T(1) =
b a
2
[f(a) + f(b)]
T(2
n
) =
1
2
T(2
n1
) +
b a
2
n
2
n1

l=1
f
_
a + (2l 1)
b a
2
n
_
,
cuya losofa es similar a la extrapolacion de Richardson.
Consideremos ahora la formula de Euler-MacLaurin para una funci on
continua y con derivadas continuas (hasta orden 2m) en [0,1]:
_
1
0
dt f(t) =
1
2
[f(0) + f(1)]
+
m1

k=1
A
2k
_
f
(2k1)
(0) f
(2k1)
(1)

A
2m
f
(2m)
(
0
) ,
donde
0
(0, 1). Los A
2k
estan relacionados con los n umeros de Bernouilli.
Si consideramos x
i+1
= x
i
+h, tendremos
_
x
i+1
x
i
dxf(x) =
h
2
[f(x
i
) + f(x
i+1
)]
+
m1

k=1
A
2k
_
f
(2k1)
(x
i
) f
(2k1)
(x
i+1
)

A
2m
h
2m+1
f
(2m)
(
i
) ,
con
i
(x
i
, x
i+1
).
Volvamos a la integral original y dividamosla en 2
n
intervalos consideran-
do x
0
= a y x
2
n = b:
_
b
a
dxf(x) =
2
n
1

i=0
_
x
i+1
x
i
dxf(x) .
59
Aplicando ahora la expresion de Euler-MacLaurin tendremos
_
b
a
dxf(x) =
h
2
2
n
1

i=0
[f(x
i
) + f(x
i+1
)]
+
2
n
1

i=0
m1

k=1
A
2k
_
f
(2k1)
(x
i
) f
(2k1)
(x
i+1
)

2
n
1

i=0
A
2m
h
2m+1
f
(2m)
(
i
) ,
es decir,
_
b
a
dxf(x) = T(2
n
) +
m1

k=1
C
2k
h
2k
+ C
2m
h
2m
f
(2m)
() .
Lo interesante de esta expresion es que los coecientes C
k
son independientes
de h. Como vemos, esta ecuacion tiene la misma estructura que la ecuacion
basica de la extrapolacion de Richardson. Por tanto tenemos
R
0,0
= T(1)
R
0,n
= T(2
n
)
R
k,n
=
1
4
k
1
_
4
k
R
k1,n
R
k1,n1

.
Este algoritmo de Romberg se aprovecha tanto mejor cuanto mayor es
el grado al que la funcion a integrar puede derivarse. Por otro lado, es posible
demostrar que, para un valor jo de m,
lm
n
R
m,n
=
_
b
a
dxf(x) .
60
61
62
Captulo 4
Sistemas de ecuaciones
algebraicas.
1. Introduccion.
2. Metodos directos.
3. Metodos iterativos.
4. Inversion de matrices.
5. Valores propios. Metodo de la potencia.
4.1. Introduccion.
El objetivo del presente tema es estudiar los aspectos numericos relacio-
nados con la b usqueda de soluciones de sistemas de ecuaciones lineales de la
forma
_

_
a
1,1
x
1
+ a
1,2
x
1
+ . . . + a
1,n
x
n
= b
1
a
2,1
x
1
+ a
2,2
x
1
+ . . . + a
2,n
x
n
= b
2
.
.
.
a
n,1
x
1
+ a
n,2
x
1
+ . . . + a
n,n
x
n
= b
n
(4.1)
Este sistema es util escribirlo en forma matricial
Ax = b, (4.2)
63
donde
A =
_
_
_
_
_
a
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . a
n,n
_
_
_
_
_
, x =
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
, b =
_
_
_
_
_
b
1
b
2
.
.
.
b
n
_
_
_
_
_
. (4.3)
Como sabemos, si el determinante de la matriz A es no nulo, |A| = 0, es
posible encontrar la solucion del problema mediante la regla de Cramer:
x
k
=

. . . a
1,k1
b
1
a
1,k+1
. . .
. . . a
2,k1
b
2
a
2,k+1
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . a
n,k1
b
n
a
n,k+1
. . .

. . . a
1,k1
a
1,k
a
1,k+1
. . .
. . . a
2,k1
a
2,k
a
2,k+1
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . a
n,k1
a
n,k
a
n,k+1
. . .

. (4.4)
La solucion del sistema mediante la aplicacion de la regla de Cramer re-
quiere el calculo de n + 1 determinantes: el de la matriz A y uno mas por
cada una de las n incognitas. Ahora bien, el calculo del determinante de una
matriz n n requiere un total de n! 1 sumas y n!(n 1) multiplicaciones.
Por tanto, el n umero total de operaciones a realizar para obtener la solucion
mediante la regla de Cramer es de (n! 1)(n+1) sumas, n!(n1)(n+1) mul-
tiplicaciones y n divisiones (entre los determinantes). El total de operaciones
es, aproximadamente, n!n
2
.
El ordenador mas potente en la actualidad es el BlueGene/L de la Natio-
nal Nuclear Security Administration del Department of Energy (E.E.U.U.),
instalado en el Lawrence Livermore National Laboratory, que tiene 212992
procesadores con 478200 GFLOPS (596378 GFLOPS de pico). FLOPS (acro-
nimo de FLOating Point operations per Second) mide la capacidad de un or-
denador de realizar operaciones de coma otante. Es cierto que un ordenador
no tarda el mismo tiempo en hacer una suma o una resta que en hacer una
multiplicacion o una division.

Esta ultima requiere mas de cuatro veces mas
de tiempo para ejecutarse que una suma. Olvidando este detalle (que, por
supuesto, no es despreciable) y como lo que queremos es establecer un orden
de magnitud, hemos determinado el tiempo necesario para resolver mediante
64
la regla de Cramer sistemas de ecuaciones con distintos valores de n. Los
resultados se muestran en la tabla para el BlueGene/L y para un ordenador
mas modesto que tenga 1 GFLOPS.
tiempo de calculo
n n umero de operaciones BlueGene/L maquina de 1 GFLOPS
3 54 1.13 10
13
s 5.40 10
8
s
10 3.63 10
8
7.53 10
7
s 0.36 s
15 2.94 10
14
0.62 s 3.41 das
20 9.73 10
20
23.59 das 3.09 10
4
a nos
50 7, 60 10
67
5.04 10
45
a nos 2.41 10
51
a nos
100 9, 33 10
161
6.19 10
139
a nos 2.96 10
145
a nos
A la vista de estos resultados parece evidente que la soluci on de sistemas
de ecuaciones basada en la metodologa de Cramer es inviable. Ademas del
tiempo de calculo, el gran n umero de operaciones producira perdidas de pre-
cision debido a los errores de redondeo. El objetivo de los metodos numericos
de resolucion es, por tanto, reducir el n umero de operaciones necesarias para
resolver el sistema. Los metodos desarrollados se clasican en dos grandes
grupos: los directos y los iterativos.
Los metodos directos resuelven el sistema mediante un n umero nito de
operaciones elementales. El metodo de Cramer es pues un metodo directo.
Los metodos iterativos tratan de construir una sucesion de vectores x
n
que
converja a x. En principio son algoritmos innitos que se detienen al encon-
trarse un grado de error predeterminado.
No hay que olvidar que, aunque la reduccion del n umero de operaciones
implique la disminucion de los errores de redondeo, estos siempre estaran
presentes y haran, por ejemplo, que incluso las soluciones obtenidas con los
metodos directos sean aproximadas.
4.2. Metodos directos.
Los metodos directos se basan en la conversion de la matriz A de los
coecientes de las ecuaciones del sistema en una matriz diagonal (a
i,j
=
0, i = j), triangular superior (a
i,j
= 0, i > j) o inferior (a
i,j
= 0, i < j).
La razon es que un sistema con una matriz de este tipo puede resolverse de
65
forma muy sencilla. En efecto, si el sistema viene dado por
_
_
_
_
_
_
_
a
1,1
0 0 . . . 0
0 a
2,2
0 . . . 0
0 0 a
3,3
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
b
1
b
2
b
3
.
.
.
b
n
_
_
_
_
_
_
_
, (4.5)
la solucion es
x
k
=
b
k
a
k,k
. (4.6)
Y si el sistema es
_
_
_
_
_
_
_
a
1,1
a
1,2
a
1,3
. . . a
1,n
0 a
2,2
a
2,3
. . . a
2,n
0 0 a
3,3
. . . a
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
b
1
b
2
b
3
.
.
.
b
n
_
_
_
_
_
_
_
, (4.7)
se determina primero x
n
,
x
n
=
b
n
a
n,n
, (4.8)
y a partir del valor obtenido obtenemos el resto de incognitas
x
k
=
1
a
k,k
_
b
k

n

i=k+1
a
k,i
x
i
_
(4.9)
para k = n 1, n 2, . . . , 2, 1.
4.2.1. Metodo de Gauss.
Vamos a estudiar, en primer lugar, el denominado metodo de Gauss.
Teorema. Sea el sistema de ecuaciones
_
_
_
_
_
_
_
a
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
a
3,1
a
3,2
. . . a
3,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
b
1
b
2
b
3
.
.
.
b
n
_
_
_
_
_
_
_
.
66
Si todos los determinantes principales son no nulos

1
= a
1,1
= 0 ,

2
=

a
1,1
a
1,2
a
2,1
a
2,2

= 0 ,
.
.
.

n
=

a
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . a
n,n

= 0 ,
entonces el sistema puede reducirse a un sistema triangular equivalente de la
forma
_
_
_
_
_
_
_
_
a
(0)
1,1
a
(0)
1,2
a
(0)
1,3
. . . a
(0)
1,n
0 a
(1)
2,2
a
(1)
2,3
. . . a
(1)
2,n
0 0 a
(2)
3,3
. . . a
(2)
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . a
(n1)
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
b
(0)
1
b
(1)
2
b
(2)
3
.
.
.
b
(n1)
n
_
_
_
_
_
_
_
_
,
donde a
(0)
i,j
= a
i,j
y b
(0)
i
= b
i
.
Nos queda por evaluar el n umero de operaciones realizadas al poner en
practica el metodo de Gauss. En la modicacion de cada coeciente se utiliza
una suma, una multiplicacion y una division. En el primer paso modicamos
n1 ecuaciones con n coecientes (incluyendo el termino independiente). En
el segundo paso se modican (n 1)(n 2) coecientes y (n k +1)(n k)
en el paso k-esimo. As hasta 3 2 coecientes en el paso n 2 y 2 1 en el
paso n 1. Por tanto el n umero total de operaciones que se realizan hasta
obtener el sistema triangular es
N = 3
n1

k=1
(n k + 1) (n k) = n(n
2
1) . (4.10)
Una vez reducido el sistema, tenemos que encontrar los valores de las
incognitas. Para calcular x
n
solo hacemos una division. Para x
n1
necesi-
tamos una division, un producto y una suma. El calculo de las siguientes
inc ognitas necesita una sola division para cada una de ellas, pero una suma
67
y un producto mas a medida que progresamos desde x
n
hasta x
1
. El calculo
de esta ultima necesita, por tanto, n1 sumas, n1 multiplicaciones y una
division. El n umero total de operaciones en esta segunda fase del calculo es
N = 2
n

k=1
(k 1) +
n

k=1
1 = n
2
. (4.11)
Por tanto, el n umero total de operaciones a realizar al aplicar el metodo de
Gauss es de
N = n(n
2
+ n 1) n
3
(4.12)
cuando n es grande. Este n umero de operaciones es signicativamente m as
peque no que el correpondiente a la aplicacion del metodo de Cramer. En
efecto, si n = 1000, una maquina de 1 GFLOPS tardara aproximadamente
1 s en realizar el calculo.
Podemos resumir el metodo de Gauss diciendo que tras el paso k 1 el
sistema resulta ser
_
_
_
_
_
_
_
_
_
_
_
_
_
a
(0)
1,1
a
(0)
1,2
a
(0)
1,3
. . . a
(0)
1,k1
a
(0)
1,k
. . . a
(0)
1,n
0 a
(1)
2,2
a
(1)
2,3
. . . a
(1)
2,k1
a
(1)
2,k
. . . a
(1)
2,n
0 0 a
(2)
3,3
. . . a
(2)
3,k1
a
(2)
3,k
. . . a
(2)
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 0 a
(k1)
k,k
. . . a
(k1)
k,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 0 a
(k1)
n,k
. . . a
(k1)
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
k
.
.
.
x
n
_
_
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
_
_
_
_
b
(0)
1
b
(1)
2
b
(2)
3
.
.
.
b
(k1)
k
.
.
.
b
(k1)
n
_
_
_
_
_
_
_
_
_
_
_
_
_
.
Los coecientes del paso siguiente vienen dados por
a
(k)
i,j
= a
(k1)
i,j
, i k ,
a
(k)
i,j
= a
(k1)
i,j

a
(k1)
i,k
a
(k1)
k,k
a
(k1)
k,j
, i, j > k ,
b
(k)
i
= b
(k1)
i
, i k ,
b
(k)
i
= b
(k1)
i

a
(k1)
i,k
a
(k1)
k,k
b
(k1)
k
, i > k .
(4.13)
Metodo de la division unica.
Una mejora signicativa del metodo de Gauss se obtiene si analizamos
las dos relaciones de modicacion de los coecientes anteriores. Como vemos,
68
para un valor de j dado, se repite una operacion para todos los valores de i
a
(k1)
k,j
a
(k1)
k,k
o
b
(k1)
k
a
(k1)
k,k
, (4.14)
es decir, que los coecientes de la ecuacion de pivote, a
(k1)
k,j
y b
(k1)
k
, se dividen
por el elemento pivote a
(k1)
k,k
y esa operacion la realizamos para todos y cada
uno de los valores i > k.
La idea del metodo de la division unica es realizar esta division solo una
vez. Para ello, antes de realizar la serie de eliminaciones a partir de una
ecuacion de pivote, se divide dicha ecuacion por el elemento de pivote. Si
partimos del sistema inicial,
_
_
_
_
_
_
_
a
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
a
3,1
a
3,2
. . . a
3,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
b
1
b
2
b
3
.
.
.
b
n
_
_
_
_
_
_
_
,
el primer paso nos lleva a
_
_
_
_
_
_
_
1 t
1,2
. . . t
1,n
a
(0)
2,1
a
(0)
2,2
. . . a
(0)
2,n
a
(0)
3,1
a
(0)
3,2
. . . a
(0)
3,n
.
.
.
.
.
.
.
.
.
.
.
.
a
(0)
n,1
a
(0)
n,2
. . . a
(0)
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
v
1
b
(0)
2
b
(0)
3
.
.
.
b
(0)
n
_
_
_
_
_
_
_
,
donde
t
1,j
=
a
(0)
1,j
a
(0)
1,1
, v
1
=
b
(0)
1
a
(0)
1,1
.
A continuacion realizamos la eliminacion de la incognita x
1
en las ecuacio-
nes con i = 2, 3, . . . , n, como antes, pero teniendo en cuenta que ahora las
relaciones de modicacion de los coecientes son
a
(1)
i,j
= a
(0)
i,j
a
(0)
i,1
t
1,j
,
b
(1)
i
= b
(0)
i
a
(0)
i,1
v
1
.
69
El sistema resultara entonces
_
_
_
_
_
_
_
1 t
1,2
. . . t
1,n
0 a
(1)
2,2
. . . a
(1)
2,n
0 a
(1)
3,2
. . . a
(1)
3,n
.
.
.
.
.
.
.
.
.
.
.
.
0 a
(1)
n,2
. . . a
(1)
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
v
1
b
(1)
2
b
(1)
3
.
.
.
b
(1)
n
_
_
_
_
_
_
_
.
El procedimiento se repite pasando por todas las ecuaciones de pivote y
teniendo en cuenta que las relaciones de modicacion de los coecientes son
a
(k)
i,j
= a
(k1)
i,j
a
(k1)
i,k
t
k,j
,
b
(k)
i
= b
(k1)
i
a
(k1)
i,k
v
k
,
(4.15)
donde
t
k,j
=
a
(k1)
k,j
a
(k1)
k,k
, v
k
=
b
(k1)
k
a
(k1)
k,k
. (4.16)
Al nal del proceso nuestro sistema sera
_
_
_
_
_
_
_
1 t
1,2
t
1,3
. . . t
1,n
0 1 t
2,3
. . . t
2,n
0 0 1 . . . t
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
v
1
v
2
v
3
.
.
.
v
n
_
_
_
_
_
_
_
. (4.17)
Ademas, ahora la resolucion del sistema tambien se facilita:
x
n
= v
n
,
x
k
= v
n1

n

k+1
t
k,i
x
i
.
(4.18)
Es claro que este metodo requiere realizar el mismo n umero de sumas
y multiplicaciones que el metodo de Gauss, pero se llevan a cabo menos
divisiones. Como acabamos de ver, en la solucion del sistema triangular no
se lleva a cabo ninguna division. En la obtencion del sistema nal, el n umero
de divisiones vara desde n en el primer paso hasta una en el ultimo, lo que
signica un total de n(n+1)/2. Por tanto tendremos un total de operaciones
N =
2
3
(n
3
n) +
n(n + 1)
2
+ n(n1) =
4n
3
+ 9n
2
7n
6

2n
3
3
. (4.19)
70
Hay que destacar que ademas del ahorro de 1/3 del n umero de operaciones,
estas son todas divisiones que, como ya dijimos, son las mas costosas desde
el punto de vista computacional.
4.2.2. Metodo de Gauss-Jordan.
El metodo de Gauss-Jordan queda establecido teniendo en cuenta que
tras el paso k 1 el sistema resulta ser
_
_
_
_
_
_
_
_
_
_
_
_
_
a
(0)
1,1
0 0 . . . 0 a
(k1)
1,k
. . . a
(k1)
1,n
0 a
(1)
2,2
0 . . . 0 a
(k1)
2,k
. . . a
(k1)
2,n
0 0 a
(2)
3,3
. . . 0 a
(k1)
3,k
. . . a
(k1)
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 0 a
(k1)
k,k
. . . a
(k1)
k,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 0 a
(k1)
n,k
. . . a
(k1)
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
k
.
.
.
x
n
_
_
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
_
_
_
_
b
(k1)
1
b
(k1)
2
b
(k1)
3
.
.
.
b
(k1)
k
.
.
.
b
(k1)
n
_
_
_
_
_
_
_
_
_
_
_
_
_
.
Los coecientes del paso siguiente vienen dados por
a
(k)
i,j
= a
(k1)
i,j
, j k ,
a
(k)
i,j
= a
(k1)
i,j

a
(k1)
i,k
a
(k1)
k,k
a
(k1)
k,j
, i = k , j > k ,
b
(k)
i
= b
(k1)
i
, i = k ,
b
(k)
i
= b
(k1)
i

a
(k1)
i,k
a
(k1)
k,k
b
(k1)
k
, i = k .
(4.20)
Digamos para terminar que el metodo de Gauss-Jordan tambien puede
mejorarse aplicando a la vez el metodo de la division unica, siguiendo la
misma estrategia que vimos para el metodo de Gauss.
4.2.3. Problemas con el metodo de Gauss.
Vamos a discutir una situacion problematica que ocurre cuando uno de los
elementos de pivote tiene un valor muy peque no. Supongamos que queremos
resolver mediante el metodo de Gauss el sistema
_
1
1 1
__
x
1
x
2
_
=
_
1
2
_
, (4.21)
71
donde = 0 es un n umero muy peque no. La solucion exacta de este sistema
es facil de obtener
x
1
=
1
1
1 ,
x
2
=
1 2
1
1 .
(4.22)
Ahora bien, si resolvemos el sistema siguiendo el metodo de Gauss, anu-
laramos el coeciente a
2,1
multiplicando la primera ecuacion por
1
y restando-
la de la segunda. Quedara entonces
_
1
0 1
1
__
x
1
x
2
_
=
_
1
2
1
_
, (4.23)
con lo que tendramos
x
2
=
2
1
1
1
1 ,
x
1
= (1 x
2
)
1
0 ,
(4.24)
que es la solucion correcta para x
2
pero no para x
1
.
La razon de esta situacion estriba en que las cantidades 2
1
y 1
1
producen n umeros maquina que coinciden entre s y con
1
, en el caso
de que sea muy peque no. En efecto, supongamos que disponemos de un
procesador que permite 7 decimales de precision y sea = 10
8
. Entonces

1
= 0.1000000 10
9
. Por otra parte, 2 = 0.2000000 10
1
. Para hacer la
operacion hay que igualar los exponentes y, entonces, 2 = 0.000000002 10
9
.
Calculando la diferencia 2
1
= 0.099999998 10
9
que dada la precision
de la maquina resultara 2
1
= 0.1000000 10
9
=
1
. Lo mismo ocurre
con 1
1
.
Cabra pensar que este problema surge por la peque nez del elemento de
pivote. Sin embargo no es as. En efecto, si resolvemos el sistema
_
1
1
1 1
__
x
1
x
2
_
=
_

1
2
_
, (4.25)
el algoritmo de Gauss produce
_
1
1
0 1
1
__
x
1
x
2
_
=
_

1
2
1
_
, (4.26)
72
cuya solucion es
x
2
=
2
1
1
1
1 ,
x
1
= (1 x
2
)
1
0 ,
(4.27)
que no concuerda con la solucion exacta
x
1
=

1
1
1
1 ,
x
2
=
2
1
1
1
1 .
(4.28)
En realidad, el problema esta asociado a la peque nez del elemento de
pivote en relacion a los restantes elementos de la la de pivote. En efecto,
bastara, como antes hicimos, intercambiar las dos las para que el metodo
de Gauss de los resultados correctos. En efecto, el sistema sera
_
1 1
1
__
x
1
x
2
_
=
_
2
1
_
, (4.29)
y la eliminacion de Gauss ahora nos dara
_
1 1
0 1
__
x
1
x
2
_
=
_
2
1 2
_
, (4.30)
cuya solucion es
x
2
=
1 2
1
1 ,
x
1
= 2 x
2
=
1
1
1 ,
(4.31)
que es la correcta.
Este tipo de problemas se resuelve de forma sencilla si elegimos como
elemento de pivote, en cada paso, aquel que presenta un mayor valor relativo
dentro de su la.
4.2.4. Factorizacion LU
Teorema. Sea el sistema de ecuaciones
_
_
_
_
_
_
_
a
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
a
3,1
a
3,2
. . . a
3,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
b
1
b
2
b
3
.
.
.
b
n
_
_
_
_
_
_
_
.
73
Si todos los determinantes principales son no nulos

1
= a
1,1
= 0 ,

2
=

a
1,1
a
1,2
a
2,1
a
2,2

= 0 ,
.
.
.

n
=

a
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . a
n,n

= 0 ,
entonces la matriz de los coecientes A se puede descomponer como
A = LU,
donde
L =
_
_
_
_
_
_
_
1 0 0 . . . 0
a
(0)
2,1
/a
(0)
1,1
1 0 . . . 0
a
(0)
3,1
/a
(0)
1,1
a
(1)
3,2
/a
(1)
2,2
1 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
(0)
n,1
/a
(0)
1,1
a
(1)
n,2
/a
(1)
2,2
a
(2)
n,3
/a
(2)
3,3
. . . 1
_
_
_
_
_
_
_
y
U =
_
_
_
_
_
_
_
_
a
(0)
1,1
a
(0)
1,2
a
(0)
1,3
. . . a
(0)
1,n
0 a
(1)
2,2
a
(1)
2,3
. . . a
(1)
2,n
0 0 a
(2)
3,3
. . . a
(2)
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . a
(n1)
n,n
_
_
_
_
_
_
_
_
.
Como podemos ver, la matriz U A
(n1)
es la matriz triangular supe-
rior que obtenemos despues de concluir con el metodo de Gauss aplicado al
problema inicial. Por otra parte, la matriz L es una matriz triangular inferior
y sus coecientes son los multiplicadores l
(k1)
i,k
= a
(k1)
i,k
/a
(k1)
k,k
que aparecen
en la ecuacion 4.13. Veamos uno de los ejemplos anteriores.
74
4.3. Metodos iterativos.
Como ya dijimos al principio, los metodos iterativos tratan de obtener
la solucion del sistema de ecuaciones Ax = b generando una sucesion de
vectores que converjan al vector x. Cuando se tiene un sistema lineal con
muchas ecuaciones, estos metodos tienen ventajas notables respecto de los
metodos directos tanto en lo que se reere a la rapidez de obtencion de la
solucion como a los requerimientos de memoria. Si la precision no es muy
importante, basta normalmente con unas pocas iteraciones. En los denomi-
nados sistemas ralos (aquellos en los que un gran n umero de coecientes es
nulo), los metodos iterativos son muy ecientes. Adem as suelen ser estables
y capaces de eliminar los errores de redondeo a medida que el proceso se lleva
a cabo.
4.3.1. Conceptos basicos.
Vamos a estudiar los metodos iterativos en un marco general. Si el proble-
ma que queremos resolver es
Ax = b, (4.32)
podemos reescribirlo utilizando la denominada matriz de descomposicion, Q,
de manera que tendramos
Ax + Qx Qx = b,
con lo que
Qx = (Q A) x + b. (4.33)
Esta ecuacion sugiere, inmediatamente, una estrategia iterativa de solucion
Qx
(k)
= (Q A) x
(k1)
+ b, k 1 . (4.34)
El proceso debe iniciarse con un vector arbitrario x
(0)
en el que podemos
incluir, por ejemplo, la informacion previa que tengamos respecto a la solu-
cion del sistema. Esto nos reducira el n umero de iteraciones a realizar para
calcular la solucion. De cualquier forma, se dice que el metodo iterativo de la
ecuacion (4.34) converge, si lo hace para cualquier vector inicial x
(0)
dadas
las matrices A y Q. El objetivo es escoger la matriz Q de manera que (i) el
75
calculo de las sucesivas aproximaciones de la solucion x
(k)
sea facil y (ii) esa
sucesion converja lo mas rapidamente posible a la solucion.
Es evidente que si la sucesion de vectores x
k
converje,
lm
k
x
(k)
= x, (4.35)
entonces x es la solucion del sistema. Esto puede verse sin mas que calcular
el lmite cuando k de la ecuacion (4.34)
lm
k
[Qx
(k)
] = lm
k
[(Q A) x
(k1)
+ b] ,
de donde
Q lm
k
[x
(k)
] = (Q A) lm
k
[x
(k1)
] + b,
y teniendo en cuenta (4.35) resulta
Qx = (Q A) x + b = Ax = b.
Teorema. Sean A y Q dos matrices no singulares. Si se verica que
I Q
1
A < 1
para cualquier norma matricial subordinada a una norma vectorial, entonces
la sucesi on de vectores x
(k)
generados mediante la ecuaci on
Qx
(k)
= (Q A) x
(k1)
+ b
converge a la soluci on del sistema
Ax = b
para cualquier vector inicial x
(0)
.
Los distintos metodos iterativos vienen determinados por la eleccion que
se haga de la matriz de descomposicion Q. Veamos los mas importantes.
4.3.2. Metodo de Richardson.
El metodo de Richardson tiene asociado una matriz de descomposicion
Q = I (4.36)
76
con lo que la ecuacion (4.34) se reduce a
x
(k)
= (I A) x
(k1)
+ b. (4.37)
La ecuacion generica es, por tanto,
x
(k)
i
= (1 a
i,i
) x
(k1)
i

n

j=1
j=i
a
i,j
x
(k1)
j
+ b
i
(4.38)
= x
(k1)
i

n

j=1
a
i,j
x
(k1)
j
+ b
i
. (4.39)
De acuerdo con el teorema anterior, la iteracion de Richardson propor-
ciona una solucion del sistema (4.32) siempre que I A < 1 para alguna
norma matricial subordinada. En este sentido es posible demostrar que si la
matriz A cumple que
a
i,i
= 1 >
n

j=1
j=i
|a
i,j
| , 1 i n (4.40)
o bien que
a
j,j
= 1 >
n

i=1
i=j
|a
i,j
| , 1 j n (4.41)
entonces es posible aplicar el metodo de Richardson.
4.3.3. Metodo de Jacobi.
En el metodo de Jacobi, la matriz de descomposicion es una matriz dia-
gonal cuyos elementos coinciden con los elementos de la diagonal de A
Q =
_
_
_
_
_
a
1,1
0 . . . 0
0 a
2,2
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . a
n,n
_
_
_
_
_
. (4.42)
77
Entonces
QA =
_
_
_
_
_
0 a
1,2
. . . a
1,n
a
1,2
0 . . . a
1,n
.
.
.
.
.
.
.
.
.
.
.
.
a
1,n
a
2,n
. . . 0
_
_
_
_
_
. (4.43)
Entonces la ecuacion generica (4.34)
Qx
(k)
= (Q A) x
(k1)
+ b, k 1 ,
queda
_
_
_
_
_
a
1,1
x
(k)
1
a
2,2
x
(k)
2
.
.
.
a
n,n
x
(k)
3
_
_
_
_
_
=
_
_
_
_
_
0 a
1,2
. . . a
1,n
a
2,1
0 . . . a
2,n
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
. . . 0
_
_
_
_
_
_
_
_
_
_
x
(k1)
1
x
(k1)
2
.
.
.
x
(k1)
n
_
_
_
_
_
+
_
_
_
_
_
b
1
b
2
.
.
.
b
n
_
_
_
_
_
.
(4.44)
La ecuacion generica para este metodo es, por tanto,
x
(k)
=
1
a
i,i
_

_
b
i

n

j=1
j=i
a
i,j
x
(k1)
j
_

_
. (4.45)
Para que esta ecuacion proporcione la solucion del sistema independiente-
mente del vector inicial escogido, basta que se cumpla la hipotesis del teorema
visto antes. La matriz Q
1
viene dada por
Q
1
=
_
_
_
_
_
1/a
1,1
0 . . . 0
0 1/a
2,2
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . 1/a
n,n
_
_
_
_
_
(4.46)
y por tanto tendremos
I Q
1
A =
i,j

a
i,j
a
i,i
. (4.47)
Si consideramos la norma

tendra que cumplirse


I Q
1
A

= max
1in

j=1
j=i

a
i,j
a
i,i

< 1 . (4.48)
78
Esta condicion la cumplen las denominadas matrices diagonalmente domi-
nantes que son aquellas que verican
|a
i,i
| >
n

j=1
j=i
|a
i,j
| , 1 i n. (4.49)
Para este tipo de matrices, entonces, el metodo de Jacobi converge a la so-
lucion del problema independientemente del vector inicial que se considere.
4.3.4. Metodo de Gauss-Seidel.
En este metodo, la matriz de descomposicion es una matriz triangular
inferior cuyos elementos coinciden con los elementos de la matriz A dados
por {a
i,j
, i j}:
Q =
_
_
_
_
_
_
_
a
1,1
0 0 . . . 0
a
2,1
a
2,2
0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n1,1
a
n1,2
a
n1,3
. . . 0
a
n,1
a
n,2
a
n,3
. . . a
n,n
_
_
_
_
_
_
_
(4.50)
Entonces QA resulta
Q A =
_
_
_
_
_
_
_
0 a
1,2
a
1,3
. . . a
1,n
0 0 a
2,3
. . . a
2,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . a
n1,n
0 0 0 . . . 0
_
_
_
_
_
_
_
(4.51)
y la ecuacion generica obtenida a partir de (4.34) resulta
i1

j=1
a
i,j
x
(k)
j
+ a
i,i
x
(k)
i
=
n

j=i+1
a
i,j
x
(k1)
j
+ b
i
, (4.52)
de donde
x
(k)
=
1
a
i,i
_
b
i

i1

j=1
a
i,j
x
(k)
j

n

j=i+1
a
i,j
x
(k1)
j
_
. (4.53)
Es posible demostrar que, como el metodo de Jacobi, el metodo de Gauss-
Seidel tambien converge independientemente del vector inicial para matrices
diagonalmente dominantes.
79
4.4. Inversion de matrices.
Teorema. Si A es una matriz n n tal que A < 1, entonces la matriz
I A puede invertirse y se cumple que
(I A)
1
=

k=0
A
k
.
La serie de potencias de A se denomina serie de Neumann. Este teorema
puede utilizarse para calcular la inversa de una matriz n n, B. En efecto,
si A = I B, podemos escribir que
B
1
= (I A)
1
=

k=0
A
k
,
siempre que A 1. Ahora bien, si llamamos
B
1
m
=
m

k=0
A
k
,
podemos obtener una regla de recurrencia
B
1
m
= I +
m

k=1
A
k
= I + A
m1

k=0
A
k
= I + AB
1
m1
.
4.5. Valores propios. Metodo de la potencia.
La solucion del problema de valores propios requiere resolver la ecuacion
(A I) x = 0 ,
donde y x son, respectivamente, los valores y vectores propios de la matriz
A. Los primeros se obtienen a partir de la ecuacion
det (A I) = 0 .
Numericamente esta opcion no es adecuada ya que, en general, las races de un
polinomio pueden ser funciones muy sensibles de sus coecientes y cualquier
80
error (p. ej., de redondeo) puede dar lugar a un resultado completamente
erroneo.
El metodo de la potencia permite obtener el valor propio dominante y el
vector propio correspondiente a dicho valor propio. Para poder aplicarlo, la
matriz debe cumplir las siguientes propiedades:
1. Solo hay un valor propio con modulo maximo (ese valor propio tiene
multiplicidad 1)
|
1
| > |
2
| |
3
| . . . |
n
|
2. Existe un conjunto linealmente independiente de n vectores propios
{u
i
, i = 1, 2, . . . , n} que verican
Au
i
=
i
u
i
Supongamos que x
(0)
C
n
tal que
x
(0)
=
n

i=1
a
i
u
i
=
n

i=1
u
i
, (a
1
= 0)
A partir de x
(0)
construimos los vectores
x
(k)
= Ax
(k1)
= A
k
x
(0)
,
de forma que
x
(k)
= A
k
n

i=1
u
i
=
n

i=1
A
k
u
i
=
n

i=1

k
i
u
i
=
k
1
_
u
1
+
n

i=2
_

1
_
k
u
i
_
.
Ahora bien,
lm
k
n

i=2
_

1
_
k
u
i
= 0
y podemos escribir
x
(k)
=
k
1
( u
1
+ e
(k)
) ,
81
donde
lm
k
e
(k)
= 0 .
Sea [x] un funcional lineal cualquiera sobre C
n
, tal que [u
1
] = 0. En-
tonces
[x
(k)
] =
k
1
_
[ u
1
] + [e
(k)
]
_
.
Si denimos
r
k
=
[x
(k+1)
]
[x
(k)
]
=

k+1
1
_
[ u
1
] + [e
(k+1)
]
_

k
1
{[ u
1
] + [e
(k)
]}
,
es claro que
lm
k
r
k
=
1
y, adem as, x
(k)
se va pareciendo cada vez mas a u
1
, lo que nos proporciona,
tambien, el vector propio.
Apendice: Normas vectoriales y matriciales.
Una aplicacion
: R
n
R
+
{0}
es una norma vectorial si cumple las siguientes propiedades:
1. v = 0 v = 0 R
n
2. v = || v , R, v R
n
3. u + v u + v , u, v R
n
Para v R
n
las siguientes aplicaciones son normas:
v
1
=
n

i=1
|v
i
| ,
v
2
=

_
n

i=1
|v
i
|
2
,
v

= max
1in
|v
i
| .
82
Si M
n
es el espacio vectorial de las matrices de dimension n n, una
aplicacion
: M
n
R
+
{0}
es una norma matricial si cumple las siguientes propiedades:
1. A = 0 A = 0 M
n
2. A = || A , R, A M
n
3. A + B A + B , A, B M
n
4. AB A B , A, B M
n
Si es una norma en R
n
, la aplicacion
: M
n
R
+
{0}
denida como
A = sup
v =1
Av
es una norma matricial que se dice subordinada a la norma vectorial. Las
normas matriciales subordinadas cumplen las siguientes propiedades:
1. Av A v , A M
n
, v R
n
2. Si I M
n
es la matriz identidad, I = 1
Teorema. Si se considera la norma vectorial

, entonces su norma
matricial subordinada viene dada por
A

= max
1in
n

j=1
|a
i,j
| .
Demostracion. De acuerdo con la denicion,
A

= sup
v

=1
Av

= sup
v

=1
_
_
_
m ax
1in

j=1
a
i,j
v
j

_
_
_
.
Intercambiando el supremo y el m aximo tenemos
A

= max
1in
_
_
_
sup
v

=1

j=1
a
i,j
v
j

_
_
_
= max
1in
n

j=1
|a
i,j
| .
83
84
Captulo 5
Ecuaciones no lineales.
B usqueda de ceros de
funciones.
1. Introduccion.
2. Ceros de ecuaciones no lineales de una variable.
3. Sistemas de n ecuaciones no lineales.
4. Ceros de un polinomio.
5.1. Introduccion.
Pretendemos ahora resolver problemas como el siguiente:
x = tan x.
Este tipo de problemas aparecen en teora de la difraccion de la luz o en
Mecanica Cuantica. Otro ejemplo es la ecuacion de Kepler para la trayectoria
de los planetas:
x = a sin x + b .
Tambien estamos interesados en determinar los ceros de un polinomio:
x
3
3 x
2
3 x 1 = 0 .
En denitiva, se trata de resolver el siguiente problema generico:
85
Sea f : R R una funcion real, de variable real. Cuales son los valores
de x tales que f(x) = 0?
En los ejemplos que acabamos de mencionar
f
1
(x) = x tanx,
f
2
(x) = x a sin x b ,
f
3
(x) = x
3
3 x
2
3 x 1 .
Para generar un proceso iterativo, basta reescribir la ecuacion inicial,
f(x) = 0, en la forma
x = g(x) ,
que sugiere inmediatamente el metodo iterativo
x
k
= g(x
k1
) .
El proceso iterativo naliza cuando encontramos un punto jo r para el
que se verica
r = g(r) .
5.2. Ceros de ecuaciones no lineales de una
variable.
5.2.1. Metodo de biseccion.
Este metodo se basa en el teorema de Bolzano. Sea
f(x) : [a, b] R
una funcion continua en [a, b]. Si f(a) f(b) < 0, existe un punto r (a, b)
tal que f(r) = 0. Se dice que r es la raz o cero de f(x). El metodo de bi-
seccion explota esta idea, reduciendo el intervalo en el que se encuentra la
raz a medida que avanza el algoritmo.

Este se puede resumir en el siguiente
esquema:
1. Entrar a y b
2. c = (a + b)/2
86
3. Si f(a) f(c) < 0 b = c: ir a 2.
4. Si f(a) f(c) > 0 a = c: ir a 2.
5. Si f(a) f(c) = 0: c es la solucion.
La ultima igualdad es practicamente imposible que ocurra cuando el
calculo se hace en un ordenador. Esa condicion debe sustituirse por un cri-
terio de nalizacion. Y, en cualquier caso, no hay que olvidar establecer una
limitacion en el n umero de iteraciones que impida que el programa entre en
un ciclo innito.
Veamos el error que se comete al utilizar este metodo. Sean
[a
0
, b
0
], [a
1
, b
1
], . . . , [a
n
, b
n
]
los sucesivos intervalos que se han construido en la aplicacion del metodo.
Los valores que denen estos intervalos verican
a
0
a
1
a
2
. . . a
n
b
0
y
b
0
b
1
b
2
. . . b
n
a
0
.
La sucesion a
n
es una sucesion creciente y acotada superiormente, por lo
que sera convergente. De igual manera, la sucesion b
n
, que es decreciente y
esta acotada inferiormente, tambien converge. Por otro lado,
b
n
a
n
=
1
2
(b
n1
a
n1
)
y, por tanto,
b
n
a
n
=
1
2
n
(b
0
a
0
) .
Entonces
lm
n
(b
n
a
n
) = lm
n
1
2
n
(b
0
a
0
) = 0 .
Por tanto, tenemos
lm
n
a
n
= lm
n
b
n
= r .
En cada uno de los intervalos se verica que
f(a
n
) f(b
n
) 0 ,
87
y, entonces,
lm
n
f(a
n
) f(b
n
) = [f(r)]
2
0 ,
por lo que f(r) = 0 y r es la raz. En el intervalo [a
n
, b
n
], la mejor aproxima-
cion a r es
c
n
=
1
2
(a
n
+ b
n
)
y, entonces, |r c
n
| sera menor que la mitad del correspondiente intervalo,
y
|r c
n
|
1
2
(b
n
a
n
)
1
2
1
2
n
(b
0
a
0
) ,
por lo que el error cometido lo podemos acotar como
|r c
n
|
1
2
n+1
(b
0
a
0
) .
5.2.2. Metodo de regula falsi.
La idea de este metodo es, como en el anterior, realizar bisecciones del
intervalo, pero en lugar de tomar c = (a + b)/2 como antes, lo que hacemos
ahora es construir la recta que pasa por los puntos [a, f(a)] y [b, f(b)] y tomar
como punto c el punto de corte de dicha recta con el eje X. La recta que
buscamos sera
y = x + ,
con
=
f(b) f(a)
b a
,
=
b f(a) a f(b)
b a
.
El punto c sera
c =

=
a f(b) b f(a)
f(b) f(a)
.
5.2.3. Metodo de Newton-Raphson.
Supongamos que r es uno de los ceros de la funcion f(x) y que x es una
aproximacion a dicho cero. Entonces
r = x + h
88
y, usando el teorema de Taylor, podemos escribir
0 = f(r) = f(x) + f

(x) h + (h
2
) .
Si h es peque no, podemos despreciar los terminos de orden h
2
y superiores
en la ecuacion anterior y tendremos
f(r) = f(x) + f

(x) h = f(x) + f

(x) (r x) = 0 ,
de donde obtenemos
r = x
f(x)
f

(x)
.
Esta ecuacion se puede transformar en iterativa de forma sencilla:
x
n+1
= x
n

f(x
n
)
f

(x
n
)
.
La interpretacion geometrica de este metodo puede verse en la gura.
Al quedarnos con los terminos de primer orden en el desarrollo de Taylor,
estamos linealizando la funcion f(x). Si en una iteracion del metodo nos
encontramos en el punto x
n
, tendremos
f

(x
n
) tan =
f(x
n
)
x
n
x
n+1
,
de donde tenemos
x
n+1
= x
n

f(x
n
)
f

(x
n
)
.
Sin embargo, es facil pensar que pueden existir funciones para las que este
proceso no es convergente. Un ejemplo lo vemos en la gura de la derecha.
Esto pone de maniesto la importancia de la hipotesis basica del metodo,
a saber, que h sea muy peque no. En el caso ilustrado, esto no ocurre y de
ah la divergencia. Si nos aproximamos sucientemente a r el proceso sera
convergente.
89
1.0 1.5 2.0
-.5
0.0
0.5
1.0
-4 0 4 8
-1.5
-1.0
-0.5
0.0
0.5
1.0
1.5
f(x) =

4 x
2
1.6
x
n
x
n+1
f(x) = arctan(x 1.5)
x
0
x
1
x
2
x
3
Veamos que ocurre con los errores. En la iteracion n, el error cometido es
e
n
= x
n
r .
Entonces
e
n+1
= x
n+1
r = x
n

f(x
n
)
f

(x
n
)
r = e
n

f(x
n
)
f

(x
n
)
=
e
n
f

(x
n
) f(x
n
)
f

(x
n
)
.
De acuerdo con el teorema de Taylor, podemos escribir
0 = f(r) = f(x
n
e
n
) = f(x
n
) e
n
f

(x
n
) +
1
2
e
2
n
f

(
n
) ,
n
(x
n
, r) ,
de donde
e
n
f

(x
n
) f(x
n
) =
1
2
e
2
n
f

(
n
) .
Y, por tanto, para el error e
n+1
tenemos
e
n+1
=
1
2
e
2
n
f

(
n
)
1
f

(x
n
)
e
2
n
.
El error en la iteracion n + 1 es proporcional al cuadrado del error de la
iteracion n, lo que dara cuenta de la rapida convergencia. Ademas tambien
explicara la duplicacion del n umero de dgitos correctos despues de cada
iteracion que antes comentamos.
90
5.2.4. Metodo de la secante.
En este metodo, la derivada que aparece en el de Newton-Raphson se
sustituye por una aproximacion:
f

(x) = lm
ux
f(u) f(x)
u x
.
Utilizando en cada caso la iteracion anterior,
f

(x
n
) =
f(x
n
) f(x
n1
)
x
n
x
n1
y el nuevo algoritmo viene dado por
x
n+1
= x
n
f(x
n
)
x
n
x
n1
f(x
n
) f(x
n1
)
.
Como vemos, ahora es necesario conocer dos puntos iniciales para poner en
marcha el proceso iterativo.
La gura nos muestra el signicado geometrico de este metodo de la
secante.
1.0 1.5 2.0
-.5
0.0
0.5
1.0
f(x) =

4 x
2
1.6
x
n
x
n+1
x
n1
91
5.3. Sistemas de n ecuaciones no lineales.
Tratamos ahora de resolver el sistema de ecuaciones
f
1
(x
1
, x
2
, . . . , x
n
) = 0 ,
f
2
(x
1
, x
2
, . . . , x
n
) = 0 ,
.
.
. =
.
.
.
f
n
(x
1
, x
2
, . . . , x
n
) = 0 ,
donde x
i
R, i = 1, 2, . . . , n y f
i
: R
n
R, i = 1, 2, . . . , n son funciones
diferenciables. Supongamos que (
1
,
2
, . . . ,
n
) es la solucion. Si denimos

i
= x
i
+ h
i
, i = 1, 2, . . . , n,
podemos desarrollar en serie de Taylor las funciones f
i
y quedandonos hasta
primer orden en h
i
podemos escribir
f
1
(
1
,
2
, . . . ,
n
) = 0 = f
1
+ f
11
h
1
+ f
12
h
2
+ . . . + f
1n
h
n
,
f
2
(
1
,
2
, . . . ,
n
) = 0 = f
2
+ f
21
h
1
+ f
22
h
2
+ . . . + f
2n
h
n
,
.
.
. =
.
.
.
f
n
(
1
,
2
, . . . ,
n
) = 0 = f
n
+ f
n1
h
1
+ f
n2
h
2
+ . . . + f
nn
h
n
,
donde hemos denido
f
i
= f
i
(x
1
, x
2
, . . . , x
n
) , i = 1, 2, . . . , n,
f
ij
=
f
i
(x
1
, x
2
, . . . , x
n
)
x
j
, i = 1, 2, . . . , n.
Este sistema podemos escribirlo en la forma

f
11
f
12
. . . f
1n
f
21
f
22
. . . f
2n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
f
n1
f
n2
. . . f
nn

h
1
h
2
.
.
.
h
n

f
1
f
2
.
.
.
f
n

,
que, como vemos es un sistema de ecuaciones lineales con n incognitas:
(h
1
, h
2
, . . . , h
n
). El determinante de la matriz se denomina jacobiano. Si es
distinto de cero, el sistema puede resolverse para calcular las h
i
e iniciar un
proceso iterativo
x
(k+1)
i
= x
(k)
i
+ h
(k)
i
,
que resulta ser la extension del metodo de Newton-Raphson al sistema de
ecuaciones inicial.
92
5.4. Ceros de un polinomio.
Como funciones que son, es posible aplicar cualquiera de los metodos que
hemos descrito con anterioridad. Sin embargo, vamos a estudiar ahora otros
procedimientos que permitan encontrar todas las races, includos los ceros
complejos que se presentan en muchas ocasiones.
Consideremos un polinomio de grado n
p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
,
en el que suponemos que {z
i
C, i = 1, 2, . . . , n} y z C. Es claro que se
debera cumplir que a
n
= 0.
Teorema. Sea p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
un polinomio
de grado n. Entonces existen k n umeros r
i
C, i = 1, 2, . . . , k y k n umeros
m
i
N, i = 1, 2, . . . , k tales que
p(z) = a
n
(z r
1
)
m
1
(z r
2
)
m
2
(z r
k
)
m
k
con
k

i
m
i
= n.
Se dice que r
l
es una raz de multiplicidad m
l
del polinomio p(z). Este teo-
rema es el denominado teorema fundamental del algebra.
Teorema. Todas las races r
l
, l = 1, 2, . . . , k de un polinomio de grado n
verican
|r
l
| , l = 1, 2, . . . , k ,
donde
= 1 +
1
|a
n
|
max
l=0,1,...,k
|a
l
| .
Construyamos ahora la funcion
s(z) = z
n
p

1
z

= a
n
+ a
n1
z + . . . + a
1
z
n1
+ a
0
z
n
.
93
Este nuevo polinomio es de grado, a lo sumo, n y los coecientes son los
mismos que los del polinomio original p(z). Si z
0
C es tal que z
0
= 0,
entonces
p(z
0
) = 0 s

1
z
0

= 0 .
Teorema. Si todos los ceros de s(z) = z
n
p(1/z) est an contenidos en un
disco de radio , entonces todos los ceros de p(z) se encuentran fuera del
disco de radio
1
.
5.4.1. Algoritmo de Horner.
Este algoritmo ya lo hemos visto con anterioridad y permite calcular el
valor que toma un polinomio en un punto de forma muy eciente.
Supongamos un polinomio p(z) y un n umero z
0
C. El algoritmo de
Horner proporciona p(z
0
) y los coecientes del polinomio
q(z) =
p(z) p(z
0
)
z z
0
.
Evidentemente, si p(z) es de grado n, q(z) lo es de grado n1. De la ecuacion
anterior podemos escribir,
p(z) = (z z
0
) q(z) + p(z
0
) . (5.1)
Supongamos ahora que
p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
,
q(z) = b
n1
z
n1
+ b
n2
z
n2
+ . . . + b
1
z + b
0
.
Si sustituimos en la ecuacion (5.1) e igualamos termino a termino tenemos
a
n
= b
n1
= b
n1
= a
n
,
a
n1
= z
0
b
n1
+ b
n2
= b
n2
= a
n1
+ z
0
b
n1
,
a
n2
= z
0
b
n2
+ b
n3
= b
n3
= a
n2
+ z
0
b
n2
,
.
.
.
.
.
.
a
1
= z
0
b
1
+ b
0
= b
0
= a
1
+ z
0
b
1
,
a
0
= z
0
b
0
+ p(z
0
) = p(z
0
) = a
0
+ z
0
b
0
,
94
sistema de ecuaciones que puede resolverse de forma iterativa. Una forma
util de hacer el calculo es como sigue:
a
n
a
n1
a
n2
. . . a
1
a
0
z
0
+b
n1
z
0
+b
n2
z
0
. . . +b
1
z
0
+b
0
z
0
b
n1
b
n2
b
n3
. . . b
0
p(z
0
)
Si el algoritmo de Horner se aplica a una raz del polinomio se recupera
el conocido metodo de Runi.
Es evidente que, una vez determinado q(z), podemos volver a aplicar el
algoritmo a este polinomio. Supongamos que obtenemos
q(z) = (z z
0
) h(z) + q(z
0
) .
Sustituyendo en (5.1) tendremos
p(z) = (z z
0
) q(z) + p(z
0
)
= (z z
0
) [(z z
0
) h(z) + q(z
0
)] + p(z
0
)
= (z z
0
)
2
h(z) + (z z
0
) q(z
0
) + p(z
0
)
y, de aqu,
p

(z) = 2 (z z
0
) h(z) + (z z
0
) h

(z) + q(z
0
) ,
y, por tanto,
p

(z
0
) = q(z
0
) .
A la vista de este resultado, podemos utilizar este algoritmo para obtener
el desarrollo de Taylor de un polinomio alrededor de un punto z
0
. En denitiva
se trata de reescribir el polinomio p(z) como
p(z) = c
n
(z z
0
)
n
+ c
n1
(z z
0
)
n1
+ . . . + c
1
(z z
0
) + c
0
,
donde los coecientes, de acuerdo con el teorema de Taylor, vienen dados por
c
k
=
1
k!
p
(k)
(z
0
) .
Veamos como aplicar el algoritmo. Evidentemente,
c
0
= p(z
0
) .
95
Tras aplicar el algoritmo obtenemos el polinomio
q(z) =
p(z) p(z
0
)
z z
0
= c
n
(z z
0
)
n1
+c
n1
(z z
0
)
n2
+. . . +c
2
(z z
0
) +c
1
y
c
1
= q(z
0
) = p

(z
0
) .
La aplicacion sucesiva del algoritmo a los polinomios que se van obteniendo
nos dara las sucesivas derivadas de p(z) en z
0
. Este procedimiento se deno-
mina algoritmo de Horner completo.
Una forma adecuada para aplicar el algoritmo de Horner en forma numeri-
ca es la que proporciona el siguiente teorema.
Teorema. Sea p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
un polinomio
de grado n y denamos los pares {(
j
,
j
) , j = n, n 1, . . . , 1, 0} mediante
el algoritmo

(
n
,
n
) = (a
n
, 0)
(
j
,
j
) = (a
j
+ z
0

j+1
,
j+1
+ z
0

j+1
) , j = n 1, . . . , 1, 0
Entonces
0
= p(z
0
) y
0
= p

(z
0
).
Teorema. Sean z
k
y z
k+1
dos iteraciones sucesivas del metodo de Newton-
Raphson aplicado a un polinomio p(z) de grado n. Entonces, existe una raz
de p(z) en la regi on del plano complejo alrededor de z
k
que tiene por radio
n|z
k
z
k+1
|.
Estos procedimientos permiten acelerar el metodo de Newton-Raphson
aplicado a polinomios. De hecho, dado un punto z
0
inicial, aplicando dos
veces el algoritmo de Horner obtenemos, como hemos visto, p(z
0
) y p

(z
0
), lo
que nos permite obtener la siguiente iteracion. Otra alternativa es aplicar el
algoritmo basado en el calculo de los pares (
j
,
j
).
5.4.2. Metodo de Bairstow.
Este metodo permite obtener los ceros de un polinomio de coecientes
reales, a un cuando esos ceros sean complejos, sin necesidad de utilizar algebra
96
compleja.
Teorema. Sea p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
un polinomio
de grado n tal que {a
i
R, i = 0, 1, . . . , n}. Si z
0
es una raz compleja de
p(z) con multiplicidad m, entonces z

0
es tambien una raz del polinomio con
la misma multiplicidad.
Demostracion. Como z
0
es un cero,
0 = a
n
z
n
0
+ a
n1
z
n1
0
+ . . . + a
1
z
0
+ a
0
.
Tomando complejos conjugados en esta ecuaci on resulta
0 = a
n
(z

0
)
n
+ a
n1
(z

0
)
n1
+ . . . + a
1
z

0
+ a
0
,
es decir, que z

0
tambien es un cero del polinomio.
Como z
0
y z

0
son dos ceros distintos, el polinomio incluira el factor
cuadratico
(z z
0
) (z z

0
) = z
2
(z
0
+ z

0
) z + z
0
z

0
,
que es un factor real ya que tanto z
0
+ z

0
= 2 Re(z
0
), como z
0
z

0
= |z
0
|
2
son reales.
Teorema. Si p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
se divide entre
z
2
u z v, entonces el cociente y el resto vienen dados, respectivamente,
por
q(z) = b
n
z
n2
+ b
n1
z
n3
+ . . . + b
3
z + b
2
,
r(z) = b
1
(z u) + b
0
,
y pueden calcularse de forma recursiva usando
b
k
= a
k
+ u b
k+1
+ v b
k+2
, k = n, n 1, . . . , 1, 0 , (5.2)
con b
n+1
= b
n+2
= 0.
La idea del metodo de Bairstow es buscar esos factores cuadraticos men-
cionados en el teorema. Como vemos, los valores b
0
y b
1
son funciones de u
y v:
b
0
b
0
(u, v) ,
b
1
b
1
(u, v) .
97
Para que q(z) sea un factor de p(z), es necesario que r(z) = 0, lo que implica
que
b
0
(u, v) = 0 ,
b
1
(u, v) = 0 ,
que forman un sistema de dos ecuaciones no lineales con dos incognitas. El
metodo de Bairstow propone resolver este sistema mediante el metodo de
Newton-Raphson, lo que implica resolver el sistema:

b
0
u
b
0
v
b
1
u
b
1
v

u
v

b
0
(u, v)
b
1
(u, v)

.
De acuerdo con la ecuacion (5.2), podemos escribir

k

b
k
u
= b
k+1
+ u
b
k+1
u
+ v
b
k+2
u
= b
k+1
+ u
k+1
+ v
k+2
.
Por otro lado,

k

b
k1
v
= u
b
k
v
+ b
k+1
+ v
b
k+1
v
= b
k+1
+ u
k+1
+ v
k+2
.
Es decir, que
k
=
k
y s olo es necesaria una de las dos ecuaciones. El
sistema queda entonces

0

1

1

2

u
v

b
0
(u, v)
b
1
(u, v)

.
El jacobiano vale en este caso
J =

0

1

1

2

=
0

2

2
1
y entonces
u =
1
J
(
1
b
1

2
b
0
) ,
v =
1
J
(
1
b
0

0
b
1
) .
Una vez determinados u y v se obtienen las races de la ecuacion z
2

u z v = 0.
98
Captulo 6
Solucion numerica de
ecuaciones diferenciales.
1. Introduccion.
2. Existencia y unicidad de las soluciones.
3. Metodos basados en la serie de Taylor.
4. Metodo de Euler.
5. Metodos de Runge-Kutta.
6. Metodos multipaso.
7. Sistemas de ecuaciones.
8. Ecuaciones diferenciales de orden superior.
6.1. Introduccion.
El problema que nos planteamos en primer lugar es el de resolver una
ecuacion diferencial de primer orden, conocido un punto por el que pasa
la solucion. Tambien estudiaremos como abordar la solucion de sistemas de
ecuaciones diferenciales de orden superior.
El problema a resolver lo formulamos como sigue:
_
x

= f(x, t) ,
x(t
0
) = x
0
,
99
donde
x

=
dx
dt
.
Por tanto, la funcion f(x, t) es una funcion conocida que nos da la pendiente
de x(t) en cualquier punto t, mientras que x
0
nos proporciona un valor parti-
cular de x(t). Sin embargo, estos casos con una solucion analtica sencilla no
son los mas usuales en Fsica y de ah la necesidad de acudir a procedimientos
numericos.
6.2. Existencia y unicidad de las soluciones.
6.2.1. Existencia.
La pregunta ahora es si todo problema de valores iniciales planteado como
_
x

= f(x, t) ,
x(t
0
) = x
0
tiene o no solucion.
La respuesta es que, en principio, no la tiene. Para asegurar que dicha
solucion existe, es necesario hacer suposiciones acerca de la funcion f(t, x) e,
incluso as, solo podra asegurarse la existencia de la solucion en un entorno
de t = t
0
.
Teorema. Sea f una funci on continua en un rect angulo
R = {(t, x) | |t t
0
| , |x x
0
| } .
Entonces, el problema de valores iniciales
_
x

= f(x, t) ,
x(t
0
) = x
0
tiene solucion x(t) para |t t
0
| mn(, /M) con M = max
(t,x)R
|f(t, x)|.
100
6.2.2. Unicidad.
Puede ocurrir, no obstante, que la solucion no sea unica. Por tanto, la
unicidad requiere condiciones adicionales sobre la funci on f.
Teorema. Sean f(t, x) y
f
x
funciones continuas en el rectangulo
R = {(t, x) | |t t
0
| , |x x
0
| } .
Entonces, el problema de valores iniciales
_
x

= f(x, t) ,
x(t
0
) = x
0
tiene una solucion unica para |tt
0
| < mn(, /M) con M = max
(t,x)R
f(t, x).
Es interesante resaltar el hecho de que el intervalo de t en el que se asegura
la existencia y unicidad de la solucion puede ser mas peque no que la base del
rectangulo R.
Teorema. Si f(t, x) es continua en a t b, con < x < , y cumple
que
|f(t, x
1
) f(t, x
2
)| L|x
1
x
2
| ,
entonces, el problema de valores iniciales
_
x

= f(x, t) ,
x(t
0
) = x
0
tiene solucion unica en t [a, b].
La desigualdad que aparece en el enunciado de este teorema recibe el
nombre de desigualdad de Lipschitz.
6.3. Metodos basados en la serie de Taylor
La solucion numerica de nuestro problema,
_
x

= f(x, t) ,
x(t
0
) = x
0
,
101
pretende proporcionar un conjunto de valores {x
i
, i = 0, 1, . . . , n} que no son
otra cosa que las correspondientes aproximaciones a los valores que toma la
solucion x(t) del problema en los puntos {t
i
, i = 0, 1, . . . , n}: x
i
x(t
i
). Una
vez obtenidos los resultados siempre sera posible encontrar una funcion (spli-
ne, funcion de interpolacion, etc.) que nos proporcione una forma analtica
para x(t) (si es que ello fuera necesario).
El primer metodo que vamos a considerar es el basado en la serie de
Taylor. En un entorno de t
0
podemos usar el desarrollo en serie de Taylor y
escribir
x(t
0
+ h) = x(t
0
) + h x

(t
0
) +
h
2
2
x

(t
0
) +
h
3
3!
x

(t
0
) +
= x
0
+ hf(t
0
, x
0
) +
h
2
2
f(t, x)
t

(t
0
,x
0
)
+
h
3
3!

2
f(t, x)
t
2

(t
0
,x
0
)
+
Evidentemente, sera necesario truncar la serie. Si en la serie se incluye hasta
la potencia h
n
, se comete un error, denominado de truncamiento, que viene
dado por
E
n
=
h
n+1
(n + 1)!
x
(n+1)
() , x
0
x
0
+ h .
Como no conocemos x(t) no es posible calcular x
(n+1)
(t) y, por tanto, no
podemos encontrar una cota de error, sino solo su orden de magnitud.
El metodo del desarrollo en serie tiene una serie de ventajas e inconve-
nientes que conviene tener presentes. Entre estos ultimos, es evidente que es
necesario derivar sucesivamente la ecuacion diferencial dada. Ello hace ne-
cesario que la funcion f(t, x) tenga derivadas en la region del plano (t, x)
en la que se encuentra la solucion. Esta parte preliminar del proceso (la del
calculo de las derivadas) es fundamental ya que cualquier error, que facilmen-
te puede pasar inadvertido, producira una solucion completamente erronea.
Por ultimo, cada una de las derivadas debe programarse por separado. Di-
cho esto, es evidente (y esta es una de las ventajas del metodo) que se trata
de un procedimiento conceptualmente sencillo. Ademas, es posible obtener
una gran precision (en principio la que se quiera) ya que solo es necesario
calcular mas derivadas. Si se calculan N derivadas podemos aplicar el pro-
cedimiento hasta orden N. Como quiera que calcular todas las derivadas es
una tarea complicada, se puede hacer uso de programas de procesamiento al-
gebraico (Mathematica, Matlab, etc.) que permite obtener, ademas, salidas
en FORTRAN o C u otros codigos de programacion.
102
En cuanto a los errores que se cometen en este procedimiento, tenemos los
correspondientes al truncamiento local, que son provocados porque la serie
debe truncarse en la practica, y los de redondeo local, debido a la limitada
precision del ordenador. Por otro lado, la acumulacion de estos errores locales
da lugar a los denominados errores globales, que tambien habra que tener en
cuenta.
6.4. Metodo de Euler
El metodo de Euler corresponde a la particularizacion del metodo de la
serie de Taylor al caso n = 1:
x(t + h) = x(t) + h f(t, x) ,
donde x

(t) = f(t, x). La gran ventaja de este procedimiento es que no es


necesario calcular ninguna derivada. Por el contrario, es necesario que h sea
muy peque no si se pretende obtener una buena precision. Como vemos en
la gura, lo que se hace es utilizar la pendiente de la curva al principio del
intervalo para calcular el nuevo punto. Evidentemente, esto hace que este
metodo sea exacto solo en el caso de que la funcion f(t, x) sea una recta.
t
0
t
1
t
2
x
0
x(t
0
)
x(t
1
)
x(t
2
)
x
1
x
2
103
Podramos mejorar la precision que proporciona el metodo de Euler si,
en lugar de usar el valor de la derivada en el extremo inicial del intervalo,
usaramos la media de las derivadas de la funcion en los dos extremos de cada
intervalo. Es decir, en lugar de usar la aproximacion conocida
x(t + h) = x(t) + h x

(t) ,
utilizaramos la siguiente expresion
x(t + h) = x(t) + h
x

(t) + x

(t + h)
2
.
Sin embargo no conocemos x

(t +h). No obstante, es posible utilizar un pro-


cedimiento a dos pasos que permite aplicar esta ultima expresion de manera
aproximada. El esquema de este procedimiento es como sigue:
1. aplicamos el metodo de Euler para predecir el valor de x(t + h)
x
P
(t + h) = x(t) + h x

(t) x(t) + h f(t, x) ;


2. calculamos la prediccion de x

(t + h):
x

P
(t + h) = f(t + h, x
P
(t + h)) ;
3. calculamos el valor corregido de x(t + h):
x
C
(t + h) = x(t) + h
x

(t) + x

P
(t + h)
2
.
Eventualmente podramos llevar a cabo de manera iterativa este procedimien-
to, volviendo al punto 2 del mismo hasta lograr convergencia. Este algoritmo
se conoce con el nombre de metodo de Euler-Cauchy.
Por ultimo nos queda evaluar el error que se comete en este caso del
metodo de Euler-Cauchy. Recordemos que el error del metodo de Euler es
(h
2
). As:
x(t + h) = x(t) + h x

(t) + (h
2
)
Por tanto,
x

(t + h) = x

(t) + h x

(t) + (h
2
) ,
104
con lo que
x

(t) =
x

(t + h) x

(t)
h
+ (h) .
Si usamos el desarrollo de Taylor hasta orden h
2
y tenemos en cuenta esta
expresion, podemos escribir:
x(t + h) = x(t) + h x

(t) +
1
2
h
2
x

(t) + (h
3
)
= x(t) + h x

(t) +
1
2
h
2
x

(t + h) x

(t)
h
+ (h
3
)
= x(t) + h
x

(t + h) + x

(t)
2
+ (h
3
) .
Esta es la expresion del metodo de Euler-Cauchy que, como vemos, presenta
un error inferior al del metodo de Euler.
6.5. Metodos de Runge-Kutta
Los metodos de Runge-Kutta constituyen una serie de procedimientos
cuyo objetivo fundamental es evitar uno de los inconvenientes de los metodos
basados en las serie de Taylor (excepcion hecha del de Euler), a saber, el
calculo de derivadas.
Vamos a obtener las ecuaciones correspondiente a los metodos de Runge-
Kutta de segundo orden. El punto de partida es la serie de Taylor hasta orden
h
2
:
x(t + h) = x(t) + h x

(t) +
h
2
2
x

(t) + (h
3
) .
Como
x

(t)
dx
dt
= f(t, x) ,
tendremos
x

(t)
d
2
x
dt
2
=
f(t, x)
t
+
f(t, x)
x
x

(t) =
f(t, x)
t
+ f(t, x)
f(t, x)
x
.
105
Sustituyendo en el desarrollo en serie tenemos:
x(t + h) = x(t) + h f(t, x) +
h
2
2
_
f(t, x)
t
+ f(t, x)
f(t, x)
x
_
+ (h
3
)
= x(t) +
h
2
f(t, x)
+
h
2
_
f(t, x) + h
f(t, x)
t
+ h f(t, x)
f(t, x)
x
_
+ (h
3
) .
Ahora bien, si desarrollamos a primer orden, podemos escribir
f(t + h, x + hf(t, x)) = f(t, x) + h
f(t, x)
t
+ h f(t, x)
f(t, x)
x
+ (h
2
) .
Sustituyendo en la ecuacion anterior tendremos
x(t + h) x(t) +
h
2
f(t, x) +
h
2
f(t + h, x + hf(t, x)) ,
que da lugar al denominado metodo de Runge-Kutta de segundo orden o
metodo de Heun:
x(t + h) = x(t) +
1
2
(F
1
+ F
2
) ,
F
1
= h f(t, x) ,
F
2
= h f(t + h, x + F
1
) .
Como podemos ver, sin mas que hacer una comparacion sencilla, este
metodo coincide exactamente con el que hemos denominado anteriormente
metodo de Euler-Cauchy (sin iteracion). Sin embargo, es posible desarrollar
otro metodo de Runge-Kutta de segundo orden distinto. Para ello basta tener
en cuenta que las formulas de Runge-Kutta de segundo orden se pueden
escribir, en forma generica, como
x(t + h) = x(t) +
1
h f(t, x)
+
2
h
_
f(t, x) + h
f(t, x)
t
+ h f(t, x)
f(t, x)
x
_
+ .
Si comparamos esta expresion con la obtenida anteriormente,
x(t + h) = x(t) + h f(t, x) +
h
2
2
_
f(t, x)
t
+ f(t, x)
f(t, x)
x
_
+ ,
106
vemos que los parametros libres
1
,
2
, y deben satisfacer las condiciones:

1
+
2
= 1 ,

2
=
1
2
,

2
=
1
2
.
Existen dos posibles soluciones a este conjunto de condiciones. La primera

1
=
2
= 1 ; = = 1 ,
corresponde al metodo de Heun (o de Euler-Cauchy) que acabamos de ver,
mientras que la segunda,

1
= 0 ;
2
= 1 ; = =
1
2
,
da lugar al denominado metodo de Euler modicado:
x(t + h) = x(t) + F
2
,
F
1
= h f(t, x) ,
F
2
= h f
_
t +
h
2
, x +
F
1
2
_
.
El error cometido en el caso de los metodos de Runge-Kutta de segundo
orden es (h
3
).
De forma analoga a la que aqu hemos llevado a cabo se pueden obtener
las ecuaciones del denominado metodo de Runge-Kutta clasico de cuarto
orden, que es uno de los metodos mas utilizados en la practica:
x(t + h) = x(t) +
1
6
(F
1
+ 2 F
2
+ 2 F
3
+ F
4
) ,
F
1
= h f(t, x) ,
F
2
= h f
_
t +
h
2
, x +
F
1
2
_
,
F
3
= h f
_
t +
h
2
, x +
F
2
2
_
,
F
4
= h f (t + h, x + F
3
) .
Este metodo reproduce los terminos de la serie de Taylor hasta orden h
4
por
lo que tendra asociado un error (h
5
).
107
6.6. Metodos multipaso
Los metodos basados en la serie de Taylor y los metodos de Runge-Kutta
son metodos de un paso, es decir, son metodos en los que el valor predicho
para un cierto punto solo depende del valor predicho en el anterior. Parece
l ogico pensar que si, en lugar de utilizar la informacion correspondiente solo
al punto anterior, se utilizara la maxima informacion disponible, los metodos
que pudieran desarrollarse podran ser mas ecientes.
Supongamos que la ecuacion diferencial de nuestro problema,
x

(t) = f(t, x) ,
la integramos entre dos puntos dados, t
n
y t
n+1
. Tendremos entonces
_
t
n+1
t
n
dt x

(t) = x(t
n+1
) x(t
n
) ,
y, por tanto,
x(t
n+1
) = x(t
n
) +
_
t
n+1
t
n
dt x

(t) .
La idea es utilizar una formula de cuadratura para calcular la integral con
lo que obtendremos un metodo que permitira calcular x(t
n+1
) en funcion del
valor de x(t) en los puntos anteriores.
Veamos un ejemplo. Sea
f
i
f(t
i
, x
i
) ,
con x
i
el valor aproximado obtenido para x(t
i
) y consideremos para la integral
anteriormente indicada una formula del tipo
_
t
n+1
t
n
dt x

(t)
_
t
n+1
t
n
dt f(t, x(t)) h
M

k=0
c
k
f
nk
.
Los coecientes los determinamos imponiendo que la formula de cuadratura
sea exacta cuando el integrando es un polinomio de grado, a lo sumo, M, es
decir,
_
1
0
dt p
M
(t) =
M

k=0
c
k
f
nk
.
108
Con el n de simplicar los calculos, y sin que ello signique perdida de
generalidad ninguna, hemos supuesto t
n
= 0 y h = 1. Esto signica que
los puntos involucrados en el calculo seran t
n+1
= 1, t
n
= 0, t
n1
= 1,
t
n2
= 2, . . ., t
nk
= k, . . ., t
nM
= M. Ahora, elegimos un conjunto de
polinomios que formen una base de los polinomios de grado, a lo sumo, M:
p
0
(t) = 1 ,
p
1
(t) = t ,
p
2
(t) = t (t + 1) ,
p
3
(t) = t (t + 1) (t + 2) ,
. . .
p
k
(t) = t (t + 1) (t + 2) t + k 1) ,
. . .
p
M
(t) = t (t + 1) (t + 2) (t + k 1) (t + M 1) ,
y sustituyendo en la ecuacion de la integral tendremos M + 1 ecuaciones de
las que podremos obtener los coecientes. El metodo obtenido de esta forma
se conoce con el nombre de metodo de Adams-Bashforth.
En el caso particular de M = 4, el sistema de ecuaciones sera el siguiente:
_
1
0
dt p
0
(t) = 1 =
4

k=0
c
k
,
_
1
0
dt p
1
(t) =
1
2
=
4

k=0
k c
k
,
_
1
0
dt p
2
(t) =
5
6
=
4

k=0
k(k 1) c
k
,
_
1
0
dt p
3
(t) =
9
4
=
4

k=0
k(k 1)(k 2) c
k
,
_
1
0
dt p
4
(t) =
251
30
=
4

k=0
k(k 1)(k 2)(k 3) c
k
,
109
Ahora resolvemos este sistema y tendremos
251
30
= 24 c
4
c
4
=
251
720
,
9
4
= 6 c
3
24 c
4
c
3
=
1274
720
,
5
6
= 2 c
2
+ 6 c
3
+ 12 c
4
c
2
=
2616
720
,
1
2
= c
1
2 c
2
3 c
3
4 c
4
c
1
=
2774
720
,
1 = c
0
+ c
1
+ c
2
+ c
3
+ c
4
c
0
=
1901
720
.
Por tanto, la formula del metodo queda, hasta orden 5,
x
n+1
= x
n
+
h
720
(1901 f
n
2774 f
n1
+ 2616 f
n2
1274 f
n3
+ 251 f
n4
) .
Normalmente, la formula de Adams-Bashforth no se usa aisladamente,
sino que se utiliza conjuntamente con otra formula para obtener la maxima
precision posible.
Si volvemos sobre la ecuacion
x(t
n+1
) = x(t
n
) +
_
t
n+1
t
n
dt x

(t) .
y usamos una formula de cuadratura que involucre f
n+1
, podemos llevar a
cabo un procedimiento similar al que acabamos de hacer para encontrar los
coecientes. El metodo que se obtiene se conoce con el nombre de metodo de
Adams-Moulton. En concreto, para el caso de orden 5, la formula del metodo
es
x
n+1
= x
n
+
h
720
(251 f
n+1
+ 646 f
n
264 f
n1
+ 106 f
n2
19 f
n3
) .
Sin embargo, es evidente que esta formula no se puede utilizar directa-
mente ya que x
n+1
aparece en ambos miembros de la ecuacion (recordar que
f
n+1
= f(t
n+1
, x
n+1
)). Lo que se hace es utilizar una formula previa que juega
el papel de formula predictora y, a continuacion, se usa esta como formula
correctora. Las dos formulas aqu vistas de orden 5 se pueden usar conjun-
tamente de esta manera. No obstante, queda a un un problema ya que solo
se conoce el valor x
0
y para aplicar ambas formulas es preciso conocer los
110
valores x
1
, x
2
, x
3
, etc. Una posibilidad es utilizar el metodo de Runge-Kutta
y, normalmente, lo adecuado es aplicar el metodo del mismo orden. En el
caso concreto de las formulas de orden 5 que hemos mostrado antes, habra
que utilizar el metodo de Runge-Kutta de orden 5 que viene dado por
x(t + h) = x(t) +
F
1
24
+
5F
4
48
+
27F
5
56
+
125F
6
336
,
F
1
= h f(t, x) ,
F
2
= h f
_
t +
h
2
, x +
F
1
2
_
,
F
3
= h f
_
t +
h
2
, x +
F
1
4
+
F
2
4
_
,
F
4
= h f (t + h, x F
2
+ 2F
3
) ,
F
5
= h f
_
t +
2h
3
, x +
7F
1
27
+
10F
2
27
+
F
4
27
_
,
F
6
= h f
_
t +
h
5
, x +
28F
1
625

F
2
5
+
546F
3
625
+
54F
4
625

378F
5
625
_
.
6.7. Sistemas de ecuaciones diferenciales.
La forma general de un sistema de ecuaciones diferenciales es la siguiente:
_

_
x

1
(t) = f
1
(t, x
1
, x
2
, . . . , x
n
)
x

2
(t) = f
2
(t, x
1
, x
2
, . . . , x
n
)
.
.
.
x

n
(t) = f
n
(t, x
1
, x
2
, . . . , x
n
)
En el caso de sistemas de ecuaciones es conveniente introducir la notacion
vectorial,
X

= F(t, X) ,
donde
X =
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
es una funcion
X : R R
n
,
111
y
F =
_
_
_
_
_
f
1
(t, x
1
, x
2
, . . . , x
n
)
f
2
(t, x
1
, x
2
, . . . , x
n
)
.
.
.
f
n
(t, x
1
, x
2
, . . . , x
n
)
_
_
_
_
_
es una funcion
F : R
n+1
R
n
.
Las condiciones iniciales se expresan como
X(t
0
) = X
0
.
De manera similar a como hicimos para las ecuaciones ordinarias de pri-
mer orden, podemos aplicar alguno de los metodos basados en la serie de
Taylor para resolver un sistema de ecuaciones diferenciales del tipo del que
acabamos de describir. Tendramos, por tanto,
X(t + h) = X(t) + h X

(t) +
h
2
2!
X

(t) + +
h
n
n!
X
(n)
(t) .
Las derivadas las podemos calcular a partir de las propias ecuaciones dife-
renciales.
En algunas ocasiones es conveniente escribir el sistema de ecuaciones di-
ferenciales haciendo uso de la denominada forma aut onoma. Lo que se hace
es introducir una nueva variable x
0
= t con lo que el sistema resultara:
_

_
x

0
(t) = 1
x

1
(t) = f
1
(x
0
, x
1
, x
2
, . . . , x
n
)
x

2
(t) = f
2
(x
0
, x
1
, x
2
, . . . , x
n
)
.
.
.
x

n
(t) = f
n
(x
0
, x
1
, x
2
, . . . , x
n
)
Si tenemos en cuenta el sistema escrito en esta forma, es facil escribir una
f ormula de tipo Runge-Kutta. El caso de la de orden cuatro resulta:
X(t + h) = X(t) +
h
6
(F
1
+ 2 F
2
+ 2 F
3
+ F
4
) ,
112
donde
F
1
= F(X) ,
F
2
= F
_
X +
h
2
F
1
_
,
F
3
= F
_
X +
h
2
F
2
_
,
F
4
= F (X + hF
3
) ,
6.8. Ecuaciones diferenciales de orden supe-
rior
Toda ecuacion de este tipo puede convertirse en un sistema de ecuaciones
diferenciales de primer orden. Por ejemplo, si consideramos la ecuacion
y
(n)
(t) = f(t, y, y

, y

, . . . , y
(n1)
) ,
e introducimos las variables x
1
= y, x
2
= y

, x
3
= y

, . . ., x
n
= y
(n1)
,
entonces tendremos el siguiente sistema
_

_
x

1
(t) = x
2
(t) ,
x

2
(t) = x
3
(t) ,
.
.
.
x

n
(t) = f(t, x
1
, x
2
, . . . , x
n1
) ,
que puede resolverse por alguno de los metodos descritos anteriormente. Si-
guiendo una tenica similar se pueden abordar los sistemas de ecuaciones
diferenciales de orden superior.
113