Sunteți pe pagina 1din 74

M

ETODOS NUM

ERICOS
- NOTAS DE CLASE -

por
Rene Escalante
- Enero, 2007 -
2
Contenido
1 Conceptos basicos 1
1.1 Metodos numericos . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Tipos de errores y cotas . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 Errores por redondeo . . . . . . . . . . . . . . . . . . . 5
1.2.2 Errores por cancelacion . . . . . . . . . . . . . . . . . . 7
1.2.3 Cotas para el error relativo . . . . . . . . . . . . . . . . 10
1.3 Convergencia y algoritmos . . . . . . . . . . . . . . . . . . . . 10
1.4 Experimentaci on numerica . . . . . . . . . . . . . . . . . . . . 13
2 Sistemas de Ecuaciones Lineales (SEL) 15
2.1 Resolucion directa de un SEL . . . . . . . . . . . . . . . . . . 15
2.1.1 El algoritmo de eliminacion gaussiana . . . . . . . . . . 15
2.1.2 Calculo de la inversa de una matriz . . . . . . . . . . . 22
2.1.3 Pivoteo . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Metodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Experimentaci on numerica . . . . . . . . . . . . . . . . . . . . 29
3 Ecuaciones no lineales 35
3.1 El metodo de la biseccion . . . . . . . . . . . . . . . . . . . . 35
3.2 Metodo de regula falsi . . . . . . . . . . . . . . . . . . . . . . 40
3.3 El metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 El metodo de la secante . . . . . . . . . . . . . . . . . . . . . 47
3.5 Metodos de punto jo . . . . . . . . . . . . . . . . . . . . . . 48
3.6 El algoritmo de Horner . . . . . . . . . . . . . . . . . . . . . . 53
3.7 Experimentaci on numerica . . . . . . . . . . . . . . . . . . . . 56
4 Sistemas de ecuaciones no lineales 59
4.1 El metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . 59
i
ii CONTENIDO
5 Interpolacion Polinomial 65
5.1 Experimentaci on numerica . . . . . . . . . . . . . . . . . . . . 66
Referencias 103
Captulo 1
Conceptos basicos
1.1 Metodos numericos
Debemos primero quizas hablar de dos conceptos fundamentales, como son el
de problema numerico y el de algoritmo. El primero se reere a una clara
y no ambig ua descripcion de la conexion funcional entre un conjunto de datos
de entrada (las variables independientes) y un conjunto de datos de salida
(las variables dependientes). Un algoritmo, para un determinado problema
numerico, es una descripcion completa de operaciones bien denidas, a traves
de las cuales cada conjunto de datos de entrada admisible es transformado en
datos de salida. De manera que, un determinado problema numerico puede
involucrar muchos algoritmos diferentes, cada uno de los cuales puede dar
una respuesta aproximada con una precision diferente.
Un metodo numerico es un procedimiento mediante el cual buscamos
resolver, de manera aproximada, un problema matematico dado a traves de
la consideracion de un problema numerico (por ejemplo, el conocido metodo
de Newton-Raphson es un metodo numerico usado en el calculo aproxi-
mado de un cero de una ecuacion no lineal, ver Captulo 3). Este concepto
incluye el caso en que el problema matematico sea transformado en un pro-
blema mas simple que, posiblemente implique, a posteriori, la formulaci on
de otro problema numerico asociado (por ejemplo, la transformacion de un
problema que involucra una ecuacion diferencial en un sistema de ecuaciones).
1
2 CAP

ITULO 1. CONCEPTOS B

ASICOS
1.2 Tipos de errores y cotas
La capacidad de representaci on del conjunto de los n umeros reales por parte
de una computadora es realmente limitada, ya que tan solo contamos con una
cantidad nita de n umeros para representar a otro conjunto de cardinalidad
innita (no numerable) de elementos. De all que exista la necesidad de
contar con conceptos, medios y estrategias que nos permitan la estimacion
numerica de los errores involucrados. Con esta idea en mente, comenzamos
por introducir la siguiente denicion.
Denicion 1.1 Si x es el valor exacto (en la generalidad de los casos no
conocido) y x es su valor aproximado, denimos el error absoluto por [x x[
y el error relativo por

x x
x

, siempre que x ,= 0.
Para los problemas en los cuales la magnitud del valor verdadero puede ser
muy grande, o muy peque na, el error relativo puede ser mas util que el error
absoluto.
Ejemplo 1:
i) Si x = 0.3000 10
1
y x = 0.3100 10
1
, el error absoluto es 0.1 y el
error relativo es 0.3333 10
1
.
ii) Si x = 0.300010
3
y x = 0.310010
3
, el error absoluto es 0.110
4
y el error relativo es 0.3333 10
1
.
iii) Si x = 0.3000 10
4
y x = 0.3100 10
4
, el error absoluto es 0.1 10
3
y el error relativo es otra vez 0.3333 10
1
.
Observamos que el error relativo en i), ii) y iii) es el mismo cuando los
errores absolutos son diferentes. En este sentido el error relativo es mas
signicativo, pues toma mas en cuenta el tama no de los valores involucrados.
Por ejemplo, si tenemos dos doblones y perdemos uno de ellos, parece que
estamos perdiendo mucho (de hecho, estamos perdiendo el 50% de nuestro
capital), pero si tenemos un millon de doblones y perdemos uno, la perdida
no parece ser muy importante (relativa a la cantidad de doblones inicial). En
este ultimo caso el error relativo es de 10
6
cuando en el primero es de 0.5,
pero en ambos casos el error absoluto es de 1.
Los computadores representan los n umeros reales en una forma deno-
minada de punto otante, que es semejante a la notacion cientca. Por
ejemplo, un n umero N se almacena como N = .d
1
d
2
d
3
. . . d
p

e
, donde es
1.2. TIPOS DE ERRORES Y COTAS 3
la base y las d
i
s son los dgitos. Para un computador, la base es usualmente
2, 8 o 16. Cada dgito es un n umero entero entre 0 y 1. Hay un n umero
jo de dgitos, p, y el exponente entero, e, esta restringido a un rango de
valores (e [e
min
, e
max
]). Si d
1
,= 0, el sistema se denomina sistema en
punto otante normalizado.
En 1985 el Institute for Electrical and Electronic Engineers (IEEE), pu-
blico el informe Binary Floating Point Aritmetic Standar 754-1985, en donde
se establecieron los formatos para las precisiones simples, dobles y extendi-
das. Estos son los estandares utilizados por los fabricantes de PCs para el
hardware de punto otante.
El procesador numerico de las PCs suele utilizar una representaci on de
64 bits (dgitos binarios) para un n umero real. El primer bit representa el
signo, s. Los siguientes 11 bits representan al exponente e y los 52 bits
que siguen es una fraccion en binario, f, llamada mantisa. La base para el
exponente es 2. La precision con la cual los n umeros pueden almacenarse y
los calculos llevarse a cabo, dependen del n umero de dgitos de la mantisa y
del rango del exponente usados para representar un n umero real (la condicion
nita de f es una limitacion sobre la precision y la condicion nita de e es
una limitacion sobre el rango).
Como 52 dgitos binarios corresponden a unos 16 o 17 dgitos decimales,
supondremos que un n umero representado en este sistema tiene al menos 16
cifras decimales de precision. El exponente de 11 dgitos representa un inter-
valo del 0 al 2
11
1 = 2047. A n de que estos n umeros se puedan representar,
se resta 1023 del exponente, de manera que el intervalo del exponente es en
realidad [1023, 1024]. Con el objeto de proporcionar una representaci on
unica de cada n umero en punto otante, supondremos que la representaci on
esta normalizada. El uso de este sistema proporciona un n umero en punto
otante de la forma
(1)
s
2
e1023
(1 + f).
Por ejemplo, consideremos el n umero de maquina
0100000000111011100100010000000000000000000000000000000000000000.
Observemos que el primer bit de la izquierda es 0, lo cual indica que el
n umero es positivo. Los siguientes 11 bits corresponden al exponente, y son
equivalentes al n umero decimal
e = 1.2
10
+ 0.2
9
+ . . . + 0.2
2
+ 1.2
1
+ 1.2
0
= 1027
4 CAP

ITULO 1. CONCEPTOS B

ASICOS
De manera que, la parte exponencial del n umero es 2
10271023
= 2
4
. Tambien,
los ultimos 52 bits muestran que la mantisa es
f = 1.
_
1
2
_
1
+ 1.
_
1
2
_
3
+ 1.
_
1
2
_
4
+ 1.
_
1
2
_
5
+ 1.
_
1
2
_
8
+ 1.
_
1
2
_
12
.
Por lo tanto, este n umero de maquina representa al n umero decimal
(1)
s
2
e1023
(1 +f) = (1)
0
.2
10271023
_
1 +
_
1
2
+
1
8
+
1
16
+
1
32
+
1
256
+
1
4096
__
= 27.56640625.
Es interesante observar que el n umero de maquina menor que le sigue al
anterior es
0100000000111011100100001111111111111111111111111111111111111111,
y el siguiente n umero de maquina mayor es
0100000000111011100100010000000000000000000000000000000000000001.
Esto signica que nuestro n umero de maquina original representa no solo a
27.56640625 sino tambien a la mitad de los n umeros reales que estan entre
el y los dos n umeros de maquina mas proximos.
El menor n umero positivo normalizado que puede representarse tiene
ceros en todas partes excepto en el bit del extremo derecho (que es un 1), y
es igual a
2
1023
.(1 + 2
52
) 10
308
,
y el mayor tiene un cero al principio seguido de unos, y es equivalente a
2
1024
.(1 + 1 2
52
) 10
308
.
Los n umeros que aparecen en los calculos y tienen una magnitud menor que
10
308
producen un underow (por lo que se les asigna un valor de 0). Los
n umeros mayores que 10
308
producen un overow (lo cual interrumpe los
calculos).
Asimismo, el n umero total de valores que se pueden representar con d
1
,= 0
esta dado por
2( 1)(
p1
)(nro. total de exponentes) + 1.
(Por que?)
Ejercicio 1:
1.2. TIPOS DE ERRORES Y COTAS 5
a. Cuantos n umeros podemos representar de manera exacta en un sis-
tema en base 10, con dos dgitos (p = 2) y exponentes 0 o 1? Cuales
son los valores maximo y mnimo que en este sistema podemos represen-
tar? Cuales son los n umeros positivos que pueden representarse con
el exponente 1 y cuales con el exponente 0? Entonces, cuantos valores
existen en el intervalo [0, 0.99] y cuantos en el intervalo [1.0, 1.9]?
b. En un sistema de punto otante binario, los decimales corresponden a
sumas de potencias negativas de 2. Por ejemplo,
0.10
2
= (1)
1
2
+ (0)
1
4
=
1
2
y 0.11
2
= (1)
1
2
+ (1)
1
4
=
3
4
.
Cuales son los n umeros positivos que pueden representarse en un sis-
tema en punto otante normalizado binario con dos dgitos y un ex-
ponente igual a 0? (la normalizacion exige que el primer dgito en
el desarrollo sea 1). Escriba los n umeros positivos con dos dgitos y
exponentes -1 y 1.
Nota: Por razones de claridad en la exposicion, supondremos de ahora en
adelante que los n umeros de maquina se representan en la forma de
punto otante decimal normalizado (i.e., 0.d
1
d
2
. . . d
p
10
n
, 1 d
1

9 y 0 d
i
9, para cada i = 2, 3, . . . , p).
1.2.1 Errores por redondeo
Existen dos formas de expresar un n umero que tenga mas dgitos de los que
pueden representarse por el sistema en punto otante. La mas simple consiste
en truncar el n umero y desechar los dgitos que el sistema no puede manejar.
El segundo metodo es el de redondear el n umero; el resultado depende del
valor del primer dgito de los que van a descartarse. Si el sistema permite
trabajar solo con n dgitos, el redondeo produce el mismo resultado que el
truncamiento si el dgito n + 1 esta entre 0 y 4, ambos inclusive. Si el dgito
n+1 esta entre 5 y 9, el dgito n-esimo se incrementa en 1. Las imprecisiones
que resultan de redondear o de truncar se conocen como errores por re-
dondeo. En general, los errores por redondeo se acumulan menos (durante
los calculos repetidos) que los errore producidos por truncamiento, ya que el
valor verdadero es mayor que el valor redondeado en alrededor de la mitad de
las veces y menor tambien alrededor de la mitad de las veces. Ademas, para
6 CAP

ITULO 1. CONCEPTOS B

ASICOS
la operacion de truncamiento, el mayor error absoluto que pudiera producirse
sera del doble del de redondeo. Por otra parte, el truncamiento no requiere
de decision alguna acerca de cambiar o no el ultimo dgito retenido.
Ejemplo 2:
Consideremos la siguiente suma: 0.99 + 0.0044 + 0.0042. Con aritmetica
exacta, el resultado es 0.9986. Sin embargo, si usamos una aritmetica de
tres dgitos, y las operaciones se realizan siguiendo el orden de izquierda a
derecha, encontramos que (0.99 +0.0044) +0.0042 = 0.994 +0.0042 = 0.998.
Por otra parte, si operamos primero los dos ultimos n umeros, tenemos que:
0.99 +(0.0044 +0.0042) = 0.99 +0.0086 = 0.999, lo cual demuestra el efecto
del error por redondeo en un caso tan simple como este. (Por que sucede
esto?).
Nota: Desde el punto de vista numerico es importante el orden en que sumamos.
Ejercicio 2:
Considere la suma de terminos S = 9.87+0.78+0.05+0.01. Realice la suma
de izquierda a derecha y luego de derecha a izquierda, en una maquina que
tan solo maneja una aritmetica de tres cifras con redondeo. Son iguales los
resultados de realizar estas dos operaciones? Explique.
Ademas de la representaci on imprecisa de los n umeros en la computadora,
la aritmetica involucrada no es exacta. Supongamos que fl(x) y fl(y) son las
representaciones en punto otante de los n umeros reales x y y, y que , ,
y representan las operaciones de suma, resta, multiplicaci on y division en
la maquina, respectivamente. De manera que, la aritmetica con un n umero
nito de cifras estara dada por:
x y = fl(fl(x) + fl(y)), x y = fl(fl(x) fl(y)),
x y = fl(fl(x) fl(y)), x y = fl(fl(x) fl(y))
Lo cual corresponde a realizar la aritmetica exacta con las representaciones
de x y y en punto otante, para despues transformar el resultado a su repre-
sentacion en punto otante con un n umero nito de cifras.
Ejemplo 3:
Supongamos que x =
5
7
y y =
1
3
y que usamos truncamiento de cinco cifras
para los calculos. As, fl(x) = 0.71428 10
0
y fl(y) = 0.33333 10
0
. Al-
gunos resultados numericos son: xy = 0.1047610
1
, xy = 0.3809510
0
,
1.2. TIPOS DE ERRORES Y COTAS 7
x y = 0.23809 10
0
y x y = 0.21428 10
1
.
Ejercicio 3:
a) Calcule los correspondientes errores absolutos y relativos en el Ejem-
plo 3 anterior. Produce la aritmetica seleccionada resultados satisfac-
torios?
b) A los valores del Ejemplo 3 a nadimos los valores u = 0.714251, v =
98765.9 y w = 0.111111 10
4
, de manera que fl(u) = 0.71425 10
0
,
fl(v) = 0.98765 10
5
y fl(w) = 0.11111 10
4
. Calcular x u,
(x u) w, (x u) v y u v, as como sus correspondientes errores
absolutos y relativos. Produce en este caso la aritmetica seleccionada
resultados satisfactorios?
Denicion 1.2 Decimos que el n umero x aproxima a x con t cifras signi-
cativas si t es el mayor entero no negativo para el que

