Вы находитесь на странице: 1из 47

Guas de Trabajos Practicos de Calculo Numerico

Jorge DEla y Lisandro Dalcn


<jdelia,dalcinl@intec.unl.edu.ar>
www: http://entornovirtual.unl.edu.ar
Facultad de Ingeniera y Ciencias Hdricas
Universidad Nacional del Litoral http://fich.unl.edu.ar
Centro Internacional de Metodos Computacionales en Ingeniera
http://www.cimec.org.ar, http://venus.ceride.gov.ar
(Document version: can-1.2.2)
(Date: 2005/10/25 17:13:00 UTC)
Indice
1. Preliminares 4
1.1. Software cientco y compiladores de C++/F95 . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Un desglose de la bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Convenciones en la notacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Consignas para los ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. GTP 1. Introduccion a calculo numerico 7
2.1. Temario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. GTP 2. Metodos directos en sistemas de ecuaciones lineales 19
3.1. Temario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. GTP3. Metodos iterativos en sistemas de ecuaciones lineales 25
4.1. Temario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5. GTP 4. Races de ecuaciones 31
5.1. Temario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6. GTP 5. Interpolacion y aproximacion de funciones 36
6.1. Temario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7. GTP 6. Diferenciacion e integracion numerica 40
7.1. Temario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1
Sobre este apunte:
Este apunte corresponde a temas de la practica del curso Calculo Numerico dictado por Victorio
E. Sonzogni, Lisandro Dalcn y Jorge DEla, que se dicta en la currcula de Ingeniera Informatica
de la Facultad de Ingeniera y Ciencias Hdricas (http://www.fich.unl.edu.ar) de la Universidad
Nacional del Litoral (http://www.unl.edu.ar).
Pagina web del curso: La pagina web del curso hay que buscarla en http://entornovirtual.
unl.edu.ar. En esa pagina funciona una lista de correo y un repositorio de archivos donde se puede
bajar materiales de ayuda incluido este apunte (en formato PDF).
Licencia de uso: This report is Copyright (c) 2005, Jorge DEla, Lisandro Dalcn. Permission is
granted to copy, distribute and/or modify this document under the terms of the GNU Free Documen-
tation License, Version 1.1 or any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license
is included below in the section entitled GNU Free Documentation License.
Utilitarios usados: Todo este apunte ha sido escrito con utilitarios de software libre, de acuerdo a
los lineamientos de la Free Software Foundation/GNUProject (http://www.gnu.org). La mayora
de los utilitarios corresponden a un sistema GNU/Red Hat Linux release 8.0 (Psyche) Kernel
2.4.18-14 on an i686.
El apunte ha sido escrito en L
A
T
E
X y convertido a PDF con pdflatex. El mismo esta completa-
mente inter-referenciado usando las utilidades propias de L
A
T
E
X y el paquete hyperref.
Como paquetes de software libre con orientacion cientifca se han empleado tanto el Scilab
(http://scilabsoft.inria.fr) como el Octave (http://www.octave.org).
Otros ejemplos han sidos desarrollados y probados en: C++ con GNU g++ (http://gcc.gnu.org/),
F95 con GNU g95 (http://g95.sourceforge.net/) y Python (http://www.python.org/).
Las guras han sido generadas con Tgif (http://bourbon.usc.edu:8001/tgif/) y Xg 3.2.3d
(http://www.xfig.org/).
Agradecimientos A Mario A. Storti por facilitar los fuentes tex que sirvieron como punto de
partida.
2
INDICE
INDICE
Errores Si se encuentra errores en este apunte agradeceremos reportarlo a los autores, indicando la
version del mismo, tal como aparece en la portada.
[Document version: can-1.2.2. File version: $Id: chap00.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 3
Captulo 1
Preliminares
En estas notas se resume material de interes para las practicas pero no reemplazan ni lo dado en la
teora ni a los libros de texto basicos (ver Sec. 1.2). Se asume un conocimiento basico de matematicas,
fsica, programacion y de AED. De todas maneras, en los ejemplos se ha tratado de comentar todo
lo posible lo que se hace, en particular los detalles mas oscuros. Notar que uno puede darse una
idea de como hay que andar en bicicleta leyendo un libro de ciclismo o de mecanica pero sera mucho
mas instructivo si se dispone de alguna bicicleta y un terreno despejado donde practicar. Del mismo
modo, se puede tener una idea de como hacer calculo numerico en una computadora mirando alg un
texto del tema, pero es mucho mas instructivo si el lector hace las ejercitaciones propuestas con lapiz
y papel, lapiz y calculadora y dispone ademas de una computadora en donde programar. En el caso de
los ejercicios de programacion se incluyen demos pues en programacion tambien se aprende mirando
lo ya hecho e inclusive puede ser util reusar partes ya hechas. Sin embargo, los mismos no constituyen
un estado del arte pues se ha sacricado eciencia y brevedad para intentar una presentacion mas
clara (o menos oscura). Con respecto de la utilidad de aprender calculo numerico mediante lenguajes
interpretados tales como el Scilab y el Octave podemos decir que pueden resultar mas practicos en
algunas aplicaciones, o bien para hacer cuentas preliminares (o sea que a veces, tal vez, haya que
programar en lenguajes de alto nivel tales como en C++ o F95).
1.1. Software cientco y compiladores de C++/F95
Para las practicas seran de interes los softwares cientcos para computacion numerica intensiva y los
compiladores de C++/F95 indicados a continuacion:
1. Scilab[4] es un paquete de software cientco para computacion numerica intensiva de libre
distribucion tanto bajo Linux como en windows;
2. Octave[3] es otro paquete de software cientco para computacion numerica intensiva de libre
distribucion tanto bajo Linux como en windows;
3. compiladores g++ (para C++) y g95 (para F95): el primero es clasico que ya viene preinstalado
en casi todos los paquetes de distribucion del Linux [17], mientras que el restante es de reciente
disponibilidad en internet [10];
4
Captulo 1. Preliminares
Seccion 1.2. Un desglose de la bibliografa
4. compiladores KAI-Intel[11]: C++/OMP y F95/OMP, de libre distribucion (licencia tipo GLP)
unicamente bajo Linux.
En la Practica basicamente se emplearan los paquetes de software cientco Scilab y Octave y,
ocasionalmente, programas en C++/F95.
1.2. Un desglose de la bibliografa
Libros de texto basicos para el curso (en espa nol): Burden-Faires[20]; Kincaid-Cheney[8];
Otros libros de texto posibles. Para todos los temas (en ingles): Conte-de Boor[21], Homan[14],
Shampine-Allen-Pruess[16]. Para algunos temas: De la Fuente OConnor[15], Carnahan [2] et al.
(en espa nol), Higham[18], Rice-Do[19] (en ingles);
Libros de texto quizas algo mas avanzados (en ingles): Quarteroni-Sacco-Saleri[1], Stoer-
Bulirsch[13], Zarowski[5];
Libros con algoritmos numericos (en ingles): Yang[7], Engeln-Uhlig[12], Press[22] et al..
1.3. Convenciones en la notacion
Los archivos de ejecucion de comandos por lotes y las funciones en los paquetes de software cientco
libre tienen las extensiones: *.sci en Scilab y *.m en Octave (para mayores detalles hay que mirar
los manuales y tutorials de cada uno).
1.4. Consignas para los ejercicios
Hacer todos los desarrollos matematicos y algoritmos pedidos;
Contestar todas las preguntas y justicarlas;
Implementar y testear todos los programas pedidos (si se pide un programa no basta un pseudo-
codigo);
Eventualmente incluir pruebas de escritorio para justicar los resultados obtenidos por los pro-
gramas (en especial, cuando fallan);
Algunos ejercicios ya estan desarrollados (en forma completa o parcial): tambien hay que estu-
diarlos y sirven como modelos para otros ejercicios.
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 5
Captulo 1. Preliminares
Seccion 1.4. Consignas para los ejercicios
Acronimo Signicado
AED Algoritmos y Estructuras de Datos
EDO Ecuacion Diferencial Ordinaria (= ODE)
ENLH Ecuacion No-Lineal Homogenea
IEC International Electronical Commission
IEEE Institute of Electrical and Electronics Engineering
JOR Jacobi Over-Relaxation
GPL General Public license
GTP Gua de Trabajos Practicos
MCI Metodo de los Coecientes Indeterminados
ODE Ordinary Dierential Equation
PVC Problema de Valores de Contorno
PVI Problema de Valor Inicial
SEL Sistema de Ecuaciones Lineales
SENL Sistema de Ecuaciones No Lineales
SENLH Sistema de Ecuaciones No Lineales Homogeneas
SOR Successive Over-Relaxation
CG Conjugate-Gradient
GMRes Generalized minimum residual method
Abreviatura Signicado
i.e. es decir (esto es), del latn id est
e.g. por ejemplo, del latn exempli gratia
Tabla 1.1: Acronimos y abreviaturas empleados.
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 6
Captulo 2
GTP 1. Introduccion a calculo
numerico
2.1. Temario
representacion de n umeros en diferentes bases
sistemas de punto otante normalizado F(, t, e
min
, e
max
)
el de una computadora
perdida de la propiedad asociativa en F(, t, e
min
, e
max
)
errores de propagacion y n umeros de condicion
recursion estable hacia atras o hacia adelante
inestabilidad numerica
2.2. Ejercicios
1. [representacion de n umeros en diferentes bases]. Completar la Tabla 2.1, convirtiendo los n umeros
dados a las bases indicadas:
base 2 base 3 base 8 base 10 base 16
1/10
1/3
11010111.11
2AC5.D
127.4
12121.1
Tabla 2.1: N umeros expresados en diferentes bases.
Ayuda: recordatorio mediante los siguientes ejemplos:
7
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
a) [conversion de un n umero a base decimal usando la denicion]. Teniendo en cuenta que
(724.5)
10
= 7 10
2
+ 2 10
1
+ 5 10
0
+ 5 10
1
entonces
(312.4)
5
= 3 5
2
+ 1 5
1
+ 2 5
0
+ 4 5
1
= (82.8)
10
(110101.11)
2
= 1 2
5
+ 1 2
4
+ 1 2
2
+ 1 2
0
+ 1 2
1
+ 1 2
2
= (53.75)
10
(2.1)
b) [conversion de un n umero sin parte fraccionaria]. Para expresar (153)
10
en (...)
8
podemos
hacer
153/8 = 19 + 1/8 digito menos signicativo
19/8 = 2 + 3/8
2/8 = 0 + 2/8
(2.2)
entonces (153)
10
= (231)
8
.
c) [conversion de un n umero sin parte fraccionaria]. Para expresar (41)
10
en (...)
2
hacemos
41/2 = 20 + 1/2 digito menos signicativo
20/2 = 10 + 0/2
10/2 = 5 + 0/2
5/2 = 2 + 1/2
2/2 = 1 + 0/2
1/2 = 0 + 1/2
(2.3)
entonces (41)
10
= (101001)
2
= 2
0
+ 2
3
+ 2
5
= 1 + 8 + 32 (como vericacion).
d) [conversion de un n umero fraccionario]. Para expresar (0.6875)
10
en (...)
2
hacemos
0.6875 2 = 1.375 entero 1, digito mas signicativo
0.3750 2 = 0.750 entero 0
0.7500 2 = 1.500 entero 1
0.5000 2 = 1.000 entero 1
(2.4)
entonces (0.6875)
10
= (0.1011)
2
.
e) [conversion de un n umero fraccionario]. Para expresar (0.513)
10
en (...)
8
hacemos
0.513 8 = 4.104 entero 4, digito mas signicativo
0.104 8 = 0.832 entero 0
0.832 8 = 6.656 entero 6
0.656 8 = 5.248 entero 5
0.248 8 = 1.984 entero 1
...
(2.5)
entonces (0.513)
10
= (0.40651)
8
.
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 8
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
f ) [conversion de un n umero con parte entera y parte fraccionaria]. Se procede por separado
con la parte entera y con la parte fraccionaria, sumando luego los resultados. En base a los
items anteriores tendremos (153.513)
10
= (231.40651)
8
.
2. [sistema de punto otante normalizado F]. Considere el sistema de punto otante normalizado
F = F(, t, e
min
, e
max
), donde es la base del sistema numerico, t es el n umero de digitos
signicativos y e
min
, e
max
son los exponentes mnimo y maximo, respectivamente. Considere los
sistemas F denidos por
i) = 2, t = 3, e
min
= 1, e
max
= 2;
ii) = 2, t = 3, e
min
= 1, e
max
= 5;
entonces, para cada uno,
a) calcular (con lapiz y papel) cada uno de los n umeros positivos de punto otante normalizado
x
i
posibles. Agr upelos por intervalos crecientes;
b) gracar en la recta real cada uno de los n umeros obtenidos;
c) c uales son los n umeros naturales x que tienen representacion en F ?
d) c uantos n umeros de punto otante positivos hay en F ?
e) c uales son los n umeros de punto otante positivos mnimo x
min
y maximo x
max
?
f ) como es la distribucion (o densidad) de los n umeros de punto otante x
i
en el intervalo
[x
min
, x
max
] ?
g) por otra parte, cuantos n umeros reales existen en el intervalo [0,1] y como es su densidad ?
h) puede F representar en forma exacta a todos los n umeros reales que hay en el intervalo
[x
min
, x
max
] ?
i) pueden los sistemas de punto otante normalizado F representar a todos los n umeros reales
que existen en el intervalo [x
min
, x
max
] ?
Solucion del inciso (ii). Recordar que las mantisas normalizadas son aquellas de la forma
0.d
1
d
2
d
3
, ...d
t
, con d
1
= 0. En el sistema F(2, 3, 1, 5), las unicas mantisas normalizadas po-
sibles son
m = (0.1d
2
d
3
)
2
m
1
= (0.100)
2
= (0.500)
10
m
2
= (0.101)
2
= (0.625)
10
m
3
= (0.110)
2
= (0.750)
10
m
4
= (0.111)
2
= (0.875)
10
(2.6)
Despues de reexionar un poco con los n umeros dados en la Ec. 2.6, se puede vericar que cada
uno se obtiene haciendo
m = [m
min
: m : m
max
] (2.7)
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 9
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
donde
m
min
= (0.100...00)