x x
x

< 0.5 10
t
.
Ejemplo 4:
Usando esta denicion, vemos que 0.998 aproxima a la solucion verdadera,
x = 0.9986, con dos dgitos signicativos, pues

0.998 0.9986
0.9986

= 6.0084 10
4
< 0.5 10
2
.
Por otra parte, 0.999 aproxima la solucion verdadera con tres dgitos signi-
cativos, pues

0.999 0.9986
0.9986

= 4.0056 10
4
< 0.5 10
3
.
1.2.2 Errores por cancelacion
Otro ejemplo del efecto de calculos inexactos se produce cuando el calculo im-
plica la substraccion de dos n umeros muy proximos entre s. Con el objeto de
evitar esta dicultad se recomienda buscar una reformulaci on del algoritmo
inicialmente considerado.
Ejemplo 5:
8 CAP

ITULO 1. CONCEPTOS B

ASICOS
Consideremos el problema de usar la formula cuadratica para resolver la
ecuacion de segundo grado
x
2
+ bx + 1 = 0.
El efecto de redondear el discriminante =

b
2
4 se ilustra en este ejem-
plo. Notemos que para b grande (b 4), es bastante proxima a b. La
formula cuadratica da x
1
=
b+
2
y x
2
=
b
2
. Si b es positivo el calculo
de x
1
involucra la diferencia de dos n umeros muy proximos entre s, lo cual
representa una situacion catastroca.
Por ejemplo, consideremos x
2
+ 62.10x + 1 = 0, cuyas races tienen los
valores aproximados
x
1
0.01610723 y x
2
62.08390
En esta ecuacion, b
2
es mucho mayor que 4, de modo que el numerador en
el calculo de x
1
implica la resta de n umeros casi iguales. Ahora bien, si
suponemos una aritmetica de redondeo a cuatro cifras, y como
=

b
2
4 =

3856. 4.000 =

3852. = 62.06,
tenemos que
fl(x
1
) =
62.10 + 62.06
2.000
=
0.04000
2.000
= 0.02000,
la cual es una mala aproximaci on a x
1
= 0.01611, con un error relativo
grande de 2.4 10
1
.
Esta dicultad puede evitarse por racionalizar el numerador en la formula
cuadratica:
x
1
=
(b)
2
( + b)
( + b)
=
(
2
b
2
)
2( + b)
=
4
2( + b)
=
2
( + b)
As, con el objeto de obtener una aproximaci on mas precisa para x
1
, con
un redondeo a cuatro cifras, simplemente racionalizamos, obteniendo en este
caso
fl(x
1
) =
2.000
62.10 + 62.06
=
2.000
124.2
= 0.01610,
con un error relativo de 6.2 10
4
, mucho menor que el anterior.
1.2. TIPOS DE ERRORES Y COTAS 9
Por otro lado, el calculo de x
2
implica la suma de dos n umeros casi iguales
b y

b
2
4ac. Pero esto no representa problema alguno, pues
fl(x
2
) =
62.10 62.06
2.000
=
124.2
2.000
= 62.10
que tiene un error relativo peque no de 3.2 10
4
.
Ejercicio 4:
Repita el ejemplo anterior, pero ahora trabaje con la ecuacion cuadratica
x
2
+ 97x + 1 = 0, usando una aritmetica de redondeo a cuatro cifras. Saque
sus propias conclusiones.
Ejemplo 6:
Como para cualquier x IR, e
x
puede expresarse como la serie convergente
e
x
= 1 + x +
x
2
2!
+
x
3
3!
+ . . .
Supongamos que nuestro sistema numerico en punto otante es tal que = 10
y p = 5, y supongamos ademas que x = 5.5. Si consideramos el desa-
rrollo nito de los primeros 25 terminos, obtenemos el resultado 0.0026363
(terminos adicionales no aportan un mayor cambio a este resultado). Sera
la respuesta satisfactoria? La respuesta precisa es e
5.5
= 0.00408677, por lo
que la respuesta no presenta dgitos signicativos. Que ocurrio? Si escribi-
mos y revisamos los terminos intermedios de la serie nita en esta aritmetica
(hacerlo!), podemos ver que los mismos seran de magnitudes mucho mayores
(aunque de signos alternados) que la respuesta obtenida (i.e., 0.0026363). De
manera que, existiran terminos cuyos errores por redondeo seran tan grandes
como el mismo resultado nal. Aunque sera posible considerar un n umero
mayor de dgitos signicantes a n de evitar este fenomeno de cancelaci on
catastroca, siempre existiran costos adicionales asociados al tiempo de eje-
cucion y al propio almacenamiento. Sin embargo, en este caso, hay un mejor
camino a seguir, cual es el de realizar la suma para x = 5.5, y luego tomar
el recproco de la respuesta:
e
5.5
=
1
e
5.5
=
1
1 + 5.5 + 15.125 + . . .
= 0.0040865,
para nuestra aritmetica de cinco decimales. Con esta estrategia de calculo el
error se reduce a 0.007%. De este ejemplo podemos concluir que un calculo
no tiene por que ser demasiado largo para que se produzcan grandes errores
10 CAP

ITULO 1. CONCEPTOS B

ASICOS
por redondeo.
Ejercicio 5:
Como empeorara el problema anterior (Ejemplo 6) si se requiere calcular
e
100
?
1.2.3 Cotas para el error relativo
Si usamos k cifras decimales y redondeo para la representaci on en la maquina
de x = 0.d
1
d
2
. . . d
k
d
k+1
. . . 10
n
, con d
k+1
5, entonces

x fl(x)
x

0.d
1
d
2
. . . d
k
d
k+1
. . . 10
n
0.d
1
d
2
. . . (d
k
+ 1) 10
n
0.d
1
d
2
. . . 10
n

0.d
k+1
d
k+2
. . . 10
nk
10
nk
0.d
1
d
2
. . . 10
n

1 0.d
k+1
d
k+2
. . .
0.d
1
d
2
. . .

10
k
Como d
1
,= 0, el valor mnimo del denominador es 0.1, y 0.5 es una cota
superior para el numerador (pues d
k+1
5). Por lo tanto,

x fl(x)
x

0.5
0.1
10
k
De donde, el error relativo
1
2
.10
k+1
.
Para el caso en que d
k+1
< 5, los calculos son similares a los arriba realizados.
Ejercicio 6:
Para el caso en que consideremos k cifras decimales y truncamiento para la
representacion en la maquina de x = 0.d
1
d
2
. . . d
k
d
k+1
. . . 10
n
, probar que
el error relativo 10
k+1
.
Para mayores detalles ver [1], [2], [4], [9] y [10].
1.3 Convergencia y algoritmos
El concepto que introducimos a continuacion pertenece, sin duda, a la jerga
habitual de los analistas numericos.
1.3. CONVERGENCIA Y ALGORITMOS 11
Denicion 1.3 Diremos que un software o subprograma es robusto si es
capaz de enfrentarse a una amplia variedad de situaciones numericas distin-
tas sin la intervencion del usuario.
Es un hecho conocido que cuando estudiamos diferentes metodos del calculo
cientco se presenta una interdependencia entre la velocidad y la conabili-
dad (la primera esta directamente relacionada con los costos). As, para al-
gunos problemas que involucran calculo intensivo (como la solucion numerica
de ecuaciones en derivadas parciales), la velocidad es lo mas importante. Sin
embargo, cuando nos referimos a un software de proposito general para ser
utilizado por una amplia gama de usuarios, la conabilidad y la robustez son
las caractersticas que marcan la pauta. Por muchos a nos se han realizado
esfuerzos por generar paquetes numericos de proposito general que reunan
ambas caractercas.
Inestabilidad numerica
El siguiente ejemplo [5, 1.3.3] muestra lo que puede suceder cuando escoge-
mos un algoritmo inadecuado. El error por redondeo puede acabar comple-
tamente con el resultado de un calculo.
Supongamos que queremos estimar para n = 0, 1, . . . , 8, la integral
y
n
=
_
1
0
x
n
x + 5
dx. (1.1)
Observemos que
y
n
+ 5y
n1
=
_
1
0
x
n
+ 5x
n1
x + 5
dx =
_
1
0
x
n1
(x + 5)
x + 5
dx =
1
n
.
Supongamos que en nuestros calculos usamos tan solo tres decimales (de
manera que, y
0
=
_
1
0
dx/(x + 5) = ln(x + 5)[
1
0
0.182), y consideremos el
siguiente algoritmo para estimar y
1
hasta y
8
:
Algoritmo 1.
y
1
= 1 5y
0
= 1 0.910 0.090,
y
2
=
1
2
5y
1
0.050,
y
3
=
1
3
5y
2
0.083, (y
3
> y
2
!),
y
4
=
1
4
5y
3
0.165, (sin sentido!).
Podemos decir que tuvimos que detener nuestro algoritmo. La causa de este
12 CAP

ITULO 1. CONCEPTOS B

ASICOS
resultado esta en que el error por redondeo en y
0
(cuya magnitud es del
orden de 5 10
4
) se multiplica por 5 en el calculo de y
1
, el cual tendra
entonces un error de 5. Ese error produce, a su vez, un error en y
2
de 25,
en y
3
de 125, y en y
4
de 625 (en el que el error sera tan grande como
625 5 10
4
= 0.3125).
Si usaramos una mayor precision, con mas lugares decimales, los resul-
tados sin sentido apareceran en una etapa posterior. Este fenomeno (por
supuesto, indeseable) se conoce como inestabilidad numerica. La inesta-
bilidad numerica puede corregirse si encontramos un algoritmo mas adecuado.
Algoritmo 2.
Probemos ahora usar el esquema
y
n1
=
1
5n

y
n
5
.
En este caso el error estara, en cada paso, dividido por 5 (aunque nece-
sitaremos un valor de entrada).
Observemos directamente de la denicion de y
n
, (1.1), que la misma de-
crece cuando n aumenta. Por lo que podemos asumir que, cuando n es
grande, y
n+1
y
n
. De esta manera, podemos por conveniencia suponer que
y
10
y
9
, de donde sigue que:
y
9
+ 5y
9

1
10
, o bien y
9

1
60
0.017
y
8
=
1
45

y
9
5
0.019,
y
7
=
1
40

y
8
5
0.021,
y
6
0.025, y
5
0.028,
y
4
0.034, y
3
0.043,
y
2
0.058, y
1
0.088,
y
0
0.182, (bueno!).
Ejercicio 7:
Repetir el Algoritmo 2 con y
10
= 0.
Nota: El uso de una formula recursiva hacia atras (i.e., backwards) no
resulta, en general, ser la mejor estrategia.
Ejercicio 8:
1.4. EXPERIMENTACI

ON NUM

ERICA 13
Derivar una formula recursiva para calcular las integrales
y
n
=
_
1
0
x
n
4x + 1
dx.
Escribir un algoritmo que trabaje bien y otro que trabaje mal (o por lo menos
no tan bien!).
1.4 Experimentaci on numerica
Para una introduccion al uso de MATLAB puede consultarse cualquiera de
las obras [7], [8], [11], [13], [12] y [6].
Ejercicio 1
Podemos aplicar algunos esquemas sencillos tipo while-loops para obtener
informacion acerca del sistema en punto otante con que trabaja la maquina
que usamos.
a) Escribir un script que asigne a p el entero positivo mas peque no tal que
1 +1/2
p
= 1.
b) Escribir un script que asigne a q el entero positivo mas peque no tal que
1/2
q
= 0.
c) Escribir un script que asigne a r el entero positivo mas peque no tal que
2
r
= inf (cuando hay overow MATLAB produce el valor especial
inf).
Nota: En MATLAB eps representa el epsilon de la maquina (alrededor de
10
16
en la mayora de las maquinas); es decir, representa la precision
de punto otante de la computadora que se esta usando (es la dis-
tancia de 1.0 al n umero siguiente mas grande en punto otante). Es
util cuando queremos especificar la tolerancia para la convergencia de
procesos iterativos.
Ejercicio 2.
Es un hecho conocido que si tomamos un n umero suficiente de terminos, en-
tonces las sumas parciales

n
k=0
x
k
k!
del desarrollo de Taylor de e
x
convergen.
Escriba un script que explore esto, graficando el error relativo de las sumas
parciales como una funcion de n 50, para distintos valores de x: 10, 5, 1,
14 CAP

ITULO 1. CONCEPTOS B

ASICOS
-1, -5, -10. (Usar el comando semilogy, el cual es util cuando representamos
n umeros cuyo rango vara demasiado, para mas detalles consultar el help de
MATLAB).
Captulo 2
Sistemas de Ecuaciones
Lineales (SEL)
El objetivo de este Captulo es resolver numericamente el sistema de ecua-
ciones lineales (SEL)
Ax = b (2.1)
donde A es la matriz de los coecientes del sistema, b es el lado derecho del
sistema (o termino independiente) y x es el vector de incognitas o de valores
que deseamos hallar. Si A es una matriz de orden mn, entonces podemos
escribir
A =
_
_
_
_
_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
a
n2
. . . a
mn
_
_
_
_
_
, b =
_
_
_
_
_
b
1
b
2
.
.
.
b
m
_
_
_
_
_
y x =
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
2.1 Resolucion directa de un SEL
Los metodos directos nos permiten obtener la solucion numerica (aproximada)
de un sistema lineal en un n umero nito de pasos. Mas adelante estudiaremos
los denominados metodos iterativos.
2.1.1 El algoritmo de eliminacion gaussiana
A n de resolver (4.1) realizaremos las denominadas operaciones elementales
por las.

Estas son, para 1 i, j m, las siguientes:
15
16 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


1. la i la i ( ctte. ,= 0).
2. la i la i + la j ( ctte. ,= 0).
3. la i la j.
Ejercicio 1:
Demostrar que la aplicacion de estas operaciones no modican el conjunto
de soluciones de un sistema lineal.
Ejemplo 1:
Consideremos el SEL
_
_
_
2x
1
+ x
2
3x
3
= 1
x
1
+ 3x
2
+ 2x
3
= 12
3x
1
+ x
2
3x
3
= 0
Al que le podemos aplicar las operaciones elementales:
la 2 la 2 +
1
2
la 1
la 3 la 3
3
2
la 1
De donde:
_
_
_
2x
1
+ x
2
3x
3
= 1
7
2
x
2
+
1
2
x
3
=
23
2

1
2
x
2
+
3
2
x
3
=
3
2
Por ultimo, le aplicamos a este sistema la operacion:
la 3 la 3 +
1
7
la 2
Para obtener el sistema equivalente:
_
_
_
2x
1
+ x
2
3x
3
= 1
7
2
x
2
+
1
2
x
3
=
23
2
11
7
x
3
=
22
7
Que es la forma triangular o reducida del sistema original. Aqu termina la
denominada eliminacion hacia adelante. La sustitucion hacia atras comienza
con la ultima la:
11
7
x
3
=
22
7
. Obteniendo x
3
= 2. Con esta informacion
podemos obtener de la segunda la que x
2
= 3. Por ultimo, de la primera
la encontramos que x
1
= 1.
2.1. RESOLUCI

ON DIRECTA DE UN SEL 17
Si suponemos que nuestro sistema es cuadrado (i.e., m = n), podemos
considerar una matriz aumentada de orden n(n+1) para resolver el sistema
(4.1):
[A : b] =
_
_
_
_
_
_
_
a
11
a
12
. . . a
1n
.
.
. b
1
a
21
a
22
. . . a
2n
.
.
. b
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
a
n2
. . . a
nn
.
.
. b
n
_
_
_
_
_
_
_
.
En nuestro ejemplo la matriz aumentada queda:
_
_
_
_
2 1 3
.
.
. 1
1 3 2
.
.
. 12
3 1 3
.
.
. 0
_
_
_
_
.
Realizando las mismas operaciones elementales
la 2 la 2 +
1
2
la 1
la 3 la 3
3
2
la 1
obtenemos:
_
_
_
_
2 1 3
.
.
. 1
0 7/2 1/2
.
.
. 23/2
0 1/2 3/2
.
.
. 3/2
_
_
_
_
.
Y aplicando la operacion la 3 la 3 +
1
7
la 2:
_
_
_
_
2 1 3
.
.
. 1
0 7/2 1/2
.
.
. 23/2
0 0 11/7
.
.
. 22/7
_
_
_
_
.
El procedimiento aqu involucrado se denomina eliminacion gaussianan con
sustitucion hacia atras.
En general, consideramos la matriz aumentada [A : b] cuando a
11
,= 0, de
donde sigue que podemos efectuar las operaciones:
la j la j
a
j1
a
11
la 1,
18 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


para j = 2, 3, . . . , n, con el objeto de eliminar los coecientes de x
1
de las las
2, 3, . . . , n. (Nota: con el objeto de simplicar la notacion, y a un cuando
los elementos de las las 2, 3, . . . , n probablemente cambien al realizar esta
operacion, denotaremos nuevamente a la entrada de la i-esima la y la j-
esima columna por a
ij
.)
Siguiendo pues con un procedimiento (secuencial) para i = 2, 3, . . . , n1,
llevamos a cabo la operacion
la j la j
a
ji
a
ii
la i, (2.2)
para cada j = i + 1, i + 2, . . . , n, siempre que a
ii
,= 0. La cual tendra el
efecto de transformar en cero el coeciente de x
i
en cada la por debajo de
la i-esima, para todo i = 1, 2, . . . , n 1. La matriz as obtenida sera de la
forma
[A

: b

] =
_
_
_
_
_
_
_
a
11
a
12
. . . a
1n
.
.
. a
1,n+1
0 a
22
. . . a
2n
.
.
. a
2,n+1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 . . . 0 a
nn
.
.
. a
n,n+1
_
_
_
_
_
_
_
.
A partir de la misma podemos empezar con la sustitucion hacia atras:
x
n
=
a
n,n+1
a
nn
, (2.3)
x
n1
=
(a
n1,n+1
a
n1,n
x
n
)
a
n1,n1
,
y continuando con este proceso obtenemos:
x
i
=
(a
i,n+1

n
j=i+1
a
i,j
x
j
)
a
i,i
, (2.4)
para cada i = n 1, n 2. . . . , 2, 1.
Si denotamos por a
(1)
11
, a
(2)
22
, . . ., a
(n)
nn
los elementos de la diagonal de la
matriz [A

: b

], observamos que el procedimiento anterior no funcionara si


alguno de ellos es cero (Por que?). Esto no signica necesariamente que el
sistema lineal no tenga solucion sino que, como veremos, debemos modicar
nuestra estrategia para encontrar la solucion. Para cada k = 1, . . . , n, lla-
maremos al elemento a
(k)
kk
el elemento pivote en el paso k.
2.1. RESOLUCI

ON DIRECTA DE UN SEL 19
Ejemplo 2:
Consideremos el sistema:
_

_
x
1
x
2
+ 2x
3
x
4
= 8
2x
1
2x
2
+ 3x
3
3x
4
= 20
x
1
+ x
2
+ x
3
= 2
x
1
x
2
+ 4x
3
+ 3x
4
= 4
La matriz aumentada asociada a este sistema es:
[A : b] =
_
_
_
_
_
_
_
1 1 2 1
.
.
. 8
2 2 3 3
.
.
. 20
1 1 1 0
.
.
. 2
1 1 4 3
.
.
. 4
_
_
_
_
_
_
_
.
Las operaciones elementales siguientes
la 2 la 2 + 2 la 1
la 3 la 3 la 1
la 4 la 4 la 1
producen la matriz aumentada
[A

: b

] =
_
_
_
_
_
_
_
1 1 2 1
.
.
. 8
0 0 1 1
.
.
. 4
0 2 1 1
.
.
. 6
0 0 2 4
.
.
. 12
_
_
_
_
_
_
_
.
Aqu a
(2)
22
= 0, por lo que no podemos realizar la operacion (2.2). Pero si
hacemos el intercambio de las: la 2 la 3, para obtener la matriz
[A

: b

] =
_
_
_
_
_
_
_
1 1 2 1
.
.
. 8
0 2 1 1
.
.
. 6
0 0 1 1
.
.
. 4
0 0 2 4
.
.
. 12
_
_
_
_
_
_
_
,
20 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


resolvemos el inconveniente, pues ahora a
(2)
22
,= 0.
Ahora solo falta realizar la operacion la 4 la 4 + 2 la 3, para
obtener:
[A

: b

] =
_
_
_
_
_
_
_
1 1 2 1
.
.
. 8
0 2 1 1
.
.
. 6
0 0 1 1
.
.
. 4
0 0 0 2
.
.
. 4
_
_
_
_
_
_
_
.
Por ultimo, aplicamos el procedimiento de sustitucion hacia atras, para en-
contrar la solucion:
x
4
= 2, x
3
=
4 (1)x
4
1
= 2,
x
2
=
6 x
4
(1)x
3
2
= 3, x
1
=
8 (1)x
4
2x
3
(1)x
2
1
= 7.
Si a
(j)
ij
= 0, para i = j, j + 1, . . . , n, el sistema lineal no tendra solucion
unica (Por que?), y el procedimiento se detendra. Por ultimo, si a
(n)
nn
= 0 el
sistema no tendra solucion unica y el procedimiento terminara.
Nota: El efecto del error por redondeo y la cantidad de tiempo requerido
para completar los calculos dependen, entre otras cosas, del n umero de
operaciones aritmeticas necesarias para resolver un problema dado.
En general, el tiempo requerido para realizar una multiplicacion o una di-
vision en una computadora es aproximadamente el mismo, y es nucho mayor
que el requerido para realizar una suma o una resta. As en (2.2) realizamos
n i divisiones. Ademas, al reemplazar la la j por la j -
a
ji
a
ii
la i, reque-
rimos que
a
ji
a
ii
sea multiplicado por cada elemento de la la i, resultando un
total de (n i)(n i +1) multiplicaciones. Mas a un, cada termino de la la
resultante se resta del termino correspondiente en la la j, lo que signican
(n i)(n i + 1) restas adicionales.
De manera que, para cada i = 1, 2, . . . , n 1, las operaciones requeridas
son: (ni)+(ni)(ni+1) = (ni)(ni+2) multiplicaciones/divisiones,
y (n i)(n i + 1) sumas/restas. Ahora bien, para saber el n umero total
2.1. RESOLUCI

ON DIRECTA DE UN SEL 21
de operaciones debemos sumar para i = 1, 2, . . . , n 1. De manera que para
encontrar el n umero de multiplicaciones/divisiones hacemos:
n1

i=1
(n i)(n i + 2) =
2n
3
+ 3n
2
5n
6
,
y para el n umero de sumas/restas tenemos:
n1

i=1
(n i)(n i + 1) =
n
3
n
3
.
Ejercicio 2:
Demostrar los resultados de las sumas anteriores sabiendo que
n

i=1
1 = n,
n

i=1
i =
n(n + 1)
2
y
n

i=1
i
2
=
n(n + 1)(2n + 1)
6
.
En cuanto a la sustitucion hacia atras es facil ver que (2.3) requiere de una
division y (2.4) requiere de (n i) multiplicaciones y (n i 1) sumas
(para cada termino con sumatoria), ademas de una resta y una division.
As, el n umero total de operaciones es de 1 +

n1
i=1
((n i) + 1) =
n
2
+n
2
multiplicaciones/divisiones, y

n1
i=1
((n i 1) + 1) =
n
2
n
2
sumas/restas.
Por lo tanto, el n umero total de operaciones correspondientes a la apli-
cacion del algoritmo de eliminacion gaussiana con sustitucion hacia atras, es
de
2n
3
+ 3n
2
5n
6
+
n
2
+ n
2
=
2n
3
+ 6n
2
2n
6
multiplicaciones/divisiones, y de
n
3
n
3
+
n
2
n
2
=
2n
3
+ 3n
2
5n
6
sumas/restas.
Ejercicio 3: Metodo de Gauss-Jordan.
Si usamos la i-esima la para eliminar x
i
, no solo de las las i+1, i+2, . . . , n,
como hicimos en el metodo de eliminacion gaussiana, sino tambien de las las
22 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


1, 2, . . . , i 1, obtendremos la matriz aumentada [A : b] siguiente
[A

: b

] =
_
_
_
_
_
_
_
a
(1)
11
0 . . . 0
.
.
. a
(1)
1,n+1
0 a
(2)
22
.
.
.
0
.
.
. a
(2)
2,n+1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 . . . 0 a
(n)
nn
.
.
. a
(n)
n,n+1
_
_
_
_
_
_
_
.
De donde la solucion se obtiene de x
i
=
a
(i)
i,n+1
a
(i)
ii
, para cada i = 1, 2, . . . , n
(sin necesidad de realizar sustitucion hacia atras). Escriba las expresiones
generales del algoritmo y demuestre que el metodo de Gauss-Jordan requiere
de n
3
/2+n
2
n/2 multiplicaciones/divisiones y de n
3
/2n/2 sumas/restas.
Construya una tabla comparativa de las operaciones requeridas por los meto-
dos de Gauss-Jordan y de eliminacion gaussiana para n = 3, 10, 50, 100.
Cual de los dos metodos requiere de menos calculo?
2.1.2 Calculo de la inversa de una matriz
En general, no es recomendable calcular A
1
para resolver el SEL (2.1)
cuando n = m (es decir, hacer x = A
1
Ax = A
1
b). Esto se debe a que el
n umero de operaciones involucradas para calcular A
1
es, en general, mucho
mayor que si aplicaramos, por ejemplo, el algoritmo de eliminacion gaussiana
para resolver el mismo sistema. Lo cual, por supuesto, conllevara tambien
a un mayor error por redondeo.
(Asignacion: Vericar esto con algunos de los ejemplos previamente conside-
rados en este Captulo, para luego demostrarlo en general.)
Supongamos ahora que A
1
existe y sea
b
.j
=
_
_
_
_
_
b
1j
b
2j
.
.
.
b
nj
_
_
_
_
_
la j-esima columna de una matriz B cuadrada n n. Entonces podemos
2.1. RESOLUCI

ON DIRECTA DE UN SEL 23
calcular el producto matriz-vector siguiente:
Ab
.j
=
_
_
_
_
_

n
k=1
a
1k
b
kj

n
k=1
a
2k
b
kj
.
.
.

n
k=1
a
nk
b
kj
_
_
_
_
_
=
_
_
_
_
_
c
1j
c
2j
.
.
.
c
nj
_
_
_
_
_
= c
.j
,
la cual no es mas que la j-esima columna de la matriz C = AB. Ahora, si
A
1
= B, entonces
Ab
.j
=
_
_
_
_
_
_
_
_
_
_
_
0
.
.
.
0
1
0
.
.
.
0
_
_
_
_
_
_
_
_
_
_
_
j-esima entrada
As que, para encontrar A
1
, debemos simplemente resolver n sistemas
lineales, en los cuales la j-esima columna de la matriz inversa es la solucion
de un sistema lineal, con el termino independiente igual a la j-esima columna
de la matriz identidad I
nn
.
Ejemplo 3:
Sea
A =
_
_
2 1 3
1 3 2
3 1 3
_
_
.
Para calcular la matriz inversa de A, A
1
, debemos resolver tres sistemas
lineales (cuales?), que dan lugar a la matriz aumentada:
_
_
_
_
2 1 3
.
.
. 1 0 0
1 3 2
.
.
. 0 1 0
3 1 3
.
.
. 0 0 1
_
_
_
_
.
Despues de algunas operaciones elementales por las obtenemos (compro-
24 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


barlo!):
_
_
_
_
2 1 3
.
.
. 1 0 0
0 7/2 1/2
.
.
. 1/2 1 0
0 0 11/7
.
.
. 10/7 1/7 1
_
_
_
_
.
En este punto, podemos continuar con sustitucion hacia atras o mas bien
seguir con reducciones adicionales. Si optamos por seguir esta ultima estrate-
gia, obtendremos, despues de alguna operaciones elementales mas (hacerlo!),
la matriz aumentada:
_
_
_
_
1 0 0
.
.
. 1 0 1
0 1 0
.
.
. 3/11 3/11 1/11
0 0 1
.
.
. 10/11 1/11 7/11
_
_
_
_
,
donde las tres ultimas columnas representan las soluciones de los tres sistemas
lineales considerados. De manera que
A
1
=
1
11
_
_
11 0 11
3 3 1
10 1 7
_
_
.
Por su importancia y para su referencia posterior, enunciaremos aqu el
siguiente teorema.
Teorema 2.1 Sea A una matriz n n (o mejor, A IR
nn
), entonces son
equivalentes:
(i) Puede aplicarse el procedimiento de eliminacion gaussiana (con inter-
cambio de las) al SEL Ax = b, para b IR
n
cualquiera.
(ii) La ecuacion Ax = 0 tiene la solucion unica x = 0.
(iii) El SEL Ax = b tiene una solucion unica para b IR
n
cualquiera.
(iv) La matriz A es no singular.
(v) A
1
existe.
(vi) det(A) ,= 0.
2.1. RESOLUCI