=
1
;
m = (0.000...01)

=
t
;
m
max
= (0.111...11)

=
t

k=1

k
;
z = [m[ =
t1
(2.8)
donde [m[ es la longitud del arreglo m de las mantisas normalizadas.
[n umero de mantisas normalizadas posibles]. Notar que se tienen 1 opciones para llenar
el primer casillero de las mantisas normalizadas posibles (como este no puede ser nulo
perdemos una opcion), mientras que para los demas casilleros (el 2,3,..., hasta llegar al
t) disponemos de opciones (pues permitimos incluir el 0). Luego, el n umero total de
posibilidades es z = (1)
t1
. Cuando = 2 (base binaria) entonces se reduce a z = 2
t1
;
Para obtener cada uno de los n umeros positivos de punto otante en el sistema normalizado
F, hay que multiplicar cada mantisa normalizada m
k
, con 1 k 4, por cada uno de los
exponentes
t
disponibles, con 1 t 5, lo cual lo resumimos en la Tabla 2.2 y los
mostramos en la en la Fig. 2.1.
e -1 0 1 2 3 4 5
x 0.2500 0.500 1.00 2.0 4 8 16
0.3125 0.625 1.25 2.5 5 10 20
0.3750 0.750 1.50 3.0 6 12 24
0.4375 0.875 1.75 3.5 7 14 28
x 0.0625 0.125 0.25 0.5 1 2 4

2
Tabla 2.2: Los unicos n umeros x positivos de punto otante normalizados que son posibles en el sistema
F( = 2, t = 3, e
min
= 1, e
max
= 5) (expresados en base 10), donde x es la separacion (constante)
en la columna de cada exponente e.
Finalmente, otra vez se puede vericar que cada una de las columnas se obtiene haciendo
[m
min
: m : m
max
]
e
; para e
min
e e
max
. (2.9)
Notar que:
La separacion x entre los n umeros x en cada columna t va aumentando como una potencia
creciente de y esta dada por x = m
e
=
t+e
;
La densidad de los n umeros x es inversamente proporcional con la separacion x (i.e.,
a menor separacion, mayor es la densidad). Se observa que la densidad es notablemente
muy variable: crece hacia el menor n umero representable x
min
y disminuye hacia el mayor
n umero representable x
max
;
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 10
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
x
0 5 10 15 20 25 30
Figura 2.1: Los unicos n umeros positivos x en el sistema de punto otante F( = 2, t = 3, e
min
=
1, e
max
= 5).
los unicos n umeros naturales representables en F( = 2, t = 3, e
min
= 1, e
max
= 5) son
los siguientes (en este caso notar que falta, entre otros, el 9):
[1, 2, 3, 4, 5, 6, 7, 8], i.e. [1, 2, ...,
t
], con separacion =
0
= 1
[10, 12, 14, 16], con separacion =
1
= 2;
[16, 20, 24, 28], con separacion =
2
= 4.
3. [sistema de punto otante normalizado F].
a) Implemente una function [A,x] = flotante (beta,t,emin,emax) que calcule y de-
vuelva en los arreglos A, x cada uno de los n umeros de punto otante normalizados de
los siguientes sistemas F(, t, e
min
, e
max
): F
1
(2, 2, 1, 1); F
2
(2, 2, 2, 2); F
3
(2, 3, 2, 2) y
F
4
(2, 3, 3, 3).
b) gracarlos en la recta real;
c) Comparando sus resultados: c ual es el efecto de incrementar la exactitud t ? c ual es el
efecto de incrementar el exponente e ?
Una solucion: la siguiente funcion implementa las Ecs. 2.7-2.9:
1 function [A,x] = flotante (beta,t,emin,emax)
2 // genera todas las mantisas normalizadas posibles
3 dmin = beta(-1) // mantisa normalizada minima
4 delta = beta(-t) // incremento en la mantisa
5 h = beta(t-1) // numero de mantisas normalizadas posibles
6 mantisa = zeros (1,h);
7 for k = 1 : h
8 mantisa (k) = dmin + (k-1) * delta;
9 end
10 // cada fila de A es cada uno de los intervalos posibles
11 n = emax - emin + 1 // numero de intervalos
12 A = zeros (n,h);
13 k = 1 ;
14 for e = emin:emax
15 A (k,:) = mantisa .* betae ;
16 k = k + 1 ;
17 end
18 // convierte la matriz A al arreglo x
19 x = A;
20 x = x (:);
21 endfunction
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 11
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
4. [el de una computadora]. Escriba y testee programas que obtenga el de su computadora sin
el uso de funciones intrnsecas. Ayuda: el de una computadora es aquel = 0 pero tal que
1 + = 1.
Solucion en C++ (sin el uso de funciones intrnsecas):
1 #include <iostream>
2 using namespace std ;
3 void eps_maq () {
4 double eps = 1.0, tmp;
5 tmp = eps + 1 ;
6 while (tmp != 1) {
7 eps = eps / 2 ;
8 tmp = eps + 1 ;
9 } // end
10 eps = 2 * eps ;
11 cout << "epsilon de la maquina ; eps = " << eps << endl ;
12 }
13 int main() {
14 eps_maq ();
15 return 0;
16 }
Solucion en F95 (sin el uso de funciones intrnsecas):
1 program beta3
2 integer, parameter :: idp = kind (1.0d0)
3 real (idp) :: eps, tmp
4 eps = 1.0
5 tmp = eps + 1
6 do while (tmp .ne. 1)
7 eps = eps / 2
8 tmp = eps + 1
9 enddo
10 eps = 2 * eps
11 write (*,*)"epsilon de la maquina ; eps = ", eps
12 end program
5. [perdida de la propiedad asociativa en F]. Escriba un programa que a t = 3 digitos signicativos,
simule la operacion z = 10
3
+1 1 haciendo (i) z
1
= (10
3
+1) 1 y (ii) z
2
= 10
3
+(1 1).
En base a sus resultados: se cumple siempre la propiedad asociativa en la aritmetica de punto
otante del sistema F ?
Una solucion es la funcion:
1 // devuelve numero "x" redondeado a "t" digitos
2 function [x] = float (x,t)
3 x = round (x*10t)/10t;
4 endfunction
e invocarla haciendo
1 // verifica si la propiedad asociativa se cumple en F (t)
2 t = 3 // precision seleccionada
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 12
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
3 x = 1e-3
4 z1 = float (x+1,t) - float (1,t)
5 z2 = float (x,t) + float (1-1,t)
6 if (z1 == z2)
7 disp (se cumple la propiedad asociativa de la suma)
8 else
9 disp (no se cumple la propiedad asociativa de la suma)
10 end
11 return
6. [errores de propagacion y n umeros de condicion]. El error de propagacion relativo
y
de la funcion
escalar y = f(x
1
, x
2
, ..., x
n
) = f(x) en las n variables x = (x
1
, x
2
, ..., x
n
)
T
, supuesta continua y
sucientemente diferenciable, se puede evaluar con

y
=
n

i=1

i
; (2.10)
donde

i
=
x
i
f
f
x
i
; con i = 1, 2, ..., n; (2.11)
son los factores de amplicacion (o n umeros de condicion) cuando se producen los errores de
entrada
i
, con f(x), x
i
= 0. Entonces, calcular los errores de propagacion relativos para las
siguientes funciones
a) suma algebraica y = f(x
1
, x
2
) = x
1
+x
2
;
b) producto y = f(x
1
, x
2
) = x
1
x
2
;
c) cociente y = f(x
1
, x
2
) = x
1
/x
2
, con x
2
= 0;
d) potencia y = f(x
1
) = x
p
1
, con x
1
> 0 y p > 0;
Solucion del primer inciso: sea y = f(x
1
, x
2
) = x
1
+x
2
, entonces f/x
i
= 1, por lo que

y
=
x
1
x
1
+x
2

1
+
x
2
x
1
+x
2

2
; (2.12)
Si las entradas x
1
, x
2
= 0 son del mismo signo, entonces la suma esta bien condicionada
pues 0
i
< 1 para i = 1, 2, ya que