ON DIRECTA DE UN SEL 25
2.1.3 Pivoteo
Ya vimos que cuando un elemento pivote era cero podamos realizar un in-
tercambio de las. Intercambiabamos la la con el elemento pivote cero por
otra la que estaba por debajo de esta, pero con la entrada correspondiente
(en la misma columna) distinta de cero. En la practica, se recomienda re-
alizar este intercambio de las, aunque los elementos pivotes no sean cero.
De manera que, cuando nos encontramos con un elemento pivote menor (en
tama no) que los elementos por debajo de el (en la misma columna), resulta
deseable llevar a cabo el intercambio de las. Esta estrategia, denominada
pivoteo parcial, es recomendable aplicarla en general, pues si realizaramos
los calculos usando una aritmetica nita, sin efectuar intercambio de las, se
podran producir y acumular durante los calculos errores de redondeo con-
siderables, al punto de que la solucion obtenida pudiera ser muy diferente de
la solucion exacta del problema original.
Ejemplo 4:
Consideremos el SEL:
_
_
_
x
1
+ x
2
+ x
3
= 1
x
1
+ 1.0001x
2
+ 2x
3
= 2
x
1
+ 2x
2
+ 2x
3
= 1
Despues de aplicar eliminacion gaussiana (sin intercambio de las) obten-
emos:
_
_
_
x
1
+ x
2
+ x
3
= 1
0.0001x
2
+ x
3
= 1
9.999x
3
= 10.000
Si ahora hacemos sustitucion hacia atras, usando una aritmetica en punto
otante de tres dgitos, la solucion encontrada sera:
x
1
= x
2
= 0, x
3
= 1.000
Mientras que la solucion verdadera (redondeada a 4 lugares decimales) es:
x
1
= 1.0000, x
2
= x
3
= 1.0001
Ejercicio 4:
Vericar que si en el Ejemplo anterior realizamos la operacion elemental la
2 la 3 (en el segundo paso del proceso de eliminacin gaussiana), con la
26 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


misma precision, obtendremos la solucion: x
1
= x
2
= x
3
= 1.000.
Ejercicio 5:
Consideremos el sistema:
_
0.003000x
1
+ 59.14x
2
= 59.17
5.291x
1
6.130x
2
= 46.78
Vericar que si aplicamos eliminacion gaussiana, usando una aritmetica de
cuatro dgitos con redondeo, obtendremos: x
1
= 10.00 y x
2
= 1.001
(cuando la solucion exacta es x
1
= 10 y x
2
= 1). Aplique ahora elimi-
nacion gaussiana con pivoteo parcial, con la misma precision, y compare los
resultados obtenidos.
2.2 Metodos iterativos
Consideremos un SEL no singular (2.1) (n = m). El enfoque que ahora
proponemos para resolver numericamente un SEL, se usa principalmente en
problemas muy grandes (es decir, n 1) que surgen de una manera natu-
ral en diferentes aplicaciones y, en particular, en la resolucion numerica de
ecuaciones en derivadas parciales (donde, por ejemplo, n > 100000).
Si seleccionamos una matriz no singular Q y un vector de entrada x
(0)
, este
tipo de estrategia permite generar una sucesion de soluciones aproximadas
del SEL (vectores), x
(1)
, x
(2)
, . . ., de manera recursiva, al usar la expresion:
Qx
(k)
= (QA)x
(k1)
+ b, k 1. (2.5)
Para ver que en efecto este esquema funciona, supongamos que la sucesion
x
(k)
converge a un vector, digamos x

. As, tomando el lmite cuando


k en (2.5), obtenemos
Qx

= (QA)x

+ b,
o bien, Ax

= b. Por lo tanto, si la sucesion converge, su lmite sera una


solucion del sistema original (2.1).
Por otra parte, a traves de algunas sencillas manipulaciones algebraicas
(ver [4, pp. 305-306]) resulta facil encontrar que
e
(k)
= (I Q
1
A)e
(k1)
, k 1, (2.6)
2.2. M

ETODOS ITERATIVOS 27
donde e
(k)
= x
(k)
x

es el vector de error correspondiente para ese k.


A medida que incrementamos k, queremos tambien que e
(k)
sea cada vez
mas peque no. Seg un (2.6), e
(k)
sera mas peque no que e
(k1)
si (I Q
1
A) es
peque no (en alg un sentido), lo que a su vez signica que Q
1
A debera estar
cerca de I y Q de A. De manera que, si escogemos Q usando A, pero tal que
sea relativamente simple (como una matriz diagonal, tridiagonal, de banda,
o triangular superior o inferior, con las entradas diferentes de cero iguales
a las de A), podremos obtener toda una familia de metodos para tratar de
resolver numericamente el SEL cuadrado (2.1).
Como el SEL (2.1) puede tambien expresarse de la siguiente forma
n

j=1
a
ij
x
j
= b
i
, 1 i n, (2.7)
si hacemos Q = diag(A) en (2.5), o si directamente de (2.7) resolvemos la i-
esima ecuacion para la i-esima icognita, obtendremos una ecuacion que dene
el metodo de Jacobi:
a
ii
x
(k)
i
=
n

j=1
j=i
(a
ij
)x
(k1)
j
+ b
i
(1 i n),
o bien,
x
(k)
i
=
1
a
ii
_
n

j=1
j=i
(a
ij
)x
(k1)
j
+ b
i
_
(1 i n).
Estamos asumiendo aqu que a
ii
,= 0, i (de lo contrario podemos reordenar
las ecuaciones de manera tal que se cumpla esta condicion).
Si en el metodo de Jacobi realizamos los calculos de manera tal que las
ecuaciones esten ordenadas (desde la primera la hasta la ultima) y comen-
zamos con la primera la, las componentes x
(k1)
j
, con j < i, podran irse
actualizando de tal forma que los nuevos valores x
(k)
j
se usaran inmediata-
mente en lugar de considerar los x
(k1)
j
(como antes), para dar lugar as al
denominado metodo de Gauss-Seidel:
n

j=1
ji
a
ij
x
(k)
j
=
n

j=1
j>i
(a
ij
)x
(k1)
j
+ b
i
(1 i n),
28 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


o bien,
x
(k)
i
=
1
a
ii
_

j=1
j<i
a
ij
x
(k)
j

n

j=1
j>i
a
ij
x
(k1)
j
+ b
i
_
(1 i n).
Ejemplo 5:
Consideremos el SEL Ax = b, donde
A =
_
_
2 1 0
1 3 1
0 1 2
_
_
y b =
_
_
1
8
5
_
_
.
Si aplicamos a este sistema el metodo de Jacobi obtenemos:
_

_
x
(k)
1
=
1
2
x
(k1)
2
+
1
2
x
(k)
2
=
1
3
x
(k1)
1
+
1
3
x
(k1)
3
+
8
3
x
(k)
3
=
1
2
x
(k1)
2

5
2
Ahora, sera mas eciente usar el nuevo valor de x
(k)
1
en la segunda ecuacion
(en lugar de x
(k1)
1
). Igualmente, sera mejor usar x
(k)
2
en la tercera ecuacion
(en lugar de x
(k1)
2
). De esta manera obtenemos, para este caso, el metodo
de Gauss-Seidel:
_

_
x
(k)
1
=
1
2
x
(k1)
2
+
1
2
x
(k)
2
=
1
3
x
(k)
1
+
1
3
x
(k1)
3
+
8
3
x
(k)
3
=
1
2
x
(k)
2

5
2
Si tomamos x
(0)
= (0, 0, 0)
t
, encontramos que el metodo de Jacobi produce
los vectores:
x
(1)
= (0.5000, 2.6667, 2.5000)
t
x
(2)
= (1.8333, 2.0000, 1.1667)
t
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
x
(21)
= (2.0000, 3.0000, 1.0000)
t
.
2.3. EXPERIMENTACI

ON NUM

ERICA 29
Si ahora aplicamos el metodo de Gauss-Seidel obtenemos:
x
(1)
= (0.5000, 2.8333, 1.0833)
t
x
(2)
= (1.9167, 2.9444, 1.0278)
t
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
x
(9)
= (2.0000, 3.0000, 1.0000)
t
.
Teorema 2.2 Si la matriz A es estrictamente diagonal dominante (i.e., si
[a
ii
[ >

n
j=1,j=i
[a
ij
[, i = 1, . . . , n), entonces los metodos de Jacobi y
Gauss-Seidel convergen para cualquier x
(0)
inicial.
Ejercicio 6:
Podemos aplicar este resultado al ejemplo anterior?
Ejercicio 7:
Usando una aritmetica de redondeo a cuatro lugares decimales, aplique los
metodos iterativos de Jacobi y Gauss-Seidel al SEL:
_
_
_
_
7 1 1 2
1 8 0 2
1 0 4 1
2 2 1 6
_
_
_
_
_
_
_
_
x
1
x
2
x
3
x
4
_
_
_
_
=
_
_
_
_
3
5
4
3
_
_
_
_
Podemos aplicar el teorema anterior?
2.3 Experimentaci on numerica
Para esta Seccion se puede consultar previamente alguna referencia basica
sobre el uso de MATLAB (como por ejemplo [7]).
Ejercicio 1:
Elija algunos valores de m y n, y genere tres matrices aleatorias de orden
mn, llamadas X, Y y Z. Genere dos escalares aleatorios a y b (por ejemplo,
a = rand(1) y b = 2*rand(1)-1). Verifique las propiedades de espacio
vectorial para el conjunto de las matrices reales m n. (Nota: Tambien
demuestrelo a mano.)
Ejercicio 2:
30 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


i) Genere una matriz aleatoria A, 4 4, y definamos
>> S = triu(A) + triu(A)
(si es necesario haga help triu para saber sobre triu). Verifique que
S es simetrica.
ii) Usando i) genere dos matrices 44 reales simetricas S y T, y un es-
calar aleatorio a. Verifique que aS y S + T tambien son simetricas.
Repita el experimento para otros cuatro juegos de S, T y a. Cree que
se ha reunido evidencia para pensar que el conjunto de las matrices
simetricas 44 es un subespacio del espacio de las matrices 44? Si es
as, pruebelo (a mano).
Ejercicio 3:
Una compa na de concreto almacena tres mezclas basicas, dadas a conti-
nuacion. Las cantidades se miden en gramos y cada unidad de mezcla pesa
60 gramos. Se pueden formular mezclas especiales haciendo combinaciones de
las tres mezclas basicas; entonces, las mezclas especiales posibles pertenecen
al espacio generado por los tres vectores que representan las tres mezclas
basicas.
A B C
Cemento 20 18 12
Agua 10 10 10
Arena 20 25 15
Grava 10 5 15
Tobas 0 2 8
a) Puede hacerse una mezcla que consiste de 1000 gr. de cemento, 200
gr. de agua, 1000 gr. de arena, 500 gr. de grava y 300 gr. de tobas?
Por que puede o por que no? Si puede, cuantas unidades de cada
una -mezclas A, B y C- se necesitan para formular la mezcla especial?
b) Supongamos que se quieren preparar 5000 gr. de concreto con una
razon de agua a cemento de 2 a 3, con 1250 gr. de cemento. Si se debe
incluir 1500 gr. de arena y 1000 gr. de grava en las especificaciones,
encuentre la cantidad de tobas para preparar 5000 gr. de concreto. Se
puede ver esta como una mezcla especial? Si es as, cuantas unidades
2.3. EXPERIMENTACI

ON NUM

ERICA 31
de cada mezcla se necesitan para formular la mezcla especial? (Nota:
De Teaching Elementary Linear Algebra with MATLAB to Engineer-
ing Students por Deborah P. Levinson y citado en [?].)
Ejercicio 4: Introduccion eciente de matrices dispersas.
a) Dado un grafo G, definimos la matriz A = (a
ij
) asociada a G, por:
a
ij
= 1, si el nodo i esta conectado con el nodo j, y a
ij
= 0, de otro
modo. En la practica, la matriz asociada consiste de muchos ceros y
pocos unos. Consideremos, por ejemplo, el grafo siguiente:
>> a = zeros(5);
>> a(1,[2 4]) = [1 1];
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
f
f
f
f
f
f
f
f
f
f
f
f
f

Terminar de introducir
la matriz asociada al grafo.
5
1
4
3
2
b) Para un grafo dirigido o digrafo, la matriz de incidencia nodo-arista esta definida por:
c c
c c'
'
E

a8
a7
a5
a4 a1
n1
n2 n3
n4
n5 n6
a6
a3
a2
a
ij
= 1, si la arista j entra al nodo i,
a
ij
= 1, si la arista j sale del nodo i,
a
ij
= 0, de otro modo.
Para el digrafo anterior, establezca la matriz A de incidencia nodo-
arista.
32 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


c) Encuentre un ciclo cerrado (ciclo no dirigido) en el digrafo y observe
que aristas incluye. Verifique la dependencia o independencia de las
columnas de A que correspondan a estas aristas (por ejemplo, siguiendo
el opuesto de la arista 1, despues la arista 5, luego la arista 4, y des-
pues la arista 7, se forma un ciclo. Usando MATLAB forme la matriz
[A(:,1) A(:,5) A(:,4) A(:,7)] y verifique la dependencia o inde-
pendencia).
d) Considere un subconjunto de aristas que no contenga ciclos cerrados.
Pruebe la dependencia o independencia de las columnas correspon-
dientes de A.
e) Escriba una conclusion sobre la relacion entre ciclos no dirigidos en
un digrafo y la dependencia o independencia lineal de las columnas
de la matriz de incidencia nodo-arista del digrafo. (Gilbert Strang -
Conferencia en New Hampshire University, 1991. Citado en [?].)
Nota: Explore, va help, los comandos etree, etreeplot, gplot, treelayout
y treeplot.
. Ejercicio 5: Exploracion del rango de matrices especiales.
a) Matrices cuadradas magicas. El comando magic(n) genera un cuadrado
magico de n n (tiene la propiedad de que la suma de las entradas de
las columnas es igual a la suma de las entradas de las filas y de las
entradas de las diagonales). Genere matrices cuadradas magicas para
cada valor de n = 3, . . . , 9 y encuentre sus rangos (use el comando
rank(A)). Como afecta el tama no de la matriz al rango? Describa
los patrones descubiertos. (Tomado de una conferencia dada por Cleve
Moler en New Hampshire University, 1991. Citado en [?].)
b) Analice el rango de las matrices
_
_
1 2 3
4 5 6
7 8 9
_
_
,
_
_
_
_
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
_
_
_
_
y de las dos matrices siguientes con este patron. Describa el compor-
tamiento del rango de este tipo de matrices. Pruebe su conclusion.
2.3. EXPERIMENTACI

ON NUM