i
=
x
i
x
1
+x
2
< 1 siempre; (2.13)
En cambio, si las entradas x
1
y x
2
son de signo opuesto y aproximadamente del mismo
valor absoluto [x
1
[ [x
2
[, entonces el resultado estara mal condicionado. Esto a veces se lo
denomina como error catastroco de cancelacion;
Notar entonces que la suma de variables positivas en un algoritmo esta bien condicionada
pero, en general, su resta no, por lo que los algoritmos tienen que ser dise nados para evitar
el error catastroco de cancelacion (lo que no signica evitar la resta ...).
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 13
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
7. [recursion estable hacia atras]. Calcular la integral
I
n
=

1
0
x
n
x + 5
dx ; n = 0, 1, ..., N ; (2.14)
con x = 5, mediante un procedimiento recursivo estable.
Solucion: empezamos con la identidad
x
n1
x
n1

x + 5
x + 5

=
x
n
+ 5x
n1
x + 5
=

x
n
x + 5

+ 5

x
n1
x + 5

; (2.15)
es decir,
x
n1
=

x
n
x + 5

+ 5

x
n1
x + 5

. (2.16)
Dado que
I
n1
=

1
0
x
n1
dx =
1
n
si n > 0; (2.17)
integrando termino a termino la Ec. 2.16 se obtiene la relacion recursiva
I
n
+ 5I
n1
=
1
n
; para n = 0, 1, ..., N; (2.18)
donde lo unico que falta conocer es el paso base
I
0
=

1
0
1
x + 5
dx =

ln(x + 5)

1
0
= ln 6 ln 5 = ln(6/5) . (2.19)
Para un N > 0 dado, en principio, el orden obvio sera ir hacia adelante (empezar con n = 0
hasta llegar a N), i.e.
I
n
=

ln(6/5) para n = 0;
1 5 ln(6/5) para n = 1;
1/n 5I
n1
para n = 2, 3, ..., N.
(2.20)
Pero cuando se trabaja con precision nita quizas haya que proceder en forma diferente. Por
ejemplo, obtengamos I
7
a 6 decimales en forma inocente. Usando sucesivamente la Ec. 2.20
tendremos
I
1
= 1 5I
0
= 1 0.911610 = 0.088390
I
2
= 1/2 5I
1
= 0.500000 0.441950 = 0.058050
I
3
= 1/3 5I
2
= 0.333333 0.290250 = 0.043083
I
4
= 1/4 5I
3
= 0.250000 0.215415 = 0.034585
I
5
= 1/5 5I
4
= 0.200000 0.172925 = 0.027075
I
6
= 1/6 5I
5
= 0.166667 0.135375 = 0.031292
I
7
= 1/7 5I
6
= 0.142857 0.156460 = 0.013603 .
(2.21)
Se puede observar que:
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 14
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
Este calculo conduce erroneamente a que I
6
> I
5
y I
7
< 0, lo cual es absurdo. Responder:
por que es absurdo ? Ayuda: observar las expresiones analticas de las integrales;
El remedo tpico de aumentar la precision solo retrasa la aparicion del problema. Consigna:
experimente aumentando a t = 9 en el script dado mas adelante;
El absurdo lo causa una propagacion amplicada del error de redondeo inicial 0.4410
6
cometido en el calculo de I
0
, el cual se lo multiplica por 5 (factor mayor que 1) en el calculo
de I
1
, lo que da un error de 5 en I
2
. A continuacion, este produce otro error 5
2
en I
2
y
as siguiendo hasta llegar a un error acumulado de 5
7
= 0.034375 en I
7
, que resulta ser del
mismo orden que el verdadero valor de I
7
;
El problema no es la propagacion del error en si (que en precision nita no se puede evitar)
sino como se propaga (aumentando o disminuyendo, en forma leve o no). En este caso,
con esta eleccion de las formulas a programar, el mismo se va amplicando en cada itera-
cion hasta dar un error catastroco (breakdown), mal que se lo conoce como inestabilidad
numerica;
Dado que el analisis de la propagacion del error de redondeo en la version elegida para el
calculo de I
8
muestra que el mismo se va multiplicando por un factor mayor que uno en
cada iteracion, es natural reformular el algoritmo en forma tal que el error de redondeo
disminuya en lugar de aumentar en cada iteracion. Para eso, en este caso intentamos con
la recurrencia en sentido inverso, i.e.
I
n
=
1
5

1
n + 1
I
n+1

; para n = M 1, M 2, ..., n, con M > n y I


N
dado. (2.22)
Ahora los errores se dividen por 5 en cada iteracion (o sea que es mejor), pero tal reformu-
lacion exige conocer I
N
. Como I
n
disminuye monotonamente cuando n aumenta, se puede
intentar con imponer I
M+1
= I
M
para alg un M n, entonces
I
M+1
+ 5I
M
=
1
M + 1
;
si I
M+1
I
M
entonces I
M
+ 5I
M

1
M + 1
;
I
M

1
6(M + 1)
.
(2.23)
y queda
I
n
=

1/(6(M + 1)) para n = M;


[1/(n + 1) 5I
n
]/5 para n = (M 1), (M 2), ..., n.
(2.24)
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 15
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
Por ejemplo, otra vez para n = 7 y a 6 decimales, probemos con M = 12 y tendremos
I
12
= 1/(6 12) = 0.012821 ;
I
11
= (1/12 I
12
)/5 = 0.014102 ;
I
10
= (1/11 I
11
)/5 = 0.015361 ;
I
9
= (1/10 I
10
)/5 = 0.016928 ;
I
8
= (1/9 I
9
)/5 = 0.018837 ;
I
7
= (1/8 I
8
)/5 = 0.021233 ;
(2.25)
con lo que se obtiene una muy buena aproximacion para I
7
.
todo lo anterior se puede simular implementando las Ecs. 2.20-2.24 en el archivo de funciones
f flotante.sci dado por
1 // representacion redondeada a "t" decimales de un numero "x"
2 function [x] = float (x,t)
3 x = round (x*10t)/10t;
4 endfunction
5 // integral definida I_n por recursion desde n=0
6 function [b] = integra_1 (n,t)
7 if (n < 2),
8 a = float (log(6/5),t);
9 b = float (1,t) - float (5*a, t);
10 else
11 a = float (integra_1 (n-1,t),t);
12 b = float (1/n,t) - float (5*a, t);
13 end
14 endfunction
15 // integral definida I_n por recursion desde n=M
16 function [c] = integra_2 (k,n,M,t)
17 if (k == M),
18 H = M + 1 ; c = float (1/(6*H),t)
19 else
20 a = float (integra_2 (k+1,n,M,t),t);
21 b = float (1/(k+1),t) - float (a, t);
22 c = float (b/5,t);
23 end
24 endfunction
e invocarlas con
1 getf ("f_flotante.sci","c")
2 n = 7 // grado de la integral deseada
3 t = 6 // precision
4 // integral definida hacia adelante
5 x = zeros (n,1);
6 for k = 1:n
7 x (k) = integra_1 (k,t);
8 end
9 // integral definida hacia atras
10 M = 12 // truco para ir al reves
11 k = n // donde empieza
12 h = M - n + 1
13 y = zeros (h,1);
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 16
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
14 j = h ;
15 for k = n : M
16 y (j) = integra_2 (k,n,M,t);
17 j = j - 1;
18 end
8. [recursion estable hacia adelante]. Es un contra-ejemplo del caso anterior (i.e. no siempre se
obtiene un computo estable cuando se va en reversa). Tarea: calcular la integral
I
n
=

1
0
x
n
4x + 1
dx ; n = 0, 1, ..., N ; (2.26)
con x = 1/4, planteando los esquemas recursivos: (i) hacia adelante; y (ii) hacia atras. Por
que en este caso es estable la recursion hacia adelante ?
9. [inestabilidad numerica]. Desarrolle una formula estable para calcular las soluciones de la ecua-
cion cuadratica ax
2
+bx +c = 0 suponiendo que b
2
4ac y programela.
10. [inestabilidad numerica]. Considere la funcion f(x) = (1 cos x)/x
2
y la identidad cos(x) =
1 2 sin
2
(x/2).
a) Justique que, analticamente debe vericarse que f(x) no es singular para x 0 y que su
rango es 0 f(x) 1/2 ;
b) Trabajando con t = 10, encuentre el valor f(x) cuando x = 1.2 10
5
. Por que el valor
hallado es inaceptable ?
c) Reformule la expresion de la funcion f(x) para obtener un valor aceptable.
Solucion (parcial):
a) Usando la identidad dada la funcion f(x) es equivalente a
f(x) =
1
2

sin(x/2)
x/2

2
; (2.27)
la cual es el seno cardinal, la cual f(x) 1/2 para x 0. Tarea: demostrar esta
armacion.
b) a 10 dgitos decimales se tiene u = cos(x) = 0.9999999999, por lo que v = (1 u)/x
2
=
0.694444501903035. Como este valor queda fuera del rango 0 f(x) 1/2, este resultado
es absurdo;
c) usando ahora la expresion dada por la Ec. 2.27, y aproximando sin(x/2) con 10 dgitos
signicativos, el resultado es ahora f(x) = 0.4999833335, el cual es aceptable.
11. [inestabilidad numerica]. Considere el desarrollo de McLaurin
e
x
=

k=0
(x)
k
k!
; (2.28)
[Document version: can-1.2.2. File version: $Id: chap01.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 17
Captulo 2. GTP 1. Introducci on a c alculo num erico
Seccion 2.2. Ejercicios
a) usando una codicacion inocente intente calcular el valor e
20
usando el desarrollo dado
por la Ec. 2.28;
b) en caso de discrepancias, justifquelas y re-formule una codicacion tal que de un valor
aceptable.
12. [inestabilidad numerica]. Como es sabido de los cursos de Matematica

k=1
1
k
2
=

2
6
; (2.29)
a) Suponga que no dispone de este resultado, entonces escriba un programa inocente que
calcule dicha sumatoria;
b) Dado que interesa calcular con 9 dgitos signicativos, re-formule su programa inocente a
n de obtenerlos.
[Document version: can-1.2.2. File version: $Id: chap02.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 18
Captulo 3
GTP 2. Metodos directos en sistemas
de ecuaciones lineales
3.1. Temario
matriz regular o singular; matriz unitaria; matriz elemental
matriz densa o rala, matriz banda, anchos de banda y relleno
factorizaciones LU de Doolittle, de Crout y de Cholesky
existencia de la factorizacion LU
eliminacion gausiana
n umero de operaciones en la eliminaci on gausiana
matrices L
i
elementales
Gauss-kij, Gauss-kji y las factorizaciones de Doolittle y de Crout
soluciones hacia adelante y hacia atras
factorizacion de Cholesky
pivoteo total y parcial
factorizacion LU en matrices banda
renumeracion de Cuthill-McKeee para matrices ralas
3.2. Ejercicios
1. [matriz regular o singular; matriz unitaria; matriz elemental].
a) Dena matriz regular, matriz singular, matriz unitaria y matriz elemental;
b) De un ejemplo de cada una;
c) Clasique cada una de las siguientes matrices: B = [ 1 2 ; 1 2 ], C = [ 0 1 ; 1 0 ],
D = [ 0 1 ; 0 2 ], E = [ 1 0 ; 2 1 ].
19
Captulo 3. GTP 2. M etodos directos en sistemas de ecuaciones lineales
Seccion 3.2. Ejercicios
2. [matriz densa o rala, anchos de banda y relleno]. Dena matriz densa, matriz rala, matriz banda,
ancho de banda, ancho de banda superior, ancho de banda inferior y relleno. Que implicancias
computacionales tienen las matrices densas y ralas en los algoritmos que involucren manipular
matrices ?
3. [factorizaciones LU de Doolittle, de Crout y de Cholesky]. Deduzca el algebra involucrado en las
factorizaciones de Doolittle, de Crout y de Cholesky.
4. [existencia de la factorizacion LU]. Indicar si existe la factorizacion LU de cada una de las
matrices dadas en el ejercicio 1 y, en caso de que existan, indique si son unicas.
5. [eliminacion gausiana]. Utilice la eliminacion de Gauss usual para resolver el SEL Ax = b,
cuando
A =