ERICA 33
c) Genere un vector aleatorio u de n 1 y un vector aleatorio v de n 1.
Forme A = u*v, una matriz aleatoria de n n. Encuentre el rango
de A. Repita para otros tres juegos de u y v. Describa el rango de las
matrices formadas de esta manera.
d) Escriba un script cuyas instrucciones determinen el rango de una matriz
y luego calcule la inversa de la misma, o bien muestre un mensaje que
indique que no existe la inversa de la matriz.
(Asignacion: Explore el uso de los comandos null y orth utilizando el co-
mando help.)
Ejercicio 6: Distribucion de calor.
Consideremos una placa rectangular cuyo borde se matiene a cierta tem-
peratura. Estamos interesados en encontrar las temperaturas en los puntos
interiores. Supongamos que la temperatura en un punto interior es el prome-
dio de la temperatura de los cuatro puntos que lo rodean (arriba, abajo, a la
derecha e izquierda).
m m m
m m m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
T3
T6
T9
T2
T5
T8
T1
T4
T7
0

100

100

100

50

50

50

50

50

50

a) Establezca un sistema de ecuaciones, considerando primero el punto


T1, despues el punto T2, etc. (reescriba el sistema de manera que
todas las variables esten de un solo lado de cada ecuacion). Encuentre
la matriz de coeficientes y la matriz aumentada. Describa el patron
observado en la matriz de coeficientes.
b) Utilice MATLAB para reducir la matriz aumentada a la forma escalo-
nada por filas paso a paso realizando las operaciones elementales (ver
34 CAP

ITULO 2. SISTEMAS DE ECUACIONES LINEALES (SEL)


ejercicio 6). Verifique el resultado con el comando rref. Obtenemos
solucion unica? Si es as, use la notacion : para asignar la solucion a
la variable x.
c) Supongamos que A es la matriz de coeficientes y b es el lado derecho
del sistema. Use el comando y = A\b. Compare y y x (obtenido en
b)).
Ejercicio 7:
Descomponer paso a paso la siguiente matriz en las matrices L y U usando
MATLAB. Verificar la descomposicion calculando el producto LU:
A =
_
_
0 2 3
2 4 7
1 2 5
_
_
.
Resuelva el sistema Ax = b, con b = (7 9 6)
t
, usando la descomposicion
LU.
Ejercicio 8:
Sea
_
_
1 1 1
2 1 3
3 2 2
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
b
1
b
2
b
3
_
_
,
consideremos los tres sistemas formados con b = (b
1
b
2
b
3
)
t
igual a
(1 4 2)
t
, (2 5 1)
t
y (2 1 4)
t
, respectivamente. Combinar los
coeficientes y los tres conjuntos de terminos independientes para construir
un arreglo de 3 6. Aplicar Gauss Jordan a este arreglo y reducir las tres
primeras columnas a la matriz identidad, obteniendo as la solucion a los tres
sistemas de manera simult anea. Calcule de esta manera la solucion, paso a
paso y usando MATLAB. Aplique el procedimiento para encontrar la inversa
de la matriz de los coeficientes. Compare con los comandos que en MATLAB
le permiten encontrar rapidamente las soluciones y la inversa.
Ejercicio 9:
Desarrolle su propio script (M-archivo) para resolver un SEL cualquiera (ma-
triz cuadrada) por el metodo de eliminacion Gaussiana con pivoteo parcial.
El programa debe incluir el calculo del determinante. Compruebe su eficacia
con los sistemas lineales que aparecen en este proyecto, y compare las solu-
ciones con las obtenidas directamente si se usara MATLAB.
Captulo 3
Ecuaciones no lineales
Un problema que aparece con frecuencia en el trabajo cientco consiste en
determinar las races de ecuaciones (o los ceros de funciones). Por ejemplo,
en la teora de la difraccion de la luz necesitamos las races de la ecuacion
x tan x = 0. En el calculo de las orbitas planetarias necesitamos encontrar
las races de la ecuacion de Kepler: xa senx = b, para varios valores de a y
b. El problema, planteado en una forma mas general, es el siguiente: dada
una funcion f : IR IR, queremos encontrar los valores de x para los cuales
f(x) = 0. Consideraremos aqu algunos metodos clasicos que resuelven este
problema.
3.1 El metodo de la biseccion
Si f C[a, b] y si f(a)f(b) < 0, entonces f debe tener una raz en (a, b).
Dado que f(a)f(b) < 0, la funcion f cambia de signo en el intervalo [a, b] y,
por lo tanto, tiene por lo menos un cero en el intervalo. Esta es una conse-
cuencia del teorema del valor intermedio para funciones continuas (si f es
continua en [a, b], y se satisface la desigualdad f(a) < K < f(b), entonces
f(x) = K para alg un x (a, b)). El metodo de biseccion aprovecha este
hecho de la siguiente manera: si f(a)f(b) < 0, entonces calculamos c =
a+b
2
y averiguamos si f(a)f(c) < 0. Si lo es, entonces f tiene un cero en [a, c].
A continuacion renombramos a c como b y comenzamos una vez mas con el
nuevo intervalo [a, b], cuya longitud es igual a la mitad del intervalo origi-
nal. Si f(a)f(c) > 0 entonces f(c)f(b) < 0, y en este caso renombramos a
c como a. En ambos casos se ha generado un nuevo intervalo que contiene
35
36 CAP

ITULO 3. ECUACIONES NO LINEALES