5 4 1 0
4 6 4 1
1 4 6 4
0 1 4 5

; x =

x
1
x
2
x
3
x
4

; b =

0
1
0
0

; (3.1)
6. [n umero de operaciones en la eliminacion gausiana]. Un SEL se puede resolver por diferentes
metodos, e.g. por eliminacion gausiana o por uso de la regla de Cramer. Sabiendo que los n umeros
de operaciones de punto otante involucrados en cada caso estan dados en la Tabla 3.1,
a) calcular los n umeros de operaciones involucrados en cada caso cuando n = 10, 100;
b) c ual es el orden de operaciones en cada caso ?
c) en cuanto a menor n umero de operaciones, c ual de los dos metodos es el mas conveniente ?
metodo de resolucion n umero de operaciones
Gauss n
G
=
2
3
n
3
+
5
6
n
2

7
6
Cramer n
C
= n + (n + 1)! + (n + 2)!
Tabla 3.1: N umero de operaciones de punto otante involucrado en la eliminacion gausiana y por regla
de Cramer de un SEL con n incognitas.
7. [matrices L
i
elementales]. El proceso de eliminacion gausiana usual, llevado a cabo para re-
solver la Ec. 3.1, produce el sistema equivalente Ly = b y Ux = y, en donde las matrices U y
L son triangulares superior e inferior, respectivamente. Tareas:
a) obtener tal sistema equivalente e identicar la matriz triangular superior U;
b) mostrar que cada etapa k de la eliminacion gausiana, con k = 1, 2, ..., (n 1) equivale a la
accion de una cierta matriz elemental

L
1
k
. Escriba cada una de estas;
c) mostrar que el producto de todas las matrices elementales da lugar a una matriz triangular
inferior unitaria

L
1
;
d) hallar las inversas de cada una de las matrices elementales

L
1
k
.
[Document version: can-1.2.2. File version: $Id: chap02.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 20
Captulo 3. GTP 2. M etodos directos en sistemas de ecuaciones lineales
Seccion 3.2. Ejercicios
Ref.: Bathe-Wilson [9]
8. [Gauss-kij, Gauss-kji y las factorizaciones de Doolittle y de Crout]. Considere la eliminacion
gausiana para el SEL Ax = b dado por

2 1 1 4
2 3 11 1
4 1 17/2 19/4
4 1 11/2 7/4

x
1
x
2
x
3
x
4

5
4
3
2

; (3.2)
Tareas:
a) implemente una function [L,U] = lu doolittle (A,b) que devuelva la factorizacion de
Doolittle A = L
1
U (sin pivoteo) a partir de la eliminacion gausiana en el orden kij, donde
L
1
es una matriz triangular inferior con diagonal unitaria y U es triangular superior;
b) implemente una function [L,U] = lu crout (A,b) que devuelva la factorizacion de
Crout A = LU
1
(sin pivoteo) a partir de la eliminacion gausiana en el orden kji, don-
de U
1
es una matriz triangular superior con diagonal unitaria y L es triangular inferior;
Ayuda. Tenga en cuenta que:
la eliminacion gausiana en los ordenamientos kij y kji, donde los ndices k, i, j designan pi-
vote, la y columna, respectivamente, se reeren simplemente al orden de los lazos anidados
en la triangularizacion;
se puede demostrar que el orden kij (Gauss usual) reproduce la factorizacion de Doolittle
mientras que el orden kji la de Crout (e.g. ver Quarteroni [1] et al.);
la eliminacion gausiana en el orden kij esta dada por los lazos
1 for k = 1 : (n - 1),
2 for i = (k + 1) : n,
3 A (i,k) = A (i,k) / A (k,k); // column pivot
4 for j = (k + 1) : n,
5 A (i,j) = A (i,j) - A (i,k) * A (k,j) ; // reduces A
6 end // j
7 end // i
8 end // k
donde se re-escriben en la misma A las matrices L
1
y U;
mientras que la eliminacion gausiana en el orden kji es
1 for k = 1 : (n - 1)
2 for j = (k + 1) : n,
3 A (k,j) = A (k,j) / A (k,k); // pivot row
4 for i = (k + 1) : n,
5 A (i,j) = A (i,j) - A (i,k) * A (k,j) ; // reduces A
6 end // j
7 end // i
8 end // k
donde otra vez se re-escriben en la misma A las matrices L y U
1
.
[Document version: can-1.2.2. File version: $Id: chap02.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 21
Captulo 3. GTP 2. M etodos directos en sistemas de ecuaciones lineales
Seccion 3.2. Ejercicios
Por ejemplo, considere la eliminacion gausiana sin pivotaje en el SEL Ax = b dado por
A =

8 4 1
2 6 2
2 4 8

x
1
x
2
x
3

1
2
3

. (3.3)
Entonces,
usando el orden kij y empezando con la Ec. 3.3 tendremos, cuando k = 1,
A

8 4 1
0.25 5 1.75
0.25 3 7.75

; (3.4)
y para k = 2
A

8 4 1
0.25 5 1.75
0.25 0.6 6.70

; (3.5)
notar que en la Ec. 3.5 estan implcitas las matrices
U =

8 4 1
0 5 1.75
0 0 6.7

; (3.6)
y
L
1
=

1 0 0
0.25 1 0
0.25 0.6 1

. (3.7)
Usando ahora el orden kji y empezando con la Ec. 3.3 tendremos, cuando k = 1,
A

8 0.5 0.125
2 5 1.75
2 3 7.75

; (3.8)
y para k = 2
A

8 0.5 0.125
2 5 0.35
2 3 6.70

; (3.9)
ahora, en la Ec. 3.9, estan implcitas las matrices
L =

8 0 0
2 5 0
2 3 6.7

; (3.10)
[Document version: can-1.2.2. File version: $Id: chap02.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 22
Captulo 3. GTP 2. M etodos directos en sistemas de ecuaciones lineales
Seccion 3.2. Ejercicios
a
b c
d
e
f
g
h
i
j
Figura 3.1: Grafo dato de una matriz simetrica rala para la renumeracion en reversa de Cuthill-McKee.
y
U
1
=

1 0.5 0.125
0 1 0.350
0 0 1

. (3.11)
9. [soluciones hacia adelante y hacia atras]. Considere las factorizaciones A = L
1
U (Doolitte) y
A = LU
1
(Crout) con el proposito de resolver el SEL Ax = b dado por la Ec. 3.3. Tareas:
a) Implemente una function [y] = forward sol (L,b) que resuelva por sustitucion hacia
adelante el SEL Ly = b, apta tanto para Doolittle como para Crout;
b) Implemente una function [x] = backward sol (U,y) que resuelva por sustitucion hacia
atras el SEL Ux = y, apta tanto para Doolittle como para Crout;
Restriccion: estas funciones deben ser capaces de tomar como dato las matrices LU de ambos
metodos. Pongalas a prueba resolviendo las Ecs. 3.2-3.3.
10. [factorizacion de Cholesky]. Implemente una function [C] = lu cholesky (A) que devuelva
la factorizacion de Cholesky (sin pivoteo) de una matriz regular y simetrica A. Que ocurre si,
aunque siendo simetrica, la matriz A no fuera denida positiva ? Es posible a un aplicar la
factorizacion de Cholesky en este ultimo caso ?
11. [pivoteo total y parcial].
a) Dena pivoteo total y pivoteo parcial. C ual es mas facil de programar ?
b) Por que es necesario preveer la necesidad de pivoteo en la factorizacion LU ?
c) [opcional]. Implemente una function [A] = gauss kij (A) que efectue la eliminacion
gausiana en el ordenamiento kij y con pivoteo parcial de una matriz regular A.
12. [factorizacion LU en matrices banda]. Implemente una funcion function [F] = lu band
(B,p,q) que devuelva la factorizacion LU sin pivoteo de una matriz regular A con estructu-
ra banda y de n n, pero guardada como la matriz rectangular B, de n (p + q) (un formato
economico para ahorrar memoria RAM), donde p, q son los anchos de banda inferior y superior,
respectivamente. Ref.: Quarteroni [1] et al.
[Document version: can-1.2.2. File version: $Id: chap02.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 23
Captulo 3. GTP 2. M etodos directos en sistemas de ecuaciones lineales
Seccion 3.2. Ejercicios
a
b
c
d
e
f
g
h
i
j
k
l
Figura 3.2: Grafo dato de una matriz simetrica rala para la renumeracion en reversa de Cuthill-McKee.
13. [renumeracion de Cuthill-McKeee para matrices ralas]. Considere los grafos dados en las Figs.
3.1-3.2. Ref.: Quarteroni [1] et al.
a) Dibuje el patron de elementos no-nulos de la matriz de incidencia asociada al grafo;
b) Haga una tabla indicando el grado de cada vertice (i.e. el n umero de aristas que inciden en
cada uno);
c) Re-ordene el grafo utilizando el algoritmo de Cuthill-McKeee con renumeracion decreciente
(en reversa) para reducir el ancho de banda de la matriz de incidencia. Dibuje la matriz
re-ordenada y el relleno que se producira.
[Document version: can-1.2.2. File version: $Id: chap03.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 24
Captulo 4
GTP3. Metodos iterativos en sistemas
de ecuaciones lineales
4.1. Temario
normas 1, 2 e , radio espectral y n umero de condicion
autovalores y autovectores de una matriz tridiagonal
iteracion de Richardson
iteracion de Jacobi
iteracion de Gauss-Seidel
gradiente y mnimo de una funcion cuadratica
solucion iterativa de un SEL por CG
historia y tasa de convergencia
algoritmo de Arnoldi
4.2. Ejercicios
1. [normas 1, 2 e , radio espectral y n umero de condicion].
a) Dena las normas [[A[[

, [[A[[
1
y [[A[[
2
;
b) Dena el radio espectral (A);
c) Dena el n umero de condicion (A);
d) C ual es la relevancia de cada una de ellas en los metodos iterativos para resolver un SEL ?
e) Considere el SEL Ax = b, donde A = [ 1 2 ; 1 5 ]. Hallar las normas [[A[[

, [[A[[
1
,
[[A[[
2
, el radio espectral (A) y el n umero de condicion (A).
2. [autovalores y autovectores de una matriz tridiagonal]. Considere la matriz A =
tridiag(1, , 1), con R.
25
Captulo 4. GTP3. M etodos iterativos en sistemas de ecuaciones lineales
Seccion 4.2. Ejercicios
a) Vericar que tiene los autovalores
j
y los correspondientes autovectores q
j
dados por

j
= 2 cos (j)
= /(n + 1)
q
j
=

sin(1j) sin(2j) sin(3j) ... sin(nj)

T
;
(4.1)
con j = 1, 2, ..., n. Hagalo para n = 1, 2 a lapiz y papel;
b) Hagalo para n = [1 : 20] con un script que incluya una graca de los autovectores q y otra
graca de los autovalores = f(n). Como se comportan los autovalores a medida que
crece n ?
c) Como debe ser para que la matriz resulte denida positiva ?
3. [iteracion de Richardson]. Implemente una function [x,z] = richardson (A,b,eps) que de-
vuelva a una tolerancia la solucion aproximada x y la historia del residuo z, al resolver el SEL
As = b por iteracion de Richardson
x
(k+1)
i
= (
ij
A
ij
)x
(k)
j
+b
i
; i = 1, ..., n; (4.2)
donde z
k
= [[r
(k)
[[
2
es la norma l
2
del residuo r
(k)
= Ax
(k)
b,

ij
=

1 si i = j;
0 si i = j;
(4.3)
es la delta de Kronecker.
4. [iteracion de Jacobi]. Implemente una function [x,z] = jor (A,b,omega,eps) que devuelva
a una tolerancia la solucion aproximada x y la historia del residuo z al resolver el SEL As = b
por iteracion de Jacobi (JOR)
x
(k+1)
i
=

A
ii

b
i

i=0,i=j
A
ij
x
(k)
j

+ (1 )x
(k)
i
; i = 1, ..., n; (4.4)
donde z
k
= [[r
(k)
[[
2
es la norma l
2
del residuo r
(k)
= Ax
(k)
b, mientras que 0 < 1 es el
parametro de relajacion. Notar que este metodo es una generalizacion del metodo de Jacobi, el
cual es un caso especial que se obtiene haciendo = 1.
5. [iteracion de Gauss-Seidel]. Implemente una function [x,z] = sor (A,b,omega,eps) que de-
vuelva a una tolerancia , la solucion aproximada x y la historia del residuo z resolver el SEL
As = b por iteracion de Gauss-Seidel con relajacion (SOR)
x
(k+1)
i
=

a
ii

b
i

i1

i=0
A
ij
x
(k+1)
j

n

i=i+1
A
ij
x
(k)
j

+ (1 )x
(k)
i
; i = 1, ..., n; (4.5)
donde z
k
= [[r
(k)
[[
2
es la norma l
2
del residuo r
(k)
= Ax
(k)
b, mientras que > 1 es el
parametro de relajacion. Notar que si 0 < < 1, entonces se tiene sub-relajacion, mientras que
si = 1 entonces se reduce al metodo de Gauss-Seidel y, nalmente, cuando > 1 se tiene
sobre-relajacion.
[Document version: can-1.2.2. File version: $Id: chap03.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 26
Captulo 4. GTP3. M etodos iterativos en sistemas de ecuaciones lineales
Seccion 4.2. Ejercicios
6. [gradiente y mnimo de una funcion cuadratica].
a) Mostrar que si la matriz cuadrada regular A R
nn
es simetrica, entonces el gradiente
de la funcion cuadratica q(x) =
1
2
x

Ax x

b evaluado en x esta dado por q = Ax b.


Recuerde que el gradiente de una funcion g : R
n
R es el vector cuyas componentes son
g/x
i
, para i = 1, ..., n;
b) Mostrar que el valor mnimo de q(x) esta dado por q
min
=
1
2
b

A
1
b.
Solucion: Consideremos el escalar
q =
1
2
x

Ax x

b ; (4.6)
(vericar antes que esta expresion es un escalar !) donde la matriz A R
nn
asumimos que es
denida positiva, lo cual incluye que sea simetrica, i.e. A

= A, donde (...)

denota la traspuesta.
Antes de calcular q consideremos el ejemplo

a
11
a
12
a
21
a
22

x
1
x
2

a
11
x
1
+a
12
x
2
a
21
x
1
+a
22
x
2

; (4.7)
y formemos el escalar
=

x
1
x
2

a
11
a
12
a
21
a
22

x
1
x
2

= x
1
a
11
x
1
+x
1
a
12
x
2
+x
2
a
21
x
1
+x
2
a
22
x
2
; (4.8)
calculando las derivadas parciales

x
1
= 2a
11
x
1
+a
12
x
2
+a
21
x
2
= 2(a
11
x
1
+a
12
x
2
) (si a
12
= a
21
);

x
2
= 2a
22
x
2
+a
12
x
1
+a
21
x
1
= 2(a
21
x
1
+a
22
x
2
) (si a
12
= a
21
);
(4.9)
es decir,
=

/x
1
/x
2

= 2

a
11
a
12
a
21
a
22

x
1
x
2

; (4.10)
y, en general, se tiene que
= x

Ax = 2Ax ; si A

= A. (4.11)
Analogamente, formemos el escalar
=

x
1
x
2

b
1
b
2

= x
1
b
1
+x
2
b
2
; (4.12)
y calculando las derivadas parciales
=

/x
1
/x
2

b
1
b
2

; (4.13)
[Document version: can-1.2.2. File version: $Id: chap03.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 27
Captulo 4. GTP3. M etodos iterativos en sistemas de ecuaciones lineales
Seccion 4.2. Ejercicios
y, en general, se tiene que
= x

b = b . (4.14)
Entonces, seg un Ecs. 4.11-4.14, tendremos
q =
1
2
x

Ax x

b ; A

= A ;
q = Ax b .
(4.15)
Por otra parte,
min(q) q

x
m
= Ax
m
b = x
m
= A
1
b ; (4.16)
o sea el valor estacionario de q (mnimo o maximo) se tiene cuando A es denida positiva y x
m
es la solucion del SEL Ax = b, o sea, x
m
= A
1
b, y su valor es
q
m
=
1
2
x

m
(Ax 2b)
=
1
2

A
1
b

A
1
b

2b

=
1
2

A
1
b

(b 2b)
=
1
2
(A
1
b)

b
=
1
2
u

b
=
1
2
b

u
=
1
2
b

A
1
b ;
(4.17)
donde hemos usado el vector auxiliar u = A
1
b.
7. [solucion iterativa de un SEL por CG]. Implemente una function [x,z] = cg (A,b,eps) que
devuelva a una tolerancia la solucion aproximada x y la historia del residuo z al resolver el
SEL As = b por Gradientes Conjugados (sin precondicionamiento) (CG)
t
k
=
'r
(k1)
r
(k1)
`
'v
(k)
Av
(k)
`
;
x
(k)
= x
(k1)
+t
k
v
(k)
;
r
(k)
= r
(k1)
t
k
Av
(k)
;
s
k
=
'r
(k)
r
(k)
`
'r
(k1)
r
(k)
`
;
v
(k+1)
= r
(k)
+s
k
v
(k)
;
(4.18)
[Document version: can-1.2.2. File version: $Id: chap03.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 28
Captulo 4. GTP3. M etodos iterativos en sistemas de ecuaciones lineales
Seccion 4.2. Ejercicios
para k = 1, 2, ..., y con la condicion inicial
x
(0)
: arbitrario ;
r
(0)
= b Ax
(0)
;
v
(1)
= r
(0)
;
(4.19)
(Ref.: Burden-Faires[20])
8. [historia y tasa de la convergencia].
a) ponga a prueba sus funciones desarrolladas en los incisos anteriores, resolviendo el SEL
Ax = b dado por

4 1 0 0
1 4 1 0
0 1 4 1
0 0 1 4

x
1
x
2
x
3
x
4

1
2
3
4

; (4.20)
asumiendo como solucion iterada inicial x
(0)
= . Graque la historia de la convergencia
(i.e. haga semilogy (z)) y estime la tasa de convergencia para todos los metodos;
b) Para los solvers por iteracion de Jacobi y de Gauss-Seidel ademas trace una graca de
z = f() para 0 < < 2 para cada uno de ellos;
c) Como justica que los metodos logren (o no) convergencia en este ejemplo ? Analizando
las gracas cual metodo fue mas conveniente en este caso ? (y de paso, que solver directo
usara en su lugar ?)
(Ref.: Zarowski[5])
9. [algoritmo de Arnoldi]. Considere el subespacio de Krylov
K
m
(A; v) = span v, Av, ..., A
m1
v ; (4.21)
i.e. el subespacio generado (span) por vectores u
i
, con u
i
= A
i1
v para i = 1, .., m, donde la
matriz A R
nn
, el vector (arbitrario) v R
n1
y el n umero m > 1 son dados. El algoritmo
de Arnoldi usa el procedimiento de Gram-Schmidt para obtener una base ortonormal v
i
del
subespacio de Krylov K
m
(A; v
1
), donde v
1
= v/[[v[[
2
. Una implementacion basica esta dada
[Document version: can-1.2.2. File version: $Id: chap03.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 29
Captulo 4. GTP3. M etodos iterativos en sistemas de ecuaciones lineales
Seccion 4.2. Ejercicios
por
V
1
= v/[[v[[
2
for k = 1, 2, ..., m do
for i = 1, 2, ..., k do
h
ik
= V
T
i
AV
k
end for i
e
k
=
k

i=1
h
ik
V
i
u
k
= AV
k
e
k
H
k+1,k
= [[u
k
[[
2
if (H
k+1,k
= 0) then exit
V
k+1
= u
k
/H
k+1,k
end for k
(4.22)
donde H R
(m+1)m
, V R
n(m+1)
(ambas son, en general, matrices rectangulares), con
m n, V
i
es la columna i en la matriz V . Cuando [[u
k
[[
2
= 0 para alg un k < m, entonces el
proceso termina antes de tiempo (y se dice que se produjo un breakdown del algoritmo). Tareas:
a) implemente una function [V,H] = arnoldi (A,v,m) que devuelva la base ortonormal V
y la matriz de Arnoldi H;
b) pongalo a prueba para la matriz dada por la Ec. 4.20 y alg un vector v de su eleccion;
c) vericar que la base ortonormal V obtenida sea, a precision de la maquina, efectivamente
ortonormal.
Comentario: el algoritmo de Arnoldi es un componente de los metodos iterativos GMRes [23]
los cuales son extensamente empleados, entre otras aplicaciones, en elementos nitos. (Ref.:
Quarteroni [1] et al.)
[Document version: can-1.2.2. File version: $Id: chap04.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 30
Captulo 5
GTP 4. Races de ecuaciones
5.1. Temario
iteracion de punto jo
iteracion de punto jo, no-unicidad de la g(x)
metodo de la biseccion
metodo de la cuerda
metodo de la secante
metodo de la regula falsi
metodo de Newton (de convergencia local), caso escalar
metodo de Newton-Armijo (de convergencia global), caso escalar
metodo de Newton (de convergencia local), caso vectorial
5.2. Ejercicios
Consigna: las funciones para hallar un cero de una ENLH deben ser genericas en todos los casos, i.e.
deben ser independientes de la expresion particular de la funcion no-lineal y homogenea f(x) = 0, por
lo que se la debe pasar como un argumento.
1. [iteracion de punto jo]. Implemente una function [x,h,errata] = punto fijo (g, xini,
kmax, tol) que devuelva un cero x de la ENLH f(x) = x g(x) = 0 y la historia del residuo
h, usando la iteracion de punto jo
x
(k+1)
= g(x
(k)
) k 0 ; (5.1)
hasta que [[f(x
(k)
)[[ < , para una tolerancia tol, un n umero maximo de iteraciones kmax, y
una abscisa semilla x
(0)
= x
ini
, mientras que en errata se indica si el metodo o bien tuvo
exito o bien fracaso para los xini, kmax, tol dados. Notar que previamente debe transformar
la ENLH f(x) = 0 a la forma f(x) = x + g(x) = 0 para as llegar a x = g(x), lo cual puede
hacerse de diversas maneras. Luego, su g(x) hallada sera el argumento de la funcion pedida
(Ref.: Quarteroni [1] et al.).
31
Captulo 5. GTP 4. Races de ecuaciones
Seccion 5.2. Ejercicios
2. [iteracion de punto jo, no-unicidad de la g(x)]. La ENLH f(x) = x+ln(x) = 0 puede re-escribirse
de varias maneras, por ejemplo, considere:
a) x = ln(x)
b) x = e
x
c) x = (x +e
x
)/2
Tareas:
i) vericar (lapiz y papel) que todas son equivalentes;
ii) cuales de estas pueden usarse ?
iii) experimente programarlas e intentar encontrar una raz (positiva);
iv) cuales de estas deberan usarse ?
3. [iteracion de punto jo, no-unicidad de la g(x)]. (Ref.: Quarteroni [1] et al.).
i) Proponga dos funciones g(x) para resolver la ENLH dada por f(x) = e
x
sin(x) = 0 por
iteracion de punto jo x = g(x);
ii) Experimente con ambas intentando encontrar una raz (positiva) y justique si el metodo
fracasa analizando su convergencia.
4. [metodo de la biseccion]. Implemente una function [x,h,errata] = biseccion (f, xmin,
xmax, kmax, tol) que devuelva un cero x de la ENLH f(x) = 0 y la historia del residuo h
usando el metodo de la biseccion, para una tolerancia tol, un n umero maximo de iteraciones
kmax, y dos abscisas semillas x
min
, x
max
, con x
min
= x
max
, mientras que en errata se indica si
el metodo o bien tuvo exito o bien fracaso para los xini, kmax, tol dados (Ref.: Quarteroni [1]
et al.).
Comentario: este metodo se basa en el teorema de los ceros de una funcion continua: dada
una funcion continua f : [a, b] R, tal que f(a)f(b) < 0, entonces existe un (a, b) tal
que f() = 0. Luego, usando este teorema y comenzando con el intervalo inicial I
0
= [a, b], el
metodo de la biseccion genera una secuencia de subintervalos I
k
= [a
(k)
, b
(k)
] para k 0, tal que
I
k
I
k1
para k 1, buscando que se cumpla f(a
(k)
)f(b
(k)
< 0. Precisamente, hacemos
a
(0)
= a ; b
(0)
= b
x
(0)
= (a
(0)
+b
(0)
)/2
for k 0 do
set a
(k+1)
= a
(k)
, b
(k+1)
= x
(k)
, if f(x
(k)
)f(a
(k)
) < 0
set a
(k+1)
= x
(k)
, b
(k+1)
= b
(k)
, if f(x
(k)
)f(b
(k)
) < 0
set x
(k+1)
= (a
(k+1)
+b
(k+1)
)/2
if [[x
(k+1)
[[ < exit
end for
(5.2)
[Document version: can-1.2.2. File version: $Id: chap04.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 32
Captulo 5. GTP 4. Races de ecuaciones
Seccion 5.2. Ejercicios
5. [metodo de la cuerda]. Implemente una function [x,h,errata] = cuerda (f, xmin, xmax,
kmax, tol) que devuelva un cero x de la ENLH f(x) = 0 y la historia del residuo h usando
dicho metodo para una tolerancia tol, un n umero maximo de iteraciones kmax, y dos abscisas
semillas x
min
, x
max
, con x
min
= x
max
, mientras que en errata se indica si el metodo o bien
tuvo exito o bien fracaso para los xini, kmax, tol dados (Ref.: Quarteroni [1] et al.). Ayuda:
la relacion recursiva de este metodo se puede escribir como
x
(k+1)
= x
(k)

b a
f(b) f(a)
f(x
(k)
) ; k 0 . (5.3)
6. [metodo de la secante]. Implemente una function [x,h,errata] = secante (f, xmin,
xmax, kmax, tol) que devuelva un cero x de la ENLH f(x) = 0 y la historia del residuo
h usando dicho metodo para una tolerancia tol, un n umero maximo de iteraciones kmax, y dos
abscisas semillas x
min
, x
max
, con x
min
= x
max
, mientras que en errata se indica si el metodo
o bien tuvo exito o bien fracaso para los xini, kmax, tol dados (Ref.: Quarteroni [1] et al.).
Ayuda: la relacion recursiva de este metodo se puede escribir como
x
(k+1)
= x
(k)

x
(k)
x
(k1)
f(x
(k)
) f(x
(k1)
)
f(x
(k)
) ; k 0 . (5.4)
7. [metodo de la regula falsi]. Implemente una function [x,h,errata] = regula falsi (f,
xmin, xmax, kmax, tol) que devuelva un cero x de la ENLH f(x) = 0 y la historia del residuo
h usando dicho metodo para una tolerancia tol, un n umero maximo de iteraciones kmax, y dos
abscisas semillas x
(1)
y x
(0)
tales que signf(x
(1)
) = signf(x
(0)
). Por ejemplo, se podra
intentar con x
(1)
= x
min
y x
(0)
= x
max
. Mientras que en errata se indica si el metodo o bien
tuvo exito o bien fracaso para los xini, kmax, tol dados (Ref.: Quarteroni [1] et al.). Ayuda:
la relacion recursiva de este metodo se puede escribir como
x
(k+1)
= x
(k)

x
(k)
x
(j)
f(x
(k)
) f(x
(j)
)
f(x
(k)
) ; k 0 ; (5.5)
donde j es el maximo ndice (pero menor que k) tal que f(x
(j)
)f(x
(k)
) < 0 (o sea que debe
almacenarse la historia del metodo).
8. [metodo de Newton (de convergencia local), caso escalar]. Implemente una function
[x,h,errata] = newton r1 (f, xini, kmax, tau) que devuelva un cero x de la ENLH
f(x) = 0 y la historia del residuo h usando dicho metodo para una tolerancia combinada
= [
a

r
], un n umero maximo de iteraciones kmax, una abscisa semilla x
ini
, donde
a
es
una tolerancia absoluta quizas mas exigente (e.g. 10
12
) y
r
es una tolerancia relativa algo
mas permisiva (e.g. 10
4
), mientras que en errata se indica si el metodo o bien tuvo exito o
bien fracaso para los xini, kmax, tol dados (Ref.: Quarteroni [1] et al.). Ayuda: la relacion
[Document version: can-1.2.2. File version: $Id: chap04.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 33
Captulo 5. GTP 4. Races de ecuaciones
Seccion 5.2. Ejercicios
recursiva de este metodo se puede escribir como
given x
(0)
set e
0
= [[f(x
(0)
)[[ ; =
a
+e
0

r
; = 1
for k 0 do
solve J(x
(k)
) d
(k)
= f(x
(k)
)
set x
(k+1)
= x
(k)
+ d
(k)
set e
k+1
= [[f(x
(k+1)
)[[
if (e
k+1
< ) exit
end for
(5.6)
donde J(x) = f

(x) es la derivada de f(x), d


(k)
es la direccion de b usqueda (variable) y es la
longitud de b usqueda (constante en el Newton estandar).
9. [metodo de Newton-Armijo (de convergencia global), caso escalar]. Implemente una function
[x,h,errata] = armijo (f, xini, kmax, tau) que devuelva un cero x de la ENLH f(x) = 0
y la historia del residuo h usando dicho metodo para una tolerancia combinada = [
a

r
], un
n umero maximo de iteraciones kmax, una abscisa semilla x
ini
, donde
a
es una tolerancia
absoluta exigente (e.g. 10
12
) y
r
es una tolerancia relativa permisiva (e.g. 10
4
), mientras
que en errata se indica si el metodo o bien tuvo exito o bien fracaso para los xini, kmax,
tol dados (Ref. ver algoritmo 8.1.2, Newton-Armijo, p. 137, propuesto en Kelly[6]). Ayuda: la
relacion recursiva de este metodo se puede escribir como:
given x
(0)
, set e
0
= [[f(x
(0)
)[[ ; =
a
+e
0

r
for k 0 do
solve J(x
(k)
)d
(k)
= F(x
(k)
)
set e
k
= [[f(x
(k)
)[[
Armijo-rule:
set = 2, = 0.01, line search = true
while (line search)
try x
p
= x
(k)
+d
(k)
try e
p
= [[f(x
p
)[[
try e = (1 )e
k
if (e
p
< e) then
set x
(k)
= x
p
, e
(k)
= e
p
, line search = false
else
set = /2
end if
end while
end for
(5.7)
[Document version: can-1.2.2. File version: $Id: chap04.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 34
Captulo 5. GTP 4. Races de ecuaciones
Seccion 5.2. Ejercicios
donde J(x) = f

(x) es la derivada de f(x), d


(k)
es la direccion de b usqueda (variable) y es la
longitud de b usqueda, la cual ahora es tambien variable y que se encuentra por b usqueda lineal
en el lazo while (line search), mientras que es un parametro auxiliar de salvaguarda en la
b usqueda.
10. [metodo de Newton (de convergencia local), caso vectorial]. Implemente una function
[x,h,errata] = newton rn (f, xini, kmax, tau) que devuelva un cero x del SENLH
f(x) = , con x R
n
, y la historia del residuo h usando dicho metodo para una toleran-
cia combinada = [
a

r
], un n umero maximo de iteraciones kmax, una abscisa semilla x
ini
,
donde
a
es una tolerancia absoluta exigente (e.g. 10
12
) y
r
es una tolerancia relativa permi-
siva (e.g. 10
4
), mientras que en errata se indica si el metodo o bien tuvo exito o bien fracaso
para los xini, kmax, tol dados (Ref.: Quarteroni [1] et al.). Ayuda: la relacion recursiva de
este metodo se puede escribir como
given x
(0)
R
n
set e
0
= [[f(x
(0)
)[[
set =
a
+e
0

r
for k 0 do
solve J(x
(k)
) d
(k)
= f(x
(k)
)
set x
(k+1)
= x
(k)
+d
(k)
set e
k+1
= [[f(x
(k+1)
)[[
if e
k+1
< exit
end for
(5.8)
donde J
ij
= f
i
/x
j
es ahora la matriz jacobiana de f(x).
11. [casos test para todas las funciones anteriores]. Usando las siguientes funciones de prueba:
a) f(x) = arctan(x)
b) f(x) = arctan(x
2
)
c) f(x) = 0.9 + arctan(x)
d) f(x) = x(1 + sin(1/x))
e) f(x) = 2 + sin(x)
f) f(x) = 1 +x
2
i) Ponga a prueba sus funciones programadas en los incisos anteriores para el caso escalar:
biseccion, cuerda, regula falsi, secante y Newton, encontrando un cero de la funcion f(x),
gracando ademas la historia de los residuos h de cada metodo en el plano semilogaritmico
(x, log(y)).
ii) En los incisos a c, experimente y compare sus funciones: Newton y Newton-Armijo con
un iterado inicial bien lejos de una raz, e.g. adopte x
0
= 10.
12. [metodo de Newton (caso vectorial)]. Ponga a prueba sus funcion programada para el metodo
de Newton (caso vectorial) para resolver numericamente el SENL f(x) = ( x
1
+x
2
3 , x
2
1
+
x
2
2
9 ) = .
[Document version: can-1.2.2. File version: $Id: chap05.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 35
Captulo 6
GTP 5. Interpolacion y aproximacion
de funciones
6.1. Temario
esquema de Horner para evaluar un polinomio
polinomio de interpolacion: MCI, formas de Lagrange y de Newton
unicidad del polinomio de interpolacion
fallos en la interpolacion equiespaciada: contraejemplo de Runge
propiedades de los coecientes lagrangianos
metodo matricial para la interpolacion de Hermite
metodo clasico para la interpolacion de Hermite
bases cardinales de Lagrange y de Hermite por parcelas
polinomio de interpolacion por trazadores c ubicos (splines)
polinomios ortogonales de Legendre, Laguerre, Hermite y Chebyshev
algunas propiedades de los polinomios ortogonales de Chebyshev
6.2. Ejercicios
1. [esquema de Horner para evaluar un polinomio]. Implemente la funcion function [f] =
horner1 (a, x) para la multiplicacion anidada (o esquema de Horner), con el n de evaluar el
polinomio f = P(x) = a
0
+ a
1
x + a
2
x
2
+ ... + a
n
x
n
en la abscisa x, donde a = [a
0
, a
1
, ..., a
n
]
es el vector de los coecientes del polinomio.
Ayuda: Por ejemplo, para evaluar el polinomio p(x) de grado n = 3 en la abscisa z, en forma
inocente, simplemente haramos (y codicaramos)
p(z) = a
0
z
3
+a
1
z
2
+a
2
z +a
3
; (6.1)
36
Captulo 6. GTP 5. Interpolaci on y aproximaci on de funciones
Seccion 6.2. Ejercicios
pero en vez de esto elegimos primero factorizarlo
p(z) = ((a
0
z +a
1
)z +a
2
)z +a
3
; (6.2)
lo que sugiere el esquema de calculo
b
0
= a
0
;
b
1
= b
0
z +a
1
;
b
2
= b
1
z +a
2
;
b
3
= b
2
z +a
3
;
p(z) = b
3
.
(6.3)
El esquema de la Ec. 6.2 (que es programable usando la Ec. 6.3), tiene un n umero de operaciones
mucho menor que el dado por la Ec. 6.1. As, en general, para evaluar el polinomio
p(x) = a
0
x
n
+a
1
x
n1
+... +a
n1
x +a
n
; (6.4)
de grado n en la abscisa z, la Ec. 6.3 se generaliza con la relacion de recurrencia
b
0
= a
0
;
b
k
= b
k1
z +a
k
; k = 1, 2, ...n
p(z) = b
n
.
(6.5)
que es conocido como el esquema de Horner. Notar que en version inocente, mediante la Ec. 6.1,
se hacen n sumas, n productos y se calculan n 1 potencias, lo que representa otros 1 + 2 +
... + (n 1) = n(n 1)/2 productos, es decir, O(n
2
) operaciones, mientras que en la regla de
Horner, tenemos solo n sumas y n productos, o sea, con O(n) operaciones. Indicacion: ver Sec. 6.1
del texto de Kincaid-Cheney, pag. 286-288; o Sec. 2.6 del texto de Burden-Faires, pag. 91-95.
2. [polinomio de interpolacion: MCI, formas de Lagrange y de Newton]. Para los datos de la Tabla
6.1, encontrar el polinomio de interpolacion:
a) P
MCI
(x) por el Metodo de los Coecientes Indeterminados (MCI);
b) P
L
(x) en la forma de Lagrange;
c) P
N
(x) en la forma de Newton;
x 3 5 7 9
y 1.2 1.7 2.0 2.1
Tabla 6.1:
3. [unicidad del polinomio de interpolacion]. Reducir cada uno de los polinomios encontrados en
el ejercicio anterior a la forma P(x) = a + bx + cx
2
+ dx
3
, con el n de mostrar que todos, en
denitiva, son identicos (unicidad del polinomio de interpolacion para abscisas no-repetidas).
[Document version: can-1.2.2. File version: $Id: chap05.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 37
Captulo 6. GTP 5. Interpolaci on y aproximaci on de funciones
Seccion 6.2. Ejercicios
4. [fallos en la interpolacion equiespaciada: contraejemplo de Runge]. Intentar aproximar la funcion
f(x) =
1
1 +x
2
; 5 x 5 ; (6.6)
usando interpolacion de Lagrange con nodos igualmente espaciados. Graque ambas curvas.
Vericar que para [x[ > 3.63 la interpolacion diverge. A que podra atribuirse este desastre ?
5. [propiedades de los coecientes lagrangianos]. Los coecientes lagrangianos l
j
(x), o funciones
cardinales, para n + 1 puntos de interpolacion, estan dados por
l
j
(x) =
n

k=0,k=j
x x
k
x
j
x
k
; para j = 0, 1, ..., n ; (6.7)
a) mostrar que la forma de los coecientes lagrangianos es invariante para la sustitucion lineal
entera x = at +b, con a, b constantes y a = 0;
b) mostrar que la Ec. (6.7) es equivalente a
l
j
(x) =
Q
n+1
(x)
(x x
j
)Q

n+1
(x
j
)
; j = 0, 1, ..., n ; (6.8)
donde Q
n+1
(x) es el polinomio (nulo en todos los nodos)
Q
n+1
(x) = (x x
0
)(x x
1
) ... (x x
n
) . (6.9)
6. [metodo matricial para la interpolacion de Hermite].
a) Plantear el metodo matricial para el calculo de los coecientes a
j
del polinomio de inter-
polacion de Hermite P
H
(x), en el intervalo x
0
x x
2
,
P
H
(x) = a
3
x
3
+a
2
x
2
+a
1
x +a
0
; (6.10)
b) Para los datos: f
0
= f(1) = 1, f
1
= f

(1) = 1, f
2
= f(1) = 2, f
3
= f

(1) = 1 y usando
el metodo matricial, mostrar que el polinomio de interpolacion de Hermite no existe.
7. [metodo clasico para la interpolacion de Hermite].
a) Comprobar que
P
H
(x) =
n

i=0
U
i
(x)y
i
+
n

i=0
V
i
(x)y

i
; (6.11)
es un polinomio de grado 2n+1 o menor, tal que P
H
(x
k
) = y
k
y P

H
(x
k
) = y

k
, siempre que
1) U
i
(x) y V
i
(x) sean polinomios de grado 2n + 1;
2) U
i
(x
k
) =
ik
, V
i
(x
k
) = 0;
3) U

i
(x
k
) = 0, V

i
(x
k
) =
ik
(delta de Kronecker);
[Document version: can-1.2.2. File version: $Id: chap05.tex, can-1.2.2 2005/10/25 17:13 jdelia Exp $] 38
Captulo 6. GTP 5. Interpolaci on y aproximaci on de funciones
Seccion 6.2. Ejercicios
b) Recordando que la base de Lagrange l
i
(x) verica la relacion l
i
(x
k
) =
ik
, mostrar que
U
i
(x) = [1 2L

i
(x
i
)(x x
i
)]L
2
i
(x) ;
V
i
(x) = (x x
i
)]L
2
i
(x) ;
(6.12)
cumple con todos los requisitos del inciso anterior;
c) Calcular y comparar en una misma graca los polinomios de interpolacion de Lagrange
P
L
(x) y de Hermite P
H
(x) para la funcion f(x) = sin(4x) en el intervalo [0, 1] con n = 3.
8. [bases cardinales de Lagrange y de Hermite por parcelas]. Gracar las bases cardinales de La-
grange y de Hermite por parcelas de grado 1 y 2 en una red de 0 i 4 nodos.
9. [polinomio de interpolacion por trazadores c ubicos (splines)].
a) Implemente la function [v] = spline (x,y,u,g0,gn) en donde x, y son las abscisas y
ordenadas de un conjunto de puntos dato (no repetidos), respectivamente, mientras que
u son nuevas abscisas y v son las correspondientes ordenadas interpoladas mediante un
trazador c ubico (spline) cuando se prescriben las primeras derivadas g
0
, g
n
en los extremos
izquierdo y derecho, respectivamente (Ref.: ver Algoritmo 3.5 en Burden-Faires, pag. 142).
b) Muestre la curva dato (x, y) y la interpolada (u, v), superpuestas en una misma graca, en
cada uno de los siguientes casos:
1) x = [ 0 /4 /2 3/4 ]

, para f(x) = cos(x);


2) x = [ 0 1/4 1/2 3/4 1 ]

, para f(x) = e
x
;
3) Repita el inciso anterior pero con derivadas g
0
y g
n
nulas (spline natural). En caso de
presentarse discrepancias, justifquelas.
10. [polinomios ortogonales de Legendre, Laguerre, Chebyshev y Hermite]. Listar las expresiones
analticas y gracar en el intervalo 1 x 1, los polinomios ortogonales de: Legendre L
n
(x),
Laguerre G
n
(x), Hermite H
n
(x) y Chebyshev T
n
(x), de grados 0 n 3. Por que se los
denomina polinomios ortogonales ?
Nota: NO confundirlos con los polinomios de interpolacion de igual nombre, e.g. los polinomios de inter-
polacion de Lagrange y de Hermite no tienen nada que ver con los polinomios ortogonales de Lagrange
y de Hermite. Indicacion: Las expresiones de estos polinomios ortogonales estan tabuladas en textos que
tratan el tema, e.g. ver Carnahan [2] et al., mientras que, en el Burden-Faires, Legendre: ver ejemplo 3
de la Sec. 8.2, pag. 505; Laguerre: ver ejercicio 7 de la Sec. 4.10, pag. 247-288; Chebyshev: ver Sec. 8.3,
pag. 507; Hermite: no esta (buscarlo en otro texto).
11. [algunas propiedades de los polinomios ortogonales de Chebyshev]. Considere los polinomios de
Chebyshev T
n
(x) de grado n.
a) demuestre la relacion recursiva T
n
(x) = 2xT
n1
(x) T
n
(x), para n > 0, con T
0
(x) = 1;
b) usando la formula recursiva previa obtenga las expresiones de T
n
(x) para x = 1, 2, ..., 9.
c) exprese las funciones algebraicas 1, x, x
2
, ..., x
9
en funcion de los polinomios de Chebyshev.
Indicacion: ver Sec. 6.1 del texto de Kincaid-Cheney, pag. 292-294; o Sec. 8.3 del texto de Burden-Faires,
pag. 507-515.
[Document version: can-1.2.2. File version: $id: chap06.tex 1.00 2005/05/25 07:00 jdelia Exp $] 39
Captulo 7
GTP 6. Diferenciacion e integracion
numerica
7.1. Temario
deniciones en diferenciacion y en cuadratura numerica
diferenciacion numerica
extrapolacion de Richardson para la diferenciacion numerica
cuadratura numerica simple y cerrada de Newton-Cotes
cuadratura numerica simple y abierta de Newton-Cotes
cuadratura numerica compuesta con paso variable (o adaptativa)
deduccion de la cuadratura de Gauss-Legendre usando el MCI
deduccion de la cuadratura de Gauss-Legendre usando los polinomios ortogonales de Legendre
del intervalo normalizado [1, 1] al generico [a, b] en las formulas de cuadratura tabuladas
cuadraturas de Gauss-Legendre, Gauss-Laguerre, Gauss-Hermite y Gauss-Chebyshev
extrapolacion de Richardson para la cuadratura numerica (o cuadratura de Romberg)
Consigna: las funciones que contienen los integrandos de los procedimientos de cuadratura numerica
deben ser genericas en todos los casos, i.e. deben ser independientes de la expresion particular del
integrando, por lo que las mismas se las debe pasar como un argumento.
7.2. Ejercicios
1. [deniciones en diferenciacion y en cuadratura numerica]. Dena, indique las propiedades mas
destacadas y cuando las usara (o no):
a) formula de diferenciacion numerica
b) formula de cuadratura numerica
40
Captulo 7. GTP 6. Diferenciaci on e integraci on num erica
Seccion 7.2. Ejercicios
c) formula de cuadratura numerica de Newton-Cotes abierta
d) formula de cuadratura numerica de Newton-Cotes cerrada
e) formula de cuadratura numerica adaptativa
f ) formula de cuadratura numerica de Gauss-Legendre
g) formula de cuadratura numerica de Gauss-Laguerre
h) formula de cuadratura numerica de Gauss-Hermite
i) formula de cuadratura numerica de Gauss-Chebyshev
2. [diferenciacion numerica].
a) Considere la formula de diferenciacion numerica
D
n
f(x) =
1
h
4
[f(x) 4f(x +h) + 6f(x + 2h) 4f(x + 3h) +f(x + 4h)] ; (7.1)
a que derivada de f en x converge para h 0 y con que orden ?
b) Deduzca la aproximacion
f

n
(x
n
) =
3f
n
4f
n1
+f
n2
3x
n
4x
n1
+x
n2
. (7.2)
donde f
i
= f(x
i
), x
i
= x
0
+ih y demuestre que su termino de error es O(h
2
) cuando h 0.
3. [extrapolacion de Richardson para la diferenciacion numerica]. Demuestre como encontrar la
formula de extrapolacion de Richardson
L =

16
15
(h/2)
1
15
(h)

+a
6
h
6
+a
8
h
8
+... ; (7.3)
en donde
(h) =
4
3
(h/2)
1
3
(h) ; (h) =
f(x +h) f(x h)
2h
. (7.4)
4. [cuadratura numerica simple y cerrada de Newton-Cotes]. Emplear la cuadratura numerica sim-
ple y cerrada de Newton-Cotes:
a) regla del trapecio (n = 1);
b) regla de Simpson (n = 2);
c) regla de Simpson de tres octavos (n = 3);
para aproximar el valor de la integral denida
z =

/4
0
sin(x)dx . (7.5)
Indicaci on: e.g., implementar las Ec. (4.23) a (4.25) del texto de Burden-Faires, pag. 192.
[Document version: can-1.2.2. File version: $id: chap06.tex 1.00 2005/05/25 07:00 jdelia Exp $] 41
Captulo 7. GTP 6. Diferenciaci on e integraci on num erica
Seccion 7.2. Ejercicios
5. [cuadratura numerica simple y abierta de Newton-Cotes]. Emplear las formulas de cuadratura
numerica simple y abierta de Newton-Cotes:
a) regla del punto medio (n = 0);
b) n = 1;
c) n = 2;
para aproximar el valor de la integral denida
z =

/4
0
sin(x)dx . (7.6)
Indicacion: implementar las Ec. (4.27) a (4.29) del texto de Burden-Faires, pag. 194.
6. [cuadratura numerica compuesta con paso variable (o adaptativa)]. Implementar una function
[z,H] = integral r (f, xa, xb, eps) tal que en z devuelva una aproximacion de una inte-
gral denida mediante cuadratura numerica adaptativa (de paso variable). Para tal n, modique
la regla compuesta Simpson a traves de una implementacion recursiva. Luego gracar el inte-
grando y marcar sobre el mismo los puntos muestreados que fueron almacenados en la matriz
H = [x y]. Ponga a punto su funcion evaluando
z
1
=

e
x
2
dx =

; z
2
=

3
1
(100/x
2
) sin(100/x) dx . (7.7)
7. [deduccion de la cuadratura de Gauss-Legendre usando el MCI]. Empleando el Metodo de los
Coecientes Indeterminados (MCI), deducir las reglas de cuadratura de Gauss-Legendre:
z
1
=

1
1
f(x)dx A
1
f(x
1
) +A
2
f(x
2
) ;
z
2
=

1
1
f(x)dx A
1
f(x
1
) +A
2
f(x
2
) +A
3
f(x
3
) ;
(7.8)
8. [deduccion de la cuadratura de Gauss-Legendre usando los polinomios ortogonales de Legendre].
El Teor. 4.7, pag. 223 del Burden-Faires demuestra que, si P(x) es un polinomio cualquiera de
grado menor que 2n + 1 (con n en base 0), entonces

1
1
P(x)dx =
n

k=0
c
k
P(x
k
) ; (7.9)
donde
c
k
=

1
1
n

j = 0
j = k
x x
j
x
k
x
j
dx ; (7.10)
mientras que x
0
, x
1
, .., x
n
son las races del polinomio ortogonal de Legendre L
n
(x) de n-esimo
grado. Las constantes c
k
y las abscisas x
k
estan ampliamente tabuladas (e.g. ver la Tabla 4.11,
pag. 225 del Burden-Faires). Tareas:
[Document version: can-1.2.2. File version: $id: chap06.tex 1.00 2005/05/25 07:00 jdelia Exp $] 42
Captulo 7. GTP 6. Diferenciaci on e integraci on num erica
Seccion 7.2. Ejercicios
a) encontrar las races en el intervalo [1, 1] del polinomio de Legendre para n = 1;
b) calcular los coecientes c
k
respectivos.
9. [del intervalo normalizado [1, 1] al generico [a, b] en las formulas de cuadratura tabuladas].
Deducir un cambio de variable conveniente para transformar la integral denida
z =

b
a
f(x)dx ; (7.11)
del intervalo arbitrario [a, b] al intervalo normalizado [1, 1]. Indicacion: considerar la Fig. 4.16,
pag. 225 del Burden-Faires.
10. [cuadraturas de Gauss-Legendre, Gauss-Laguerre, Gauss-Hermite y Gauss-Chebyshev]. Usar las
formulas de cuadratura indicadas para evaluar
z
1
=

3/2
1
x
2
ln(x) dx ; Gauss-Legendre
z
2
= (1.8) ; Gauss-Laguerre
z
3
= E(0.25) ; Gauss-Chebyshev
z
4
=

x
2
e
x
2
dx ; Gauss-Hermite (7.12)
donde
() =


0
x
1
e
x
dx (7.13)
es la funcion gama (o factorial generalizado);
E() =

/2
0

1 sin
2
(x) dx (7.14)
es la integral elptica completa de segunda clase.
En las Tablas 7.1, 7.2, 7.3 y 7.4, se resume un listado parcial para cada formula (tomadas de
Carnahan [2] et al.
11. [extrapolacion de Richardson para la cuadratura numerica (o cuadratura de Romberg)]. Imple-
mentar una function [z] = romberg (f, xa, xb, eps) que devuelva el valor de la integral
denida
z =


0
sin(x)dx ; (7.15)
mediante la integracion de Romberg (i.e., regla del trapecio compuesta y posterior extrapolacion
de Richardson). Indicacion: implementar el Algoritmo 4.2 del texto de Burden-Faires, pag. 210.
[Document version: can-1.2.2. File version: $id: chap06.tex 1.00 2005/05/25 07:00 jdelia Exp $] 43
Captulo 7. GTP 6. Diferenciaci on e integraci on num erica
Seccion 7.2. Ejercicios
n races x
k
pesos w
k
1 0.57735 02691 89626 1.00000 00000 00000
2 0.0 0.88888 88888 88889
0.77459 66692 41483 0.55555 55555 55556
3 0.33998 10435 84856 0.65214 51548 62546
0.86113 63115 94053 0.34785 48451 37454
Tabla 7.1: Races de los polinomios de Legendre y pesos respectivos para la cuadratura de Gauss-
Legendre:

1
1
f(x) dx

n
k=0
w
k
f(x
k
).
races x
k
pesos w
k
n cos((2k + 1)/(2n + 2)) /(n + 1)
Tabla 7.2: Races de los polinomios de Chebyshev y el peso (constante) para la cuadratura de Gauss-
Chebyshev:

1
1
f(x)/

1 x
2
dx

n
k=0
w
k
f(x
k
).
n races x
k
pesos w
k
1 0.58578 64376 27 0.85355 33905 93000
3.41421 35623 73 0.14644 66094 07000
2 0.41577 45567 83 0.71109 30099 29000
2.29428 03602 79 0.27851 77335 69000
6.28994 50829 37 0.01038 92565 01600
3 0.32254 76896 19 0.60315 41043 42000
1.74576 11011 58 0.35741 86924 38000
4.53662 02969 21 0.03888 79085 15000
9.39507 09123 01 0.00053 92947 05561
Tabla 7.3: Races de los polinomios de Laguerre y pesos respectivos para la cuadratura de Gauss-
Laguerre:

0
e
x
f(x) dx

n
k=0
w
k
f(x
k
).
n races x
k
pesos w
k
1 0.70710 67811 0.88622 69255
2 1.22474 48714 0.29540 89752
0.00000 00000 1.18163 59006
3 1.65068 01239 0.08131 28354
0.52464 76233 0.80491 40900
Tabla 7.4: Races de los polinomios de Hermite y pesos respectivos para la cuadratura de Gauss-
Hermite:

e
x
2
f(x) dx

n
k=0
w
k
f(x
k
).
[Document version: can-1.2.2. File version: $id: chap06.tex 1.00 2005/05/25 07:00 jdelia Exp $] 44
Bibliografa
[1] Quarteroni A., Sacco R., and Saleri F. Numerical Mathematics. Springer-Verlag, 2000.
[2] Carnahan B., Luther H.A., and Wilkes J.O. Calculo Numerico. Rueda, Madrid, 1979.
[3] Octave-2.1.50, 2003. http://www.octave.org/.
[4] Scilab-3.1.1, 2005 (INRIAENPC), Francia. http://scilabsoft.inria.fr/.
[5] Zarowski C.J. An introduction to Numerical Analysis for Electrical and Computer Engineers.
Wiley-Interscience, 2004.
[6] Kelly C.T. Iterative methods for linear and nonlinear equations. SIAM, 1995.
[7] Yang D. C++ and Object-oriented Numeric Computing for Scientists and Engineers. Springer,
2000.
[8] Kincaid D.R. and Cheney E.W. Analisis Numerico. Addison-Wesley Iberoamericana, 1994.
[9] Wilson E.L. and Bathe K.J. Numerical Methods in Finite Element Analysis. Prentice Hall,
Englewood-Clis, 1982.
[10] G95: the GNU Fortran 95 compiler. http://g95.sourceforge.net/.
[11] KAI-Intel: C++ and Fortran 95 compilers. http://www.kai.com/.
[12] Engeln-M ullges G. and Uhlig F. Numerical algorithms with Fortran. Springer, Germany, 1996.
[13] Stoer J. and Bulirsch R. Introduction to Numerical Analysis. Springer-Verlag, 1993.
[14] Homan J.D. Numerical Methods for Engineers and Scientists. Dekker, 2 edition, 2001.
[15] De la Fuente OConnor J.L. Tecnicas de Calculo para Sistemas de Ecuaciones, Programacion
Lineal y Programacion Entera. Reverte, 1998.
[16] Shampine L.F., Allen R.C., and Pruess S. Fundamentals of Numerical Computing. Wiley-
Interscience, 1997.
[17] Linux Doc. Project, http://sunsite.unc.edu/mdw/linux.html.
45
BIBLIOGRAF

IA
BIBLIOGRAF

IA
[18] Higham N.J. Accuracy and stability of numerical algorithms. Society for Industrial and Applied
Mathematics, USA, 1996.
[19] Rice R.G. and Do D.D. Applied Mathematics and Modeling for Chemical Engineers. John Wiley
and Sons, 1995.
[20] Burden R.L. and Faires J.D. Analisis Numerico. Grupo Editorial Iberoamericana, 1985.
[21] Conte S.D. and de Boor C. Elementary Numerical Analysis. McGraw-Hill Book, 1980.
[22] Press W.H., Teukolsky S.A., Vetterling W.T., and Flannery B.P. Numerical Recipes. Cambridge
University Press, 2nd edition, 1992.
[23] Saad Y. and Schultz M. Generalized minimum residual method (GMRES). SIAM J. Sci. Statist.
Comput., 7:856869, 1986.
[Document version: can-1.2.2. File version: $id: chap06.tex 1.00 2005/05/25 07:00 jdelia Exp $] 46