Figura 3.1: Metodo de la biseccion.
un cero de f, y el proceso puede repetirse. Claro esta que si f(a)f(c) = 0,
entonces f(c) = 0 y con ello hemos encontrado un cero. Sin embargo, debido
a los errores por redondeo, es poco probable que en la computadora f(c) sea
cero. As, el criterio para concluir no debe depender de que f(c) = 0. Se
debe permitir una tolerancia razonable, tal como [f(c)[ < 10
6
. La Figura
2.1 muestra un caso, suponiendo que f(a) > 0 > f(b). La ilustracion hace
evidente por que el metodo de biseccion encuentra un cero, mas no todos, en
el intervalo [a, b].
Ejemplo 1:
La ecuacion f(x) = x
3
+ 4x
2
10 = 0 tiene una raz en el intervalo [1, 2], ya
que f(1) = 5 y f(2) = 14. Use el algoritmo de la biseccion para encontrar
esta raz.
Resp.: La Tabla 2.1 muestra la salida de la aplicacion del algoritmo. Notemos
que, despues de trece iteraciones, c
12
= 1.365112305 aproxima a la raz r con
un error absoluto acotado por
[r c
12
[ < [b
13
a
13
[ = [1.365234375 1.365112305[ = 0.000122070.
Ademas, como [a
13
[ < [r[, el error relativo esta acotado por
[r c
12
[
[r[
<
[b
13
a
13
[
[a
13
[
< 9.0 10
5
.
Por lo que la aproximaci on sera correcta en por lo menos cuatro cifras sig-
nicativas (el valor exacto de r, con nueve cifras decimales, es 1.365230013).
Tambien es interesante observar que c
8
esta mas cerca de r que c
12
(es de-
cir, en alg un momento del proceso podemos acercarnos mucho a la raz para
3.1. EL M

ETODO DE LA BISECCI

ON 37
k a
k
b
k
c
k
f(c
k
)
0 1.0 2.0 1.5 2.375
1 1.0 1.5 1.25 -1.79687
2 1.25 1.5 1.375 0.162211
3 1.25 1.375 1.3125 -0.84839
4 1.3125 1.375 1.34375 -0.35098
5 1.34375 1.375 1.359375 -0.09641
6 1.359375 1.375 1.3671875 0.03236
7 1.359375 1.3671875 1.36328125 -0.03215
8 1.36328125 1.3671875 1.365234375 0.000072
9 1.36328125 1.365234375 1.364257813 -0.01605
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12 1.364990235 1.365234375 1.365112305 -0.00194
13 1.365112305 1.365234375
Tabla 3.1: Tabla para el Ejemplo 1.
despues alejarnos).
Ejemplo 2:
Usemos el metodo de la biseccion para encontrar la raz de la ecuacion
e
x
= senx que se encuentra mas cerca del origen.
Resp.: Si hacemos un esbozo de las gracas de e
x
y senx, resulta evidente
que no existen races positivas de f(x) = e
x
senx y que la primera raz a la
izquierda del cero esta en el intervalo [4, 3]. Cuando se usa este algoritmo
en una computadora hipotetica XYZ obtuvimos la lista de datos de salida
mostrada en la Tabla 2.2.
Ejercicio 1:
Complete la Tabla 2.2 con los correspondientes valores de a
i
y b
i
y los valores
intermedios que faltan.
Analisis de errores:
Con el objeto de analizar el metodo de la biseccion denotemos con [a
0
, b
0
],
[a
1
, b
1
], y as sucesivamente, a los intervalos que surgen en el proceso. Ob-
servemos tambien que a
0
a
1
a
2
. . . b
0
y que b
0
b
1
b
2
. . . a
0
;
38 CAP

ITULO 3. ECUACIONES NO LINEALES


k c
k
f(c
k
)
0 -3.5000 0.321
1 -3.2500 0.694 10
1
2 -3.1250 0.605 10
1
.
.
.
.
.
.
.
.
.
13 -3.1830 0.193 10
4
14 -3.1831 0.124 10
4
15 -3.1831 0.345 10
5
Tabla 3.2: Tabla para el Ejemplo 2.
ademas,
b
n+1
a
n+1
=
1
2
(b
n
a
n
) (n 0). (3.1)
La sucesion a
n
converge debido a que es creciente y esta acotada supe-
riormente. Asimismo, la sucesion b
n
tambien converge por ser una sucesion
decreciente y estar acotada inferiormente.
Teorema 3.1 Si [a
0
, b
0
], [a
1
, b
1
], . . . , [a
n
, b
n
], . . ., denotan los intervalos ge-
nerados por el metodo de la biseccion, entonces los lmites lim
n
a
n
y
lim
n
b
n
existen, son iguales y representan un cero r de f. Ademas, si
c
n
=
1
2
(a
n
+ b
n
), r = lim
n
c
n
, y
[r c
n
[
b
0
a
0
2
n+1
. (3.2)
Demostracion: Si aplicamos (3.1) de manera repetida encontramos que
b
n
a
n
= 2
n
(b
0
a
0
).
As,
lim
n
b
n
lim
n
a
n
= lim
n
2
n
(b
0
a
0
) = 0.
Si escribimos r = lim
n
a
n
= lim
n
b
n
, entonces tomando el lmite en la
desigualdad 0 f(a
n
)f(b
n
), obtenemos que 0 [f(r)]
2
, de donde sigue que
f(r) = 0.
Supongamos ahora que en cierta etapa del proceso hemos denido el inter-
valo [a
n
, b
n
]. Si se detiene el proceso en ese momento, la raz se encontrar a en
3.1. EL M

ETODO DE LA BISECCI

ON 39
este intervalo. En esta etapa la mejor estimacion para la raz no es ni a
n
ni b
n
,
sino el punto medio del intervalo c
n
= (a
n
+b
n
)/2, ya que [rc
n
[
1
2
[b
n
a
n
[.
De donde se obtiene (3.2). 2
Ejemplo 3:
Supongamos que el metodo de biseccion se inicia con el intervalo [50, 63].
Cuantos pasos son necesarios para calcular una raz con una precision rela-
tiva del orden de 10
12
?
Resp.: El requerimiento sobre la precision relativa signica que
[r c
n
[
[r[
10
12
.
Sabemos que r 50, por lo que basta que se satisfaga la desigualdad
[r c
n
[
50
10
12
.
De manera que, por el Teorema anterior, inferimos que la siguiente condicion
es suciente:
2
(n+1)
13
50
10
12
.
Despejando n concluimos que n 37.
Ejercicio 2:
Aplicar el algoritmo de la biseccion a la ecuacion x
3
7x
2
+ 14x 6 = 0
cuando a
0
= 0 y b
0
= 1. Verique primero que en efecto existe una raz
en el intervalo [0, 1]. Determine tambien la cantidad de iteraciones (pasos)
necesarias para alcanzar una precision del orden de 10
3
Observaciones a ser consideradas en un algoritmo para el metodo
de la biseccion:
El punto medio c lo debemos calcular como c a+(b a)/2, en lugar
de c (a+b)/2. Al hacerlo as seguimos la estrategia general de que, al
efectuar calculos numericos, es mejor calcular una cantidad a nadiendo
un peque no termino de correccion a una aproximaci on previamente
obtenida (ver [10], en donde dan un ejemplo en que el punto medio c,
calculado mediante (a+b)/2 en una computadora con precision limitada
se sale del intervalo [a, b]).
40 CAP

ITULO 3. ECUACIONES NO LINEALES


Es mejor determinar si la funcion cambia de signo en el intervalo recu-
rriendo al hecho de que signo(f(a)) ,= signo(f(b)), en lugar de utilizar
que f(b)f(a) < 0, ya que esto ultima requiere de una multiplicaci on
adicional.
Existen tres criterios que podemos utilizar en nuestro algoritmo para
detener su ejecucion. Primero, una constante entera, por ejemplo N,
se nala el n umero maximo de pasos que el usuario permitira (siempre
podemos considerar este tipo de resguardo para reducir la posibilidad
de que el proceso de calculo caiga en un ciclo, o loop, innito). Por
otra parte, podemos detener la ejecucion del programa cuando el valor
de f(c) o el error estimado sean lo sucientemente peque nos (i.e., menor
que una tolerancia dada). Existen casos en los que se satisface uno de
los criterios que detienen la ejecucion del calculo sin que el otro se
satisfaga. Por ejemplo, si la funcion tiene una representaci on graca en
la que la curva sea casi horizontal, cerca del cero (lo cual corresponde a
una raz m ultiple), el metodo de biseccion puede presentar dicultades
al determinar este cero con una alta precision. Otra situacion, no menos
interesante, podra ser aquella en la que la funcion no fuera continua;
la continuidad de una funcion puede ser difcil de detectar.
Ejercicio 3:
Encontrar una aproximacion numerica para

3 (con 6 y 7 cifras signicati-


vas).
3.2 Metodo de regula falsi
El metodo de biseccion no usa informacion acerca de la forma de la funcion
cuya raz deseamos estimar. Una manera de incorporar esta informacion
es considerar una recta que aproxima a la funcion. Puesto que sabemos
como encontrar el cero de una funcion lineal, en lugar de considerar el punto
medio del intervalo, podemos buscar como aproximaci on al cero de la funcion
el punto donde la recta de aproximaci on corta al eje x.
El metodo al que hacemos referencia se denomina metodo de regula
falsi o de la posicion falsa (o metodo de la cuerda). Comienza con dos
puntos, (a, f(a)) y (b, f(b)), que satisfacen la condicion f(a)f(b) < 0. La
siguiente aproximaci on al cero es el valor de x donde la recta denida por los
3.3. EL M

ETODO DE NEWTON 41
puntos iniciales corta el eje x (ver la Figura 2.2). Para tal efecto, es facil ver
que dicha recta es:
l(x) := f(a) +
f(b) f(a)
b a
(x a),
y que el valor de x para el cual l(x) = 0 es:
x =
af(b) bf(a)
f(b) f(a)
.
A continuacion, determinamos el subintervalo, [a, x] o [x, b], que contiene el
cero. Esto lo realizamos de la misma forma que lo hace biseccion, cuando
vericamos el cambio de signo de la funcion (as, si hay un cero en el in-
tervalo [a, x], dejamos a igual y establecemos x = b; si el cero no esta en
[a, x], el cero esta en el intervalo [x, b] y hacemos x = a). Como criterio de
parada se puede considerar el tama no de f(x), la cantidad en que la solucion
aproximada x vario respecto a la iteracion anterior, o un n umero de iterados
lo sucientemente grande (por lo general, se usa una combinacion de estas
tres condiciones).
Ejercicio 1:
Apliquemos el metodo de la cuerda a los Ejemplos 1 y 2 de la Seccion ante-
rior (metodo de biseccion). Cual de los dos metodos parece acercarse a la
solucion exacta en menos iteraciones?
3.3 El metodo de Newton
El Metodo de Newton, tambien llamado el metodo iterativo de Newton-
Raphson, es una de las tecnicas mas conocidas y ecientes para encontrar
las races de f(x) = 0. Sea r un cero de f y sea x una aproximacion a r. Si
existe f

y es continua, por el teorema de Taylor sabemos que


0 = f(r) = f(x + h) = f(x) + hf

(x) + O(h
2
),
donde h = r x. Si h es peque na (i.e., x r), es razonable ignorar el
termino O(h
2
) y resolver el resto de la ecuacion para h. Por lo que obtenemos
h = f(x)/f

(x). De manera que, si x r, x + h = x f(x)/f

(x) debera
estar a un mas proximo a r.
42 CAP

ITULO 3. ECUACIONES NO LINEALES


Figura 3.2: Interpretaci on geometrica del metodo de regula falsi.
El metodo de Newton comienza con una estimacion x
0
de r, y es a partir
de la misma que se dene de manera iterativa una sucesion de aproximaciones
x
n+1
= x
n

f(x
n
)
f

(x
n
)
, (n 0). (3.3)
El algoritmo de Newton:
Entrada: x
0
, M, , .
v f(x
0
)
Si [v[ < , parar (Salida: x
0
, v)
Para k = 1, . . . , M hacer
x
1
x
0
v/f

(x
0
)
v f(x
1
)
Si [x
0
x
1
[ < o [v[ < parar (Salida: k, x
1
, v)
x
0
x
1
Fin Salida: k, x
1
, v
Cualquier programa que se base en este algoritmo requerira ademas de sub-
programas o procedimientos para calcular f(x) y f

(x).
Ejemplo 1:
Encontrar la raz mas grande de f(x) = x
6
x 1 = 0 usando el metodo
3.3. EL M

ETODO DE NEWTON 43
n x
n
f(x
n
) r x
n
x
n+1
x
n
0 2.0 61.0 8.653 10
1
1 1.680628273 19.85 5.459 10
1
2.499 10
1
2 1.430738989 6.147 2.960 10
1
1.758 10
1
3 1.254970957 1.652 1.202 10
1
9.343 10
2
4 1.161538433 2.943 10
1
2.681 10
2
2.519 10
2
5 1.136353274 1.683 10
2
1.629 10
3
1.623 10
3
6 1.134730528 6.574 10
5
6.390 10
6
6.390 10
6
7 1.134724139 1.015 10
9
9.870 10
11
9.870 10
11
Tabla 3.3: Tabla para el Ejemplo 1.
Newton.
Resp.: En la Tabla 2.3 se muestra la salida correspondiente. Los calculos
se realizaron con una aritmetica en punto otante de aproximadamente 16
dgitos (los iterados de la tabla fueron redondeados considerando esta pre-
cision). La ultima columna, x
k+1
x
k
, es un estimado de rx
k
. Una vez que
un iterado este mas o menos cerca de la raz, el metodo de Newton converge
muy rapidamente. Lo cual resulta claro al observar en la tabla los iterados
x
4
, x
5
, x
6
y x
7
. Los iterados x
0
, x
1
, x
2
y x
3
muestran una lenta conver-
gencia inicial debido, sin duda, a la pobre escogencia del valor inicial x
0
. Si
hubieramos escogido x
0
= 1 como valor inicial, entonces x
4
debera tener una
precision de siete cifras signicativas y x
5
de catorce.
Ejercicio 1:
Resolver el Ejemplo 1 anterior aplicando el metodo de la biseccion y usando
[1, 2] como intervalo inicial. Compare sus resultados con los del metodo de
Newton de la Tabla 2.3. Cual de los dos metodos es mas rapido?
Ejercicio 2:
Encontrar los ceros de los Ejercicios 1 y 2 de la seccion anterior, pero ahora
usando el metodo de Newton. Cual de los dos metodos parece converger
mas rapido?
Interpretacion graca.
Podemos decir que el metodo de Newton consiste en la linealizacion de la
funcion. Es decir, f se reemplaza por una funcion lineal. La manera usual
de hacerlo es reemplazar f por los dos primeros terminos de su serie de
44 CAP

ITULO 3. ECUACIONES NO LINEALES


Figura 3.3: Interpretaci on graca del metodo de Newton.
Taylor. De modo que si
f(x) = f(c) + f

(c)(x c) +
1
2!
f

(c)(x c)
2
+ . . . ,
entonces, la linealizacion (en c) produce la funcion lineal
l(x) = f(c) + f

(c)(x c).
Observese que l es una buena aproximaci on de f en una vecindad de c; de
hecho, tenemos que l(c) = f(c) y l

(c) = f

(c). As, la funcion lineal tiene el


mismo valor y la misma pendiente que la funcion f en el punto c. De este
modo, lo que hacemos en el metodo de Newton es construir la tangente a la
graca de f en un punto cercano a r, y observar en que lugar intersecta esta
lnea al eje x (ver la Figura 2.3).
Nota: A partir de la Figura 2.3 vemos tambien que f

(x
n
) = f(x
n
)/(x
n

x
n+1
), de donde x
n+1
= x
n
f(x
n
)/f

(x
n
), n 0.
Hay casos de funciones para los que la iteracion de Newton fracasa, por
ejemplo, si consideramos la Figura 2.4, la forma de la curva es tal que
para ciertos valores iniciales la sucesion x
n
diverge. Lo que signica que
cualquier enunciado formal acerca del metodo de Newton debe contemplar
la suposicion de que x
0
, el valor inicial, este lo sucientemente proximo a un
cero, o que la graca de f tenga una forma especial.
Analisis de errores:
3.3. EL M

ETODO DE NEWTON 45
Figura 3.4: Ejemplo en el que el metodo de Newton no converge.
Sin considerar por ahora los errores de redondeo, seguimos la exposicion de
[3] y denimos los errores e
n
x
n
r. Supongamos que f

es continua y
que r es un cero simple de f (i.e., f(r) = 0, pero f

(r) ,= 0). A partir de la


denicion del metodo de Newton, obtenemos que
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
)
. (3.4)
Ahora, por el teorema de Taylor, sigue que
0 = f(r) = f(x
n
e
n
) = f(x
n
) e
n
f

(x
n
) +
1
2
e
2
n
f

(
n
),
donde
n
esta entre x
n
y r. De esta expresion tenemos que
e
n
f

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

(
n
)e
2
n
.
Sustituyendo en (3.4), obtenemos
e
n+1
=
1
2
f

(
n
)
f

(x
n
)
e
2
n

1
2
f

(r)
f

(r)
e
2
n
= Ce
2
n
.
Esta ecuacion nos dice que e
n+1
es aproximadamente e
2
n
multiplicado por
una constante. Este importante resultado se conoce como convergencia
cuadratica. La misma explica por que en muchos ejemplos, en donde uti-
lizamos el metodo de Newton, se produce una duplicacion de la precision
respecto a la obtenida en la iteracion inmediatamente anterior.
El siguiente resultado sintetiza lo expuesto mas arriba y establece la con-
vergencia del metodo.
46 CAP

ITULO 3. ECUACIONES NO LINEALES


Teorema 3.2 Sea f

continua y sea r un cero simple de f. Existen una


vecindad de r y una constante C tales que si el metodo de Newton comienza
en esa vecindad, los puntos generados por el metodo se aproximan cada vez
mas a r y satisfacen
[x
n+1
r[ C(x
n
r)
2
(n 0).
Demostracion: Para la prueba de la convergencia del metodo de Newton
se puede consultar [3]. 2
Existen situaciones particulares para las que el metodo de Newton converge
independientemente del punto inicial seleccionado. En efecto, el siguiente
resultado as lo muestra.
Teorema 3.3 Si f C
2
(IR), es creciente, convexa (i.e., concava hacia a-
rriba) y tiene un cero, entonces el cero es unico y el metodo iterativo de
Newton convergera al mismo a partir de cualquier punto inicial.
Ejemplo 2:
Encuentre un metodo eciente para calcular races cuadradas basandose en
el metodo de Newton.
Resp.: Sea R > 0 y x =

R. En este caso x es una raz de la ecuacion


x
2
R = 0. Si aplicamos el metodo de Newton a la funcion f(x) = x
2
R,
la formula de iteracion se puede escribir
1
x
n+1
=
1
2
x
2
n
+ R
x
n
.
Si, por ejemplo, queremos calcular

17 e iniciamos con x
0
= 4, las aproxima-
ciones sucesivas son las siguientes (se muestran solo los dgitos signicativos):
x
1
= 4.12
x
2
= 4.123106
x
3
= 4.1231056256177
x
4
= 4.123105625617660549821409856.
El valor correspondiente a x
4
es correcto hasta la vigesimo octava cifra deci-
mal, pudiendose observar la esperada duplicacion de los dgitos signicativos
1
Esta formula es muy antigua y se atribuye a Heron, un ingeniero y arquitecto griego,
quien vivio en el periodo que abarca los a nos 100 a.C. a 100 d.C.
3.4. EL M

ETODO DE LA SECANTE 47
en estos resultados. Este metodo, combinado con una reduccion del dominio,
se utiliza con frecuencia en las subrutinas para calcular races cuadradas.
Ejercicio 3:
Dado un n umero real R > 0, encuentre un metodo eciente para calcular
R
1/4
basandose en el metodo de Newton. Use este procedimiento para esti-
mar un valor de
4

82 con por lo menos doce dgitos correctos.


3.4 El metodo de la secante
Una de las desventajas del metodo de Newton es que utiliza la derivada de la
funcion cuyo cero buscamos. Una manera sencilla en que podemos evitar esta
dicultad
2
consiste en reemplazar f

(x
n
) en (3.3) por el cociente incremental
f(x
n
) f(x
n1
)
x
n
x
n1
(obviamente esta seleccion tiene su motivacion en la conocida denicion de
la derivada). De donde obtenemos la expresion:
x
n+1
= x
n
f(x
n
)
x
n
x
n1
f(x
n
) f(x
n1
)
, (n 1), (3.5)
que da lugar al algoritmo denominado metodo de la Secante. Como
podemos observar de (3.5), el calculo de x
k+1
requiere conocer x
k
y x
k1
,
por lo que debemos pasarle al algoritmo dos puntos iniciales. Sin embargo,
cada x
k+1
requiere de tan solo una nueva evaluaci on de f (Por que?).
Ejercicio 1:
Aplique el metodo de la secante a los casos estudiados en los ejercicios de la
Seccion anterior.
Interpretacion graca.
La interpretacion es similar a la del metodo de Newton, pero ahora la recta
tangente a la curva se reemplaza por una recta secante. A partir de la
Figura 2.5 vemos tambien que
f(x
n1
)f(x
n
)
x
n1
x
n
=
f(x
n
)
x
n
x
n+1
, de donde se obtiene
(2.5).
2
A cualquiera de nuestros lectores, que estuviera lo sucientemente motivado por los
MN, tambien se le hubiera podido ocurrir esta idea.
48 CAP

ITULO 3. ECUACIONES NO LINEALES


Figura 3.5: Interpretacion graca del metodo de la secante.
3.5 Metodos de punto jo
El Metodo de Newton y el de Steenson
3
son ejemplos de procedimientos
mediante los cuales se calcula una sucesion de puntos con una formula como
la siguiente:
x
n+1
= F(x
n
) (n 0). (3.6)
El algoritmo denido de esta manera se denomina iteracion funcional.
Para el caso del metodo de Newton la funcion F se expresa mediante
F(x) = x
f(x)
f

(x)
.
La formula (3.6) puede utilizarse para generar sucesiones que no convergen,
como sucede, por ejemplo, con la sucesion 1, 5, 25, 125, . . . que se obtiene si
x
0
= 1 y F(x) = 5x. Sin embargo, nuestro interes recae sobre los casos para
los cuales existe lim
n
x
n
. Supongamos entonces que lim
n
x
n
= s Cual
sera la relacion entre s y F? Si F es continua, entonces
F(s) = F( lim
n
x
n
) = lim
n
F(x
n
) = lim
n
x
n+1
= s.
3
El metodo de Steenson es una modcacion del metodo de Newton, similar al metodo
de la secante, pero usando otra aproximacion de la derivada. Siendo algo mas especcos,
x
n+1
= x
n
f(x
n
)/D(x
n
), donde D(x
n
) = [f(x
n
+f(x
n
)) f(x
n
)]/f(x
n
), n 0.
3.5. M

ETODOS DE PUNTO FIJO 49


Figura 3.6: Una transformacion contractiva.
De manera que F(s) = s. Llamaremos a s el punto jo de la funcion F.
Podemos considerar al punto jo como un valor al que se ja la funcion
durante el proceso iterativo.
Con frecuencia un problema matematico puede reducirse al problema de
encontrar un punto jo de una funcion. Aplicaciones muy interesantes de esto
aparecen en la teora de ecuaciones diferenciales, en teora de optimizacion
y en muchas otras areas. La funcion F cuyos puntos jos buscamos, sera
usualmente una transformacion entre dos espacios vectoriales. Nuestro ob-
jetivo sera el de analizar el caso mas sencillo en el que F enva en s mismo
alg un conjunto cerrado C IR. El teorema que se muestra mas abajo se
ocupa de las aplicaciones contractivas.
Denicion 3.1 Se dice que una transformacion (o funcion) F es contrac-
tiva si existe un n umero < 1 que satisfaga
[F(u) F(v)[ [u v[, (3.7)
para todos los puntos u y v en el dominio de F.
Tal como se ilustra en la Figura 2.6, la distancia entre u y v se transforma en
una distancia menor entre F(u) y F(v) por la accion de la funcion contractiva
F.
Teorema 3.4 (Teorema de la aplicacion contractiva) Sea F una apli-
cacion contractiva que va de un conjunto cerrado C IR a C. Entonces
F tiene un punto jo unico. Mas a un, este punto jo es el lmite de toda
50 CAP

ITULO 3. ECUACIONES NO LINEALES


sucesion que se obtenga a partir de la ecuacion (2.6) con cualquier punto
inicial x
0
C.
Demostracion: Ver por ejemplo [3]. 2
Ejemplo 1:
Demuestre que la sucesion x
n
denida recursivamente como sigue es con-
vergente: x
0
= 15, x
n+1
= 3
1
2
[x
n
[ (n 0).
Respuesta: La funcion F(x) = 3
1
2
[x[ es una contracci on ya que
[F(x) F(y)[ = [3
1
2
[x[ 3 +
1
2
[y[[ =
1
2
[[y[ [x[[
1
2
[y x[
por la desigualdad triangular. Por lo que si aplicamos el teorema de la
aplicacion contractiva la sucesion debe converger al unico punto jo de F, el
cual es 2 (como podemos comprobar directamente). En el teorema podemos
tomar C en IR.
Ejemplo 2:
Utilice el teorema de la aplicacion contractiva para calcular un punto jo de
la funcion F(x) = 4 +
1
3
sen2x
Respuesta: Por el teorema del valor medio sabemos que
[F(x) F(y)[ =
1
3
[sen2x sen2y[ =
2
3
[ cos 2[[x y[
2
3
[x y[
para alguna entre x y y. Esto muestra que F es contractiva, con =
2
3
.
Por el teorema de la aplicacion contractiva resulta que F tiene un punto jo.
Un programa de computadora que calcule este punto jo puede inspirarse en
el siguiente algoritmo, el cual realiza 20 iteraciones comenzando con x = 4.
Entrada: x 4, M 20
Para k = 1, 2, . . . , M hacer
x 4 +
1
3
sen2x
Fin
Salida: k ,x.
El programa genera 20 lneas de salida, algunas de las cuales se muestran a
3.5. M

ETODOS DE PUNTO FIJO 51


continuacion:
n x
1 4.3297861
2 4.2308951
3 4.2736338
.
.
.
.
.
.
14 4.2614830
15 4.2614840
16 4.2614836
.
.
.
.
.
.
20 4.2614837
El punto jo aparece en la ultima lnea con una precision de siete dgitos
decimales.
Analisis de errores
Supongamos que F tiene un punto jo, s, y que la sucesion x
n
se ha
denido por x
n+1
= F(x
n
). Sea e
n
= x
n
s. Si F

existe y es continua,
entonces por el teorema del valor medio
x
n+1
s = F(x
n
) F(s) = F

(
n
)(x
n
s) (3.8)
o
e
n+1
= F

(
n
)e
n
,
donde
n
es un punto entre x
n
y s. La condicion [F

(x)[ < 1 x permite
asegurar que los errores disminuyen en magnitud
4
. Si e
n
es peque no, entonces

n
esta proximo a s y F

(
n
) F

(s). Se esperara una convergencia mas
rapida si F

(s) es peque no.
Extrapolacion de Aitken
De (3.8) sigue que
lim
n
s x
n+1
s x
n
= F

(s),
Si denimos

n
=
x
n
x
n1
x
n1
x
n2
, n 2, (3.9)
4
Mas a un, si max
axb
[F

(x)[ < 1 la sucesion x
n
converge linealmente a s [1].
52 CAP

ITULO 3. ECUACIONES NO LINEALES


se puede demostrar que lim
n

n
= F

(s) (ver [1]). Usemos
n
F

(s)
para estimar el error en los iterados x
n
. De esta manera, podemos escribir
s x
n

n
(s x
n1
),
de donde
s x
n
= (s x
n1
) + (x
n1
x
n
)
1

n
(s x
n
) + (x
n1
x
n
),
y
s x
n


n
1
n
(x
n
x
n1
). (3.10)
Esta es la formula de error de Aitken para x
n
(sera mas precisa en la
medida que
n
converja a F

(s)). Cuando reescribimos esta expresion
como
s x
n
+

n
1
n
(x
n
x
n1
),
obtenemos la denominada formula de extrapolacion de Aitken. Si de-
notamos el lado derecho de la misma por x
n
(n 2) y sustituimos (3.9) en
ella, la formula para x
n
queda:
x
n
= x
n

(x
n
x
n1
)
2
(x
n
x
n1
) (x
n1
x
n2
)
, n 2, (3.11)
de la que esperamos sea una mejor aproximacion a la raz que el x
n
mismo.
En este sentido, este proceso puede pensarse como un esquema de aceleracion
para el caso del algoritmo de iteracion funcional (3.6) de convergencia lineal.
Ejemplo 3: ([1, pags. 85-86])
Consideremos la iteracion:
x
n+1
= 6.28 + sin(x
n
), n 0.
El valor real de la raz es s = 6.01550307297 . . ..
Los resultados de la iteracion se muestran en la Tabla 2.4. Observamos
que los valores de
n
estan convergiendo a F

(s) = cos(s) .9644. Asmismo,


vemos que el estimado (3.10) es un buen indicador del error real; sin embargo,
x
n
x
n+1
no resulta ser una buena estimacion de sx
n
. Observamos tambien
que el tama no de F

(s) revela que los iterados converger an muy lentamente


(como en efecto ocurre).
3.6. EL ALGORITMO DE HORNER 53
n x
n
x
n
x
n+1

n
s x
n
Estimado (3.10)
0 6.0 1.55e-2
1 6.0005845 5.845e-4 1.49e-2
2 6.0011458 5.613e-4 .9603 1.44e-2 1.36e-2
3 6.0016848 5.390e-4 .9604 1.38e-2 1.31e-2
4 6.0022026 5.178e-4 .9606 1.33e-2 1.26e-2
5 6.0027001 4.974e-4 .9607 1.28e-2 1.22e-2
6 6.0031780 4.780e-4 .9609 1.23e-2 1.17e-2
7 6.0036374 4.593e-4 .9610 1.18e-2 1.13e-2
Tabla 3.4: Iteraciones del Ejemplo 3.
Ahora bien, usando (3.11), para n = 7, vemos que x
7
= 6.0149518 y
s x
7
= 5.51e 4. De manera que, el valor de extrapolacion x
7
es mucho
mas preciso que x
7
.
Ejercicio 1
Repita el Ejemplo 3 pero ahora usando la iteracion denida por la funcion del
Ejemplo 2. Construya una tabla similar a la Tabla 2.4, pero ahora a nadiendo
una columna para x
n
.
3.6 El algoritmo de Horner
Para el calculo eciente de una raz de un polinomio dado (aplicando el
metodo de Newton) utilizaremos el denominado algoritmo de Horner o de la
multiplicacion anidada (o simplemente, el algoritmo de la division sintetica.
Sea p(z) = a
n
z
n
+a
n1
z
n1
+ +a
1
z +a
0
un polinomio de grado n. Si
ademas contamos con un n umero z
0
I C, el algoritmo de Horner proporciona
el n umero p(z
0
) y el polinomio q(z) =
p(z)p(z
0
)
zz
0
de grado n 1, tales que
p(z) = (z z
0
)q(z) + p(z
0
). (3.12)
54 CAP

ITULO 3. ECUACIONES NO LINEALES


Ahora, si q(z) = b
n1
z
n1
+. . .+b
1
z+z
0
y lo sustituimos en (3.12), obtenemos
b
n1
= a
n
b
n2
= a
n1
+ z
0
b
n1
.
.
.
b
0
= a
1
+ z
0
b
1
p(z
0
) = a
0
+ z
0
b
0
A pues, podemos denir el siguiente algoritmo:
Algoritmo (Horner):
Entrada: n, a
i
: i = 0, . . . , n, z
0
.
b
n1
a
n
.
Para k = n 1, n 2, . . . , 0, hacer:
b
k1
a
k
+ z
0
b
k
.
Fin.
Salida: b
i
: i = 1, . . . , n 1.
Aqu b
1
= p(z
0
). El procedimiento anterior se puede llevar a cabo facilmente
de la siguiente manera:
a
n
a
n1
a
n2
. . . a
0
z
0
z
0
b
n1
z
0
b
n2
. . . z
0
b
0
...........................................................
b
n1
b
n2
b
n3
. . . b
1
Ejemplo 1:
Use el algoritmo de Horner para calcular p(3), donde p(z) = z
4
4z
3
+7z
2

5z 2.
Resp.:
1 4 7 5 2
3 3 3 12 21
........................................................
1 1 4 7 19 = p(3)
El algoritmo de Horner se puede usar tambien para realizar una deacion
5
.
As, si z
0
es un cero de p, entonces z z
0
es un factor de p, y viceversa. Los
ceros restantes de p son los n 1 ceros de p(z)/z z
0
.
Ejemplo 2:
5
Proceso por el cual se cancela un factor lineal del polinomio.
3.6. EL ALGORITMO DE HORNER 55
Efect ue una deacion sobre el polinomio del ejemplo anterior sabiendo que
2 es uno de sus ceros.
Resp.:
1 4 7 5 2
2 2 4 6 2
........................................................
1 2 3 1 0
Por lo tanto, p(z) = z
4
4z
3
+ 7z
2
5z 2 = (z 2)(z
3
2z
2
+ 3z + 1).
Una tercera aplicacion del algoritmo de Horner, que da lugar al denomi-
nado algoritmo de Horner completo, consiste en obtener, de una manera
eciente, los coecientes del desarrollo de Taylor de un polinomio alrededor
de cualquier punto. En efecto, supongamos que buscamos los coecientes C
k
en
p(z) = a
n
z
n
+ a
n1
z
n1
+ + a
1
z + a
0
= C
n
(z z
0
)
n
+ C
n1
(z z
0
)
n1
+ . . . + C
0
(por Taylor sabemos que C
k
= p
(k)
(z
0
)/k!, pero ahora queremos contar con
un algoritmo mas eciente para estimar los C
k

s). Claramente, p(z


0
) = C
0
,
el cual podemos obtener al aplicar directamente el algoritmo de Horner a p
con z = z
0
. El algoritmo tambien generara 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
1
.
Lo que demuestra que el segundo coeciente C
1
puede obtenerse aplicando
el algoritmo de Horner a q con z = z
0
, ya que C
1
= q(z
0
).
Ejemplo 3:
Encontrar para el polinomio anterior el desarrollo de Taylor alrededor de
z
0
= 3.
Resp.:
1 4 7 5 2
3 3 3 12 21
........................................................
1 1 4 7 19
3 3 6 30
........................................................
1 2 10 37
56 CAP

ITULO 3. ECUACIONES NO LINEALES


3 3 15
........................................................
1 5 25
3 3
........................................................
1 8
Por lo tanto, p(z) = (z 3)
4
+ 8(z 3)
3
+ 25(z 3)
2
+ 37(z 3) + 19.
Iteracion de Newton para el caso de un polinomio
Podemos aplicar a un polinomio p el esquema iterativo
z
n+1
= z
n

p(z
n
)
p

(z
n
)
,
al que incorporaremos el algoritmo de Horner para obtener p(z
n
) y p

(z
n
),
resultando de ello un metodo eciente para estimar de manera aproximada
un cero del polinomio p. Con dos pasos del algoritmo de Horner completo,
obtendremos C
0
= p(z
0
) y C
1
= p

(z
0
).
Ejemplo 4:
Llevar a cabo la iteracion de Newton con el polinomio del ultimo ejemplo,
empezando con z
0
= 0.
Resp.: En el primer paso z
0
= 0, y calculamos p(0) = 2 y p

(0) = 5
mediante los algoritmos vistos . El nuevo valor de z sera
z
1
= z
0

p(z
0
)
p

(z
0
)
= 0
2
5
= 0.4.
Al ejecutar el algoritmo en una cierta maquina (digamos, la SUPER XYZ),
se obtuvieron los resultados mostrados en la Tabla 2.4 (observemos que z
n
converge rapidamente al cero 0.27568).
Ejercicio 1:
Escriba un algoritmo (puede ser en pseudocodigo) que utilice el metodo de
Newton con el algoritmo de Horner para encontrar las races de polinomios
(dando el z
0
inicial). Pruebe su algoritmo con el ejemplo anterior.
3.7 Experimentaci on numerica
Ejercicio 1.
3.7. EXPERIMENTACI

ON NUM

ERICA 57
n p(z
n1
) p

(z
n1
) z
n
1 2.00000 -5.00000 -0.40000
2 1.40160 -12.77600 -0.29029
3 1.46322 -10.17322 -0.27591
4 0.00226 -9.86030 -0.27568
5 0.00000 -9.85537 -0.27568
Tabla 3.5: Tabla correspondiente al Ejemplo 4
a) Escriba tres programas en MATLAB (scripts), uno para el metodo de
la biseccion, otro para el metodo de la secante y otro para el metodo
de Newton. Construir una tabla con cuatro columnas: una para el
iterado k, una para x
k
, otra para [x
k
x
k+1
[ y una ultima para f(x
k
).
Como un ejemplo, usemos estos programas para resolver el problema de
encontrar un cero de la funcion f(x) = tan(
x
4
) 1 (con [a
0
, b
0
] = [2, 4],
x
0
= 1, x
1
= 2 y k = 1, ..., 47). Interprete los resultados numericos [se
puede solicitar al estudiante correr sus programas con otras funciones].
b) Aplique el script de Newton al problema de encontrar un cero de la
funcion f(x) = x
2
a
2
, con valor inicial x
0
= 2 y valores de a = 10
0
,
10
4
, 10
8
, 10
12
, 0. Que observa con respecto a la velocidad de
convergencia cuando a decrece de 1 a 0?
c) Aplique el script de Newton al problema de encontrar un cero de la
funcion f(x) = arctan(x), con un valor inicial x
0
tal que [x
0
[ > 1.3917.
Que sucede? Por que?
d) Podemos siempre terminar las iteraciones de Newton cuando [f(x
k
)[
sea lo sucientemente peque no? Por que? Que podemos decir de
[x
k+1
x
k
[?
Ejercicio 2.
Una llamada de la forma
>> root = fzero(f,x0)
puede usarse en el ambiente MATLAB para calcular un cero de la funcion
f(x) cerca de x = x
0
(para mas detalles tipee help fzero). Escriba una
funcion MATLAB z=cubeRoot(a) que use fzero para calcular la raz c ubica
58 CAP

ITULO 3. ECUACIONES NO LINEALES


de a (no se permite hacer z=a^(1/3)). Asuma que 1 a 8 y que (6 +
a)/7 es un buen valor inicial para la raz buscada. (Nota: Observemos que
hay que escribir una segunda funcion, cuyo nombre debe pasarse a fzero.)
Captulo 4
Sistemas de ecuaciones no
lineales
4.1 El metodo de Newton
El metodo de Newton para sistemas de ecuaciones no lineales sigue la misma
estrategia que se empleo en el caso de una sola ecuacion: linealizar y resolver,
repitiendo los pasos tantas veces como se requiera. Ilustremos el metodo con
un par de ecuaciones en dos variables:
_
f
1
(x
1
, x
2
) = 0
f
2
(x
1
, x
2
) = 0
En el supuesto de que (x
1
, x
2
) es una solucion aproximada del sistema de
ecuaciones anterior, calculemos correcciones h
1
y h
2
, tales que (x
1
+h
1
, x
2
+h
2
)
sea una mejor aproximaci on a la solucion. Utilizando solo terminos lineales en
el desarrollo de Taylor en dos variables (ver Apendice del Captulo), tenemos
que
_
0 = f
1
(x
1
+ h
1
, x
2
+ h
2
) f
1
(x
1
, x
2
) + h
1
f
1
x
1
(x
1
, x
2
) + h
2
f
1
x
2
(x
1
, x
2
)
0 = f
2
(x
1
+ h
1
, x
2
+ h
2
) f
2
(x
1
, x
2
) + h
1
f
2
x
1
(x
1
, x
2
) + h
2
f
2
x
2
(x
1
, x
2
)
(4.1)
Podemos usar este par de ecuaciones lineales para determinar h
1
y h
2
. Se
denomina a la matriz de coecientes de (3.1) la matriz jacobiana J de f
1
y f
2
.

Esta es:
J =
_
f
1
x
1
f
1
x
2
f
2
x
1
f
2
x
2
_
59
60 CAP

ITULO 4. SISTEMAS DE ECUACIONES NO LINEALES


Para resolver (3.1) necesitamos que J sea no singular. Si esta condicion se
satisface, la solucion es:
_
h
1
h
2
_
= J
1
_
f
1
(x
1
, x
2
)
f
2
(x
1
, x
2
)
_
.
As, el metodo de Newton para un sistema no lineal de dos ecua-
ciones es:
_
x
(n+1)
1
x
(n+1)
2
_
=
_
x
(n)
1
x
(n)
2
_
+
_
h
(n)
1
h
(n)
2
_
, (4.2)
donde (h
(n)
1
h
(n)
2
)
t
es la solucion del sistema lineal:
J
_
h
(n)
1
h
(n)
2
_
=
_
f
1
(x
(n)
1
, x
(n)
2
)
f
2
(x
(n)
1
, x
(n)
2
)
_
,
o bien,
J(X
n
)H
(n)
= F(X
n
),
donde H
(n)
= (h
(n)
1
h
(n)
2
)
t
, F(X
n
) = (f
1
(x
(n)
1
, x
(n)
2
) f
2
(x
(n)
1
, x
(n)
2
))
t
y X
n
=
(x
(n)
1
x
(n)
2
)
t
. Este sistema lo podemos resolver usando eliminacion gaussiana
1
.
Ejemplo 1:
Realizar dos iteraciones del metodo de Newton si
F(X) =
_
f
1
(x
1
, x
2
)
f
2
(x
1
, x
2
)
_
=
_
x
1
+ x
2
3
x
2
1
+ x
2
2
9
_
,
Tomando X
0
= (1, 5)
t
.(Nota: Las races son (3, 0)
t
y (0, 3)
t
).
Resp.: Como
J(X
0
)
_
h
(0)
1
h
(0)
2
_
= F(X
0
),
es decir,
_
1 1
2 10
_
_
h
(0)
1
h
(0)
2
_
=
_
3
17
_
,
1
El sistema jacobiano puede resultar difcil de resolver si J es casi singular.
4.1. EL M

ETODO DE NEWTON 61
obtenemos que H
(0)
= (h
(0)
1
h
(0)
2
)
t
= (13/8 11/8)
t
, y X
1
= X
0
+H
(0)
=
(.625 3.625)
t
.
Y como
J(X
1
)
_
h
(1)
1
h
(1)
2
_
= F(X
1
),
o bien,
_
1 1
5/4 29/4
_
_
h
(1)
1
h
(1)
2
_
=
_
0
145/32
_
,
tambien obtenemos que H
(1)
= (h
(1)
1
h
(1)
2
)
t
= (145/272 145/272)
t
, y
X
2
= X
1
+ H
(1)
(.092 3.092)
t
.
Podemos observar en X
2
la tendencia de los iterados del metodo a acer-
carse a la raz (0 3)
t
.
Ejercicio 1:
Realizar tres iteraciones adicionales para el caso del ejemplo anterior, obser-
vando el comportamiento de los diferentes iterados.
Ejercicio 2:
Realizar cuatro iteraciones (n = 4) para resolver:
f
1
= 3x
2
1
+ 4x
2
2
1 = 0 f
2
= x
3
2
+ 8x
3
1
1 = 0,
con X
0
= (0.5, 0.25)
t
. (Solucion: (0.497251208, 0.254078592)).
Cuando los sistemas de ecuaciones son mas grandes y con mas variables,
el tratamiento es similar. El sistema de ecuaciones:
f
i
(x
1
, x
2
, . . . , x
n
) = 0 (1 i n),
puede escribirse como
F(X) = 0,
donde X = (x
1
, x
2
, . . . , x
n
)
t
y F = (f
1
, f
2
, . . . , f
n
)
t
.
El analogo de (3.1) es
0 = F(X + H) F(X) + F

(X)H, (4.3)
donde H = (h
1
, h
2
, . . . , h
n
)
t
y F

(X) es la matriz jacobiana de orden nn con
entradas f
i
/x
j
. Obtenemos el vector de correccion al resolver el SEL en
62 CAP

ITULO 4. SISTEMAS DE ECUACIONES NO LINEALES


(3.3) (i.e., H = F

(X)
1
F(X))
2
. De manera que, el metodo de Newton
para n ecuaciones no lineales con n variables es:
X
(n+1)
= X
(n)
+ H
(n)
,
donde el sistema jacobiano ahora es:
F

(X
(n)
)H
(n)
= F(X
(n)
).
Apendice al Captulo 3
Taylor en dos variables:
Teorema 4.1 Si todas las derivadas parciales de orden n+1 de f : IR
2
IR
son continuas en el rectangulo denido por [x a[ [h[ y [y b[ [k[,
entonces existe (0, 1) para el que la siguiente formula es valida:
f(a + h, b + k) =
n

i=0
1
i!
(h

x
+ k

y
)
i
f(a, b) + E
n
(h, k), (4.4)
donde
E
n
(h, k) =
1
(n + 1)!
(h

x
+ k

y
)
n+1
f(a + h, b + k),
y donde es un n umero entre 0 y 1.
(Nota: Para cada valor de i = 0, 1, . . . , n + 1, la notacion
(h

x
+ k

y
)
i
f(a, b)
signica lo siguiente:
(h

x
+ k

y
)
0
f(a, b) = f(a, b)
(h

x
+ k

y
)
1
f(a, b) = (h
f
x
+ k
f
y
)(a, b)
(h

x
+ k

y
)
2
f(a, b) = (h
2

2
f
x
2
+ 2hk

2
f
xy
+ k
2

2
f
y
2
)(a, b),
)
2
En la practica H se puede determinar usando eliminacion gaussiana.
4.1. EL M

ETODO DE NEWTON 63
Ejemplo 1:
Cuales son los primeros terminos en la formula de Taylor para f(x, y) =
cos(xy)?
Resp.: Como
f
x
= y sen(xy)
f
y
= x sen(xy)

2
f
x
2
= y
2
cos(xy)

2
f
xy
= xy cos(xy) sen(xy)

2
f
y
2
= x
2
cos(xy).
As, si n = 1 en la formula de Taylor (4.4), obtendremos
cos[(a + h)(b + k)] = cos(ab) hb sen(ab) ka sen(ab) + E
1
(h, k),
donde el residuo E
1
es la suma de los tres terminos:

1
2
h
2
(b + k)
2
cos[(a + h)(b + k)]
hk(a + h)(b + k) cos[(a + h)(b + k)] + sen[(a + h)(b + k)]

1
2
k
2
(a + h)
2
cos[(a + h)(b + k)].
Ejercicio 1:
Repetir el Ejercicio anterior para f(x, y) = sen(xy)?
Ejercicio 2:
Considere encontrar el desarrollo de Taylor para f(x, y) = x/y alrededor de
(a, b) = (6, 2) (n = 1).
64 CAP

ITULO 4. SISTEMAS DE ECUACIONES NO LINEALES


Captulo 5
Interpolacion Polinomial
Dado un conjunto finito de puntos, el concepto de interpolacion consiste
basicamente en escoger una funcion, digamos p, de una clase dada de fun-
ciones, de forma tal que la representaci on grafica de la misma contenga al
conjunto finito de puntos. Este conjunto finito de puntos o datos, pueden
haberse obtenido a traves de un experimento o a traves de la simple obser-
vacion de un fenomeno fsico. Los datos tambien pueden considerarse como
coordenadas de puntos de una funcion f. En este sentido, decimos que p
interpola a la funcion f en un conjunto de puntos (diferentes) si el valor de
p en esos puntos coincide con el valor de f en los mismos nodos. La funcion
p a la que nos referimos aqu sera sin duda un polinomio.
El proposito principal de la interpolacion es el de interpolar datos cono-
cidos en puntos discretos tal que los valores funcionales entre esos puntos
puedan ser estimados.
La teora de interpolacion polinomial tiene importantes aplicaciones en la
derivacion de otros metodos en diferentes areas del calculo cientco, como
sucede en teora de aproximaci on, integraci on numerica y resolucion numerica
de ecuaciones diferenciales. Otras aplicaciones las encontramos cuando se
desarrollan medios para trabajar con funciones que son almacenadas en forma
tabular. La interpolacion es una herramienta importante cuando no podemos
evaluar rapidamente la funcion en puntos intermedios.
Un resultado fundamental en la teora de interpolacion polinomial viene
dado por el siguiente resultado.
Teorema 5.1 Dados n+1 puntos distintos x
0
, x
1
, . . . , x
n
y n+1 ordenadas
y
0
, y
1
, . . . , y
n
, existe un unico polinomio p(x) de grado n que interpola a y
i
en x
i
, para todo i = 0, 1, . . . , n.
65
66 CAP

ITULO 5. INTERPOLACI

ON POLINOMIAL
5.1 Experimentaci on numerica
La referencia basica que seguimos aqu es el curso introductorio [7].
Ejercicio 1: Analisis del error de interpolacion para el caso de nodos igual-
mente espaciados.
Consideremos la formula del error de interpolacion (ver, por ejemplo, [1] o
[4]). Claramente,
max
x[a,b]
[f(x) P
n
(x)[
c
n+1
(n + 1)!
. max
x[a,b]
[
n
(x)[,
donde
c
n+1
= max
t[a,b]
[f
(n+1)
(t)[ y
n
(x) = (x x
0
)(x x
1
) . . . (x x
n
).
Observemos que este resultado nos da una estimacion superior del error para
cualquier valor de x. El primer termino de la derecha es una constante
en [a, b], por lo que la distribucion esta determinada por
n
(x). Usaremos
solamente nodos igualmente espaciados: x
j
= x
0
+ jh, para j = 0, 1, . . . , n.
a) Para distintos valores de n (= 1, 2, 3, 6, 9), grafique, usando MATLAB,
el polinomio
n
(x). Aqu, [a, b] = [3, 3], x
0
= a y h =
ba
n
. Que
observa? Como convendra escoger los nodos cuando usamos interpo-
lacion de un grado mayor?
b) Consideremos la funcion
f(x) =
1
1 + x
2
, 5 x 5. (5.1)
Grafique, usando MATLAB, p
10
(x), f(x) y [f(x) p
10
(x)[. Que ob-
serva? Podemos decir que en general
max
x[a,b]
[f(x) p
n
(x)[
n
0 ?
c) Consideremos la funcion
f(x) = sen(x) en 0 x , (5.2)
5.1. EXPERIMENTACI

ON NUM

ERICA 67
y p
4
(x), el polinomio de interpolacion de f en los puntos (nodos igual-
mente espaciados)
x = [0,

4
,

2
,
3
4
, ] y = [0, sen(

4
), sen(

2
), sen(
3
4
), sen()].
Si e(x) = sen(x) p
4
(x), graficar, usando MATLAB, sen(x) y 100e(x).
Que observa? Explique.
Ejercicio 2: Uso de comandos MATLAB.
Revise y adquiera experiencia en el uso de los siguientes comandos MATLAB:
polyfit, polyval, interpl. Supongamos que en cada uno de los casos (5.1)
y (5.2) (ejercicio 1) se particiona el intervalo en n + 1 nodos igualmente
espaciados. Usando los comandos se nalados, construya los interpoladores:
polinomial, spline lineal, spline c ubico; siendo n = 5, 10, 20. Grafique los
correspondientes errores y estime las magnitudes maximas de los mismos.
Justifique.
Ejercicio 3:
Interpole y graque la funcion z = f(x, y) de dos variables, denida por
z = e
x
2
y
2
en el rectangulo 2 x 2, 3 y 3. Use interp2 y las
opciones linear y cubic.
68 CAP

ITULO 5. INTERPOLACI

ON POLINOMIAL
Referencias
[1] K.E. ATKINSON. An Introduction to Numerical Analysis, Second Edi-
tion. John Wiley, N.Y., 1989.
[2] R.L. BURDEN and J.D. FAIRES. Analisis Numerico, 7ma. Ed. Thom-
son - Learning, Mx, 2002.
[3] W. CHENEY and D. KINCAID. Numerical Analysis: Mathematics
of Scientic Computing. Brooks/Cole Publishing Company, Belmont,
California, 1991.
[4] W. CHENEY and D. KINCAID. Numerical Mathematics and Comput-
ing, Fourth Edition. Brooks/Cole Publishing Company, Pacic Grove,
1999.
[5] G. DAHLQUIST and A. BJORCK. Numerical Methods. Prentice-Hall,
Inc., Englewood Clis, N.J., 1974.
[6] T.A. DAVIS and K. SIGMON. MATLAB Primer, Seventh Edition.
CHAPMAN & HALL/CRC, Boca Raton, 2005.
[7] R. ESCALANTE. Curso introductorio de MATLAB. Editorial Equinoc-
cio, Universidad Simon Bolvar, Caracas, 2006.
[8] D.E. ETTER. Engineering Problem Solving with MATLAB, Second Edi-
tion. Prentice-Hall. Inc., N.J., 1997.
[9] L.V. FAUSETT. Applied Numerical Analysis Using MATLAB, Second
Edition. Prentice-Hall. Inc., N.J., 1999.
[10] G.E. FORSYTHE, M.A. MALCOLM, and C.B. MOLER. Computer
Methods for Mathematical Computations. Prentice-Hall. Inc., N.J., 1977.
69
70 REFERENCIAS
[11] D.J. HIGHAM and N.J. HIGHAM. MATLAB Guide. Society for In-
dustrial and Applied Mathematics, Philadelphia, 2000.
[12] C.F. VAN LOAN. Introduction to Scientic Computing - A Matrix-
Vector Approach Using MATLAB, 2nd. Edition. Prentice-Hall, Inc.,
N.J., 2000.
[13] S. NAKAMURA. Numerical Analysis and Graphic Visualization with
MATLAB. Prentice-Hall, Inc., N.J., 1996.

S-ar putea să vă placă și